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

📄 m_master.asm

📁 合泰单片机汇编程序,摩托车防盗器主机程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
    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 + -