⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 secsys14.lst

📁 keeloq滚动码解码大全
💻 LST
📖 第 1 页 / 共 5 页
字号:
                      00378 
  00000040            00379 KEYBASE EQU     $                       ; BASE ADDRESS 40H
  00000040            00380 MAS_KEY EQU     $                       ; MASTER KEY BASE ADDRESS
0040   08EF           00381         RETLW   0EFH                    ; MKEY_0 LSB
0041   08CD           00382         RETLW   0CDH                    ; MKEY_1
0042   08AB           00383         RETLW   0ABH                    ; MKEY_2
0043   0889           00384         RETLW   089H                    ; MKEY_3
0044   0867           00385         RETLW   067H                    ; MKEY_4
0045   0845           00386         RETLW   045H                    ; MKEY_5
0046   0823           00387         RETLW   023H                    ; MKEY_6
0047   0801           00388         RETLW   001H                    ; MKEY_7 MSB
                      00389 
  00000048            00390 EE_KEY  EQU     $                       ; EEPROM KEY BASE ADDRESS
0048   0888           00391         RETLW   088H                    ; EKEY_0 LSB
0049   0877           00392         RETLW   077H                    ; EKEY_1
004A   0866           00393         RETLW   066H                    ; EKEY_2
004B   0855           00394         RETLW   055H                    ; EKEY_3
004C   0844           00395         RETLW   044H                    ; EKEY_4
004D   0833           00396         RETLW   033H                    ; EKEY_5
004E   0822           00397         RETLW   022H                    ; EKEY_6
004F   0811           00398         RETLW   011H                    ; EKEY_7 MSB
                      00399 
                      00400 ;**************************************************************************
                      00401 ; FUNCTION      : RECEIVE
                      00402 ;
                      00403 ; DESCRIPTION   : RECEIVE ROUTINE FOR KEELOQ TRANSMISSIONS
                      00404 ;
                      00405 ; PAGE          : 0
                      00406 ;
                      00407 ;**************************************************************************
0050                  00408 RECEIVE
                      00409 
                      00410 ;******** WAIT FOR HEADER AND CALIBRATE *******************
                      00411 
0050   04BF           00412         BCF     FLAGS,NTQ106            ; RESET NTQ106 TRANSMISSION FLAG
0051   0765           00413         BTFSS   PORTA,RFIN              ; INPUT LOW?
0052   0AB2           00414         GOTO    RMT_0                   ; YES; RECEIVE ERROR
                      00415 
0053   0C0A           00416         MOVLW   10                      ; 10 ms TIMER
0054   0039           00417         MOVWF   CNT1
0055                  00418 RCV0
0055   0CC8           00419         MOVLW   200
0056   0038           00420         MOVWF   CNT0
0057                  00421 RCV1
0057   0765           00422         BTFSS   PORTA,RFIN              ; [2] INPUT HIGH?
0058   0A5D           00423         GOTO    RCV2                    ; [0] NO, JUMP OUT OF LOOP
MPASM 02.50 Released         SECSYS14.ASM   1-11-2002  15:33:39         PAGE  9


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0059   02F8           00424         DECFSZ  CNT0,1                  ; [1] YES, CONTINUE WITH TIMING LOOP
005A   0A57           00425         GOTO    RCV1                    ; [2] 5 us X CNT0
005B   02F9           00426         DECFSZ  CNT1,1                  ; [0] DO 1 ms LOOP CNT1 TIMES
005C   0A55           00427         GOTO    RCV0                    ; [0]
                      00428 
005D                  00429 RCV2
005D   0078           00430         CLRF    CNT0                    ; [1] CLEAR CALIB COUNTER LOW BYTE
005E   0079           00431         CLRF    CNT1                    ; [1] CLEAR CALIB COUNTER HIGH BYTE
                      00432 
                      00433 ;*************************************************************************
                      00434 ;  2.5 IS AVERAGE FOR DETECTING FALLING EDGE IN RCV1
                      00435 ;  2   INSTRUCTIONS FOR JUMP OUT RCV1 TO RCV2
                      00436 ;  2   INSTRUCTIONS FOR RCV2 - CLEAR CALIBRATION COUNTER
                      00437 ;  TOTAL 6.5 INSTRUCTIONS < 1 CALIBRATION LOOP SO DISCARD
                      00438 ;*************************************************************************
                      00439 
005F                  00440 RCV3
005F   0665           00441         BTFSC   PORTA,RFIN              ; [2][2] INPUT HIGH?
0060   0A69           00442         GOTO    RCV6                    ; [0][0] YES--END CALIBRATION
0061   02B8           00443         INCF    CNT0,1                  ; [1] INCREMENT 16BIT COUNTER   
0062   0643           00444         SKPNZ                           ; [2]
0063   02B9           00445         INCF    CNT1,1                  ; [0]
0064   0004           00446         CLRWDT                          ; [1] RESET WATCH DOG TIMER
0065   0000           00447         NOP                             ; [1]
0066   0779           00448         BTFSS   CNT1,3                  ; [1]
0067   0A5F           00449         GOTO    RCV3                    ; [2]
0068   0AB2           00450         GOTO    RMT_0                   ; [0]
                      00451                                         ; TOTAL = 10
                      00452                                         
