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

hcs301滚动码源程序

点击数:7913 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   PIC单片机
        SKPZ                    ; COPY THE BIT TO BIT 7
         MOV LW   10000000B       ; COPY THE BIT TO BIT 7

        XORWF   HOP2,W        ; ONLY INTERESTED IN BIT HOP2,7
        XORWF   HOP4,W        ; ONLY INTERESTED IN BIT HOP4,7
        XORWF   KEY1,W        ; ONLY INTERESTED IN BIT KEYREG1,7

         MOV WF   MASK            ; STORE W TEMPORARILY (WE NEED BIT 7)
        RLF     MASK,F          ; LEFT ROTATE MASK TO GET BIT 7 INTO THE CARRY

        RLF     HOP1,F             ; SHIFT IN THE NEW BIT
        RLF     HOP2,F
        RLF     HOP3,F
        RLF     HOP4,F

ROTATE_KEY

        CLRC            ; CLEAR CARRY
        BTFSC   KEY7,7           ; SET CARRY IF LEFTMOST BIT SET
        SETC                    ; SET CARRY IF LEFTMOST BIT SET

        RLF     KEY0,F             ; LEFT-ROTATE THE 64-BIT KEY 
        RLF     KEY1,F
        RLF     KEY2,F
        RLF     KEY3,F
        RLF     KEY4,F
        RLF     KEY5,F
        RLF     KEY6,F
        RLF     KEY7,F         

        DECFSZ  CNT0,F             ; INNER LOOP 48 TIMES
        GOTO    DECRYPT_INNER   ; INNER LOOP 48 TIMES

        DECFSZ  CNT1,F             ; OUTER LOOP 12 TIMES (11 + 1 TO RESTORE KEY)
        GOTO    DECRYPT_OUTER   ; OUTER LOOP 12 TIMES (11 + 1 TO RESTORE KEY)

        RETLW   0               ; RETURN 

;------------------------------------------------------------------------------
;
; FUNCTION         : LOAD_CNT_VALS()                      
;
; DESCRIPTION      : LOAD COUNTERS INTO WRITE BUFFERS
;
; NOTE        : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------

LOAD_CNT_VALS
     MOV FW    CNTR_HI            ; LOAD MSB OF COUNTER
     MOV WF    TMP1
     MOV FW    CNTR_LW            ; LOAD LSB OF COUNTER
     MOV WF    TMP2
    RETLW    0

;------------------------------------------------------------------------------
;
; FUNCTION         : RECEIVE()                      
;
; DESCRIPTION      : RECEPTION ROUTINE FOR PWM TRANSMISSIONS
;
; NOTE        : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------

RECEIVE

;******** WAIT FOR HEADER AND CALIBRATE *******************

    BTFSS   PORTA,RFIN              ; INPUT LOW?
    GOTO    RMT_0                   ; YES; RECEIVE ERROR

     MOV LW   10                      ; 10 ms TIMER
     MOV WF   CNT1
RCV0
     MOV LW   200
     MOV WF   CNT0
RCV1
    BTFSS   PORTA,RFIN              ; [2] INPUT HIGH?
    GOTO    RCV2                    ; [0] NO, JUMP OUT OF LOOP

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


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