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

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

?? hcs301.asm

?? 利用MPLAB工具編寫的滾動碼源碼程序。
?? 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一区二区三区免费野_久草精品视频
欧美性欧美巨大黑白大战| 欧美乱熟臀69xxxxxx| 一区二区三区在线视频免费观看| 欧美性大战久久久久久久蜜臀| 免费人成网站在线观看欧美高清| 国产精品国产三级国产普通话99| 777精品伊人久久久久大香线蕉| 成人午夜碰碰视频| 日本美女一区二区三区视频| 日韩一区在线播放| 久久一留热品黄| 欧美日韩精品福利| 成人听书哪个软件好| 美女视频网站黄色亚洲| 亚洲女人****多毛耸耸8| 久久久精品日韩欧美| 日韩免费在线观看| 一本久久综合亚洲鲁鲁五月天| 精品制服美女丁香| 亚洲成a人片在线不卡一二三区| 国产目拍亚洲精品99久久精品| 欧美一区二区三区视频免费播放| 99国产精品视频免费观看| 国产成人免费在线| 精品一区二区三区日韩| 午夜电影一区二区| 一区二区三区.www| 成人免费一区二区三区在线观看| 亚洲精品在线观看网站| 欧美一区二区三区男人的天堂 | 国产成人精品综合在线观看 | 欧美精品亚洲一区二区在线播放| 成人丝袜18视频在线观看| 精品一区二区影视| 视频在线在亚洲| 一区二区日韩电影| 亚洲啪啪综合av一区二区三区| 国产欧美日韩卡一| 久久亚洲精精品中文字幕早川悠里| 欧美一级高清片| 欧美一区二区在线看| 777色狠狠一区二区三区| 日韩女同互慰一区二区| 欧美精品在线观看一区二区| 欧美精品电影在线播放| 欧美视频在线一区二区三区| 在线精品视频免费观看| 欧美日韩中文国产| 欧美影院精品一区| 欧美三区在线观看| 欧美日韩午夜精品| 91精品国产麻豆国产自产在线 | 日韩精品在线看片z| 欧美肥妇free| 欧美一区二区三区在线观看| 日韩欧美激情四射| 久久久久久黄色| 国产精品免费aⅴ片在线观看| 中文幕一区二区三区久久蜜桃| 中文字幕一区二区三区四区不卡 | 亚洲欧美一区二区三区国产精品| 亚洲欧洲精品天堂一级| 亚洲图片你懂的| 亚洲综合一区二区| 亚洲韩国一区二区三区| 日韩av在线免费观看不卡| 免费成人美女在线观看| 国产精品亚洲第一| 99久久综合国产精品| 欧美伊人久久久久久午夜久久久久| 欧美性xxxxxxxx| 欧美一卡二卡三卡| 国产日韩亚洲欧美综合| 日韩美女久久久| 亚洲一区二区三区美女| 毛片不卡一区二区| 成人小视频免费在线观看| 欧美私人免费视频| 久久影音资源网| 一区二区三区中文字幕电影| 免费av成人在线| 成人动漫一区二区三区| 欧美日韩中文字幕精品| 久久综合狠狠综合| 亚洲精品大片www| 视频在线观看一区| 国产一区激情在线| 欧美在线视频你懂得| 精品美女在线观看| 亚洲欧美日本在线| 久久精品国产网站| 99精品视频在线观看| 欧美一级欧美一级在线播放| 国产精品毛片久久久久久久| 视频一区在线视频| 成人高清免费在线播放| 欧美一区二区播放| 亚洲免费在线看| 韩国欧美国产1区| 欧美色图天堂网| 国产欧美精品一区二区三区四区| 亚洲影院理伦片| 国产v综合v亚洲欧| 在线播放国产精品二区一二区四区| 中文在线资源观看网站视频免费不卡 | 亚洲黄色小说网站| 国产原创一区二区三区| 欧美揉bbbbb揉bbbbb| 国产欧美一区二区精品秋霞影院 | 国产一区二区三区四区五区美女 | 欧美电影免费观看高清完整版在线 | 日韩欧美色综合网站| 国产精品初高中害羞小美女文| 免费高清在线一区| 欧美人妖巨大在线| 亚洲人成亚洲人成在线观看图片| 激情久久五月天| 在线播放一区二区三区| 亚洲一区二区三区视频在线播放| 欧美亚洲日本国产| 中文字幕久久午夜不卡| 国产老女人精品毛片久久| 欧美高清视频不卡网| 亚洲资源中文字幕| 99久久伊人网影院| 中文字幕av一区二区三区高| 国产精品白丝jk白祙喷水网站| 日韩限制级电影在线观看| 午夜精品在线看| 欧美日韩精品福利| 亚洲一区二区三区美女| 欧美在线不卡一区| 亚洲欧美色一区| 色综合中文字幕国产 | 精品国产sm最大网站免费看| 日韩国产高清在线| 欧美人动与zoxxxx乱| 亚洲第四色夜色| 欧美无人高清视频在线观看| 亚洲精品日韩专区silk| 91啪九色porn原创视频在线观看| 国产精品美女一区二区| 菠萝蜜视频在线观看一区| 国产欧美久久久精品影院| 成人久久久精品乱码一区二区三区| 国产午夜精品久久久久久久| 成人在线一区二区三区| 国产精品狼人久久影院观看方式| 风间由美一区二区av101| 国产日产亚洲精品系列| 福利电影一区二区三区| 国产精品久久久久aaaa| 97久久精品人人澡人人爽| 国产精品国产自产拍在线| 99精品久久只有精品| 亚洲精品日日夜夜| 欧美精品乱码久久久久久| 男男gaygay亚洲| 亚洲精品在线三区| 99国产精品国产精品毛片| 亚洲欧美在线观看| 欧美色综合影院| 久久av资源站| 国产欧美日韩在线| 一本大道久久a久久综合| 亚洲在线视频免费观看| 日韩一级欧美一级| 国产揄拍国内精品对白| 国产精品久久久爽爽爽麻豆色哟哟| 99精品久久99久久久久| 日韩1区2区日韩1区2区| 久久亚洲精品小早川怜子| 色婷婷久久一区二区三区麻豆| 久久久夜色精品亚洲| 色综合久久99| 久久99久国产精品黄毛片色诱| 国产精品午夜电影| 欧美三级在线视频| 国产乱码精品一品二品| 狠狠色丁香婷综合久久| 亚洲婷婷在线视频| 欧美精品一级二级| 成人精品电影在线观看| 午夜视频久久久久久| 国产亚洲精品福利| 91福利国产成人精品照片| 老司机精品视频导航| 1区2区3区欧美| 日韩精品一区二区三区视频播放| 99v久久综合狠狠综合久久| 日韩成人av影视| 亚洲女同女同女同女同女同69| 精品国产制服丝袜高跟| 色综合天天视频在线观看| 久久99精品国产麻豆不卡| 亚洲欧美激情小说另类| 精品国产乱码久久久久久蜜臀| 91浏览器打开| 国产一区二区伦理| 亚洲国产一区二区三区|