找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13179|回复: 15
打印 上一主题 下一主题
收起左侧

基于51单片机的人体红外报警器程序设计

  [复制链接]
跳转到指定楼层
楼主
ID:139093 发表于 2016-12-21 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//51单片机简人体红外报警器设计,手动按键控制实现紧急报警、布防、撤防、关闭报警)//
#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int

uchar Mode=1,Mode1=0;
uchar t;

sbit s1=P1^0;
sbit s2=P1^2;
sbit s3=P1^1;

bit alarm=1,kai=1;

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

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

void delay(uint x) //毫秒级延时函数
{
  uint i,j;
  for(i=x;i>0;i--)
     for(j=110;j>0;j--);
}

void di()
{
        LR=0;//蜂鸣器报警,红灯跟随闪烁
        Feng=0;
        delay(80);
        LR=1;
        Feng=1;
        delay(200);        
}
void main()
{
        LR=1;//初始化三个灯都是灭
        LG=1;
        LY=1;
        delay(5);
        while(1)
        {
                if(s1==0)                                //紧急手动报警
                {
                                delay(5);            //延时消抖
                                if(s1==0)        
                                {
                                        delay(5);
                                        while(!s1);
                                        kai=0;
                                        LY=1;            
                                        LG=1;
                                        alarm=0;  //进入报警状态
                                        Mode1=1;  //Mode1置1:紧急报警过程中以防按了布防键取消紧急报警
                                        delay(5);
                                }                        

                }
                if(s3==0)                           //取消报警
                {
                                                               
                                delay(5);
                                if(s3==0)                                
                                {
                                        delay(5);
                                        while(!s3);
                                        LR=1;
                                        LY=1;
                                        Mode=1;
                                        Mode1=0;
                                        alarm=1;
                                        delay(5);
                                }
                }
                if(s2==0)                        //布防
                {
                        if(Mode1==1)    //判断Mode1的状态,如果是紧急报警状态就保持,否则进入布防设置
                        {
                                alarm=0;
                        }
                        else
                        {
                                for(t=0;t<200;t++)
                                {
                                  LY=~LY;
                                  delay(200);
                                }
                                LR=1;
                                LY=0;
                                Mode=0;        //布防状态标识
                                kai=1;
                                delay(5);
                        }
                                
                }                 
                if(alarm==0)
                {
                        di();
                        delay(100);
                        di();
                        delay(100);
                }
                if(HR==1&&Mode==0)
                {
                        alarm=0;//开始进入报警
                }
                else
                {
                        if(kai)
                        {
                                alarm=1;
                                LR=1;
                        }
                }
                if(HR==1)  //检测红外模块有信号,绿灯亮,否则灭
                {           
                        LG=0;
                        delay(200);
                }
                else
                {
                        LG=1;
                }                        
        }
}


评分

参与人数 2黑币 +8 收起 理由
光阴程序 + 3 共享资料的黑币奖励!
1318777948 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶4 踩
回复

使用道具 举报

沙发
ID:98767 发表于 2016-12-21 22:07 | 只看该作者
试验看看正常不
回复

使用道具 举报

板凳
ID:156689 发表于 2016-12-21 22:26 | 只看该作者
抱走~~试试看行不行~
回复

使用道具 举报

地板
ID:139093 发表于 2016-12-23 11:17 | 只看该作者
肯定行
回复

使用道具 举报

5#
ID:249258 发表于 2017-11-28 11:39 来自手机 | 只看该作者
51有你真好
回复

使用道具 举报

6#
ID:356943 发表于 2018-6-22 22:36 | 只看该作者
有没有PCB图啊
回复

使用道具 举报

7#
ID:411407 发表于 2018-11-18 22:19 | 只看该作者
怎么在开发板上面连接线
回复

使用道具 举报

8#
ID:431120 发表于 2018-11-22 13:22 | 只看该作者
有没有仿真图,原理图呢
回复

使用道具 举报

9#
ID:422725 发表于 2018-12-5 15:51 | 只看该作者
很好的资料
回复

使用道具 举报

10#
ID:571461 发表于 2019-6-25 10:12 | 只看该作者
有没有用红外感应人在五米内一直报警的系统呢
回复

使用道具 举报

11#
ID:425825 发表于 2019-6-26 22:11 | 只看该作者
snowy. 发表于 2019-6-25 10:12
有没有用红外感应人在五米内一直报警的系统呢

如果人在5米内一直报警,可以采用单次触发模式
回复

使用道具 举报

12#
ID:573202 发表于 2019-6-27 10:04 来自手机 | 只看该作者
红外感应范围是多少
回复

使用道具 举报

13#
ID:634955 发表于 2019-11-6 20:46 | 只看该作者
你有没有仿真图啊
回复

使用道具 举报

14#
ID:662063 发表于 2019-12-11 23:48 | 只看该作者
不可能可以,红外线检测部分实现不了,请楼主认真看看51单片机使用手册,单片机检测不了外部高电平。
回复

使用道具 举报

15#
ID:664971 发表于 2019-12-16 11:28 | 只看该作者
仿真图没有
回复

使用道具 举报

16#
ID:726183 发表于 2020-4-20 10:24 来自手机 | 只看该作者
是不是要用keil烧录
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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