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

📄 am6083b3.asm

📁 用16C505写的汽车防盗器原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
START_CC3                                       ;
         BCF        LAMP_P                      ;
         BCF        SIREN_P                     ;
         BCF        FLAG_T1,LAMP_ON_FG          ;

         PAGE_1
         MOVLW      7                           ;
         CALL       SP_ACTIVE_X                 ;
START_CC1                                       ;
         BCF        LED_P                       ;
;        BTFSC      FLAG_T,VALET_FG             ;
;        BSF        LED_P                       ;
START_CC2                                       ;
         PAGE_0
         MOVLW      B'00100001'                 ;
         ANDWF      FLAG_T                      ;
         BSF        FLAG_T,ALL_DIS_FG           ;
         CALL       SAVE_PP                     ;
         BCF        FLAG_T3,REM_HIT_FG          ;
         BCF        STATUS,PA0                  ;
START                                           ;
;        BTFSS      FLAG_T,VALET_FG
;        BCF        LED_P
 
         BTFSS      FLAG_T1,LAMP_ON_FG          ;
         BCF        LAMP_P                      ;

         BCF        FLAG_T1,LED_ON_FG           ;
         BCF        KILL_START_P                ;
;----------------------------------------------
         BTFSS      FLAG_T2,IGN_ON_FG           ;ignition on
         GOTO       JMP_UNLOCK
         BSF        FLAG_T3,IGN_ONED_FG
;------------------------------------------------------
JMP_II                                          ;
         BTFSC      FLAG_T2,DOOR_OPEN_FG
         BSF        FLAG_T5,LOCK_FG             ;
         BTFSC      FLAG_T5,LOCK_FG             ;
         GOTO       JMP_UNLOCK
         BTFSS      FLAG_T5,AUTO_LOCK_FG
         GOTO       JMP_UNLOCK
         BSF        FLAG_T5,LOCK_FG             ;

         BCF        UNLOCK_P                      ;
;        BCF        LAMP_P
         BANK_2
         CLRF       GUN_RAM
         BSF        LOCK_P

JMP_UNLOCK   
		                                ;
         BTFSC      FLAG_T5,LOCK_FG             ;
         BTFSC      FLAG_T2,IGN_ON_FG           ;
		
         GOTO       JMP_RECEIVER
         BCF        LOCK_P                      ;
 ;       BCF        LAMP_P                      ;
         BCF        FLAG_T5,LOCK_FG             ;UNLOCK FLAG WHEN ACC OFF
         BANK_2                                 ;
         CLRF       GUN_RAM                     ;
         BSF        UNLOCK_P                    ;

JMP_RECEIVER                                     ;
         PAGE_1                                 ;
         CALL       RECEIVER                    ;RECEIVER MODULE
         PAGE_0                                 ;

;------CHECK UP FOR LAST DOOR ARME---------------------------------------

LAST_DOOR_ARME                                          ;
;         BTFSC  FLAG_T5,LAST_AM_FG                      ;
;         GOTO   CHECK_LAST_DOOR                         ;
;         BTFSC  FLAG_T2,IGN_ON_FG                       ;
;         GOTO   START                                   ;

;ACT_CK_LT_DR
;         BTFSC  FLAG_T3,IGN_ONED_FG                     ;
;         BTFSS  FLAG_T2,DOOR_OPEN_FG                    ;
;         GOTO   START                                   ;
;         BCF    FLAG_T3,IGN_ONED_FG                     ;
;;;;;       BTFSS  FLAG_T,VALET_FG                         ;
;         BSF    FLAG_T5,LAST_AM_FG                      ;
         GOTO   START                                   ;
                                                        ;
;CHECK_LAST_DOOR                                         ;
;         BTFSC  FLAG_T2,DOOR_OPEN_FG                    ;
;         GOTO   START                                   ;
;         BCF    FLAG_T,SILENT_FG                        ;
;         GOTO   WAIT_SECOND                             ;

;*****************************************      ;
;*             PROGRAM START             *      ;
;*****************************************      ;
MAIN                                            ;
POWER_ON_RESET                          ;
         MOVLW      NM                      ;
         TRIS       RB                      ;
         MOVLW      B'00001111'             ;
         TRIS       RC                      ;
         MOVLW      0C7H                 ;
         OPTION                         ;
                                        ;
         CLRF       RB                  ;
         CLRF       FLAG_T
         CLRF       FLAG_T1
         CLRF       FLAG_T2
         CLRF       FLAG_T3
         CLRF       FLAG_T4
         CLRF       FLAG_T5
         CLRF       FLAG_T6
