⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fangdaoqi.txt

📁 家用防盗器简单源代码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
家用防盗器程序供给各位初学者参考

;在使用已成功
AEG EQU 32H
SECD EQU 33H   ;秒
SECE EQU 34H  ;秒
DEDA EQU 35H  ;毫秒
SEC EQU 36H  ;秒,放操作内总时间
AEA EQU 37H   ;放遥控1、2挡时间
SECET EQU 31H  ;分钟
JANQ EQU 38H
ORG  0000H
SJMP START
ORG 0003H        ;外中断0
LJMP INT0_1
ORG  000BH       ;T0
LJMP INT_0
ORG  0013H       ;外中断1
LJMP INT1_2
ORG  001BH       ;T1 
LJMP INT_1       
ORG 002BH        ;T2
LJMP INT_2 
 ORG 30H
START:  MOV SP,#5FH;
     MOV 0A6H,#01EH    ;看门狗
     MOV 0A6H,#0E1H    ;看门狗  
   MOV P0,#00000001B
     MOV P1,#0FFH
     MOV P2,#0FFH
     MOV P3,#01111100B
   MOV SEC,#00H
   MOV SECD,#00H
   MOV SECE,#00H
   MOV 45H,#00H   ;放中断次数
   MOV 46H,#00H  ;放中断第一次数据
          CLR 18H
          CLR 19H
          CLR 20H
          CLR 21H
          CLR 22H
          CLR 23H
          CLR 24H
          CLR 25H
          CLR 26H
    MOV TL0,#0
    MOV TH0,#0
      MOV TL0,#0B0H
      MOV TH0,#3CH
     MOV 0A8H,#10000110B     ;IE,开中断总控制,外中断INT1,T0允许中断,
     SETB IT1            ;外部中断1为负边沿触发
     MOV 89H,#01010001B     ;TMOD  T1为计数,T0为定时
     SETB TR0   ;开T0定
          NOP
          NOP
          JNB P1.5,LKYZ  ;防盗器关闭时设置16H标志位
          ACALL DELKY1
  JNB P1.5,LKYZ  ;P1.5=1是撤防
          SETB 16H
          SJMP LOOP
 LKYZ:   CLR 16H

LOOP:
     MOV 0A6H,#01EH    ;看门狗
     MOV 0A6H,#0E1H    ;看门狗
   NOP
   NOP
     JNB 16H,TZK1
   NOP
   NOP
   AJMP TZK5
TZK1: JB P1.0,TZK2  ;P1.0(第一防区)位等于1转移TZK2
     NOP
   NOP
     ACALL DELKY1  ;消抖
   NOP
   NOP
     JB P1.0,TZK2
     CLR P0.0   ;触发电话报警
     ACALL DELKY1
     SETB P0.0
     MOV SECET,#00H  ;
     SETB 16H     ;触发后设置标志位,不在触发
     SETB 18H      ;设置触发后电话打入标志位
     SETB 21H      ;设标志位
   MOV 47H,#0FEH;0FEH
   MOV 48H,#0FFH
  NOP
  NOP
 TZK2:NOP
     NOP
     JB 17H,TZK4    ;????/
     JB P1.1,TZK3  ;第二防区(触发时端口等于0)
     NOP
   NOP
     ACALL DELKY1
   NOP
   NOP
     JB P1.1,TZK3
     CLR P0.0     ;触发电话报警
   ACALL DELKY1
   SETB P0.0
     MOV SECET,#00H
     SETB 16H    ;触发后设置标志位,不在触发
     SETB 18H      ;设置触发后电话打入标志位
     SETB 22H     ;设标志位
   MOV 47H,#0FEH;0FEH
   MOV 48H,#0FFH
  NOP
  NOP
