亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hcs302.asm

?? Keeloq編解碼例程包含解碼編碼源程序及應用筆記.rar
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
; 3   FOR RCV11
; TOTAL 10 INSTRUCTIONS BETWEEN EDGE AND ENTERING DL1
; THEREFORE SUBTRACT 10/4 = 2.5 => 3 DL1 LOOPS TO COMPENSATE FOR 
;*************************************************************************

DL1
	CLRWDT                          ; [1] RESET WATCHDOG TIMER
	DECFSZ  CNT2,1                  ; [1] [2, IF SKIP]
	GOTO    DL1                     ; [2] CNT0 X 4 us

SAMPLE1
	BTFSS   PORTA,RFIN              ; [2] INPUT HIGH?  FIRST SAMPLE
	GOTO    RMT01                   ; [0] NO--ERROR

	MOVF    CNT0,W                  ; [1] CALIBRATION COUNTER
	MOVWF   CNT2                    ; [1] (NOMINALLY 75 FOR 300 us PULSE)
	DECF    CNT2,1			; [1] SUBTRACT 2 FROM FINAL CALIB COUNTER TO COMPENATE FOR THIS
	GOTO	$+1			; [2]
	NOP				; [1]
					; TOTAL = 8 => 1 LOOP COUNTER
DL2
	CLRWDT                          ; [1] RESET WATCHDOG TIMER
	GOTO	$+1			; [2] WASTE TIME
	GOTO	$+1			; [2] WASTE TIME
	DECFSZ  CNT2,1			; [1]
	GOTO    DL2                     ; [2] CNT0 X 8 us [ CNT0 x Te ]

SAMPLE2
	BCF     FLAGS,BITIN             ; [1]   CLEAR BIT POSITION
	BTFSS   PORTA,RFIN              ; [1.5] LEAVE 0 IF LINE HIGH
	BSF     FLAGS,BITIN             ; [0.5] MAKE 1 IF LINE LOW
					; SUB TOTAL = 3 CYCLES

	CALL    ROT_SHIFT               ; [11]+[2] CSR SHIFT + CALL
	BCF	CSR7,7			; [1]
	BTFSC   FLAGS,BITIN		; [1.5]
	BSF     CSR7,7			; [0.5]
					; SUB TOTAL = 16 CYCLES


	MOVF    CNT0,W                  ; [1] CALIBRATION COUNTER
	MOVWF   CNT2                    ; [1] (NOMINALLY 75 FOR 300 us PULSE)
	MOVLW	3			; [1] SEE CALCULATION BELOW
	SUBWF	CNT2,1			; [1]
	NOP				; [1]
					; SUB TOTAL = 5 CYCLE
					; TOTAL = 24 => 24/8 = 3 LOOP COUNTERS
					 
;*************************************************************************
; TOTAL = 24 INSTRUCTIONS
; SUBTRACT 24/8 = 3 TO COMPESATE FOR UPDATEING CSR AND OTHER PROCESSING 
; AFTER DATA SAMPLE IS TAKEN.
;*************************************************************************

DL3
	GOTO	$+1			; [2] WASTE TIME
	GOTO	$+1			; [2] WASTE TIME
	CLRWDT                          ; [1] RESET WATCHDOG TIMER
	DECFSZ  CNT2,1                  ; [1]
	GOTO    DL3                     ; [2] CNT0 X 8 us [ CNT0 X Te ]

SAMPLE3
	BTFSC   PORTA,RFIN              ; [2] INPUT LOW?  THIRD SAMPLE
	GOTO    RMT0                    ; [0] NO--RECEIVE ERROR

	CALL    TST_RTCC                ; [11] CHECK RTCC

	DECFSZ  CNT1,1                  ; [1] LAST BIT?
	GOTO    RCV8                    ; [2] ... NO, GET NEXT BIT
	GOTO	RMT1		     	; TOTAL = 14 CYCLES


RMT_0
RMT0	
RMT01	BSF	STATUS,C		; INVALID TRANSMISSION
	RETLW	1			; RETURN

