单片机控制红外线防盗报警器
一、硬件电路
电路原理图如图1所示。可将该电路分为以下三个部分。
用当今最流行的AT89C2051单片机控制,体积小,成本低;用红外线收发管进行检测,安装隐蔽,不易被发现;探测信号采用脉冲信号,节能且抗干扰;当有人试图闯入室内时,能自动进行声光报警。现将该报警器原理介绍如下,供广大单片机爱好者参考。
1、单片机系统。U1为AT89C2051单片机。C1,R0,R1和复位按钮RESET组成手动电平复位和上电自动复位电路;C2,C3以及晶振JT1组成时钟电路;C4,C5为+5V电源滤波电容。U2为CMOS6反相器CC4069,起驱动作用。VD1~VD6为红外发射管,其负极端接与P1口,P1口设置为输出状态,当P1口为“0”时,VD1~VD6发红外光。VD7~VD12为红外接收管,当接收到红外光时导通,+5V电源通过VD7~VD12加到反相器CC4069的输入端,经反相为低电平,这时P3.0~P3.5为低电平。发射管和接收管分别安装在门和窗口的适当位置,当有人闯入时遮挡了红外线,接收管截止,反相器输入端为低电平,这时U1的P3.0~P3.5为高电平。当在一定时间内检测到位于不同位置的光束被遮挡时,则由P3.7口输出报警信号(高低电平间隔1S的脉冲信号)。驱动声光报警电路,进行声光报警,直至按复位按钮RESET或电源开关S1。由于红外收发管之间没有遮挡时为正常,有遮挡时为异常,则当P1口输出00H时,P3口的正常状态数据为00H。
2、电源电路。220V交流市电经变压器T降压,桥式整流器D1整流,电解电容C7滤波,三端稳压器78L05稳压,最后得到整机要求的+5V稳定直流电源。
3、声光报警电路。555定时器U4,扬声器BY,普通红色发光二极管VD13等组成声光报警电路。其中555定时器接成了一个低频多谐振荡器,其控制电压输入端5脚与单片机AT89C2051的P3.7脚相连,受P3.7脚输出的高低电平间隔1S的脉冲信号控制。当P3.7为高电平时控制电压Uco较高,阈值电压UT+(=Uco)和UT-(=1/2Uco)也较高;当P3.7为低电平时UT+和UT-也较低。当UT+较高时,电容C9充、放电的电压幅度较大,因而振荡频率较低。反之,当UT+较低时,电容C9充、放电过程中电压变化幅度较小,充、放电过程完成得较快,故振荡频率较高。即当P3.7=1时,555输出脉冲的振荡频率较低;当P3.7=0时,555输出脉冲的振荡频率高。该输出脉冲经过隔直电容C8加到扬声器上,扬声器将交替发出高、低不同的两种叫声。同时,P3.7脚输出的高低电平间隔1S的脉冲信号经电阻R8加到红色发光二极管VD13上,VD13将闪烁发光。达到声光同时报警的效果。
二、软件设计
我们的目标是,当检测到有人闯入时就由P3.7口输出高低电平间隔1S的脉冲信号去驱动声光报警电路,产生声光报警。这可通过使P3.7口每隔1S取反一次实现。而1S时间可通过让定时器T0(工作于定时方式1)重复定时100ms十次实现。用工作寄存器R1作循环计数器,初值为10(0AH)。采用中断方式编程,整个软件由主程序和中断服务程序两部分构成。
开始
有人闯入?
启动定时
时间到吗?
转报警程序
等待时间到
1、主程序。主要功能是对系统进行初始化和对系统进行监视。看是否有人闯入。其程序流程图如图2所示。
程序清单如下:
ORG 0000H
AJMP MAIN ;转向主程序
ORG 000BH ;定时器T0中断入口
LJMP BJ ;转向中断服务程序
ORG 0030H
MAIN:MOV SP,#50H ;设置堆栈栈底
MOV R1,#0AH ;设置循环计数器初值
MOV P3,#00H ;设置P3口为正常状态
MOV P1,#00H ;使VD1~VD6发红外光
MOV TMOD,#01H;设T0为定时方式1
MOV TH0,#3CH ;设置定时100ms初值
MOV TL0,#0B0H
SETB EA ;CPU开中断
SETB ET0 ;定时器0允许中断
JS:MOV A,P3 ;监视是否有人闯入
CJNE A,#00H,LP
AJMP JS
LP:SETB TR0 ;启动T0定时100ms
SJMP $ ;等待定时100ms完成
P3.7取反
中断返回
保护现场
重设定时初值
2、中断服务程序。主要功能是判断定时1S是否完成,从而决定是否对P3.7口取反。其程序流程图如图3所示。
程序清单如下:
ORG 0060H
BJ:PUSH Acc ;现场保护
PUSH PSW
MOV TH0,#3CH ;重设定时初值
MOV TL0,#0B0H
DJNZ R1,FH ;1S未到返回
MOV R1,#0AH ;重设计数器初值
CPL P3.7 ;P3.7口取反
FH:POP PSW ;恢复现场
POP Acc
RETI ;中断返回
END
三、系统调试
1、硬件调试(1)检查线路应焊接无误。(2)电源电路调试。断开负载,用万用表测量78L05的3脚应有+5V电压。(3)先不装入AT89C2051单片机,用短路线把U1插座的12脚接地,调整VD1和VD7的安装位置和角度,测量U1插座的2脚电压。当VD1和VD7之间无遮挡时2脚电压为0伏,有遮挡时为+5伏。用相同方法反复调整其他几对红外收发管的位置和角度。使U1插座的3、6、7、8、9各脚的电压符合要求。(4)将固化好程序的AT89C2051插入电路中的U1插座上,接上电源即可工作。
2、软件调试。先在Keilc51环境中进行软件调试,再利用编程器将调试好的程序固化到AT89C2051单片机中。