基于51单片机的烟雾火灾报警器proteus仿真设计
1 开发环境
仿真图:proteus8.9以上
程序代码:KEIL4/KEIL5
原理图:AD
设计编号:A0004
代码讲解+仿真讲解+仿真演示+原理图讲解
操作视频:
基于51单片机的烟雾火灾报警系统仿真设计
2 功能说明介绍
结合实际情况,基于51单片机设计一个烟雾报警器。该系统应满足的功能要求为:
MQ-2烟雾传感,ADC0832模数转换芯片、DS18B20温度传感器、数码管显示、独立按键、声光报警模块。
具体功能:
1、数码管实时监测及显示温度值和烟雾浓度;
2、可通过按键设置烟雾报警值和温度报警值;
3、可实现手动紧急报警和手动取消报警功能;
4、温度超过设定阈值时,蜂鸣器响黄灯闪烁;烟雾超过设定阈值时,蜂鸣器响红灯灯闪烁;
5、测距范围: 烟物浓度:0-9等级;温度范围:0-99度。
3 仿真图
4 程序
工程文件使用Keil4/keil5打开
代码
主函数
/***************主函数*****************/
void main()
{
beep = 0; //开机蜂鸣器叫一声
delay_1ms(200);
P0 = P1 = P2 = P3 = 0xff; //初始化IO口为高电平
temperature = read_temp(); //读取温度值
init_eeprom(); //开始初始化保存的数据
delay_1ms(650);
temperature = read_temp(); //读取温度值
time_init(); //初始化定时器
while(1)
{
key(); //独立按键程序
if(key_can < 10)
{
key_with(); //按键按下要执行的程序
}
if(flag_300ms == 1)
{
flag_300ms = 0;
clock_h_l();
dengji = ad0832read(0);
if(dengji>248)dengji=248;
dengji = dengji * 10 / 250;
temperature = read_temp(); //读取温度值
if(menu_1 == 0)
{
if(temperature >= 99)
temperature = 99;
dis_smg[3]=smg_du[dengji]; //显示烟物报警等级
dis_smg[2]= 0x80; // -
dis_smg[1]=smg_du[temperature/10%10]; //十位
dis_smg[0]=smg_du[temperature%10]; //个位 ADC0832为8位ADC,数值为0~255,我们将其分开放入l_tmpdate数组中显示
// dis_smg[3] = smg_du[dengji/100]; //十位
// dis_smg[2] = smg_du[dengji/10%10]; //十位
// dis_smg[1] = smg_du[dengji%10]; //个位
}
}
delay_1ms(1);
}
}
/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{
static uchar value;
TH0 = 0xf8;
TL0 = 0x30; // 2ms
value ++;
display(); //数码管显示函数
if(value % 150 == 0)
{
flag_300ms = 1; //300ms
value = 0;
}
}
首先要给传感器预热,因为MQ.2型半导体电阻式烟雾传感器在不通电存放一段时间后,再次通电时,传感器不能立即正常采集烟雾信息,需要一段时间预热。程序初始化结束后,系统进入监控状态。主程序流程图如下图所示。
在整个报警系统工作中,烟雾浓度信息经ADC0832转换处理后,由单片机进行分析处理,判断系统是否启动报警。主程序还包括LED八段式数码管浓度字符显示功能、手动报警功能、报警浓度设定功能,中断子程序等,使报警器功能更加完善,更加方便。
预热后,程序就开始执行初始化子程序,初始化实现的功能是I/O口输入、输出状态设定, 寄存器初始化,中断功能等。首先,设定定时初值为50ms,利用IAP 写入EEPROM,作为取值间隔。然后,设置定时器0,选择方式1。方式1状态下,定时器的工作寄存器TH1、TL1,是全16位参与操作。接下来,定时器0中断的允许位置1,打开定时器0,关闭蜂鸣器,开启绿灯,设置报警限初值。
5 原理图
原理图由AD绘制,原理图和仿真图有出入,原理图需要电源,电源开关模块。此设计资料详细,硬件手册资料图片详细,不对硬件调试负责,做实物需要一定的基本功。
智能火灾报警系统的原理是依据当烟雾浓度或温度达到设定值时,烟雾传感器和温度传感器感应到信号由ADC0832进行处理模数转化再到单片机进行处理,喇叭发出报警声音。系统共分为控制电路、检测电路、显示和报警电路。
6 元器件清单
7 清单
本资料下载链接见文章开头的视频