;-----------------------------------------
;        READ DISP SWITCH STATUS
;-----------------------------------------
READ_DISPSW
         MOVF   RC,W
         ANDLW  0FH
         MOVWF  DISP_RAM
         MOVLW  B'00000000'             ;SETTING IMPORT FOR RC
         TRIS   RC                      ;
         CLRF   RC                      ;CLEAR RC

;-----------------------------------------
READ_FLAG
         CLRF       RC                  ;
         BCF        LED_P               ;
                                        ;
         MOVLW      B'10110000'       ;read status 30H
         CALL       OPCODE            ;
         CALL       READ              ;
         MOVLW      B'10110000'       ;read status 30H
         CALL       OPCODE            ;
         CALL       READ              ;
         MOVF       RW0,W             ;
         MOVWF      FLAG_T            ;
         XORLW      0FFH
         SKPZ
         GOTO       NEXT_FLAG
         BTFSS      IGN_P
         GOTO       DISARM
         GOTO       LEARN_MODE

NEXT_FLAG
         PAGE_1
         BTFSC      FLAG_T,ALARM_FG   ;
         GOTO       IGN_TRIG_POINT    ;
         BTFSC      FLAG_T,HIJACK_FG
         GOTO       HIJACK_IN
         PAGE_0
         GOTO       START_CC1         ;

;***************************************
;          CHECK PASSWORD
;***************************************
CAMPAR_SYNC
         BANK_0
         MOVLW      8                           ;6 OG
         MOVWF      PASS_LOOP                   ;
         MOVLW      B'10000000'                 ;80H READ MODE FOR EEPROM
         MOVWF      PASS_CNT                    ;
         BCF        FLAG_T2,PASS_ERRO_FG        ;
NEXT_SET                                        ;
;;         BANK_0                                 ;
;;         BCF        STATUS,PA0                  ;
         PAGE_0
         MOVF       PASS_CNT,W                  ;
         CALL       OPCODE                      ;
         CALL       READ                        ;

         MOVF       RW1,W
         XORWF      CSR2,W
         SKPZ
         BSF        FLAG_T2,PASS_ERRO_FG
         MOVF       RW0,W
         XORWF      CSR3,W
         SKPZ
         BSF        FLAG_T2,PASS_ERRO_FG        ;
         INCF       PASS_CNT                    ;

         BTFSC      FLAG_T2,PASS_ERRO_FG        ;
         GOTO       INC_PASS_CNT                ;
         MOVF       PASS_CNT,W
         CALL       OPCODE                      ;
         CALL       READ
         MOVF       RW0,W
         XORWF      CSR4,W
         ANDLW      00001111B
         SKPZ
         BSF        FLAG_T2,PASS_ERRO_FG        ;CSR3,CSR2 (counter_h,counter_l)

INC_PASS_CNT
         INCF       PASS_CNT
         BTFSC      FLAG_T2,PASS_ERRO_FG
         GOTO       NEXT_PASS1
         BCF        FLAG_T2,SAVE_ONE_FG


DE_BUTTEN                                   ;
         MOVF       CSR4,W
         MOVWF      BUTTON
         MOVLW      0F0H                    ;
         ANDWF      BUTTON                  ;
         GOTO       PASS_ALL                ;

NEXT_PASS1
         BCF        FLAG_T2,PASS_ERRO_FG        ;
         DECFSZ     PASS_LOOP                   ;
         GOTO       NEXT_SET                    ;
FAIL_XX                                         ;
         PAGE_1
         GOTO       FAIL                        ;
                                                ;
;****************************************
;               LEARN_MODE
;*****************************************
LEARN_MODE                                      ;
         PAGE_1                                 ;
         MOVLW      5                           ;
         CALL       SP_ACTIVE_X                 ;ACTIVE DISPLAY FOR LEARNING
         BCF        FLAG_T1,CLEAR_EE_FG         ;
WWWP2                                           ;
         MOVLW      H'0FF'                      ;
         MOVWF      LEARN_SP_RAM                ;
         MOVLW      B'01000000'                 ;40H
         MOVWF      PASS_CNT                    ;
         BSF        FLAG_T2,IGN_ON_FG           ;
WWWP1                                           ;
         PAGE_1                                 ;
         MOVLW      8                           ;
         CALL       TIMER_COUNT                 ;8S'WAITING FOR LEARN
WWWP                                            ;
         BSF        FLAG_T1,LEARN_FG            ;
                                                ;
