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

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

?? hcs301.asm

?? 可以對microchip的Keeloq編碼IC:hcs300-301解碼的源程序
?? ASM
?? 第 1 頁 / 共 3 頁
字號:

WRITE0  MOVLW	30H			; WRITE ENABLE COMMAND
	MOVWF   OUTBYT               	
        CALL    SENDC			; SEND COMMAND TO EEPROM
        BCF     PORTB,CS                ; END COMMAND, DESELECT

; ******** WRITE 16-BIT WORD TO EEPROM *********

WRITE1  MOVFW   ADDRESS			; GET EEPROM ADDRESS
	MOVWF	OUTBYT
        BSF     OUTBYT,6		; WRITE COMMAND
        CALL    SENDC                   ; SEND COMMAND TO EEPROM

	MOVLW	16D			; 16 DATA BITS
        MOVWF   CNT1	                

WRITE2
        BTFSS   TMP1,7			; TEST MSB OF 16 BIT WORD
        BCF     PORTB,DIO		; SET DATA BIT
        BTFSC   TMP1,7			; ... ELSE 
        BSF     PORTB,DIO               ; CLEAR DATA BIT
        GOTO    $+1                     ; WAIT 2 US
        RLF     TMP2,F                  ; SHIFT LO BYTE
        BSF     PORTB,CLK               ; CLOCK HIGH
        GOTO    $+1                     ; WAIT 2 US
        RLF     TMP1,F                  ; SHIFT HI BYTE
        BCF     PORTB,CLK               ; CLOCK LOW
	DECFSZ	CNT1,F
        GOTO	WRITE2             	; LOOP COUNTER

WAITACK
       	BCF     PORTB,CS                ; END OF WRITE COMMAND, DESELECT

        MOVLW   RDCFG
        TRIS    PORTB                   ; DIO = INPUT
        BSF     PORTB,CS		; CS HIGH TO WAIT FOR ACK
WRITE5 	
	BTFSC	PORTB,DIO		; CHECK FOR ACK
	GOTO	WRITE6			; WDT RESET ON NO ACK
	GOTO	WRITE5

WRITE6  BCF     PORTB,CS                ; END OF ACK

; ******* EEPROM WRITE DISABLE ****************
        MOVLW   000H             	; WRITE DISABLE COMMAND
	MOVWF	OUTBYT
        CALL    SENDC
        BCF     PORTB,CS                ; END OF DISABLE COMMAND, DESELECT

	INCF	ADDRESS,F    		; POINT TO NEXT EEPROM ADDRESS ( BY DEFAULT )
	RETLW	0H

;------------------------------------------------------------------------------
;
; FUNCTION     	: EEREAD ()	      			
;
; DESCRIPTION  	: READ 16 BIT VALUE FROM EEPROM 
;
; NOTE		: THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------

EEREAD
        MOVFW   ADDRESS
        MOVWF	OUTBYT
        BSF     OUTBYT,7                ; COMMAND = READ
        CALL    SENDC                   ; SEND COMMAND
        MOVLW   RDCFG
        TRIS    PORTB                   ; DIO = INPUT
	MOVLW   16D                	; 16 BITS TO READ
	MOVWF	CNT1

READ0   BSF     PORTB,CLK               ; CLOCK HIGH
        RLF     TMP2,F                  ; SHIFT LO BYTE
        BCF     TMP2,0                  ; ASSUME BIT WILL BE 1
        BTFSC   PORTB,DIO               ; READ DIO LINE
        BSF     TMP2,0                  ; COPY BIT TO REGISTER
        BCF     PORTB,CLK               ; CLOCK LOW
        RLF     TMP1,F                  ; SHIFT HI BYTE
        DECFSZ  CNT1,F			; LOOP COUNTER
	GOTO	READ0
        BCF     PORTB,CS                ; END READ CYCLE

	RETLW	0H

