您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机hcs301滚动码源程序 正文
hcs301滚动码源程序

hcs301滚动码源程序

点击数:7913 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   PIC单片机
;  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                    
     MOV LW    4H            ; [1] WAIT A MAXIMUM OF 4 Te
     MOV WF    TMP_CNT            ; [1] SET TEMP LOOP COUNTER

RCV10A
     MOV FW    CNT0                      ; [1] and CSR processing
     MOV WF   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
     MOV LW    3H            ; [1]  SEE NOTE BELOW
    SUBWF    CNT0,W            ; [1]
     MOV WF    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
; 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

     MOV F    CNT0,W                  ; [1] CALIBRATION COUNTER
     MOV WF   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

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]  下一页


本文关键字:源程序  PIC单片机单片机-工控设备 - PIC单片机