笔者在业余时间设计制作了一台红外线防盗报警器。具有以下特点:用当今最流行的AT89C2051单片机控制,体积小,成本低;用红外线收发管进行检测,安装隐蔽,不易被发现;探测信号采用脉冲信号,节能且抗干扰;当有人试图闯入室内时,能自动进行声光报警。现将该报警器原理介绍如下,供广大单片机爱好者参考。 一、硬件电路 电路原理图如图1所示。可将该电路分为以下三个部分。

1、电源电路。220V交流市电经变压器T降压,桥式整流器D1整流,电解电容C7滤波,三端稳压器78L05稳压,最后得到整机要求的+5V稳定直流电源。 2、单片机系统。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。 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)。采用中断方式编程,整个软件由主程序和中断服务程序两部分构成。
| YES |
| NO |
| NO |
| YES |
|
开始 |
| 系统初始化 |
|
有人闯入? |
|
启动定时
![]() 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完成
字串2
字串1
字串7
|

