;   PIC单片机 www.pic16.com

  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

;-------------------PIC单片机 www.pic16.com -----------------------