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

hcs301滚动码源程序

点击数:7913 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   PIC单片机
    GOTO    LEARN2            ; ENTER LEARN MODE
    BTFSS    CNT_HI,0        ; TEST FOR ERASE ALL
    GOTO    LEARN1            ; LOOP BACK

; ******* EEPROM ERASE ALL ******************

    BCF    PORTA,LED
ERASE_ALL
    CLRWDT                ; CLEAR WATCHDOG TIMER
    BTFSS    PORTA,LRN        ; WAIT FOR BUTTON RELEASE
    GOTO    ERASE_ALL        ; LOOP BACK

       MOV LW    30H            ; ERASE ENABLE COMMAND
     MOV WF   OUTBYT                   
        CALL    SENDC            ; SEND COMMAND TO EEPROM
       MOV LW    20H            ; ERASE ALL COMMAND
     MOV WF   OUTBYT                   
        CALL    SENDC            ; SEND COMMAND TO EEPROM
    CALL    WAITACK            ; WAIT FOR ERASE ACK
    GOTO    RESET            ; START OVER
    
LEARN2
    BCF    PORTA,LED        ; CLEAR LED
    BSF    FLAGS,LRNF        ; SET LEARN FLAG

LEARN3
    CALL    TST_RTCC        ; UPDATE TIMER
    CALL    TST_TIMER        ; CHECK FOR LEARN TIMEOUT
    CALL    RECEIVE            ; RECEIVE TRANSMISSION 
    BC    LEARN3            ; CHECK IF TRANSMISSION VALID
     GOTO    M_SEARCH        ; CHECK IF SERIAL NUMBER IS IN MAP

LEARN_NF

; *** IF SERIAL NOT IN MAP READ SELFLEARN POINTER ***

     MOV LW    LRNPTR            ; POINT TO LEARN POINTER
     MOV WF    ADDRESS
    CALL    EEREAD            ; READ LEARN POINTER FROM EEPROM

     MOV F    TMP2,W            ; CHECK LOWER BYTE
     MOV LW    0H            ; LOAD 0 DEFAULT
    BTFSC    STATUS,Z        ; IF LOWER != 0 LEARN ON 0
     MOV F    TMP1,W            ; ELSE LEARN ON TMP1 VALUE
     MOV WF    TXNUM            ; LOAD TXNUM

LEARN_F
    CALL    TX_LOOKUP
    BSF    ADDRESS,1        ; ADD 2 TO BASE ADDRESS
     MOV FW    SER_2            ; GET LOWER 16 BIT OF SERIAL NUMBER
     MOV WF    TMP1
     MOV FW    SER_3
     MOV WF    TMP2
    CALL    EEWRITE            ; ... AND WRITE TO EEPROM
    
     MOV FW    SER_0            ; GET UPPER 16 BIT OF SERIAL NUMBER
     MOV WF    TMP1
     MOV FW    SER_1
     MOV WF    TMP2
    CALL    EEWRITE            ; ... AND WRITE TO EEPROM

; *** DECRYPT HOP CODE ***

LEARN_DEC
    CALL    DECRYPT            ; DECRYPTION ROUTINE

; *** CHECK DISCRIMINATION VALUE ***

LEARN_CHK
     MOV FW    SER_3            ; CHECK LOWER BYTE OF SERIAL NUMBER
    XORWF    DISC,W            ; AGAINST DISCRIMINATION VALUE
    BZ    LEARN_UP        ; UPDATE LEARN POINTER
    GOTO    CANCEL_LEARN        ; ERROR CANCEL LEARN MODE

; ********* UPDATE LEARN POINTER **********
LEARN_UP
    CALL    TX_LOOKUP        ; GET CURRENT TX BASE ADDRESS

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


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