📄 m_master.asm
字号:
CLR Light
CALL DELAY_Auto;DELAY240ms
SET Bugle
SET Light
CALL DELAY_Auto;DELAY240ms
CLR Bugle
CLR Light
CALL DELAY_Auto;DELAY240ms
SET Bugle
SET Light
CALL DELAY_Auto;DELAY240ms
CLR Bugle
CLR Light
MOV A,5d;7d;11D ;8D;3D
MOV CNT_TX,A
KEY_Auto1:
CALL TX
CALL TX0 ;回传 02H
CALL TX0
CALL TX1
CALL TX0
SDZ CNT_TX
JMP KEY_Auto1
call writebyte1 ;断电记忆
JMP MAIN
KEY1: ;寻车 ,叫3声
CLR F_KEY1
SZ F_run
JMP Unchain ;解除报警
MOV A,12d;10d;7D;8d ; 发8次
MOV CNT_TX,A
KEY1_1:
CALL TX
CALL TX0 ;回传 01H
CALL TX0
CALL TX0
CALL TX1
SDZ CNT_TX
JMP KEY1_1
;/ MOV A,3d ;叫三声
;/ MOV CNT_TX,A
;/Re_Find:
SNZ Un_Bugle
SET Bugle
SET Light
CALL DELAY240ms
;;;SNZ Un_Bugle
CLR Bugle
CLR Light
;CALL DELAY240ms
;CALL DELAY240ms
;/ SDZ CNT_TX
;/ JMP Re_Find
; MOV A,5D;8d ; 发5次 delay226ms
; MOV CNT_TX,A
;KEY1_2:
; CALL TX
; CALL TX0 ;回传 01H
; CALL TX0
; CALL TX0
; CALL TX1
; SDZ CNT_TX
; JMP KEY1_2
CALL DELAY240ms
;CALL DELAY240ms
SNZ Un_Bugle
SET Bugle
SET Light
CALL DELAY240ms
;;;SNZ Un_Bugle
CLR Bugle
CLR Light
CALL DELAY240ms
;CALL DELAY240ms
SNZ Un_Bugle
SET Bugle
SET Light
CALL DELAY240ms
;;;SNZ Un_Bugle
CLR Bugle
CLR Light
CALL DELAY240ms ;防止自身继电器振动
JMP MAIN
KEY2: ;有声设防
;--------------------------
;清除所有再次发射
clr come_lockon
clr come_vib
;--------------------------
CLR F_KEY2
snz f_start ;启动时,不扫描 LOCK ON
CLR F_START ;设防或防抢后转为扫描 LOCK ON,以便盗窃报警
SZ F_guard
JMP KEY1
SZ LockOn ;遥控启动时,LockOn=1
JMP ROB ;在解除状态下,接收到这个键时,进入防抢
SZ F_Rob ;防枪报警时,此键无效
JMP MAIN
;SZ F_run
;JMP Unchain ;解除报警
SET F_guard
CLR Relay_Stop ;Relay stop 释放,延时,防止自身振动连续响应
CLR F_glom ;偷
CLR Un_Bugle ;有声
SET Bugle
SET Light
CALL DELAY240ms
CLR Bugle
CLR Light
MOV A,8d;5d;7d;11D ;8D;3D
MOV CNT_TX,A
KEY2_1:
CALL TX
CALL TX0 ;回传 02H
CALL TX0
CALL TX1
CALL TX0
SDZ CNT_TX
JMP KEY2_1
call writebyte1 ;断电记忆
JMP MAIN
;--------- 防抢 ----------
ROB:
SET F_Rob
CLR Un_Light
CLR COUNT_240ms
MOV A,87H
MOV [TMRC],A
CLR [TMR]
MOV A,05H
MOV [INTC],A
CLR F_Auto ;防止防抢熄火进入自动设防,同时计时车灯不闪烁
CLR INT_Auto ;退出自动设防中断体
SET [TMRC].TON
CLR Vdd_Sta
SET Flameout
SET Bugle
JMP MAIN
;-------------------------
;===========================================================
;--------- 解除报警/解除防抢 ----
Unchain: ;解除报警
CLR [TMRC].TON
;--------------------------
;清除所有再次发射
;/ clr come_lockon
;/ clr come_vib
;--------------------------
CLR Bugle
CLR F_first
CLR F_Rob
CLR Light
CLR Vdd_STA
CLR STA ;;;;;;;;;;;
CLR Flameout
CALL DELAY240ms ;继电器关闭后等待,防止自身振动报警
;CALL DELAY240ms
CLR F_run ;接着扫描振动,LOCK ON,
CLR Relay_Stop ;Relay stop 释放,延时,防止自身振动连续响应
CLR F_glom
;**********************************************
;/SZ LOCKON
;/JMP KEY3;CLR F_guard ;只有盗窃解除时,同时解除设防
;**********************************************
JMP MAIN
;---------------------------------
;--------- 解除报警/解除防抢 ----
Unchain1: ;解除报警
CLR [TMRC].TON
;--------------------------
;清除所有再次发射
;/ clr come_lockon
;/ clr come_vib
;--------------------------
CLR Bugle
CLR F_first
CLR F_Rob
CLR Light
CLR Vdd_STA
CLR STA ;;;;;;;;;;;
CLR Flameout
CALL DELAY240ms ;继电器关闭后等待,防止自身振动报警
;CALL DELAY240ms
CLR F_run ;接着扫描振动,LOCK ON,
CLR Relay_Stop ;Relay stop 释放,延时,防止自身振动连续响应
CLR F_glom
;**********************************************
;/SZ LOCKON
JMP KEY3;CLR F_guard ;解除所有状态
;**********************************************
;/JMP MAIN
;---------------------------------
;==================================================================================
KEY3: ;解除
;--------------------------
;清除所有再次发射
clr come_lockon
clr come_vib
;--------------------------
CLR F_KEY3
SZ F_run ;报警/防抢时,进入中断,set f_run
JMP Unchain1 ;解除报警,或 解除防抢
CLR F_guard
CLR F_glom
MOV A,2D
MOV Re_LOOP,A ;闪叫两次
KEY3_3:
SNZ Un_Bugle
SET Bugle
SET Light
MOV A,3d;5D ; DELAY240ms
MOV CNT_TX,A
CLR F_Delay
JMP KEY3_1 ;CALL DELAY240ms
KEY3_2:
;SNZ Un_Bugle
CLR Bugle
CLR Light
SDZ Re_LOOP
JMP KEY3_4
call writebyte1 ;断电记忆
CLR F_KEY_Auto ;清除自动设防,以免上一次发生发生中断,冲突
;-------------------自动设防 ----------
SZ Lockon ;F_START ;防止不进入3分熄火等待时间,及防止进入防抢报警
JMP MAIN ;已启动时解除,不进入自动设防,只进入3分启动计时,防止进入防抢报警
;SNZ Vdd_STA
;JMP MAIN
CLR CNT_Auto4s;COUNT_4s
CLR CNT_Auto;COUNT_30s
MOV A,7d;1d;7D ;29.36s
MOV CNT_Auto10s,A;CNT10s_30s,A
CLR F_Auto
SET INT_Auto ;进入自动设防中断体
MOV A,87H
MOV [TMRC],A
CLR [TMR]
MOV A,05H
MOV [INTC],A
SET [TMRC].TON
;-------------------------------------
JMP MAIN
KEY3_4:
;;call delay240ms
;;CALL DELAY240ms
MOV A,5D;10d ;5D ; DELAY240ms
MOV CNT_TX,A
SET F_Delay
JMP KEY3_1 ;CALL DELAY240ms
;SNZ Un_Bugle
;SET Bugle
;SET Light
;CALL DELAY240ms
;;SNZ Un_Bugle
;CLR Bugle
;CLR Light
KEY3_1:
CALL TX
CALL TX0 ;回传 04H
CALL TX1
CALL TX0
CALL TX0
SDZ CNT_TX
JMP KEY3_1
SNZ F_Delay ;第2次延时
JMP KEY3_2
JMP KEY3_3
KEY4: ;静音设防
;--------------------------
;清除所有再次发射
clr come_lockon
clr come_vib
;--------------------------
CLR F_KEY4
SZ F_Rob ;防枪报警时,此键无效
JMP MAIN
SET F_guard
CLR F_glom ;偷
SET Un_Bugle
;SET Bugle
SET Light
CALL DELAY240ms
;CLR Bugle
CLR Light
MOV A,8d;5d;7D;15d;5d;3D
MOV CNT_TX,A
KEY4_1:
CALL TX
CALL TX1
CALL TX0 ;回传 08H
CALL TX0
CALL TX0
SDZ CNT_TX
JMP KEY4_1
call writebyte1 ;断电记忆
JMP MAIN
KEY5: ;增加 //////启动
CLR F_KEY5
SZ F_Rob ;防枪报警时,此键无效
JMP MAIN
SZ F_START
JMP KEY6
SET F_START
SET Un_Light ;不闪灯,先关以免自动设防中断 转到 启动3分熄火等待时 冲突闪亮
CLR Flameout
SET Vdd_STA
SET STA
SET Bugle
SET Light
CALL DELAY240ms
CLR Bugle
CLR Light
MOV A,9d;7D;13d;8D;3D
MOV CNT_TX,A
KEY5_1:
CALL TX
CALL TX0 ;回传 03H
CALL TX0
CALL TX1
CALL TX1
SDZ CNT_TX
JMP KEY5_1
;CALL DELAY240ms
CALL DELAY240ms
CALL DELAY240ms ;启动延时
CALL DELAY240ms
CALL DELAY240ms
CALL DELAY240ms
CLR STA
call delay240ms ;relay释放
call delay240ms
CLR F_KEY_Auto ;清除自动设防,以免上一次发生发生中断,冲突
;;CLR [TMRC].TON
;------------------------------
;;SET F_run ;n.串联
;/SET Un_Light ;在上面关
MOV A,87H
MOV [TMRC],A
CLR [TMR]
MOV A,05H
MOV [INTC],A
CLR COUNT_4s
CLR COUNT_30s
;MOV A,4D ;16s;10s
MOV A,43d;2d;43d;72D ; 3 分
MOV CNT10s_30s,A
CLR INT_Auto ;退出自动设防中断体
SET [TMRC].TON
;------------------------------
; SZ F_guard ;若还没设防,保留以上的中断值,先进入自动设防再转到3分熄火等待时间
; JMP MAIN
;-------------------自动设防 ----------
; ;/SZ F_START ;防止不进入3分熄火等待时间,及防止进入防抢报警
; ;/JMP MAIN ;已启动时解除,不进入自动设防,只进入3分启动计时,防止进入防抢报警
; CLR CNT_Auto4s;COUNT_4s
; CLR CNT_Auto;COUNT_30s
; MOV A,1d;7D ;29.36s
; MOV CNT_Auto10s,A;CNT10s_30s,A
; CLR F_Auto
; SET INT_Auto ;进入自动设防中断体
; MOV A,87H
; MOV [TMRC],A
; CLR [TMR]
; MOV A,05H
; MOV [INTC],A
; SET [TMRC].TON
;-------------------------------------
JMP MAIN
KEY6: ;增加 //////熄火
CLR F_KEY6
CLR F_START
CLR F_run ;n.串联
CLR Vdd_STA
CLR STA
SET Flameout
SET Bugle
SET Light
CALL DELAY240ms
CLR Bugle
CLR Light
CALL DELAY240ms
;CALL DELAY240ms
SET Bugle
SET Light
CALL DELAY240ms
CLR Bugle
CLR Light
MOV A,9d;7D;13d;8D;3D
MOV CNT_TX,A
KEY6_1:
CALL TX
CALL TX0 ;回传 05H
CALL TX1
CALL TX0
CALL TX1
SDZ CNT_TX
JMP KEY6_1
CALL DELAY240ms
CALL DELAY240ms
CALL DELAY240ms
CALL DELAY240ms
CALL DELAY240ms ;熄火延时
CALL DELAY240ms
CLR Flameout
call delay240ms ;relay释放
call delay240ms
JMP MAIN
;KEY7: ;增加 //////振动
; CLR F_KEY7
; SNZ Un_Bugle
; SET Bugle
; SET Light
; CALL DELAY240ms
; ;SNZ Un_Bugle
; CLR Bugle
; CLR Light
; MOV A,7D;13d;8D;3D
; MOV CNT_TX,A
;KEY7_1:
; CALL TX
; CALL TX0 ;回传 06H
; CALL TX1
; CALL TX1
; CALL TX0
; SDZ CNT_TX
; JMP KEY7_1
;
; JMP MAIN
;KEY8: ;增加 //////盗窃
; CLR F_KEY8
;
;
; SET Bugle
; SET Light
; CALL DELAY240ms
; CLR Bugle
; CLR Light
;
; MOV A,7D;13d;8D;3D
; MOV CNT_TX,A
;KEY8_1:
; CALL TX
; CALL TX0 ;回传 07H
; CALL TX1
; CALL TX1
; CALL TX1
; SDZ CNT_TX
; JMP KEY8_1
;
; JMP MAIN
TX:
;----------------------------
MOV A,[TX_DATA3]
MOV SAVE_DATA3,A
MOV A,[TX_DATA2] ;保护回传码, 在振动,LOCKON 正确的回传
MOV SAVE_DATA2,A
MOV A,[TX_DATA1]
MOV SAVE_DATA1,A
;----------------------------
MOV A,20D
MOV CNT_Bits,A
SET PA.7;PB.0
CALL DELAY4
CLR PA.7;PB.0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -