红外报警c语言,基于51单片机的人体红外报警器程序设计
时间: 2023-08-21 16:05:13 浏览: 145
基于51单片机的红外报警器
以下是基于51单片机的人体红外报警器程序设计:
```c
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit sensor = P3^2; // 红外传感器连接的IO口
sbit buzzer = P1^0; // 警报器连接的IO口
void delay(uint t) // 延时函数
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++);
}
void main()
{
uchar count = 0; // 计数器
while(1)
{
if(sensor == 0) // 红外传感器检测到人体
{
count++; // 计数器自增
if(count >= 10) // 连续检测到10次,触发警报
{
buzzer = 1; // 警报器响起
delay(500); // 延时0.5秒
buzzer = 0; // 警报器停止响
count = 0; // 计数器清零
}
}
else
{
count = 0; // 计数器清零
}
delay(10); // 延时0.01秒
}
}
```
上述程序中,通过定义红外传感器和警报器连接的IO口,并在主函数中设置一个计数器,不断检测红外传感器的状态。当检测到人体时,计数器自增,如果连续检测到10次,则触发警报器响起,并延时0.5秒后停止响。如果检测不到人体,则计数器清零。程序中还使用了延时函数,以确保程序的正确执行。
阅读全文