;------------------------------------------------------------------------------
;
; FUNCTION     	: DECRYPT ()	      			
;
; DESCRIPTION  	: DECRYPTS 32 BIT [HOP1:HOP4] USING [CSR0:CSR7]
;
; NOTE		: THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------


; THE KEY USED IS A FIXED KEY WHICH IS NOT SERIAL NUMBER DEPENDANT
; THE USER MUST CHOOSE A KEY AND CHANGE THE CODE HERE TO REFLECT THAT KEY

DECRYPT
	MOVLW	0EFH		; LOAD FIXED 64 BIT KEY LSB		
	MOVWF	KEY0
	MOVLW	0CDH
	MOVWF	KEY1
	MOVLW	0ABH
	MOVWF	KEY2
	MOVLW	089H
	MOVWF	KEY3
	MOVLW	067H
	MOVWF	KEY4
	MOVLW	045H
	MOVWF	KEY5
	MOVLW	023H
	MOVWF	KEY6
	MOVLW	01H		; LOAD FIXED 64 BIT KEY MSB
	MOVWF	KEY7

        MOVLW   11+1            ; OUTER LOOP 11+1 TIMES 
        MOVWF   CNT1          	; OUTER LOOP 11+1 TIMES 

DECRYPT_OUTER

        MOVLW   48              ; INNER LOOP 48 TIMES
        MOVWF   CNT0          	; INNER LOOP 48 TIMES

DECRYPT_INNER
	CLRWDT			; RESET WATCHDOG TIMER
        MOVFW   CNT1		; LAST 48 LOOPS RESTORE THE KEY
        XORLW   1               ; LAST 48 LOOPS RESTORE THE KEY
        SKPNZ                   ; LAST 48 LOOPS RESTORE THE KEY
        GOTO    ROTATE_KEY      ; LAST 48 LOOPS RESTORE THE KEY

        ; THE LOOKUP TABLE IS COMPRESSED INTO IN 4 BYTES TO SAVE SPACE
        ; USE THE 3 LOW INDEX BITS TO MAKE UP AN 8-BIT BIT MASK
        ; USE THE 2 HIGH INDEX BITS TO LOOK UP THE VALUE IN THE TABLE
        ; USE THE BIT MASK TO ISOLATE THE CORRECT BIT IN THE BYTE
        ; PART OF THE REASON FOR THIS SCHEME IS BECAUSE NORMAL TABLE LOOKUP
        ; REQUIRES AN ADDITIONAL STACK LEVEL

        CLRC                    ; CLEAR CARRY (FOR THE LEFT SHIFT)
       
        MOVLW   1               ; INITIALISE MASK = 1
        BTFSC   HOP3,3       	; SHIFT MASK 4X IF BIT 2 SET
        MOVLW   10000B          ; SHIFT MASK 4X IF BIT 2 SET
        MOVWF   MASK            ; INITIALISE MASK = 1

        BTFSS   HOP2,0       	; SHIFT MASK ANOTHER 2X IF BIT 1 SET
        GOTO    $+3
        RLF     MASK,F
        RLF     MASK,F            

        BTFSC   HOP1,0       	; SHIFT MASK ANOTHER 1X IF BIT 0 SET
        RLF     MASK,F

        ; MASK HAS NOW BEEN SHIFTED 0-7 TIMES ACCORDING TO BITS 2:1:0

        MOVLW   0               ; TABLE INDEX = 0
        BTFSC   HOP4,1
        IORLW   2               ; IF BIT 3 SET ADD 2 TO THE TABLE INDEX
        BTFSC   HOP4,6
        IORLW   4               ; IF BIT 4 SET ADD 4 TO THE TABLE INDEX

        ADDWF   PC,F            ; ADD THE INDEX TO THE PROGRAM COUNTER
				;  [ MUST BE IN LOWER HALF OF PAGE ]
                               
