RSS

滚动码解码源程序

来源:网络 作者:未知 时间:2007-01-05 Tag: 点击:


 GOTO    RCV1                    ; 5 us X CNT0
 DECFSZ  CNT1,1                  ; [0] DO 1 ms LOOP CNT1 TIMES
 GOTO    RCV0   ; [0]

RCV2
&n

bsp;CLRF    CNT0                    ; CLEAR CALIB COUNTER LOW BYTE
 CLRF    CNT1                    ; 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              ; INPUT HIGH?
 GOTO    RCV6                    ; [0][0] YES--END CALIBRATION
 INCF CNT0,1   ; INCREMENT 16BIT COUNTER 
 SKPNZ          ;
 INCF CNT1,1   ; [0]
 CLRWDT    ; RESET WATCH DOG TIMER
 NOP    ;
 BTFSS CNT1,3   ;
 GOTO RCV3     ;
 GOTO RMT_0    ; [0]
           ; TOTAL = 10
           
RCV6
 CLRC    ; DIVIDE CNT1:CNT0 BY 8 (600/8=75)
 RRF     CNT1,1   ;
 RRF     CNT0,1   ;
 RRF     CNT1,1   ;
 RRF     CNT0,1   ;
 RRF     CNT1,1   ;
 RRF     CNT0,1                  ;
     
 MOVLW   MIN/80   ;
 SUBWF   CNT0,W   ;
 BTFSS   STATUS,C  ; NEGATIVE?
 GOTO    RMT_0                   ; [0] YES--HEADER SHORTER THAN MIN.
     ; TOTAL = 11
; ************* VALID HEADER RECEIVED *********************
RCV7
 MOVLW   NBITS                   ; VALID START MARKER WAS RECEIVED
 MOVWF   CNT1   ;
 M

OVF    CNT0,W   ;
 MOVWF   CNT2                    ; CNT2 = CNT0
 MOVLW   6H   ; SEE NOTE BELOW
 SUBWF   CNT2,1   ;
 GOTO    DL1                    ; 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   ; WAIT A MAXIMUM OF 4 Te
 MOVWF TMP_CNT   ; SET TEMP LOOP COUNTER

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

RCV10B
 BTFSC   PORTA,RFIN              ; Wait for rising edge
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载