www.pudn.com > 8951.zip > 8951.asm


             ORG 0000H  
 
             AJMP MAIN 
 
             ORG 0050H 
 
  MAIN:      MOV P0,#0FFH 
 
             ACALL DD3 
 
  LOOP:      JNB P1.0,LOOP;判断VT是否有信号 
 
             ACALL DL;延时防抖动 
 
             JB P1.0,START;有信号则启动 
 
             AJMP LOOP;无则返回 
 
  START:     JNB P1.1,XD1;判断D1信号 
 
             ACALL DL 
 
             JB P1.1,FDSD;有则进入防盗设定 
 
    XD1:     JNB P1.2,XD2;判断D2信号 
 
             ACALL DL 
 
             JB P1.2,CBA1;有则进入解除防盗 
 
    XD2:     JNB P1.3,XD3;判断D3信号 
 
             ACALL DL 
 
             JB P1.3,CBA2;有则进入启动暖车 
 
    XD3:     JNB P1.4,XD4;判断D4信号 
 
             ACALL DL 
 
             JB P1.4,CBA3;有则进入寻车求救 
 
    XD4:     AJMP LOOP;无D1-D4的信号则返回 
 
   CBA1:     AJMP JCFD 
 
   CBA2:     AJMP QDNC 
 
   CBA3:     AJMP XCQJ 
 
   FDSD:     MOV R4,#0FH;二级设定键廷时用 
 
             ACALL BJ;一级防盗设定程序,先报警 
 
             CLR P0.1;熄火程序 
 
             SETB P0.2 
 
             ACALL DD2 
 
             SETB P0.1 
 
             ACALL DD1;延时3秒 
 
    FD1:     JNB P1.5,FD2;判断振动信号 
 
             ACALL DL 
 
             JB P1.5,BZC;有则进入5秒声光报警程序 
 
    FD2:     JNB P1.7,FD3;判断锁头正电线是否带电 
 
             ACALL DL 
 
             JB P1.7,BZC;有则进入5秒声光报警程序 
 
    FD3:     JNB P1.0,FD4;判断VT是否有信号 
 
             ACALL DL 
 
             JB P1.2,CBA1 
 
             JB P1.3,CBA2 
 
             JB P1.4,CBA3 
 
             JNB P1.1,CE 
 
             ACALL CDSD;调用二级防盗报警 
 
      CE:    JB P1.0,MAIN;有则返回 
 
     FD4:    DJNZ R4,DE 
 
             AJMP FB1 ;超过时间就转回到一级设定等待 
 
      DE:    AJMP FD1 
 
     FB1:    JNB P1.5,FB2;判断振动信号 
 
             ACALL DL 
 
             JB P1.5,BZC;有则进入5秒声光报警程序 
 
     FB2:    JNB P1.7,FB3;判断锁头正电线是否带电 
 
             ACALL DL 
 
             JB P1.7,BZC;有则进入5秒声光报警程序 
 
     FB3:    JNB P1.0,FB4;判断VT是否有信号 
 
             ACALL DL 
 
             JB P1.2,CBA1 
 
             JB P1.3,CBA2 
 
             JB P1.4,CBA3 
 
             JB P1.1,FDSD 
 
     FB4:    AJMP FB1 
 
    CDSD:    ACALL BBJ;进入二级无声防盗设定程序 
 
             ACALL DD3;延时3秒 
  
     BD1:    JNB P1.5,BD2;判断振动信号 
 
             ACALL DL 
 
             JB P1.5,CBZC;有则进入无声灯闪三下报警程序 
 
     BD2:    JNB P1.7,BD3;判断锁头正电线是否带电 
 
             ACALL DL 
 
             JB P1.7,CBZC;有则进入无声灯闪三下报警程序 
 
     BD3:    JNB P1.0,BD4;判断VT是否有信号 
 
             ACALL DL 
 
             JB P1.0,V;有则返回 
 
     BD4:    AJMP BD1 
 
       V:    AJMP LOOP 
 
    CBZC:    ACALL CBJS 
 
     BZC:    ACALL BJS;调用5秒声光报警程序 
 
      BG:    ACALL DD3;延时3秒 
 
             ACALL DD2;延时2秒 
 
      BR:    JNB P1.5,BC1;判断振动信号 
 
             ACALL DL 
 
             JB P1.5,JJ;有则进入二级15秒报警 
 
     BC1:    JNB P1.7,BC2;判断锁头正电线是否带电 
 
             ACALL DL 
 
             JB P1.7,JJ;有则进入二级15秒报警 
 
     BC2:    JNB P1.0,BC3;判断VT是否有信号 
 
             ACALL DL 
 
             JB P1.0,FH;有则返回 
 
     BC3:    AJMP BD1 
 
       F:    ACALL DD3;延时3秒 
 
             ACALL DD2;延时2秒 
 
             JNB P1.5,BZC1;判断振动信号 
 
             ACALL DL 
 
             JB P1.5,BJJ;有则进入一级15秒报警 
 
     BZC1:   JNB P1.7,BZC2;判断锁头正电线是否带电 
 
             ACALL DL 
 
             JB P1.7,BJJ;有则进入一级15秒报警 
 
     BZC2:   JNB P1.0,BZC3;判断VT是否有信号 
 
             ACALL DL 
 
             JB P1.0,FH;有则返回 
 
     BZC3:   AJMP FD1 
 
      BJJ:   ACALL BZJ;调用连续一级15秒声光报警程序 
 
             ACALL DD1 
 
             JNB P1.7,BJJ1;判断锁头正电线是否带电 
 
             ACALL DL 
 
             JB P1.7,XH;有则进入熄火程序 
 
     BJJ1:   JNB P1.0,BJJ2;判断VT是否有信号 
 
             ACALL DL 
 
             JB P1.0,FH;有则返回 
 
     BJJ2:   AJMP BJJ 
 
       XH:   CLR P0.1;熄火程序 
 
             SETB P0.2 
 
             ACALL DD2 
 
             SETB P0.1 
 
             AJMP BJJ 
  
       FH:   AJMP MAIN 
 
       JJ:   ACALL BZ;调用二级无灯闪15秒报警程序 
 
             ACALL DD1 
 
             JNB P1.7,JJ1;判断锁头正电线是否带电 
 
             ACALL DL 
 
             JB P1.7,XH;有则进入熄火程序 
 
      JJ1:   JNB P1.0,JJ2;判断VT是否有信号 
 
             ACALL DL 
 
             JB P1.0,FH;有则返回 
 
      JJ2:   AJMP JJ 
 
        H:   CLR P0.1;熄火程序 
 
             SETB P0.2 
 
             ACALL DD2 
 
             SETB P0.1 
 
             AJMP BJJ 
 
       CH:   AJMP MAIN 
 
     JCFD:   ACALL BJ;解除防盗程序,声光2次 
 
             ACALL DD1 
 
             ACALL BJ 
 
             CLR P0.1 
 
             SETB P0.2 
 
             ACALL DD2 
 
             AJMP MAIN 
 
     QDNC:   MOV R3,#32H ;起动廷时用程序 
 
       EF:   JB P1.0,EF 
 
       E1:   MOV R4,#0FFH 
 
       E2:   MOV R5,#0FH 
 
             ACALL DL 
 
       HG:   JB P1.0,GQ ;检测VT信号 
 
             ACALL DL 
 
             DJNZ R5,$ 
 
             DJNZ R4,E2 
 
             DJNZ R3,E1 
 
             AJMP LOOP ;廷时时间内无再有信号则返回 
 
       GQ:   ACALL DL 
 
             JB P1.3,EW;再检测D3信号 
 
             AJMP LOOP 
 
       EW:   CLR P0.2;有测启动暖车程序 
 
             CLR P0.0 
 
             ACALL DD2 
 
             JB P1.0,$ 
 
             SETB P0.0 
 
             ACALL DD3 
 
             AJMP LOOP 
 
     XCQJ:   MOV R3,#0FH;寻车求救程序(13响) 
 
    XCQJ1:   ACALL XBJ 
 
             ACALL DD1 
 
             JNB P1.0,XCQJ2;判断VT是否有信号 
 
             ACALL DL 
 
             JB P1.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 P0.3;灯光报警子程序 
  
             MOV R6,#0FFH 
 
      BB1:   MOV R7,#0FFH 
 
             DJNZ R7,$ 
 
             DJNZ R6,BB1 
 
             SETB P0.3 
 
             RET 
 
      XBJ:   CLR P0.3;寻车报警子程序 
 
             CLR P0.4 
 
             MOV R6,#0FFH 
 
      XB1:   MOV R7,#0FFH 
 
             DJNZ R7,$ 
 
             DJNZ R6,XB1 
 
             SETB P0.4 
 
             SETB P0.3 
 
             RET 
 
       BJ:   CLR P0.3;报警声子程序 
  
             CLR P0.4 
 
             MOV R6,#5FH 
 
       B1:   MOV R7,#0FFH 
 
             DJNZ R7,$ 
 
             DJNZ R6,B1 
 
             SETB P0.4 
 
             SETB P0.3 
 
             RET 
 
      STA:   AJMP START 
  
     CBJS:   AJMP CJCT 
 
      BJS:   AJMP BJCT 
 
       BZ:   CLR P0.4 
 
             CLR P0.1 
 
             MOV R4,#0FH;二级报警程序(15响) 
 
      CQ1: ;无灯闪报警 
 
            ACALL DD1 
 
            JNB P1.0,CB1;判断VT是否有信号 
   
            ACALL DL 
 
            JB P1.0,CB2;有则返回 
 
      CB1:  DJNZ R4,CQ1 
 
      CB2:  SETB P0.1 
 
            SETB P0.4 
 
            AJMP BG 
 
      BZJ:  CLR P0.4 
 
            CLR P0.1 
 
            MOV R4,#0FH;一级防盗报警程序(15响) 
 
      CC1:  ACALL BBJ ;声光报警 
 
            ACALL DD1 
 
            JNB P1.0,CJ1;判断VT是否有信号 
 
            ACALL DL 
 
            JB P1.0,CJ2;有则返回 
 
      CJ1:  DJNZ R4,CC1 
 
      CJ2:  SETB P0.1 
 
            SETB P0.4 
 
            AJMP F 
 
     BJCT:  CLR P0.4 
 
            MOV R4,#05H;一级防盗报警程序(5声响) 
 
       CJ:  ACALL BBJ 
 
            ACALL DD1 
  
            JNB P1.0,CAJ1;判断VT是否有信号 
  
            ACALL DL 
 
            JB P1.0,CAJ2;有则返回 
 
    CAJ1:   DJNZ R4,CJ 
 
    CAJ2:   SETB P0.1 
 
            SETB P0.4 
 
            AJMP F 
 
    CJCT:   MOV R4,#03H;二级防盗报警程序(3闪灯) 
 
     BJ1:   ACALL BBJ 
 
            ACALL DD1 
 
            JNB P1.0,AJ1;判断VT是否有信号 
 
            ACALL DL 
 
            JB P1.0,AJ2;有则返回 
 
     AJ1:   DJNZ R4,BJ1 
 
     AJ2:   SETB P0.1 
 
            AJMP BG 
 
            END