0069                  00453 RCV6
0069   0403           00454         CLRC                            ; [1] DIVIDE CNT1:CNT0 BY 8 (600/8=75)
006A   0339           00455         RRF     CNT1,1                  ; [1]
006B   0338           00456         RRF     CNT0,1                  ; [1]
006C   0339           00457         RRF     CNT1,1                  ; [1]
006D   0338           00458         RRF     CNT0,1                  ; [1]
006E   0339           00459         RRF     CNT1,1                  ; [1]
006F   0338           00460         RRF     CNT0,1                  ; [1] 
                      00461                                         
0070   0C07           00462         MOVLW   MIN/80                  ; [1]
0071   0098           00463         SUBWF   CNT0,W                  ; [1]
0072   0703           00464         BTFSS   STATUS,CARRY            ; [2] NEGATIVE?
0073   0AB2           00465         GOTO    RMT_0                   ; [0] YES--HEADER SHORTER THAN MIN.
                      00466                                         ; TOTAL = 11
                      00467 ; ************* VALID HEADER RECEIVED *********************
0074                  00468 RCV7
0074   0C42           00469         MOVLW   NBITS                   ; [1] VALID START MARKER WAS RECEIVED
0075   0039           00470         MOVWF   CNT1                    ; [1]
0076   0218           00471         MOVF    CNT0,W                  ; [1]
0077   003A           00472         MOVWF   CNT2                    ; [1] CNT2 = CNT0
0078   0C06           00473         MOVLW   6H                      ; [1] SEE NOTE BELOW
0079   00BA           00474         SUBWF   CNT2,1                  ; [1]
007A   0A8C           00475         GOTO    DL1                     ; [2] COMPENSATE FOR FIRST BIT
                      00476                                         ; TOTAL = 8
MPASM 02.50 Released         SECSYS14.ASM   1-11-2002  15:33:39         PAGE 10


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00477 
                      00478 ;**********************************************************************************
                      00479 ;  2.5 IS AVERAGE PLAY BETWEEN RISING EDGE AND JUMP OUT OF CALIBRATION LOOP.
                      00480 ;  2   FOR JUMP OUT OF RCV3 TO RCV6
                      00481 ; 11   INSTRUCTIONS FOR RVC6 - CAIBRATION COUNTER DIVIDE
                      00482 ;  8   INSTRUCTIONS FOR RCV7 - COMPENSATE FOR POST CALIBRATION CALCUATIONS
                      00483 ; TOTAL 22.5 INSTRUCTIONS BETWEEN RISING EDGE AND ENTERING DL1
                      00484 ;  THEREFORE SUBTRACT 22.5/4 = 5.625 TO COMPENSATE FOR POST CALCULATION ON 1ST BIT
                      00485 ;**********************************************************************************
                      00486 
007B                  00487 RCV8                                    
007B   0C04           00488         MOVLW   4H                      ; [1] WAIT A MAXIMUM OF 4 Te
007C   002E           00489         MOVWF   TMP_CNT                 ; [1] SET TEMP LOOP COUNTER
                      00490 
007D                  00491 RCV10A
007D   0218           00492         MOVFW   CNT0                    ; [1] and CSR processing
007E   003A           00493         MOVWF   CNT2                    ; [1] Refer to explanation above
                      00494 
007F                  00495 RCV10B
007F   0665           00496         BTFSC   PORTA,RFIN              ; [2] Wait for rising edge
0080   0A89           00497         GOTO    RCV11                   ; [0] Edge found--Process
0081   0004           00498         CLRWDT                          ; [1] Clear watchdog Timer
0082   0665           00499         BTFSC   PORTA,RFIN              ; [2] Wait for Next rising edge
0083   0A89           00500         GOTO    RCV11                   ; [0] Edge found--Process
0084   02FA           00501         DECFSZ  CNT2,1                  ; [1] Decrement Timeout counter
0085   0A7F           00502         GOTO    RCV10B                  ; [2] Loop Back
                      00503                                         ; TOTAL = 8, RFIN CHECKED EVERY 4uS ON AVERAGE
                      00504 
0086   02EE           00505         DECFSZ  TMP_CNT,1               ; [1] ALL Te PERIODS
0087   0A7D           00506         GOTO    RCV10A                  ; [2] ... NO, THEN WAIT FOR NEXT ONE
0088   0AB4           00507         GOTO    RMT01                   ; [0] ... YES, [0] TIMEOUT--no edge found
                      00508 
