//宏定义
#define uchar unsigned char
#define uint unsigned int
//头函数
#include <reg52.h>
uchar Mode=1,t;
sbit s1=P1^2;
sbit s2=P1^3;
sbit s3=P1^4;
bit alarm=1,kai=1;
//LED
sbit LR=P0^0;
sbit LY=P0^1;
sbit LG=P0^2;
//蜂鸣器
sbit Feng=P2^7;
//人体热释电传感器
sbit HR=P2^4;
void delay(uint x) //毫秒级延时函数
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void di()
{
Feng=0;
delay(100);
Feng=1;
}
void main()
{
LR=1;
LG=1;
LY=1;
while(1)
{
if(s1==0) //紧急手动报警
{
delay(5);
if(s1==0) //紧急手动报警
{
delay(5);
while(!s1);
di();
//开启指示灯 报警红灯
kai=0;
LR=0;
LY=1;
LG=1;
alarm=0;
delay(200);
}
}
if(s3==0) //取消报警
{
delay(5);
if(s3==0)
{
delay(5);
while(!s3);
di();
//关闭模式
// Mode=1;
LR=1;
alarm=1;
delay(200);
}
}
if(s2==0) //布防
{
delay(5);
if(s2==0)
{
delay(5);
while(!s2);
di();
//延时30秒左右设防
for(t=0;t<100;t++)
{
LY=~LY;
delay(200);
}
//开启指示灯 布防黄灯
LR=1;
LY=0;
LG=1;
Mode=0;
kai=1;
}
}
if(alarm==0)
{
//报警
di();
delay(100);
di();
delay(100);
}
//判断红外状态
if(HR==1&&Mode==0)
{
LR=0; //报警红灯
alarm=0;
}
else
{
if(kai)
{
alarm=1;
LR=1;
}
}
if(HR==1)
{
LG=0;
delay(200);
}
else
{
LG=1;
}
}
}
链接:https://pan.baidu.com/s/1ABme-nbEq7NgVkDbOuVxEA 提取码:kmbo
|