;-----------------------------------------      ;
         PAGE_1                               ;
         BCF        FLAG_T1,LED_ON_FG           ;
         BCF        FLAG_T1,LAMP_ON_FG          ;
         BCF        LAMP_P
         CALL       RECEIVER                    ;KAECH DATA CODE
         PAGE_0
         BTFSC      FLAG_T2,IGN_ON_FG           ;
         BTFSC      FLAG_T2,TIMER_END_FG        ;
         GOTO       OVER                        ;EAD LEARNING
         BTFSC      FLAG_T1,LEARN_FG            ;
         GOTO       WWWP                        ;
         BTFSC      FLAG_T1,CLEAR_EE_FG         ;CHECK UP CLEAR FLAG
         GOTO       WRITES
         CALL       ENABLE_ROM                  ;
         MOVLW      20H                         ;CLEAR EEPROM TO 'FF'
         CALL       OPCODE                      ;SEND COMMAND TO EEPROM
         CALL       SDF                         ;
         MOVLW      B'01110000'                 ;WRITE 30H
         CALL       OPCODE                      ;
         MOVLW      H'01'                       ;
         MOVWF      RW0                         ;
         CLRF       RW1                         ;
         CALL       WRITE                       ;

WRITES                                          ;
         BSF        FLAG_T1,CLEAR_EE_FG         ;
         CALL       ENABLE_ROM                  ;
         MOVLW      2                           ;
         MOVWF      TWO_LOOP                    ;
HCS200_WR
         BANK_0                         ;
         MOVF       PASS_CNT,W          ;40H ,43H ,46H
         CALL       OPCODE              ;
         MOVF       CSR2,W              ;CSR8=RW0
         MOVWF      RW1                 ;CSR7=RW1
         MOVF       CSR3,W              ;
         MOVWF      RW0                 ;
         CALL       WRITE               ;
                                        ;
         INCF       PASS_CNT            ;41H ,44H ,47H
         MOVF       PASS_CNT,W          ;
         CALL       OPCODE              ;
         CLRF       RW1
         MOVF       CSR4,W              ;
         MOVWF      RW0                 ;CSR6=RW0
         CALL       WRITE               ;
                                        ;
         INCF       PASS_CNT         ;43H ,46H
         DECFSZ     TWO_LOOP         ;
         GOTO       HCS200_WR        ;

         MOVLW      00H              ;E/W DISABLE
         CALL       OP_CH            ;
         INCF       LEARN_SP_RAM     ;
         INCF       LEARN_SP_RAM     ;
         MOVF       LEARN_SP_RAM,W   ;

         BSF        STATUS,PA0       ;PAGE 1
         CALL       SP_ACTIVE_X      ;
         BCF        STATUS,PA0       ;PAGE 1

         MOVLW      5                ;
         SUBWF      LEARN_SP_RAM,W   ;
         SKPC                        ;
         GOTO       WWWP1            ;
         GOTO       WWWP2            ;

OVER                                    ;
         MOVLW      00H                 ;
         CALL       OP_CH               ;
         BSF        FLAG_T1,PRESS_FG    ;
         BCF        FLAG_T1,LEARN_FG    ;
         GOTO       START_CC1           ;END LERAN MODE

;-----------------------------------------      ;
;      DISARM MODE WIHT SECOND ALARM                  ;
;-----------------------------------------      ;
DISARM                                   ;
        BCF         LOCK_P                      ;
        BCF         LAMP_P                      ;
        BCF         FLAG_T1,LAMP_ON_FG          ;
        MOVLW       B'01000100'                 ;
        ANDWF       FLAG_T                      ;
        BSF         FLAG_T,SECOND_FG            ;
        CALL        SAVE_PP                     ;

        BSF         UNLOCK_P                    ;
        MOVLW       5                           ;
        BTFSC       FLAG_T3,REM_HIT_FG          ;
        MOVLW       7                           ;
        PAGE_1
        CALL        SP_ACTIVE_X                 ;
        CALL        GUN_TIMERS                  ;
WAIT_SECOND                                     ;
        PAGE_1
        MOVLW       9                           ;
        CALL        LED_SPEED_SET               ;
        MOVLW       28                          ;30 sec
        CALL        TIMER_COUNT                 ;

        BCF         KILL_START_P                ;
        BCF         FLAG_T1,LED_ON_FG           ;

        BTFSS       FLAG_T5,LAST_AM_FG
        BTFSC       DISP_RAM,DIP_SECOND_FG      ;

⌨️ 快捷键说明

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