用89C2051控制的简易拨号报警器

用89C2051制作了一个能自动拨号的报警器 。该报警器利用电话机的重拨功能进行报警 , 电路简单、体积小巧、性能稳定、无误报 , 对电话线路无任何影响 , 经实际使用 , 效果很好 。
该报警器主要由电源电路、控制电路、话机电路三部分组成 。电源电路输出5V、6V两组电源 。5V电源供单片机工作 , 6V电源供继电器工作 , 这样可以防止继电器通断时干扰单片机的工作 。
图1是控制部分的电路图 。由89C2051作主控芯片 。J1、J2二组常开、二组常闭模拟电话摘机 , J3模拟电话重拨;LD0~LD3为电路工作状态指示灯;C7、R6组成上电复位电路;光耦4N25起隔离作用 , 防止因门控开关线太长而将干扰引入单片机的P3.3口 。电路的工作过程是:主人出门前接通报警器电源 , 单片机复位 , 软件初始化 , P1.6输出低电平 , 其余端口输出高电平 , LD0点亮 , 其余指示灯和继电器不工作 。延时30秒后 , P1.6输出高电平 , LD0熄灭;此后 , 软件不断查询是否有盗情发生 , 即P3.3是否为低电平 。一旦有人撬门入室 , 门控开关闭合 , 光耦导通 , P3.3变为低电平 , P1.5输出低电平 , LD1点亮;延时5秒后 , P1.5输出高电平 , P1.4、P3.7、P1.2输出低电平 , J1、J2得电工作 , LD2点亮 , 指示摘机工作状态;延时1秒后 , P1.3、P1.7输出低电平 , J3得电工作 , 模拟按重拨键 , LD3点亮 , 指示重拨工作状态 。延时0.5秒后 , P1.3、P1.7输出高电平 , J3释放 , 按键结束 , LD3熄灭;延时20秒后 , P1.4、P3.7、P1.2输出高电平 , J1、J2释放 , 模拟挂机 , 状态指示灯LD2熄灭 , 同时LD0闪烁 , 表示有小偷来过 。说明:开机初始化后延时30秒 , 在这段时间内 , 即使门打开 , 报警器也不会拨打电话 , 以给主人预留出门时间;检测到有人入室后 , 延时5秒使主人回来时有足够的时间关闭隐藏的报警器电源开关 。
图2是话机部分的电路图 。K1、K2是话机的叉簧开关(图示为挂机状态) 。只要把J1、J2的常开触点J1-1、J2-1与叉簧开关的常开触点并联 , J1、J2的常闭触点J1-2、J2-2与叉簧开关的常闭触点串联;J3的常开触点J3-1与重拨键并联即可 。J1、J2、J3与电话机用10脚的电脑排线及10脚插座连接 。需要说明的是:有的电话机重拨记忆的时间有限 , 这时需要更改电话机拨号集成电路的电源 , 或者改用存储拨号 。
报警器制作好后 , 主人出门前在电话机上键入自己的手机号或自动呼机号 , 一个能自动拨打手机、呼机的报警器便制作成功了 。
【用89C2051控制的简易拨号报警器】 
源程序清单:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: CLR P1.6 ;LD0亮
MOV R3 , #3CH ;延时30秒
LOOP1:ACALL DELAY
DJNZ R3 , LOOP1
SETB P1.6 ;LD0熄灭
LOOP2:JNB P3.3 , LOOP3;门控开关接通?
AJMP LOOP2 ;未接通返回
LOOP3:NOP ;延时10微秒抗干扰
NOP
NOP
NOP
NOP
JNB P3.3 , LOOP4;门控开关接通?
AJMP LOOP2 ;未接通返回
LOOP4:CLR P1.5 ;接通 , LD1亮
MOV R6 , #0AH ;延时5秒
LOOP5:ACALL DELAY
DJNZ R6 , LOOP5
SETB P1.5 ;LD1灭
CLR P1.4 ;LD2亮
CLR P3.7 ;J1接通 , 模拟摘机
CLR P1.2 ;J2接通 , 模拟摘机
ACALL DELAY ;延时0.5秒
ACALL DELAY ;延时0.5秒
CLR P1.3 ;LD3亮
CLR P1.7 ;J3接通 , 模拟拨号
ACALL DELAY ;延时0.5秒
SETB P1.3 ;LD3熄灭
SETB P1.7 ;J3释放 , 拨号完成
MOV R3 , #28H ;延时20秒
LOOP6:ACALL DELAY
DJNZ R3 , LOOP6
SETB P1.4 ;摘机指示灯熄灭
SETB P3.7 ;J1断开 , 挂机
SETB P1.2 ;J2断开 , 挂机
LOOP7:CPL P1.6 ;LD0闪烁
ACALL DELAY
AJMP LOOP7
DELAY:MOV R5 , #0FAH;延时0.5秒子程序
LOOP8:MOV R4 , #0F9H
LOOP9:NOP
NOP
DJNZ R4 , LOOP9
DJNZ R5 , LOOP8
RET
END

    推荐阅读