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

hcs301滚动码源程序

点击数:7913 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   PIC单片机
         MOV WF   CNT0              ; INNER LOOP 48 TIMES

DECRYPT_INNER
    CLRWDT            ; RESET WATCHDOG TIMER
         MOV FW   CNT1        ; LAST 48 LOOPS RESTORE THE KEY
        XORLW   1               ; LAST 48 LOOPS RESTORE THE KEY
        SKPNZ                   ; LAST 48 LOOPS RESTORE THE KEY
        GOTO    ROTATE_KEY      ; LAST 48 LOOPS RESTORE THE KEY

        ; THE LOOKUP TABLE IS COMPRESSED INTO IN 4 BYTES TO SAVE SPACE
        ; USE THE 3 LOW INDEX BITS TO MAKE UP AN 8-BIT BIT MASK
        ; USE THE 2 HIGH INDEX BITS TO LOOK UP THE VALUE IN THE TABLE
        ; USE THE BIT MASK TO ISOLATE THE CORRECT BIT IN THE BYTE
        ; PART OF THE REASON FOR THIS SCHEME IS BECAUSE NORMAL TABLE LOOKUP
        ; REQUIRES AN ADDITIONAL STACK LEVEL

        CLRC                    ; CLEAR CARRY (FOR THE LEFT SHIFT)
       
         MOV LW   1               ; INITIALISE MASK = 1
        BTFSC   HOP3,3           ; SHIFT MASK 4X IF BIT 2 SET
         MOV LW   10000B          ; SHIFT MASK 4X IF BIT 2 SET
         MOV WF   MASK            ; INITIALISE MASK = 1

        BTFSS   HOP2,0           ; SHIFT MASK ANOTHER 2X IF BIT 1 SET
        GOTO    $+3
        RLF     MASK,F
        RLF     MASK,F            

        BTFSC   HOP1,0           ; SHIFT MASK ANOTHER 1X IF BIT 0 SET
        RLF     MASK,F

        ; MASK HAS NOW BEEN SHIFTED 0-7 TIMES ACCORDING TO BITS 2:1:0

         MOV LW   0               ; TABLE INDEX = 0
        BTFSC   HOP4,1
        IORLW   2               ; IF BIT 3 SET ADD 2 TO THE TABLE INDEX
        BTFSC   HOP4,6
        IORLW   4               ; IF BIT 4 SET ADD 4 TO THE TABLE INDEX

        ADDWF   PC,F            ; ADD THE INDEX TO THE PROGRAM COUNTER
                ;  [ MUST BE IN LOWER HALF OF PAGE ]
                               
TABLE
         MOV LW   02EH            ; BITS 4:3 WERE 00
        GOTO    TABLE_END       ; END OF LOOKUP

         MOV LW   074H            ; BITS 4:3 WERE 01
        GOTO    TABLE_END       ; END OF LOOKUP

         MOV LW   05CH            ; BITS 4:3 WERE 10
        GOTO    TABLE_END       ; END OF LOOKUP

         MOV LW   03AH            ; BITS 4:3 WERE 11
                                 
TABLE_END

        ANDWF   MASK,F          ; ISOLATE THE CORRECT BIT BY ANDING WITH MASK
         MOV LW   0               ; COPY THE BIT TO BIT 7

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


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