TABLE
        MOVLW   02EH            ; BITS 4:3 WERE 00
        GOTO    TABLE_END       ; END OF LOOKUP

        MOVLW   074H            ; BITS 4:3 WERE 01
        GOTO    TABLE_END       ; END OF LOOKUP

        MOVLW   05CH            ; BITS 4:3 WERE 10
        GOTO    TABLE_END       ; END OF LOOKUP

        MOVLW   03AH            ; BITS 4:3 WERE 11
                                 
TABLE_END

        ANDWF   MASK,F          ; ISOLATE THE CORRECT BIT BY ANDING WITH MASK
        MOVLW   0               ; COPY THE BIT TO BIT 7
        SKPZ                    ; COPY THE BIT TO BIT 7
        MOVLW   10000000B       ; COPY THE BIT TO BIT 7

        XORWF   HOP2,W    	; ONLY INTERESTED IN BIT HOP2,7
        XORWF   HOP4,W    	; ONLY INTERESTED IN BIT HOP4,7
        XORWF   KEY1,W		; ONLY INTERESTED IN BIT KEYREG1,7

        MOVWF   MASK            ; STORE W TEMPORARILY (WE NEED BIT 7)
        RLF     MASK,F          ; LEFT ROTATE MASK TO GET BIT 7 INTO THE CARRY

        RLF     HOP1,F         	; SHIFT IN THE NEW BIT
        RLF     HOP2,F
        RLF     HOP3,F
        RLF     HOP4,F

ROTATE_KEY

        CLRC			; CLEAR CARRY
        BTFSC   KEY7,7       	; SET CARRY IF LEFTMOST BIT SET
        SETC                    ; SET CARRY IF LEFTMOST BIT SET

        RLF     KEY0,F         	; LEFT-ROTATE THE 64-BIT KEY 
        RLF     KEY1,F
        RLF     KEY2,F
        RLF     KEY3,F
        RLF     KEY4,F
        RLF     KEY5,F
        RLF     KEY6,F
        RLF     KEY7,F         

        DECFSZ  CNT0,F         	; INNER LOOP 48 TIMES
        GOTO    DECRYPT_INNER   ; INNER LOOP 48 TIMES

        DECFSZ  CNT1,F         	; OUTER LOOP 12 TIMES (11 + 1 TO RESTORE KEY)
        GOTO    DECRYPT_OUTER   ; OUTER LOOP 12 TIMES (11 + 1 TO RESTORE KEY)

        RETLW   0               ; RETURN 

;------------------------------------------------------------------------------
;
; FUNCTION     	: LOAD_CNT_VALS()	      			
;
; DESCRIPTION  	: LOAD COUNTERS INTO WRITE BUFFERS
;
; NOTE		: THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------

LOAD_CNT_VALS
	MOVFW	CNTR_HI			; LOAD MSB OF COUNTER
	MOVWF	TMP1
	MOVFW	CNTR_LW			; LOAD LSB OF COUNTER
	MOVWF	TMP2
	RETLW	0

;------------------------------------------------------------------------------
;
; FUNCTION     	: RECEIVE()	      			
;
; DESCRIPTION  	: RECEPTION ROUTINE FOR PWM TRANSMISSIONS
;
; NOTE		: THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------

RECEIVE

;******** WAIT FOR HEADER AND CALIBRATE *******************

	BTFSS   PORTA,RFIN              ; INPUT LOW?
	GOTO    RMT_0                   ; YES; RECEIVE ERROR

	MOVLW   10                      ; 10 ms TIMER
	MOVWF   CNT1
RCV0
	MOVLW   200
	MOVWF   CNT0
RCV1
	BTFSS   PORTA,RFIN              ; [2] INPUT HIGH?
	GOTO    RCV2                    ; [0] NO, JUMP OUT OF LOOP
	DECFSZ  CNT0,1                  ; [1] YES, CONTINUE WITH TIMING LOOP
	GOTO    RCV1                    ; [2] 5 us X CNT0
	DECFSZ  CNT1,1                  ; [0] DO 1 ms LOOP CNT1 TIMES
	GOTO    RCV0			; [0]

RCV2
	CLRF    CNT0                    ; [1] CLEAR CALIB COUNTER LOW BYTE
	CLRF    CNT1                    ; [1] CLEAR CALIB COUNTER HIGH BYTE

;*************************************************************************
;  2.5 IS AVERAGE FOR DETECTING FALLING EDGE IN RCV1
;  2   INSTRUCTIONS FOR JUMP OUT RCV1 TO RCV2
;  2   INSTRUCTIONS FOR RCV2 - CLEAR CALIBRATION COUNTER
;  TOTAL 6.5 INSTRUCTIONS < 1 CALIBRATION LOOP SO DISCARD
;*************************************************************************

RCV3
	BTFSC   PORTA,RFIN              ; [2][2] INPUT HIGH?
	GOTO    RCV6                    ; [0][0] YES--END CALIBRATION
	INCF	CNT0,1			; [1] INCREMENT 16BIT COUNTER	
	SKPNZ	      			; [2]
	INCF	CNT1,1			; [0]
	CLRWDT				; [1] RESET WATCH DOG TIMER
	NOP				; [1]
	BTFSS	CNT1,3			; [1]
	GOTO	RCV3  			; [2]
	GOTO	RMT_0 			; [0]
		      			; TOTAL = 10
		      			
RCV6
	CLRC				; [1] DIVIDE CNT1:CNT0 BY 8 (600/8=75)
	RRF     CNT1,1			; [1]
	RRF     CNT0,1			; [1]
	RRF     CNT1,1			; [1]
	RRF     CNT0,1			; [1]
	RRF     CNT1,1			; [1]
	RRF     CNT0,1                  ; [1] 
					
	MOVLW   MIN/80			; [1]
	SUBWF   CNT0,W			; [1]
	BTFSS   STATUS,C		; [2] NEGATIVE?
	GOTO    RMT_0                   ; [0] YES--HEADER SHORTER THAN MIN.
					; TOTAL = 11
; ************* VALID HEADER RECEIVED *********************
RCV7
	MOVLW   NBITS                   ; [1] VALID START MARKER WAS RECEIVED
	MOVWF   CNT1			; [1]
	MOVF    CNT0,W			; [1]
	MOVWF   CNT2                    ; [1] CNT2 = CNT0
	MOVLW   6H			; [1] SEE NOTE BELOW
	SUBWF   CNT2,1			; [1]
	GOTO    DL1                   	; [2] COMPENSATE FOR FIRST BIT
					; TOTAL = 8

;**********************************************************************************
;  2.5 IS AVERAGE PLAY BETWEEN RISING EDGE AND JUMP OUT OF CALIBRATION LOOP.
;  2   FOR JUMP OUT OF RCV3 TO RCV6
; 11   INSTRUCTIONS FOR RVC6 - CAIBRATION COUNTER DIVIDE
;  8   INSTRUCTIONS FOR RCV7 - COMPENSATE FOR POST CALIBRATION CALCUATIONS
; TOTAL 22.5 INSTRUCTIONS BETWEEN RISING EDGE AND ENTERING DL1
;  THEREFORE SUBTRACT 22.5/4 = 5.625 TO COMPENSATE FOR POST CALCULATION ON 1ST BIT
;**********************************************************************************

RCV8					
	MOVLW	4H			; [1] WAIT A MAXIMUM OF 4 Te
	MOVWF	TMP_CNT			; [1] SET TEMP LOOP COUNTER

RCV10A
	MOVFW	CNT0                  	; [1] and CSR processing
	MOVWF   CNT2			; [1] Refer to explanation above

