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

hcs301滚动码源程序

点击数:7913 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   PIC单片机

;------------------------------------------------------------------------------
;
; FUNCTION         : M_LOOP ()                      
;
; DESCRIPTION      : MAIN PROGRAM ROUTINE
;
;------------------------------------------------------------------------------

M_LOOP    BCF    PORTA,LED         
    BTFSS    PORTA,LRN        
    GOTO    LEARN             ; TEST & HANDLE LEARN BUTTON
    CALL    TST_RTCC        ; UPDATE TIMER 
    CALL    TST_TIMER        ; HANDLE TIMER - UPDATE OUTPUTS
    CALL    RECEIVE            ; RECEIVE TRANSMISSION 
    BC    M_LOOP            ; CHECK IF TRANSMISSION VALID

M_SEARCH
    CLRF    TXNUM            ; TEST FIRST POSITION
; ******* COMPARE LOWER WORD OF SERIAL NUMBER ********
M_SERIAL
    CALL    TX_LOOKUP        ; GET TX BASE ADDRESS
    BSF    ADDRESS,1        ; ADD 2 TO BASE ADDRESS
    CALL    EEREAD            ; READ LOWER 16-BITS OF SER# FROM EEPROM
              
     MOV FW    TMP1            ; COMPARE RX AND EEPROM VALUES
    XORWF    SER_2,W
    BNZ    M_NEXT            ; IF NOT EQUAL CHECK NEXT
     MOV FW    TMP2            ; COMPARE RX AND EEPROM VALUES
    XORWF    SER_3,W
    BNZ    M_NEXT            ; IF NOT EQUAL CHECK NEXT
    
; ******* COMPARE UPPER WORD OF SERIAL NUMBER ********
M_SERIAL2
    INCF    ADDRESS,F        ; POINT TO NEXT ENTRY 
    CALL    EEREAD            ; READ UPPER 16-BITS OF SER# FROM EEPROM

     MOV FW    TMP1            ; COMPARE RX AND EEPROM VALUES
    XORWF    SER_0,W
    BNZ    M_NEXT            ; IF NOT EQUAL CHECK NEXT

     MOV FW    TMP2            ; COMPARE RX AND EEPROM VALUES
    XORWF    SER_1,W
    BNZ    M_NEXT            ; IF NOT EQUAL CHECK NEXT

    BTFSS    FLAGS,LRNF        ; LEARN MODE
    GOTO    M_HOP            ; FOUND TRANSMITTER - DECRYPT

    BSF    FLAGS,RELEARN        ; SET RELEARN FLAG
    GOTO    LEARN_F            ; FOUND TRANSMITTER - LEARN
        
; **** SEARCH NEXT POSITION FOR SERIAL NUMBER *****
M_NEXT    INCF    TXNUM,F            ; POINT TO NEXT TRANSMITTER POSITION
     MOV LW    MAX_USERS        ; TEST FOR LAST POSITION
    SUBWF    TXNUM,W            
    BTFSS    STATUS,C        ; NOT FOUND IN MAP
    GOTO    M_SERIAL        ; TRY NEXT POSITION
M_NF
    BTFSS    FLAGS,LRNF        ; LEARN MODE
    GOTO    M_LOOP            ; NO... INVALID SERIAL NUMBER 
    GOTO    LEARN_NF        ; NEW TRANSMITTER - USE POINTER FOR LEARN

; ********** DECRYPT HOPCODE *********************
M_HOP    
    CALL    DECRYPT            ; DECRYPT HOPCODE 

; ********* TEST DICRIMINATION VALUE *************
M_DIS     MOV FW    SER_3            ; SERIAL NUBER LSB MUST BE EQUAL
    XORWF    DISC,W            ; TO DISCRIMINATION VALUE
    BNZ    M_LOOP

; *************** CHECK COUNTERS VALID ************

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


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