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

hcs301滚动码源程序

点击数:7913 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   PIC单片机
    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
     MOV FW    TMP2            ; 16 BIT COUNTER SUBSTRACTION
    SUBWF    CNTR_LW,W
     MOV WF    TMP2            
    SKPC                ; SKIP IF NO BORROW
    INCF    TMP1,F            ; ... ELSE INCR HI BYTE
     MOV FW    TMP1
    SUBWF    CNTR_HI,W
     MOV WF    TMP1

    BCF    TMP1,0            ; MAKE ACCEPTED WINDOW 512

M_CHECK0
     MOV FW    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
     MOV FW    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 
     MOV LW    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
     MOV WF    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        

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


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