RCV10B
	BTFSC   PORTA,RFIN              ; [2] Wait for rising edge
	GOTO    RCV11                   ; [0] Edge found--Process
	CLRWDT                          ; [1] Clear watchdog Timer
	BTFSC   PORTA,RFIN              ; [2] Wait for Next rising edge
	GOTO    RCV11                   ; [0] Edge found--Process
	DECFSZ  CNT2,1                  ; [1] Decrement Timeout counter
	GOTO    RCV10B                  ; [2] Loop Back
					; TOTAL = 8, RFIN CHECKED EVERY 4uS ON AVERAGE

	DECFSZ	TMP_CNT,1		; [1] ALL Te PERIODS
	GOTO	RCV10A			; [2] ... NO, THEN WAIT FOR NEXT ONE
	GOTO    RMT01                   ; [0] ... YES, [0] TIMEOUT--no edge found

RCV11
	MOVLW	3H			; [1]  SEE NOTE BELOW
	SUBWF	CNT0,W			; [1]
	MOVWF	CNT2			; [1]

;*************************************************************************
; 2   SETUP OF TEMP LOOP COUNTER  ( ONLY ONCE )
; 2   SETUP TE LOOP COUNTER       ( MAX 4 )
; 3   DECREMENT TEMP LOOP COUNTER ( MAX 4 )
; 4   IS THE AVERAGE PLAY BETWEEN EDGE AND EDJE BEING DETECTED IN RCV9
; 2   JUMP OUT OF RCV10B TO RCV11

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产调教视频一区| 国产精品毛片久久久久久| 国产suv精品一区二区6| 亚洲精品中文字幕在线观看| 91精品国产欧美日韩| thepron国产精品| 日日摸夜夜添夜夜添国产精品 | 高清成人免费视频| 亚洲h精品动漫在线观看| 中文字幕精品在线不卡| 日韩午夜av一区| 91福利视频网站| 懂色一区二区三区免费观看 | 日日欢夜夜爽一区| 综合分类小说区另类春色亚洲小说欧美 | 欧美精品国产精品| jlzzjlzz亚洲女人18| 蜜臀国产一区二区三区在线播放| 国产精品久久免费看| www国产精品av| 日韩一区二区在线观看| 欧美影片第一页| 盗摄精品av一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 亚洲午夜精品一区二区三区他趣| 中文字幕免费不卡| 国产日韩影视精品| 精品国产污污免费网站入口 | 国产乱理伦片在线观看夜一区| 日本美女一区二区三区视频| 亚洲综合色成人| 亚洲美女在线国产| 亚洲欧美日韩国产手机在线| 国产精品不卡在线| 国产精品久久久99| 中文成人av在线| 国产亚洲欧美一区在线观看| 久久久久久久精| 久久亚洲一区二区三区明星换脸| 2020国产精品自拍| 久久亚洲一级片| 国产日韩在线不卡| 国产精品国产精品国产专区不蜜| 国产精品久久久久久久午夜片| 国产欧美一区二区精品婷婷 | 国产日韩欧美精品一区| 国产午夜亚洲精品不卡| 中文字幕第一区二区| 国产精品久久久久久久久搜平片| 国产精品麻豆一区二区| 1024成人网| 亚洲综合在线免费观看| 亚洲午夜久久久久久久久电影网 | 激情深爱一区二区| 国产成人自拍网| 成人伦理片在线| 91久久一区二区| 欧美日韩国产123区| 日韩欧美国产系列| 久久久精品2019中文字幕之3| 国产精品天干天干在观线| 成人欧美一区二区三区黑人麻豆| 亚洲色欲色欲www| 亚洲风情在线资源站| 久久国产生活片100| 国产美女精品人人做人人爽| 国产高清不卡二三区| 色综合久久99| 日韩一区二区电影在线| 国产欧美视频一区二区| 亚洲伦在线观看| 免费观看一级特黄欧美大片| 国产精品系列在线播放| 色猫猫国产区一区二在线视频| 日本道在线观看一区二区| 日韩视频在线观看一区二区| 精品动漫一区二区三区在线观看| 国产精品美女一区二区在线观看| 亚洲一区二区三区三| 日韩av二区在线播放| 成人黄色电影在线| 在线成人av网站| 国产精品无码永久免费888| 亚洲主播在线观看| 国产精品12区| 4hu四虎永久在线影院成人| 国产亚洲一区字幕| 亚洲18色成人| 成人黄页毛片网站| 欧美一卡在线观看| 亚洲欧洲另类国产综合| 美女www一区二区| 日本高清视频一区二区| 国产亚洲精品7777| 亚洲成人自拍一区| 成人h动漫精品| 日韩欧美你懂的| 亚洲精品水蜜桃| 国产一区二区伦理| 欧美丰满嫩嫩电影| 亚洲欧美日韩久久精品| 国产高清亚洲一区| 日韩一级片在线播放| 亚洲一区二区三区视频在线播放 | 欧美理论片在线| 国产精品久久久久一区二区三区共 | 一区二区三区毛片| 国产高清精品久久久久| 欧美一级生活片| 亚洲一区在线看| 99视频一区二区| 久久一区二区三区国产精品| 午夜久久久久久| 色哟哟一区二区| 国产精品欧美久久久久无广告| 激情综合网激情| 欧美精品电影在线播放| 一卡二卡三卡日韩欧美| 91香蕉视频在线| 国产欧美一区二区精品婷婷| 国产一区二区按摩在线观看| 欧美一区二区成人| 天天综合天天做天天综合| 欧美三级电影网站| 一个色在线综合| 色婷婷国产精品| 亚洲乱码国产乱码精品精98午夜| av中文一区二区三区| 欧美极品美女视频| 国产成人亚洲综合a∨婷婷图片| 精品精品国产高清a毛片牛牛| 看电影不卡的网站| 日韩视频一区二区| 日韩高清一区在线| 欧美精品在线观看一区二区| 丝袜亚洲另类欧美综合| 555夜色666亚洲国产免| 青草国产精品久久久久久| 91精品国产一区二区三区香蕉| 日韩精品亚洲一区二区三区免费| 欧美乱熟臀69xxxxxx| 五月天欧美精品| 欧美一级久久久| 久久99九九99精品| 国产午夜精品一区二区三区嫩草 | 在线看国产一区| 亚洲香肠在线观看| 欧美精品久久一区二区三区| 日本大胆欧美人术艺术动态| 精品国产欧美一区二区| 国产精品一区二区免费不卡| 中文在线一区二区| av成人免费在线观看| 一区二区三区在线观看国产| 欧美午夜宅男影院| 久久www免费人成看片高清| 久久久久国产免费免费 | 成人免费视频caoporn| 中文字幕在线观看不卡| 色88888久久久久久影院野外 | 成人一道本在线| 亚洲精品乱码久久久久久| 欧美日韩和欧美的一区二区| 麻豆精品视频在线观看视频| xnxx国产精品| 91原创在线视频| 三级影片在线观看欧美日韩一区二区 | 国产精品自拍网站| 中文字幕欧美一| 在线观看免费亚洲| 毛片av一区二区| 中文成人综合网| 在线成人午夜影院| 国产suv精品一区二区三区| 亚洲资源中文字幕| 精品国产乱码久久久久久老虎| jlzzjlzz国产精品久久| 肉肉av福利一精品导航| 中文字幕成人av| 欧美日韩三级一区二区| 国产精品亚洲专一区二区三区| 一区二区三区在线视频免费| 精品久久久久久综合日本欧美 | 2021国产精品久久精品| 91免费国产在线观看| 麻豆国产一区二区| 亚洲欧美日韩中文播放| 精品国产91亚洲一区二区三区婷婷| fc2成人免费人成在线观看播放 | 国产精品羞羞答答xxdd| 亚洲成人动漫在线观看| 国产精品私人影院| 欧美一级高清大全免费观看| 成年人午夜久久久| 偷拍亚洲欧洲综合| 日韩一区中文字幕| 久久久精品tv| 日韩女优制服丝袜电影| 97精品国产露脸对白| 国内久久婷婷综合|