RMT1	BSF	PORTA,LED		; VALID TRANSMISSION FORMAT, LED ON
	MOVLW	0FH			; FORCE OPEN BUTTON CODES TO ZERO
	ANDWF	SER_0,1
	CLRC				; VALID SERIAL NUMBER => VALID TX
 	RETLW   0                    	; RETURN 

;------------------------------------------------------------------------------
;
; FUNCTION     	: M_LOOP ()	      			
;
; DESCRIPTION  	: MAIN PROGRAM ROUTINE
;
;------------------------------------------------------------------------------

M_LOOP	BCF	PORTA,LED		 
	BTFSS	PORTA,LRN		
	GOTO	LEARN		 	; TEST & HANDLE LEARN BUTTON
	CALL	TST_RTCC		; UPDATE TIMER 
	CALL	TST_TIMER		; HANDLE TIMER - UPDATE OUTPUTS
	CALL	RECEIVE			; RECEIVE TRANSMISSION 
	BC	M_LOOP			; CHECK IF TRANSMISSION VALID

M_SEARCH
	CLRF	TXNUM			; TEST FIRST POSITION
; ******* COMPARE LOWER WORD OF SERIAL NUMBER ********
M_SERIAL
	CALL	TX_LOOKUP		; GET TX BASE ADDRESS
	BSF	ADDRESS,1		; ADD 2 TO BASE ADDRESS
	CALL	EEREAD			; READ LOWER 16-BITS OF SER# FROM EEPROM
  		    
	MOVFW	TMP1			; COMPARE RX AND EEPROM VALUES
	XORWF	SER_2,W
	BNZ	M_NEXT			; IF NOT EQUAL CHECK NEXT
	MOVFW	TMP2			; COMPARE RX AND EEPROM VALUES
	XORWF	SER_3,W
	BNZ	M_NEXT			; IF NOT EQUAL CHECK NEXT
	
; ******* COMPARE UPPER WORD OF SERIAL NUMBER ********
M_SERIAL2
	INCF	ADDRESS,F		; POINT TO NEXT ENTRY 
	CALL	EEREAD			; READ UPPER 16-BITS OF SER# FROM EEPROM

	MOVFW	TMP1			; COMPARE RX AND EEPROM VALUES
	XORWF	SER_0,W
	BNZ	M_NEXT			; IF NOT EQUAL CHECK NEXT

	MOVFW	TMP2			; COMPARE RX AND EEPROM VALUES
	XORWF	SER_1,W
	BNZ	M_NEXT			; IF NOT EQUAL CHECK NEXT

	BTFSS	FLAGS,LRNF		; LEARN MODE
	GOTO	M_HOP			; FOUND TRANSMITTER - DECRYPT

	BSF	FLAGS,RELEARN		; SET RELEARN FLAG
	GOTO	LEARN_F			; FOUND TRANSMITTER - LEARN
		
; **** SEARCH NEXT POSITION FOR SERIAL NUMBER *****
M_NEXT	INCF	TXNUM,F			; POINT TO NEXT TRANSMITTER POSITION
	MOVLW	MAX_USERS		; TEST FOR LAST POSITION
	SUBWF	TXNUM,W			
	BTFSS	STATUS,C		; NOT FOUND IN MAP
	GOTO	M_SERIAL		; TRY NEXT POSITION
M_NF
	BTFSS	FLAGS,LRNF		; LEARN MODE
	GOTO	M_LOOP			; NO... INVALID SERIAL NUMBER 
	GOTO	LEARN_NF		; NEW TRANSMITTER - USE POINTER FOR LEARN

; ********** DECRYPT HOPCODE *********************
M_HOP	
	CALL	DECRYPT			; DECRYPT HOPCODE 

; ********* TEST DICRIMINATION VALUE *************
M_DIS	MOVFW	SER_3			; SERIAL NUBER LSB MUST BE EQUAL
	XORWF	DISC,W			; TO DISCRIMINATION VALUE
	BNZ	M_LOOP

