标题:
基于51单片机的人体红外报警器程序设计
[打印本页]
作者:
大哥大雷神
时间:
2016-12-21 14:31
标题:
基于51单片机的人体红外报警器程序设计
//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;
}
}
}
作者:
kkfy888
时间:
2016-12-21 22:07
试验看看正常不
作者:
说过的挺好
时间:
2016-12-21 22:26
抱走~~试试看行不行~
作者:
大哥大雷神
时间:
2016-12-23 11:17
肯定行
作者:
303977143
时间:
2017-11-28 11:39
51有你真好
作者:
1318777948
时间:
2018-6-22 22:36
有没有PCB图啊
作者:
huang137
时间:
2018-11-18 22:19
怎么在开发板上面连接线
作者:
我家小姚
时间:
2018-11-22 13:22
有没有仿真图,原理图呢
作者:
电子灬爱好者
时间:
2018-12-5 15:51
很好的资料
作者:
snowy.
时间:
2019-6-25 10:12
有没有用红外感应人在五米内一直报警的系统呢
作者:
来51学习
时间:
2019-6-26 22:11
snowy. 发表于 2019-6-25 10:12
有没有用红外感应人在五米内一直报警的系统呢
如果人在5米内一直报警,可以采用单次触发模式
作者:
121081
时间:
2019-6-27 10:04
红外感应范围是多少
作者:
ssst
时间:
2019-11-6 20:46
你有没有仿真图啊
作者:
流浪2020年
时间:
2019-12-11 23:48
不可能可以,红外线检测部分实现不了,请楼主认真看看51单片机使用手册,单片机检测不了外部高电平。
作者:
我们不一样111
时间:
2019-12-16 11:28
仿真图没有
作者:
热爱科技生活
时间:
2020-4-20 10:24
是不是要用keil烧录
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1