TZK3:NOP
     NOP
     JB 17H,TZK4   ;晚上设防标志位等1屏蔽第三防区、转TZK4
     JB P1.2,TZK4    ;第三防区
   ACALL DELKY1
   NOP
   NOP
   JB P1.2,TZK4
   CLR P0.0  ;触发电话报警
   ACALL DELKY1
   SETB P0.0
     MOV SECET,#00H
     SETB 16H    ;触发后设置标志位,不在触发
     SETB 18H      ;设置触发后电话打入标志位
     SETB 23H     ;设标志位
   MOV 47H,#0FEH; 0FE
   MOV 48H,#0FFH
  NOP
  NOP
TZK4:JB P1.3,TZK5    ;第四防区
     NOP
   NOP
     ACALL DELKY1
   NOP
   NOP
   JB P1.3,TZK5
     CLR P0.0    ;触发电话报警
   ACALL DELKY1
   SETB P0.0
     MOV SECET,#00H 
     SETB 16H     ;触发后设置标志位,不在触发
     SETB 18H      ;设置触发后电话打入标志位
     SETB 24H     ;设标志位
   MOV 47H,#0FEH  ;0FEH
   MOV 48H,#0FFH
  NOP
  NOP
TZK5:NOP
     NOP
     JB 19H,TZKY   ;故障标志位=1已报警过,不再报警
     JNB P1.4,TZKY  ;检测线路故障转喇叭报警  
     NOP
     NOP
     ACALL DELKY
     NOP
     NOP
     ACALL DELKY
     NOP
     NOP
     JNB P1.4,TZKY
     ACALL SZC5   ;转喇叭警报程序
TZKY:JNB 18H,TZK6
     NOP
   NOP
     JB P1.6,TZK6
   ACALL DELKY1
   NOP
   NOP
   JB P1.6,TZK6
     ACALL SZC10   ;转遥控报警子程序

TZK6:JNB 20H,TZK11   ;检测电话打入标志位
     JNB 21H,TZK7   ;标志位等于0转移TZK6
   NOP
   NOP
     ACALL SZC1    ;调用监听,大门触发语音程序
TZK7:JNB 22H,TZK8
NOP
NOP
     ACALL SZC2    ;调用监听,客厅触发语音程序
TZK8:JNB 23H,TZK9
NOP
NOP
     ACALL SZC3    ;调用监听,二层触发语音程序
TZK9:JNB 24H,TZK10
     NOP
   NOP
     ACALL SZC4    ;调用监听,三层触发语音程序
TZK10:JB 18H,TZK11
      JNB 20H,TZK11
      NOP
      NOP
      ACALL SZC6 ;转电话远程设防,撤防程序

TZK11:NOP
      NOP
      JB P1.7,TZK12           ;检测遥控撤防
      ACALL DELKY1
     JB P1.7,TZK12
   SETB 16H  ;设置撤防屏蔽标志位
   NOP
   NOP
      JB P1.5,TZK12    ;检测P1.5=1已关闭,不再进入子程序

      NOP
      NOP
      ACALL SZC8    ;撤防等于0转子程序

TZK12:NOP
      NOP
      JB 18H,TZK13    ;各防点被触发后6分钟后才能检测遥控设防
  NOP
  NOP
      JB P1.6,TZK13         ;检测遥控设防
      ACALL DELKY1
      JB P1.6,TZK13
     MOV JANQ,#00H
SZ:  MOV 0A6H,#01EH   ;
     MOV 0A6H,#0E1H  ;
     JNB P1.6,SZ   ;等待遥控键A放开
     MOV AEA,#00H
     INC JANQ ;(38H)加1  ?

SK2:  MOV 0A6H,#01EH   ;看门狗
     MOV 0A6H,#0E1H
   NOP
   NOP
     JB P1.6,SK1
     ACALL DELKY1
   NOP
   NOP
   JB P1.6,SK1
SZ1: MOV 0A6H,#01EH   ;看门狗
     MOV 0A6H,#0E1H
     JNB P1.6,SZ1   ;等待遥控键A放开
     INC JANQ   ;(38H)加1
SK1: MOV A,AEA
     CJNE A,#4,SK   ;4S
SK:  JC SK2
     MOV A,JANQ
     CJNE A,#1,SK3
     CLR 17H  ;;晚上标志位清0
   CLR 16H
   NOP
   NOP
     ACALL SZC7 ;9   ;;检测遥控白天设防等于0调用子程序
SK3:MOV A,JANQ
    CJNE A,#2,TZK13
  CLR 16H
  SETB 17H      ;晚上运行标志位置1
  NOP
  NOP
  ACALL SZC9 ;7  ;;检测遥控晚上设防等于0调用子程序
TZK13:;MOV A,JANQ
      NOP
      NOP
    JB 18H,ZDZ1      ;
  MOV 47H,#00H
  MOV 48H,#00H
  MOV 47H,#0F7H   ;0F8
  MOV 48H,#0FFH
     MOV A,SECD    ;
    CJNE A,#56,ZDZ  ;电话打入中断后53秒后清标志位,开外中断
ZDZ:JC ZDZ1
    MOV SECD,#00H
    SETB EX1
  CLR 20H
ZDZ1:
  NOP
  NOP
  JNB 18H,LZ2  ;???/
    MOV A,SECET
     CJNE A,#4,LZ1   ;等待6分钟后清21H标志位
LZ1: JC LZ2
    NOP
  NOP
    CLR 18H
     CLR 18H      ;清触发后电话打入标志位
      CLR 21H
     CLR 22H
     CLR 23H
     CLR 24H
   MOV 47H,#00H
   MOV 48H,#00H
  MOV 47H,#0F7H   ;0F8
  MOV 48H,#0FFH
   MOV SECET,#00H
LZ2: AJMP LOOP


    ;大门防盗触发子程序
SZC1:;PUSH PSW
      MOV R0,#2   ;监听,语音播放2次
DGS2: CLR P2.7  ;触发语音播放
     MOV SEC,#00H  ;时间内存清0
DGS:MOV 0A6H,#01EH
    MOV 0A6H,#0E1H
     MOV A,SEC
   CJNE A,#8,DGSS  ;语音播放10秒
DGSS:JC DGS    ;;;
   SETB P2.7    ;10秒时间到关语音播放
   SETB P3.0 ;开监听
   MOV SEC,#00H  ;时间内存清0
DGS1: MOV 0A6H,#01EH    ;看门狗
      MOV 0A6H,#0E1H    ;看门狗
     MOV A,SEC
     CJNE A,#53,DGSS1  ;监听75秒
DGSS1:JC DGS1  ;;;
   CLR P3.0  ;75秒时间到关监听
   DJNZ R0,DGS2
   CLR P3.7  ;监听等2次到挂机
   CLR 20H    ;清拨打电话标志位
   MOV SEC,#00H
DGS3: MOV 0A6H,#01EH    ;看门狗
      MOV 0A6H,#0E1H    ;看门狗
  NOP
  NOP
      JB P1.6,GFZ
  ACALL DELKY1
  JB P1.6,GFZ  ;遥控按下报警
  SJMP DGS4
GFZ: JB 20H,DGS4    ;SY0  ;;;
     MOV A,SEC   ;85秒内等待拨打喇叭报警电话
     CJNE A,#190,DGSS3   ;
DGSS3:JC DGS3
     SJMP DGS5
DGS4:;JC DGS5   ;比较振铃次数小于5转退出
     SETB P3.1  ;切换喇叭报警继电器
     CLR P2.0 ;振铃大于5次喇叭报警
   SETB P3.0  ;开监听
   MOV SEC,#00H
DGS6: MOV 0A6H,#01EH    ;看门狗
     MOV 0A6H,#0E1H    ;看门狗
     MOV A,SEC
     CJNE A,#26,DGSKS6  ;报警延时26秒
DGSKS6:JC DGS6
      SETB P2.0   ;关喇叭报警
      CLR P3.1
      CLR P3.1
       MOV SEC,#00H
KSL6: MOV 0A6H,#01EH    ;看门狗
     MOV 0A6H,#0E1H    ;看门狗
       MOV A,SEC
       CJNE A,#53,KSL7   ;大于30秒关闭监听
KSL7:   JC KSL6
       CLR P3.0
       CLR P3.0  ;关监听
DGS5:NOP
       NOP
       CLR 18H
      CLR 18H      ;清触发后电话打入标志位
   CLR 20H     ;清标志位
   CLR 21H
     CLR 22H
     CLR 23H
     CLR 24H
   CLR P3.7   ;电话挂机
   CLR P3.7
   MOV 47H,#00H
   MOV 48H,#00H
  MOV 47H,#0F7H   ;0F8
  MOV 48H,#0FFH
       RET  ;程序返回
  
  
     


    ;客厅防盗触发子程序
SZC2:;PUSH PSW
     MOV R0,#2  ;监听,语音播放2次
DGSJ2: CLR P2.5  ;触发语音播放
     MOV SEC,#00H  ;时间内存清0
DGSJ: MOV 0A6H,#01EH    ;看门狗
     MOV 0A6H,#0E1H    ;看门狗
     MOV A,SEC
   CJNE A,#8,DGSJK  ;语音播放10秒
DGSJK:JC DGSJ
   SETB P2.5   ;10秒时间到关语音播放
   SETB P3.0 ;开监听
   MOV SEC,#00H  ;时间内存清0
DGSJ1: MOV 0A6H,#01EH    ;看门狗
       MOV 0A6H,#0E1H    ;看门狗
     MOV A,SEC
     CJNE A,#53,DGSJK1  ;监听75秒
DGSJK1:JC DGSJ1
   CLR P3.0   ;75秒时间到关监听
   DJNZ R0,DGSJ2
   CLR P3.7  ;监听等2次到挂机
   CLR 20H    ;清拨打电话标志位
   MOV SEC,#00H
DGSJ3: MOV 0A6H,#01EH    ;看门狗
     MOV 0A6H,#0E1H    ;看门狗
   NOP
   NOP
      JB P1.6,GFZ1
  ACALL DELKY1
  JB P1.6,GFZ1   ;遥控按下报警
  SJMP DGSJ4
GFZ1: JB 20H,DGSJ4    ;SY1
     MOV A,SEC   ;85秒内等待拨打喇叭报警电话
     CJNE A,#190,DGSJK3   ;
DGSJK3:JC DGSJ3
     SJMP DGSJ5
DGSJ4:;JC DGSJ5   ;比较振铃次数小于8转退出
      SETB P3.0
      SETB P3.1  ;切换喇叭报警继电器
     CLR P2.0 ;振铃大于2次喇叭报警
   MOV SEC,#00H
DGSJ6: MOV 0A6H,#01EH    ;看门狗
     MOV 0A6H,#0E1H    ;看门狗
     MOV A,SEC
     CJNE A,#26,DGSJK6  ;报警延时26秒
DGSJK6:JC DGSJ6
       SETB P2.0   ;关喇叭报警
       CLR P3.1
   CLR P3.1
       MOV SEC,#00H
KSL4: MOV 0A6H,#01EH    ;看门狗
     MOV 0A6H,#0E1H    ;看门狗
       MOV A,SEC
       CJNE A,#53,KSL5  ;大于30秒关闭监听
KSL5:   JC KSL4
       CLR P3.0
   CLR P3.0
DGSJ5:NOP
       NOP
       CLR 18H
      CLR 18H      ;清触发后电话打入标志位
   CLR 20H     ;清标志位
      CLR 21H
     CLR 22H
     CLR 23H
     CLR 24H
   CLR P3.7
   CLR P3.7   ;电话挂机
   MOV 47H,#00H
   MOV 48H,#00H
  MOV 47H,#0F7H   ;0F8
  MOV 48H,#0FFH
       RET  ;程序返回
  
     

    ;二层防盗触发子程序
SZC3:;PUSH PSW

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -