📄 fangdaoqi.txt
字号:
家用防盗器程序供给各位初学者参考
;在使用已成功
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 + -