; *************** CHECK COUNTERS VALID ************
	BCF	FLAGS,SEC_CNT		; CHECK FIRST COUNTER
M_CNT	CALL	TX_LOOKUP		; POINT LOWER 16 BIT COUNTER
	BTFSC	FLAGS,SEC_CNT		; IF SECOND COUNTER IS USED
	INCF	ADDRESS,F		; INCREMENT ADDRESS
	CALL	EEREAD			; READ LOWER 16 BIT COUNTER FROM EEPROM

; ************ CHECK COUNTER WINDOWS ***********
M_SUB
	MOVFW	TMP2			; 16 BIT COUNTER SUBSTRACTION
	SUBWF	CNTR_LW,W
	MOVWF	TMP2			
	SKPC				; SKIP IF NO BORROW
	INCF	TMP1,F			; ... ELSE INCR HI BYTE
	MOVFW	TMP1
	SUBWF	CNTR_HI,W
	MOVWF	TMP1

	BCF	TMP1,0			; MAKE ACCEPTED WINDOW 512

M_CHECK0
	MOVFW	TMP1			; TEST IF IN WINDOW ( UPPER BYTE )
	BTFSC	STATUS,Z
	GOTO	M_CHECK2		; GO AND CHECK LOWER BYTE

	BTFSC	FLAGS,SEC_CNT		; IF SECOND COUNTER
	GOTO	M_LOOP			; ERROR - GOTO MAIN LOOP		

	BSF	FLAGS,SEC_CNT		; SET FLAG FOR SECOND COUNTER CHECK
	GOTO	M_CNT			; AND CHECK IT

M_CHECK2
	MOVFW	TMP2			; CHECK LOWER BYTE
	BZ	M_TZERO			; IF REPEAT - RESET TIMEOUT COUNTER

; ************ UPDATE EEPROM COUNTER ***********
M_UPDATE
	CALL	TX_LOOKUP		; GET CURRENT TX BASE ADDRESS
	CALL	LOAD_CNT_VALS		; LOAD COUNTER VALUES
	CALL	EEWRITE			; UPDATE FIRST COUNTER
	CALL	LOAD_CNT_VALS		; LOAD COUNTER VALUES	
	CALL	EEWRITE			; UPDATE SECOND COUNTER

; ******** UPDATE OUTPUT WITH CURRENT BUTTON CODE ********

M_OUTPUT 
	MOVLW	0F0H			; MASK ONLY BUTTON CODES
	ANDWF	FUNC,1
	SWAPF	FUNC,1			; GET BUTTON CODE FROM FUNC BYTE
	
	BTFSC	FUNC,0			; CHANGE BUTTON TO S-OUTPUT FORMAT
	BSF	FUNC,4			; [ S2 S1 S0 S3 ]
	CLRC				
	RRF	FUNC,W			
	
M_OUTPUT1
	MOVWF	PORTB			; UPDATE PORT WITH FUNCTION CODE

M_TZERO CLRF	CNT_HI			; RESET RTCC CLOCK
	CLRF	CNT_LW			

M_END	
	GOTO	M_LOOP			; WAIT FOR NEXT TRANMISSION

;------------------------------------------------------------------------------
;
; FUNCTION     	: LEARN ()	      			
;
; DESCRIPTION  	: LEARN ROUTINE
;
;------------------------------------------------------------------------------

LEARN
	CLRF	CNT_LW			; RESET TIMER
	CLRF	CNT_HI
	
	
LEARN1	BSF	PORTA,LED		; LED ON
	CALL	TST_RTCC		; UPDATE TIMER
	BTFSC	PORTA,LRN		; TEST FOR BUTTON RELEASE		
	GOTO	LEARN2			; ENTER LEARN MODE
	BTFSS	CNT_HI,0		; TEST FOR ERASE ALL
	GOTO	LEARN1			; LOOP BACK

; ******* EEPROM ERASE ALL ******************

	BCF	PORTA,LED
ERASE_ALL
	CLRWDT				; CLEAR WATCHDOG TIMER
	BTFSS	PORTA,LRN		; WAIT FOR BUTTON RELEASE
	GOTO	ERASE_ALL		; LOOP BACK

  	MOVLW	30H			; ERASE ENABLE COMMAND
	MOVWF   OUTBYT               	
        CALL    SENDC			; SEND COMMAND TO EEPROM
  	MOVLW	20H			; ERASE ALL COMMAND
	MOVWF   OUTBYT               	
        CALL    SENDC			; SEND COMMAND TO EEPROM
	CALL	WAITACK			; WAIT FOR ERASE ACK
	GOTO	RESET			; START OVER
	
LEARN2
	BCF	PORTA,LED		; CLEAR LED
	BSF	FLAGS,LRNF		; SET LEARN FLAG

LEARN3
	CALL	TST_RTCC		; UPDATE TIMER
	CALL	TST_TIMER		; CHECK FOR LEARN TIMEOUT
	CALL	RECEIVE			; RECEIVE TRANSMISSION 
	BC	LEARN3			; CHECK IF TRANSMISSION VALID
 	GOTO	M_SEARCH		; CHECK IF SERIAL NUMBER IS IN MAP

LEARN_NF

; *** IF SERIAL NOT IN MAP READ SELFLEARN POINTER ***

	MOVLW	LRNPTR			; POINT TO LEARN POINTER
	MOVWF	ADDRESS
	CALL	EEREAD			; READ LEARN POINTER FROM EEPROM

	MOVF	TMP2,W			; CHECK LOWER BYTE
	MOVLW	0H			; LOAD 0 DEFAULT
	BTFSC	STATUS,Z		; IF LOWER != 0 LEARN ON 0
	MOVF	TMP1,W			; ELSE LEARN ON TMP1 VALUE
	MOVWF	TXNUM			; LOAD TXNUM

LEARN_F
	CALL	TX_LOOKUP
	BSF	ADDRESS,1		; ADD 2 TO BASE ADDRESS
	MOVFW	SER_2			; GET LOWER 16 BIT OF SERIAL NUMBER
	MOVWF	TMP1
	MOVFW	SER_3
	MOVWF	TMP2
	CALL	EEWRITE			; ... AND WRITE TO EEPROM
	
	MOVFW	SER_0			; GET UPPER 16 BIT OF SERIAL NUMBER
	MOVWF	TMP1
	MOVFW	SER_1
	MOVWF	TMP2
	CALL	EEWRITE			; ... AND WRITE TO EEPROM

; *** DECRYPT HOP CODE ***

LEARN_DEC
	CALL	DECRYPT			; DECRYPTION ROUTINE

; *** CHECK DISCRIMINATION VALUE ***

LEARN_CHK
	MOVFW	SER_3			; CHECK LOWER BYTE OF SERIAL NUMBER
	XORWF	DISC,W			; AGAINST DISCRIMINATION VALUE
	BZ	LEARN_UP		; UPDATE LEARN POINTER
	GOTO	CANCEL_LEARN		; ERROR CANCEL LEARN MODE

; ********* UPDATE LEARN POINTER **********
LEARN_UP
	CALL	TX_LOOKUP		; GET CURRENT TX BASE ADDRESS
	CALL	LOAD_CNT_VALS
	CALL	EEWRITE			; WRITE LSB WORD OF COUNTER TO EEPROM

	BTFSC	FLAGS,RELEARN		; IF RELEARN
	GOTO	BYPASS_POINTER_WRITE	; DONT UPDATE POINTER

	INCF	TXNUM,F			; INCREMENT LEARN POINTER	       
	MOVLW	MAX_USERS     		; ALLOW 0 .. MAX_USERS - 1
	SUBWF	TXNUM,W			
	MOVLW	0H			; IF MAX WRAP TO 0
	BTFSS	STATUS,C
	MOVF	TXNUM,W			; ELSE USE TXNUM
	MOVWF	TMP1			; FOR WRITE OPERATION

	CLRF	TMP2			; CLEAR LOWER BYTE
	
	MOVLW	LRNPTR			; POINT TO LEARN POINTER
	MOVWF	ADDRESS
	CALL	EEWRITE			; UPDATE LEARN POINTER IN EEPROM

BYPASS_POINTER_WRITE

	BSF	PORTA,LED		; LED ON TO INDICATE VALID LEARN

	CLRF	CNT_LW			; CLEAR COUNTER LOW BYTE

SUCCESS
	CALL	TST_RTCC		; INDICATE SUCCESSFUL LEARN
	BTFSS	CNT_LW,4		; LED ON FOR 0.5 SEC
	GOTO	SUCCESS			; LOOP BACK

CANCEL_LEARN
	BCF	FLAGS,LRNF		; CLEAR LEARN FLAG
	BCF	FLAGS,RELEARN		; CLEAR RELEARN FLAG
	GOTO	M_LOOP			; RETURN TO MAIN LOOP - LED OFF

;------------------------------------------------------------------------------
; END OF FILE : SIMDEC10.ASM
;------------------------------------------------------------------------------

	ORG	1FFH
	GOTO	RESET
	END


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av午夜一区麻豆| 国产精品麻豆视频| 日本高清成人免费播放| 国产高清精品网站| 免费欧美日韩国产三级电影| 亚洲一卡二卡三卡四卡无卡久久 | 精品一区二区三区影院在线午夜| 亚洲va欧美va国产va天堂影院| 亚洲同性gay激情无套| 亚洲精品视频自拍| 亚洲图片欧美视频| 亚洲高清久久久| 日本中文字幕一区二区视频 | 美女视频黄a大片欧美| 麻豆极品一区二区三区| 另类小说欧美激情| 激情五月婷婷综合网| 国产精品一区二区果冻传媒| 成人自拍视频在线观看| 色婷婷久久综合| 欧美日韩精品是欧美日韩精品| 欧美精三区欧美精三区| 欧美一二三区在线| 久久亚洲综合色一区二区三区| 国产女人18水真多18精品一级做| 国产亚洲一区字幕| 亚洲精品国产高清久久伦理二区| 亚洲成av人片一区二区梦乃| 久久99国产精品尤物| 成人动漫av在线| 欧美日韩国产一区二区三区地区| 日韩一区二区在线观看视频 | 日韩精品一二三四| 国产综合久久久久影院| 99久久久久免费精品国产| 欧美三级电影在线观看| 2020国产成人综合网| 亚洲三级在线免费| 美腿丝袜亚洲色图| 91视视频在线观看入口直接观看www| 在线一区二区三区做爰视频网站| 欧美一级在线观看| 国产精品久99| 美女任你摸久久| 色综合天天综合网国产成人综合天 | 在线电影国产精品| 欧美精品一区二区三区视频| 国产精品国产三级国产aⅴ原创| 亚洲一区在线免费观看| 国产美女精品一区二区三区| 欧美色爱综合网| 中文字幕精品综合| 久久精品国产一区二区三| 色美美综合视频| 国产亚洲一二三区| 美女诱惑一区二区| 欧美性高清videossexo| 国产精品午夜电影| 日韩高清一区二区| 一道本成人在线| 国产午夜精品久久| 久久国产生活片100| 欧美日韩精品一区二区| 亚洲视频中文字幕| 成人动漫视频在线| 国产欧美在线观看一区| 美洲天堂一区二卡三卡四卡视频| 欧美日韩另类国产亚洲欧美一级| 亚洲欧美国产77777| 成人av动漫网站| 国产日本欧美一区二区| 狠狠色狠狠色综合| 亚洲精品一区二区三区99| 日本不卡1234视频| 91精品国产入口| 三级欧美在线一区| 91精品国产欧美日韩| 亚洲成av人**亚洲成av**| 日本道色综合久久| 一区二区三区久久久| 91久久精品网| 亚洲国产一二三| 欧美美女bb生活片| 日韩电影在线一区二区三区| 欧美日韩成人综合| 免费看日韩精品| 欧美tk丨vk视频| 国产一区二区三区在线观看免费| 日韩精品一区二区三区视频在线观看| 天天影视涩香欲综合网| 日韩一区二区三区免费看| 另类小说视频一区二区| 久久久不卡网国产精品一区| 国产精品一卡二卡在线观看| 久久久久久久久岛国免费| 国产在线看一区| 中文幕一区二区三区久久蜜桃| 丁香亚洲综合激情啪啪综合| 综合在线观看色| 欧美在线免费播放| 日本欧美一区二区三区乱码 | 国产精品九色蝌蚪自拍| 日本韩国欧美三级| 奇米一区二区三区av| 中文字幕高清不卡| 在线观看www91| 免费在线看一区| 中文在线一区二区| 欧美日精品一区视频| 国精品**一区二区三区在线蜜桃| 日韩一区中文字幕| 欧美精品777| 丁香婷婷深情五月亚洲| 一区二区三区在线视频观看| 日韩欧美一区二区三区在线| 成人免费视频网站在线观看| 亚洲国产精品久久人人爱蜜臀| 精品国产亚洲在线| 91国产视频在线观看| 国产一区视频在线看| 亚洲精品视频在线观看免费| 欧美成人a视频| 欧美在线免费观看视频| 丁香桃色午夜亚洲一区二区三区| 亚洲一区二区三区影院| 国产色一区二区| 欧美一区二区三区四区高清| 暴力调教一区二区三区| 久久精工是国产品牌吗| 亚洲午夜久久久久久久久电影院| 久久久久久久久97黄色工厂| 欧美一区欧美二区| 色婷婷狠狠综合| 国产99久久久国产精品| 久久精品久久久精品美女| 亚洲va在线va天堂| 亚洲自拍偷拍网站| 亚洲色图制服诱惑| 国产三级一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 欧美日韩综合色| 91小视频免费观看| 成人精品国产一区二区4080| 极品少妇一区二区| 老司机精品视频在线| 午夜精品久久久久久不卡8050| 中文字幕在线一区二区三区| 国产欧美一区二区三区在线老狼| 日韩精品一区二区三区在线播放 | 成人av免费观看| 国产69精品久久久久毛片 | 国产精品成人免费在线| 久久精品人人做| 久久久久久一二三区| 欧美xxxxx牲另类人与| 日韩欧美电影一二三| 日韩一区二区免费高清| 日韩女同互慰一区二区| 91麻豆精品国产91久久久久久久久 | 日韩欧美视频在线| 日韩免费电影一区| 日韩美女一区二区三区| 日韩精品在线网站| 日韩免费成人网| 久久久影视传媒| 国产精品视频免费| 综合欧美亚洲日本| 亚洲成a人片综合在线| 日韩av中文字幕一区二区| 久久福利资源站| 国产精品18久久久久久久久久久久 | 国产精品日产欧美久久久久| 中文字幕不卡三区| 日韩美女视频一区二区| 一区二区三区在线看| 日韩中文字幕亚洲一区二区va在线 | 91精品国产色综合久久不卡电影| 在线91免费看| 欧美精品一区二区不卡| 中文字幕巨乱亚洲| 亚洲成人先锋电影| 国产精品资源站在线| 99久久婷婷国产| 91麻豆精品国产91久久久久久久久| 久久综合给合久久狠狠狠97色69| 国产精品少妇自拍| 亚洲国产aⅴ成人精品无吗| 久久成人久久爱| 91亚洲永久精品| 日韩欧美电影一区| 亚洲美女视频在线观看| 蜜臀久久99精品久久久画质超高清| 国产成人免费在线观看不卡| 91国偷自产一区二区三区观看 | 成a人片亚洲日本久久| 欧美精品日日鲁夜夜添| 国产精品区一区二区三| 五月婷婷综合激情| 不卡在线视频中文字幕| 日韩精品一区二区三区中文精品|