功能介绍:
采用51单片机+MQ2烟雾传感器+火焰传感器+DS18b20+按键+LED灯+LCD1602显示屏+蜂鸣器,设计一个温度烟雾火焰检测火灾的一个装置,可以通过按键设置温度和烟雾的上限值,超过上限值蜂鸣器报警,并且LED灯做出相应的指示,LCD显示相关的数据,下面是相关资料的介绍:文末有资料分享:
2-基于51单片机温度烟雾火焰检测火灾着火报警(程序+原理图+元件清单+演示视频)
程序部分展示,有中文注释,新手容易看懂
void main()
{
USART_Init();
ADC_Init();//ADC初始化
init();//LCD初始化
delay_m(200);
key1=key2=key3=1;
while (1)
{
if(key1==0)//设置按键
{
bug++;
if(bug>2) bug=0;
}
if(key2==0&&bug==1)//温度按键+
{
buf++;
if(buf>99) buf=99;
}
if(key3==0&&bug==1)//温度按键-
{
buf--;
if(buf<1) buf=1;
}
if(key2==0&&bug==2)//浓度按键+
{
buf1++;
if(buf1>99) buf1=99;
}
if(key3==0&&bug==2)//浓度按键-
{
buf1--;
if(buf1<1) buf1=1;
}
e=ADC_Value(0)*100-180; //读取烟雾浓度
if(e>400) e=0;
write_1602(13, e%1000/100+0x30); //显示函数
write_1602(14, e%100/10+0x30);
write_1602(15, e%10+0x30);
write1_1602(13, buf%1000/100+0x30);
write1_1602(14, buf%100/10+0x30);
write1_1602(15, buf%10+0x30);
wen1=Get_Tmp(); //读取温度
write_1602(6, wen1%1000/100+0x30);//显示
write_1602(7, wen1%100/10+0x30);
write_1602(9, wen1%10+0x30);
write1_1602(6, buf1%100/10+0x30);
write1_1602(7, buf1%10+0x30);
beep=1;
if(e>buf)//浓度大于预设值 led和蜂鸣器报警
{
led1=0;
beep=0;
}
else led1=1;
if(wen1>(buf1*10))//温度大于预设值 led和蜂鸣器报警
{
led2=0;
beep=0;
}
else led2=1;
if(huo==0) beep=0; //检测到火焰传感器 蜂鸣器报警
if(bug==0)
{
write1_1602(11, 'E');
write1_1602(0, 'S');
}
if(bug==1)
{
write1_1602(11, 'B');
write1_1602(0, 'S');
}
if(bug==2)
{
write1_1602(11, 'E');
write1_1602(0, 'B');
}
}
}
下面是原理图文件展示: