找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8334|回复: 7
收起左侧

单片机防盗报警器仿真与程序 按键控制实现报警、布防、撤防

  [复制链接]
ID:198608 发表于 2017-10-26 11:31 | 显示全部楼层 |阅读模式

采用51单片机控制,用按键代替人体感应模块如果按下感应到人体绿灯亮,否则灭

3个按键:
紧急报警按键
布防按键
取消报警/布防按键

操作说明:
1、按下紧急报警按键,紧急报警灯闪烁,蜂鸣器报警
2、按下布防按键,布防指示灯开始闪烁,闪烁大约30秒,保持亮的状态,进入布防模式
3、按下取消报警/布防按键,取消布防和紧急报警功能

0.png 0.png

单片机源程序如下:
  1. //51单片机简人体红外报警器设计,手动按键控制实现紧急报警、布防、撤防、关闭报警)//
  2. #include <reg52.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int

  5. uchar Mode=1,Mode1=0;
  6. uchar t;

  7. sbit s1=P1^0;
  8. sbit s2=P1^2;
  9. sbit s3=P1^1;

  10. bit alarm=1,kai=1;

  11. sbit LR=P2^0;//红灯报警灯
  12. sbit LY=P2^2;//布防灯
  13. sbit LG=P2^1;//红外信号检测灯

  14. sbit Feng=P1^3;//蜂鸣器报警
  15. sbit HR=P0^3;//红外模块接入端口

  16. void delay(uint x) //毫秒级延时函数
  17. {
  18.   uint i,j;
  19.   for(i=x;i>0;i--)
  20.      for(j=110;j>0;j--);
  21. }

  22. void di()
  23. {
  24.         LR=0;//蜂鸣器报警,红灯跟随闪烁
  25.         Feng=0;
  26.         delay(80);
  27.         LR=1;
  28.         Feng=1;
  29.         delay(200);       
  30. }
  31. void main()
  32. {
  33.         LR=1;//初始化三个灯都是灭
  34.         LG=1;
  35.         LY=1;
  36.         delay(5);
  37.         while(1)
  38.         {
  39.                 if(s1==0)                                //紧急手动报警
  40.                 {
  41.                                 delay(5);           //延时消抖
  42.                                 if(s1==0)       
  43.                                 {
  44.                                         delay(5);
  45.                                         while(!s1);
  46.                                         kai=0;
  47.                                         LY=1;            
  48.                                         LG=1;
  49.                                         alarm=0; //进入报警状态
  50.                                         Mode1=1; //Mode1置1:紧急报警过程中以防按了布防键取消紧急报警
  51.                                         delay(5);
  52.                                 }                         

  53.                 }
  54.                 if(s3==0)                        //取消报警
  55.                 {
  56.                                                                
  57.                                 delay(5);
  58.                                 if(s3==0)                               
  59.                                 {
  60.                                         delay(5);
  61.                                         while(!s3);
  62.                                         LR=1;
  63.                                         LY=1;
  64.                                         Mode=1;
  65.                                         Mode1=0;
  66.                                         alarm=1;
  67.                                         delay(5);
  68.                                 }
  69.                 }
  70.                 if(s2==0)                        //布防
  71.                 {
  72.                         if(Mode1==1) //判断Mode1的状态,如果是紧急报警状态就保持,否则进入布防设置
  73.                         {
  74.                                 alarm=0;
  75.                         }
  76.                         else
  77.                         {
  78.                                 for(t=0;t<200;t++)
  79.                                 {
  80.                                   LY=~LY;
  81.                                   delay(200);
  82.                                 }
  83.                                 LR=1;
  84.                                 LY=0;
  85.                                 Mode=0;        //布防状态标识
  86.                                 kai=1;
  87.                                 delay(5);
  88.                         }
  89.                                
  90.                 }                
  91.                 if(alarm==0)
  92.                 {
  93.                         di();
  94.                         delay(100);
  95.                         di();
  96.                         delay(100);
  97.                 }
  98.                 if(HR==1&&Mode==0)
  99.                 {
  100.                         alarm=0;//开始进入报警
  101.                 }
  102.                 else
  103.                 {
  104.                         if(kai)
  105.                         {
  106.                                 alarm=1;
  107.                                 LR=1;
  108.                         }
  109.                 }
  110.                 if(HR==1)  //检测红外模块有信号,绿灯亮,否则灭
  111.                 {          
  112.                         LG=0;
  113.                         delay(200);
  114.                 }
  115.                 else
  116.                 {
  117.                         LG=1;
  118.                 …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
单片机防盗报警器.rar (104.7 KB, 下载次数: 203)
回复

使用道具 举报

ID:221012 发表于 2017-10-31 19:34 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:318313 发表于 2018-5-9 14:41 来自手机 | 显示全部楼层
这个有没得 hex文件
回复

使用道具 举报

ID:293762 发表于 2018-5-9 21:57 | 显示全部楼层
谢谢楼主的分享!努力学习中……
回复

使用道具 举报

ID:469192 发表于 2019-1-18 17:53 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

ID:313118 发表于 2019-3-21 12:33 | 显示全部楼层
谢谢楼主的分享
回复

使用道具 举报

ID:755944 发表于 2020-5-19 18:34 | 显示全部楼层
谢谢楼主的分享学习一下
回复

使用道具 举报

ID:762192 发表于 2020-5-27 09:45 | 显示全部楼层
有PCB么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表