新闻  |   论坛  |   博客  |   在线研讨会
89C2051摩托车报警器
tvb2058 | 2007-09-10 14:05:31    阅读:1757   发布文章

 

;;89C2051摩托车报警器
ORG    0000H
      AJMP   MAIN
      ORG    0050H
MAIN: MOV    P1,#0FFH
      ACALL  DD3
LOOP: JNB    P3.0,LOOP;判断VT是否有信号
      ACALL  DL;延时防抖动
      JB     P3.0,START;有信号则启动
      AJMP   LOOP;无则返回

START:JNB    P3.1,XD1;判断D1信号
      ACALL  DL
      JB     P3.1,FDSD;有则进入防盗设定
XD1:  JNB    P3.2,XD2;判断D2信号
      ACALL  DL
      JB     P3.2,CBA1;有则进入解除防盗
XD2:  JNB    P3.3,XD3;判断D3信号
      ACALL  DL
      JB     P3.3,CBA2;有则进入启动暖车
XD3:  JNB    P3.4,XD4;判断D4信号
      ACALL  DL
      JB     P3.4,CBA3;有则进入寻车求救
XD4:  AJMP   LOOP;D1-D4的信号则返回

CBA1: AJMP   JCFD
CBA2: AJMP   QDNC
CBA3: AJMP   XCQJ

FDSD: MOV    R4,#0FH;二级设定键廷时用
      ACALL  BJ;一级防盗设定程序,先报警
      CLR    P1.1;熄火程序
      SETB   P1.2
      ACALL  DD2
      SETB   P1.1
      ACALL  DD1;延时3
FD1:  JNB    P3.5,FD2;判断振动信号
      ACALL  DL
      JB     P3.5,BZC;有则进入5秒声光报警程序
FD2:  JNB    P3.7,FD3;判断锁头正电线是否带电
      ACALL  DL
      JB     P3.7,BZC;有则进入5秒声光报警程序
FD3:  JNB    P3.0,FD4;判断VT是否有信号
      ACALL  DL
      JB     P3.2,CBA1
      JB     P3.3,CBA2
      JB     P3.4,CBA3
      JNB    P3.1,CE
      ACALL  CDSD;调用二级防盗报警
CE:   JB     P3.0,MAIN;有则返回
FD4:  DJNZ   R4,DE
      AJMP   FB1 ;超过时间就转回到一级设定等待
DE:   AJMP   FD1

FB1:  JNB    P3.5,FB2;判断振动信号
      ACALL  DL
      JB     P3.5,BZC;有则进入5秒声光报警程序
FB2:  JNB    P3.7,FB3;判断锁头正电线是否带电
      ACALL  DL
      JB     P3.7,BZC;有则进入5秒声光报警程序
FB3:  JNB    P3.0,FB4;判断VT是否有信号
      ACALL  DL
      JB     P3.2,CBA1
      JB     P3.3,CBA2
      JB     P3.4,CBA3
      JB     P3.1,FDSD
FB4:  AJMP   FB1

CDSD: ACALL  BBJ;进入二级无声防盗设定程序
      ACALL  DD3;延时3
BD1:  JNB    P3.5,BD2;判断振动信号
      ACALL  DL
      JB     P3.5,CBZC;有则进入无声灯闪三下报警程序
BD2:  JNB    P3.7,BD3;判断锁头正电线是否带电
      ACALL  DL
      JB     P3.7,CBZC;有则进入无声灯闪三下报警程序
BD3:  JNB    P3.0,BD4;判断VT是否有信号
      ACALL  DL
      JB     P3.0,V;有则返回
BD4:  AJMP   BD1
V:    AJMP   LOOP

CBZC: ACALL  CBJS

BZC:  ACALL  BJS;调用5秒声光报警程序

BG:   ACALL  DD3;延时3
      ACALL  DD2;延时2
BR:   JNB    P3.5,BC1;判断振动信号
      ACALL  DL
      JB     P3.5,JJ;有则进入二级15秒报警
BC1:  JNB    P3.7,BC2;判断锁头正电线是否带电
      ACALL  DL
      JB     P3.7,JJ;有则进入二级15秒报警
BC2:  JNB    P3.0,BC3;判断VT是否有信号
      ACALL  DL
      JB     P3.0,FH;有则返回
BC3:  AJMP   BD1

F:    ACALL  DD3;延时3
      ACALL  DD2;延时2
      JNB    P3.5,BZC1;判断振动信号
      ACALL  DL
      JB     P3.5,BJJ;有则进入一级15秒报警
BZC1: JNB    P3.7,BZC2;判断锁头正电线是否带电
      ACALL  DL
      JB     P3.7,BJJ;有则进入一级15秒报警
BZC2: JNB    P3.0,BZC3;判断VT是否有信号
      ACALL  DL
      JB     P3.0,FH;有则返回
BZC3: AJMP   FD1

BJJ:  ACALL  BZJ;调用连续一级15秒声光报警程序
      ACALL  DD1
      JNB    P3.7,BJJ1;判断锁头正电线是否带电
      ACALL  DL
      JB     P3.7,XH;有则进入熄火程序
BJJ1: JNB    P3.0,BJJ2;判断VT是否有信号
      ACALL  DL
      JB     P3.0,FH;有则返回
BJJ2: AJMP   BJJ
XH:   CLR    P1.1;熄火程序
      SETB   P1.2
      ACALL  DD2
      SETB   P1.1
      AJMP   BJJ
FH:   AJMP   MAIN

JJ:   ACALL  BZ;调用二级无灯闪15秒报警程序
      ACALL  DD1
      JNB    P3.7,JJ1;判断锁头正电线是否带电
      ACALL  DL
      JB     P3.7,XH;有则进入熄火程序
JJ1:  JNB    P3.0,JJ2;判断VT是否有信号
      ACALL  DL
      JB     P3.0,FH;有则返回
JJ2:  AJMP   JJ
H:    CLR    P1.1;熄火程序
      SETB   P1.2
      ACALL  DD2
      SETB   P1.1
      AJMP   BJJ
CH:   AJMP   MAIN

JCFD: ACALL  BJ;解除防盗程序,声光2
      ACALL  DD1
      ACALL  BJ
      CLR    P1.1
      SETB   P1.2
      ACALL  DD2
      AJMP   MAIN

QDNC: MOV    R3,#32H ;起动廷时用程序
EF:   JB     P3.0,EF 
E1:   MOV    R4,#0FFH
E2:   MOV    R5,#0FH
      ACALL  DL
HG:   JB     P3.0,GQ ;检测VT信号
      ACALL  DL
      DJNZ   R5,$
      DJNZ   R4,E2
      DJNZ   R3,E1
      AJMP   LOOP  ;廷时时间内无再有信号则返回
GQ:   ACALL  DL
      JB     P3.3,EW;再检测D3信号
      AJMP   LOOP
EW:   CLR    P1.2;有测启动暖车程序
      CLR    P1.0
      ACALL  DD2
      JB     P3.0,$
      SETB   P1.0
      ACALL  DD3
      AJMP   LOOP

XCQJ: MOV    R3,#0FH;寻车求救程序(13)
XCQJ1:ACALL  XBJ
      ACALL  DD1
      JNB    P3.0,XCQJ2;判断VT是否有信号
      ACALL  DL
      JB     P3.0,XCQJ3;有则返回
XCQJ2:DJNZ   R3,XCQJ1
XCQJ3:AJMP   LOOP

DL:   MOV    R6,#0AH;按键延时子程序
      DJNZ   R6,$
      RET

DD3:  MOV    R5,#09H;3秒延时子程序
D3:   MOV    R6,#0FFH
D4:   MOV    R7,#0FFH
      DJNZ   R7,$
      DJNZ   R6,D4
      DJNZ   R5,D3
      RET

DD2:  MOV    R5,#06H;2秒延时子程序
D5:   MOV    R6,#0FFH
D6:   MOV    R7,#0FFH
      DJNZ   R7,$
      DJNZ   R6,D6
      DJNZ   R5,D5
      RET

DD1:  MOV    R5,#03H;1秒延时子程序
D0:   MOV    R6,#0FFH
D1:   MOV    R7,#0FFH
      DJNZ   R7,$
      DJNZ   R6,D1
      DJNZ   R5,D0
      RET

BBJ:  CLR    P1.3;灯光报警子程序
      MOV    R6,#0FFH
BB1:  MOV    R7,#0FFH
      DJNZ   R7,$
      DJNZ   R6,BB1
      SETB   P1.3
      RET

XBJ:  CLR    P1.3;寻车报警子程序
      CLR    P1.4
      MOV    R6,#0FFH
XB1:  MOV    R7,#0FFH
      DJNZ   R7,$
      DJNZ   R6,XB1
      SETB   P1.4
      SETB   P1.3
      RET

BJ:   CLR    P1.3;报警声子程序
      CLR    P1.4
      MOV    R6,#5FH
B1:   MOV    R7,#0FFH
      DJNZ   R7,$
      DJNZ   R6,B1
      SETB   P1.4
      SETB   P1.3
      RET

STA:  AJMP   START

CBjs: AJMP   CJCT
Bjs:  AJMP   BJCT

BZ:   CLR    P1.4
      CLR    P1.1
      MOV    R4,#0FH;二级报警程序(15)
CQ1:                ;无灯闪报警
      ACALL  DD1
      JNB    P3.0,CB1;判断VT是否有信号
      ACALL  DL
      JB     P3.0,CB2;有则返回
CB1:  DJNZ   R4,CQ1
CB2:  SETB   P1.1
      SETB   P1.4
      AJMP   BG

BZJ:  CLR    P1.4
      CLR    P1.1
      MOV    R4,#0FH;一级防盗报警程序(15)
CC1:  ACALL  BBJ    ;声光报警
      ACALL  DD1
      JNB    P3.0,CJ1;判断VT是否有信号
      ACALL  DL
      JB     P3.0,CJ2;有则返回
CJ1:  DJNZ   R4,CC1
CJ2:  SETB   P1.1
      SETB   P1.4
      AJMP   F

BJCT: CLR    P1.4
      MOV    R4,#05H;一级防盗报警程序(5声响)
CJ:   ACALL  BBJ
      ACALL  DD1
      JNB    P3.0,CAJ1;判断VT是否有信号
      ACALL  DL
      JB     P3.0,CAJ2;有则返回
CAJ1: DJNZ   R4,CJ
CAJ2: SETB   P1.1
      SETB   P1.4
      AJMP   F

CJCT: MOV    R4,#03H;二级防盗报警程序(3闪灯)
BJ1:  ACALL  BBJ
      ACALL  DD1
      JNB    P3.0,AJ1;判断VT是否有信号
      ACALL  DL
      JB     P3.0,AJ2;有则返回
AJ1:  DJNZ   R4,BJ1
AJ2:  SETB   P1.1
      AJMP   BG

      END

6M晶体,可以改成家用报警器。

;;防盗设定键(D1)输入一次高电位,则进入一级报警方式,报警一响声,同时LR灯闪一下。3

后进入一级报警状态,
;;此时若有振动信号或锁头上电(防止非法开车),则报警5秒,同时灯闪5下,5秒内再有触发信号

则连续报警15秒,
;;灯同时闪15下(原程序则连续报警直到用遥控器关断,这样太浪费电,还有如果离车太远又要回来

关,否则会叫到无
;;电为止,加上太吵人了),如果一直有触发信号则一直报警,同时熄火继电器动作,无触发信号后

又回到一级报警方式等待。
;;
;;防盗设定键(D1)在2秒内再输入一次高电位,则进入二级省电报警方式,无报警声,灯闪一下,3

秒后进入二级报警状态,
;;此时有振动信号或锁头上电,则无声报警,只有灯闪三下,如果5秒内再有触发信号则连续报警15

秒,灯不闪(为了省电),
;;如果一直有信号触发则一直报警,同时熄火继电器动作。无触发信号后又回到二级省电报报警方式

等待。
;
;;防盗解除键(D2)高电位时和原作者的差不多,只是缩短了二下报警声时间(防止太吵)。同时灯

闪二下,解除报警状态,
;;熄火继电器动作(作用是在用遥控开车时熄火作用)。
;;
;;起动暧车键(D3)在二秒内输入高电位二次时进入起动暧车,锁头上电,起动继电器动作1秒,连

续按住时则起动继电器一直动作,
;;直到放开按键,一次输入高电位时无作用(防止误动作),原程序没有此功能。
;;
;;寻车求救键(D4)高电位时进入寻车求救报警,此时报警声响13响,灯同时闪13下。中途可按遥控

器停止

;;89C2051+2262+2272摩托车报警器 6M
;;P3.0=VT   ;;P1.0=启动继电器
;;P3.1=D1   ;;P1.1=熄火继电器
;;P3.2=D2   ;;P1.2=正电继电器
;;P3.3=D3   ;;P1.3=LR灯光报警
;;P3.4=D4   ;;P1.4=声音报警
;;P3.5=振动信号(闲置接地) ;;P1.5=
;;P3.7=锁头正电线(接地)  ;;P1.6=

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客