ORG 0000H
AJMP MAIN
ORG 0050H
MAIN: MOV P1,#0FFH
ACALL DD3
LOOP: JNB P3.4,LOOP;判斷VT是否有信號
ACALL DL;延時防抖動
JB P3.4,START;有信號則啟動
AJMP LOOP;無則返回LOOP
START:JNB P3.0,XD1;判斷D1信號
ACALL DL
JB P3.0,FDSD;有則進入防盜設定
XD1: JNB P3.1,XD2;判斷D2信號
ACALL DL
JB P3.1,JCFD;有則進入解除防盜
XD2: JNB P3.2,XD3;判斷D3信號
ACALL DL
JB P3.2,QDNC;有則進入啟動暖車
XD3: JNB P3.3,XD4;判斷D4信號
ACALL DL
JB P3.3,XCQJ;有則進入尋車求救
XD4: AJMP LOOP;無D1-D4的信號則返回LOOP
FDSD: ACALL BJ;防盜設定程序,先報警
ACALL DD3;延時3秒
FD1: JNB P3.5,FD2;判斷振動信號
ACALL DL
JB P3.5,BZC;有則進入報警判斷程序
FD2: JNB P3.7,FD3;判斷鎖頭正電線是否帶電
ACALL DL
JB P3.7,BZC;有則進入報警判斷程序
FD3: JNB P3.4,FD4;判斷VT是否有信號
ACALL DL
JB P3.4,FH;有則返回
FD4: AJMP FD1
BZC: ACALL BJ;報警判斷程序
ACALL DD3
ACALL DD2;延時5秒
JNB P3.5,BZC1;判斷振動信號
ACALL DL
JB P3.5,BJJ;有則進入連續報警
BZC1: JNB P3.7,BZC2;判斷鎖頭正電線是否帶電
ACALL DL
JB P3.7,BJJ;有則進入連續報警
BZC2: JNB P3.4,BZC3;判斷VT是否有信號
ACALL DL
JB P3.4,FH;有則返回
BZC3: AJMP FD1
BJJ: ACALL BJ;連續報警程序
ACALL DD1
JNB P3.7,BJJ1;判斷鎖頭正電線是否帶電
ACALL DL
JB P3.7,XH;有則進入熄火程序
BJJ1: JNB P3.4,BJJ2;判斷VT是否有信號
ACALL DL
JB P3.4,FH;有則返回
BJJ2: AJMP BJJ
XH: CLR P1.1;熄火程序
SETB P1.2
ACALL DD1
SETB P1.1
AJMP BJJ
FH: AJMP MAIN
JCFD: ACALL BJ;解除防盜程序,先報警2次
ACALL DD1
ACALL BJ
CLR P1.1
SETB P1.2
ACALL DD1
AJMP MAIN
QDNC: CLR P1.2;啟動暖車程序
CLR P1.0
ACALL DD2
JB P3.4,$
SETB P1.0
ACALL DD3
AJMP LOOP
XCQJ: MOV R3,#0FH;尋車求救程序
XCQJ1:ACALL BJ
ACALL DD1
JNB P3.4,XCQJ2;判斷VT是否有信號
ACALL DL
JB P3.4,XCQJ3;有則返回
XCQJ2:DJNZ R3,XCQJ1
XCQJ3:AJMP LOOP
DL: MOV R6,#0AFH;按鍵延時子程序
DJNZ R6,$
RET
DD3: MOV R5,#08H;3秒延時子程序
D3: MOV R6,#0FFH
D4: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,D4
DJNZ R5,D3
RET
DD2: MOV R5,#02H;2秒延時子程序
D5: MOV R6,#0A0H
D6: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,D6
DJNZ R5,D5
RET
DD1: MOV R6,#0A0H;1秒延時子程序
D1: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,D1
RET
BJ: CLR P1.4;報警延時子程序
CLR P1.3
MOV R6,#50H
B1: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,B1
SETB P1.3
SETB P1.4
RET
END
89C2051控制的摩托車報警系統
更新時間: 2008-08-04 10:00:22來源: 粵嵌教育瀏覽量:1375