📄 am6083b3.asm
字号:
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 + -