0089                  00509 RCV11
0089   0C03           00510         MOVLW   3H                      ; [1]  SEE NOTE BELOW
008A   0098           00511         SUBWF   CNT0,W                  ; [1]
008B   003A           00512         MOVWF   CNT2                    ; [1]
                      00513 
                      00514 ;*************************************************************************
                      00515 ; 2   SETUP OF TEMP LOOP COUNTER  ( ONLY ONCE )
                      00516 ; 2   SETUP TE LOOP COUNTER       ( MAX 4 )
                      00517 ; 3   DECREMENT TEMP LOOP COUNTER ( MAX 4 )
                      00518 ; 4   IS THE AVERAGE PLAY BETWEEN EDGE AND EDJE BEING DETECTED IN RCV9
                      00519 ; 2   JUMP OUT OF RCV10B TO RCV11
                      00520 ; 3   FOR RCV11
                      00521 ; TOTAL 10 INSTRUCTIONS BETWEEN EDGE AND ENTERING DL1
                      00522 ; THEREFORE SUBTRACT 10/4 = 2.5 => 3 DL1 LOOPS TO COMPENSATE FOR 
                      00523 ;*************************************************************************
                      00524 
008C                  00525 DL1
008C   0004           00526         CLRWDT                          ; [1] RESET WATCHDOG TIMER
008D   02FA           00527         DECFSZ  CNT2,1                  ; [1] [2, IF SKIP]
008E   0A8C           00528         GOTO    DL1                     ; [2] CNT0 X 4 us
                      00529 
MPASM 02.50 Released         SECSYS14.ASM   1-11-2002  15:33:39         PAGE 11


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

008F                  00530 SAMPLE1
008F   0765           00531         BTFSS   PORTA,RFIN              ; [2] INPUT HIGH?  FIRST SAMPLE
0090   0AB4           00532         GOTO    RMT01                   ; [0] NO--ERROR
                      00533 
0091   0218           00534         MOVF    CNT0,W                  ; [1] CALIBRATION COUNTER
0092   003A           00535         MOVWF   CNT2                    ; [1] (NOMINALLY 75 FOR 300 us PULSE)
0093   00FA           00536         DECF    CNT2,1                  ; [1] SUBTRACT 2 FROM FINAL CALIB COUNTER TO COMPENATE FOR THIS
0094   0A95           00537         GOTO    $+1                     ; [2]
0095   0000           00538         NOP                             ; [1]
                      00539                                         ; TOTAL = 8 => 1 LOOP COUNTER
0096                  00540 DL2
0096   0004           00541         CLRWDT                          ; [1] RESET WATCHDOG TIMER
0097   0A98           00542         GOTO    $+1                     ; [2] WAISTE TIME
0098   0A99           00543         GOTO    $+1                     ; [2] WAISTE TIME
0099   02FA           00544         DECFSZ  CNT2,1                  ; [1]
009A   0A96           00545         GOTO    DL2                     ; [2] CNT0 X 8 us [ CNT0 x Te ]
                      00546 
009B                  00547 SAMPLE2
009B   040F           00548         BCF     FLAGS1,BITIN             ; [1]   CLEAR BIT POSITION
009C   0765           00549         BTFSS   PORTA,RFIN              ; [1.5] LEAVE 0 IF LINE HIGH
009D   050F           00550         BSF     FLAGS1,BITIN             ; [0.5] MAKE 1 IF LINE LOW
                      00551                                         ; SUB TOTAL = 3 CYCLES
                      00552 
009E   090A           00553         CALL    ROT_SHIFT               ; [11]+[2] CSR SHIFT + CALL
009F   04EC           00554         BCF     CSR8,7                  ; [1]
00A0   060F           00555         BTFSC   FLAGS1,BITIN            ; [1.5]
00A1   05EC           00556         BSF     CSR8,7                  ; [0.5]
                      00557                                         ; SUB TOTAL = 16 CYCLES
                      00558 
                      00559 
00A2   0218           00560         MOVF    CNT0,W                  ; [1] CALIBRATION COUNTER
00A3   003A           00561         MOVWF   CNT2                    ; [1] (NOMINALLY 75 FOR 300 us PULSE)
00A4   0C03           00562         MOVLW   3                       ; [1] SEE CALCULATION BELOW
00A5   00BA           00563         SUBWF   CNT2,1                  ; [1]
00A6   0000           00564         NOP                             ; [1]
                      00565                                         ; SUB TOTAL = 5 CYCLE
                      00566                                         ; TOTAL = 24 => 24/8 = 3 LOOP COUNTERS
                      00567                                          
                      00568 ;*************************************************************************
                      00569 ; TOTAL = 24 INSTRUCTIONS
                      00570 ; SUBTRACT 24/8 = 3 TO COMPESATE FOR UPDATEING CSR AND OTHER PROCESSING 
                      00571 ; AFTER DATA SAMPLE IS TAKEN.
                      00572 ;*************************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -