单片机控制红外线防盗报警器

2016-07-05 15:37

  笔者在业余时间设计制作了一台红外线防盗报警器。具有以下特点:用当今最流行的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
开始
系统初始化
有人闯入?
启动定时
时间到吗?
转报警程序
图2 主程序流程图
等待时间到
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完成

1S到吗?
P3.7取反
中断返回
保护现场
图3  中断服务程序流程图
重设定时初值
恢复现场
YES
NO
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、软件调试。先在Keilc51环境中进行软件调试,再利用编程器将调试好的程序固化到AT89C2051单片机中。
  2、硬件调试
(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插座上,接上电源即可工作。