winnie 发表于 2009-5-6 09:57:00

摩托车报警器源程序

ORG 0000H     AJMP MAIN
    RG 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
页: [1]
查看完整版本: 摩托车报警器源程序