使用单片机设计一种火灾监测报警系统?

发布者:真诚友爱最新更新时间:2024-06-18 来源: elecfans关键字:单片机  控制器 手机看文章 扫描二维码
随时随地手机看文章

一、功能简介


本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602显示模块、按键模块、LED和蜂鸣器、继电器直流电机模块、DS18B20温度传感器、MQ2烟雾传感器等。



主要功能:


系统运行后,LCD1602显示温度和MQ2烟雾传感器检测的温度及烟雾浓度;当检测温度或烟雾浓度高于设置的温度或烟雾阈值,则声光报警且浇水 灭火装置开启。可通过按键K3进入阈值设置模式,K1和K2进行加减调节, K4确定。


主要功能如下:


(1)温度/烟雾浓度检测;


(2)LCD1602显示;


(3)温度/烟雾阈值设置;


(4)超限声光报警;


(5)自动灭火。


二、软件设计


//参数初始化


void sys_parm_init(void)


{


sys_ctrl.mode=0;


sys_ctrl.temph=50;


sys_ctrl.smokeh=55;


}


//系统初始界面显示


void sys_open_show(void)


{


lcd1602_clear();


lcd1602_show_string(0,0,'Tp: C');


lcd1602_show_string(9,0,'TpH: C');


lcd1602_show_string(0,1,'Yw: %');


lcd1602_show_string(9,1,'YwH: %');


}


//系统数据获取


void sys_data_get(void)


{


static u8 i=0;


while(1)


{


//温度获取


i++;


if(i%10==0)


sys_ctrl.temp=DS18B20_GetTemperture();


//烟雾浓度获取


sys_ctrl.smoke=pcf8591_read_adcvalue(0);


sys_ctrl.smoke=cal_map(sys_ctrl.smoke,0,255,0,99);


break;


}


}


//系统数据显示


void sys_data_show(void)


{


while(1)


{


//温度显示


lcd1602_show_nums(3,0,sys_ctrl.temp,2,0);


//烟雾浓度显示


lcd1602_show_nums(3,1,sys_ctrl.smoke,2,0);


//温度阈值显示


lcd1602_show_nums(13,0,sys_ctrl.temph,2,0);


//烟雾浓度阈值显示


lcd1602_show_nums(13,1,sys_ctrl.smokeh,2,0);


//阈值设定,数据位置闪烁


switch(sys_ctrl.mode)


{


case 1://温度


lcd1602_show_string(13,0,' ');


delay_ms(100);


lcd1602_show_nums(13,0,sys_ctrl.temph,2,0);


break;

case 2://烟雾浓度


lcd1602_show_string(13,1,' ');


delay_ms(100);


lcd1602_show_nums(13,1,sys_ctrl.smokeh,2,0);


break;

}


break;


}


}


//系统数据设置


void sys_data_set(void)


{


u8 key=0;


key=KEY_Scan(0);


//模式设置


if(key==KEY3_PRESS)


{


sys_ctrl.mode++;


if(sys_ctrl.mode>=3)sys_ctrl.mode=1;


}


//在设置模式下,加


else if(key==KEY1_PRESS)


{


switch(sys_ctrl.mode)


{


case 1://温度阈值


sys_ctrl.temph++;


if(sys_ctrl.temph >99)sys_ctrl.temph=0;


break;

case 2://烟雾浓度阈值


sys_ctrl.smokeh++;


if(sys_ctrl.smokeh >99)sys_ctrl.smokeh=0;


break;

}


}


//在设置模式下,减


else if(key==KEY2_PRESS)


{


switch(sys_ctrl.mode)


{


case 1://温度阈值


sys_ctrl.temph--;


if(sys_ctrl.temph< 0)sys_ctrl.temph=99;


break;

case 2://烟雾浓度阈值


sys_ctrl.smokeh--;


if(sys_ctrl.smokeh< 0)sys_ctrl.smokeh=99;


break;

}


}


//确定


else if(key==KEY4_PRESS)


{


sys_ctrl.mode=0;


}


}


//系统功能控制


void sys_fun_ctrl(void)


{


//正常工作模式下


if(sys_ctrl.mode==0)


{


//若温度高于阈值,或者,烟雾浓度高于阈值则蜂鸣器声光报警,开启灭火装置


if(sys_ctrl.temp>sys_ctrl.temph || sys_ctrl.smoke>sys_ctrl.smokeh)


{


RELAY=0;//打开灭火装置


beep_alarm(1,1000);//打开蜂鸣器报警


}


//若温度和烟雾浓度都低于阈值,则关闭蜂鸣器,关闭灭火装置


else


{


RELAY=1;//关闭灭火装置


BEEP=1;//关闭蜂鸣器报警


}


}


}


//应用控制系统


void appdemo_show(void)


{


u8 i=10;


sys_parm_init();//系统参数初始化


KEY_Init();


BEEP_Init();


DS18B20_Init();


ctrl_pin_init();


pcf8591_init();


lcd1602_init();//LCD1602初始化


//读取温度数据,等待稳定


while(i--)


{


//温度获取


sys_ctrl.temp=DS18B20_GetTemperture();


//烟雾浓度获取


sys_ctrl.smoke=pcf8591_read_adcvalue(0);


sys_ctrl.smoke=cal_map(sys_ctrl.smoke,0,255,0,99);


delay_ms(100);


}


sys_open_show();//系统初始界面显示


while(1)


{


sys_data_get();//系统数据获取


sys_data_show();//系统数据显示


sys_data_set();//系统数据设置


sys_fun_ctrl();//系统功能控制


}


}


三、实验现象

图片

图片

图片


关键字:单片机  控制器 引用地址:使用单片机设计一种火灾监测报警系统?

上一篇:用面向对象思想封装IIC、AT24C64驱动
下一篇:总结一下定时器的几种输出比较模式

推荐阅读最新更新时间:2026-03-19 11:51

英飞凌AURIX™ TC3x汽车微控制器系列新增400 MHz 新型号,可提高实时计算性能而免于平台更换
英飞凌AURIX™ TC3x汽车微控制器系列新增400 MHz 新型号,可提高实时计算性能而免于平台更换 【2026年3月9日,德国慕尼黑讯】 英飞凌科技股份公司近日宣布,在其 AURIX™ TC3x 系列汽车微控制器(MCU)中新增400 MHz 新型号。 该产品专为应对动力总成、底盘、以及区域控制/域控制设计等领域日益增长的软件复杂性和实时处理需求而设计,旨在帮助整车厂和Tier 1供应商在无需承担高昂平台迁移成本的前提下,实现功能升级。通过在成熟的AURIX TC3x 架构中进一步提升性能,这款400 MHz的半导体器件能够加快部署速度并降低集成风险,同时保留了对现有软件、安全概念和硬件设计的投资。 英飞凌科技
[嵌入式]
英飞凌AURIX™ TC3x汽车<font color='red'>微控制器</font>系列新增400 MHz 新型号,可提高实时计算性能而免于平台更换
upyOS:基于 MicroPython 的模块化操作系统,兼容 ESP32、RP2040 等微控制器
upyOS 是一款模块化、轻量级的基于 MicroPython 的操作系统(OS),专为 Espressif ESP32/ESP32-C3/ESP32-S3、树莓派 RP2040 等低资源微控制器设计,旨在为开发者提供类 Unix 的开发体验。其设计灵感源自 smolOS,集成远程开发工具、OTA 升级功能及内置 Web 服务器,通过模块化架构将系统功能拆分为可复用组件,避免传统单体程序的资源冗余问题。 upyOS 核心特性解析 模块化架构设计将命令与系统功能拆解为独立小模块,大幅降低内存占用。例如网络配置、文件系统操作等功能均以插件形式存在,开发者可按需加载,适配不同硬件资源的微控制器。 类 Unix 交互体验内置 sh
[嵌入式]
8位mcu控制器的架构特征是什么?有哪些应用设计?
8位MCU(微控制器)是一种集成了一些精密模拟外设、可配置GPIO引脚、串行接口和快速数据总线架构的低引脚数设备。这种控制器具有多种架构特征和应用设计。 首先,8位MCU采用8位CPU,其指令长度为8位,因此其寻址空间和寄存器数量等都是有限的。但是,通过引入分段和分页设计思想,可以扩展其寻址范围。分段是将存储器的线性地址分解成二维或多维地址,而分页则是将每个段分成固定大小的页。在指令中只表达最低维地址,而使用其他设施(如段号寄存器、页号寄存器)来存放高维地址。这样可以将寄存器堆分成若干个页,每个页有固定的大小,在指令中只使用寄存器的页内地址。系统专用寄存器中设置一个页号寄存器,通过改变其内容来切换对不同页寄存器的访问。 其次,8位
[单片机]
基于MC9S08QG8微控制器和nRF905实现OLED显示模块的设计
引言 我们跑步或骑自行车时,手臂的振动常常使我们手中的电子设备所显示的图像看起来模糊不清,长时间观看(如观看MP4视频、收发短信等)容易造成视觉疲劳。汽车轮船的显示设备(如车载GPS),强振动机床的数控系统以及一些工程机械(如挖掘机、推土机等)也会发生类似的问题。可见,由于振动而导致显示效果模糊不清的现象是普遍存在的。 究其原因,在于这些显示设备输出的均为静态图像,基础的振动使其成为(相对于人)振动图像,由于人神经系统的滞后(人的正常反应时间大约需要0.3s),造成大脑所接收到的是模糊不清的画面。当然对于人的神经系统我们暂时束手无策,但是我们可以首先检测出基础的振动状态,由微控制器控制显示器件的输出图像朝反方向偏移(如此,实时
[单片机]
基于MC9S08QG8<font color='red'>微控制器</font>和nRF905实现OLED显示模块的设计
MC9S12XSl28微控制器的智能车硬件设计
  以“飞思卡尔”杯智能车大赛为研究背景,采用MC9S12XSl28作为核心处理器,通过对比各个模块不同设计方案的性能,完成智能车电源、驱动、图像采集、测速等模块的设计与实现。通过大量的实验调试完成了智能车的组装与机械部分调整,使得智能车结构更为合理。实验及实际比赛表现表明,该智能车硬件结构稳定,性能良好。   随着汽车电子业的迅猛发展,智能车作为电子计算机等最新科技成果与现代汽车工业相结合的产物,因其具有的智能特点而成为研究重点。“飞思卡尔”杯全国大学生智能汽车比赛在此背景下产生,竞赛规则规定。赛车在设定的赛道上能够自主行驶,并以最短的时间跑完全程者获胜。因此,智能车硬件不断创新以适应小车的速度要求。本文以MC9S12XSl
[单片机]
MC9S12XSl28<font color='red'>微控制器</font>的智能车硬件设计
如何为处理器、微控制器和高功率器件选择电源拓扑
作者:Jan Michael Gonzales,产品应用资深工程师 Ralph Clarenz Matocinos,产品应用助理工程师 Christian Cruz,产品应用资深工程师 摘要 本文是一份详尽的指南,旨在说明如何为处理器、微控制器和高功率信号链选择合适的电源拓扑。本文强调了高效可靠的功率转换在信号链中的重要作用,并着重说明了此类结构紧凑但功能强大的电源器件在不同电子应用中的重要性。无论是在消费电子应用还是工业自动化环境中,处理器和微控制器等器件都是主要处理单元,需要稳定且精确调节的电源才能实现出色性能。本指南同时还强调,选择合适的电源架构对于确保系统无缝高效运行具有重要意义。 简介 本文将深
[电源管理]
如何为处理器、<font color='red'>微控制器</font>和高功率器件选择电源拓扑
如何减少车灯控制器MCU的数量来优化成本
如何减少车灯控制器 MCU 的数量来优化成本 TLD7002-16ES网关应用示例 在现代汽车中,众多电子控制单元(ECU)负责控制各种功能,如发动机管理、传动控制、制动系统和信息娱乐系统。每个ECU通常都配备有自己的MCU,这增加了汽车电气架构的总体复杂性和成本。车灯的情况也是如此,前后左右的车灯通常都有各自独立的ECU。尤其在一些车灯包含成百上千个像素,或者灯是由多块分散的印刷电路板(PCB)组成时,以市场现存大量量产的LED驱动解决方案而言,每个灯板都需要使用一片MCU来作为控制的转发点来提升系统的可靠性,通讯速度以及电磁兼容(EMC)性能。本文以TLD7002-16ES为例,提出了一种使用UART OVER
[汽车电子]
如何减少车灯<font color='red'>控制器</font><font color='red'>MCU</font>的数量来优化成本
英飞凌稳居微控制器领域榜首,巩固其在全球车用半导体市场的领导地位
【2025年4月9日, 德国慕尼黑讯】 英飞凌科技股份公司凭借在微控制器(MCU)领域的领先优势进一步巩固了其在全球和地区车用半导体市场的领导地位 。根据TechInsights的最新市场研究 ,2024年英飞凌在全球车用半导体市场的份额达到13.5%。公司在欧洲车用半导体市场以14.1%的份额从2023年的第二位升至首位,并在北美车用半导体市场以10.4%的份额从2023年的第三位升至第二位。与此同时,英飞凌在全球MCU市场的份额持续上升,以32.0%领先第二名2.7%。 此外,英飞凌在全球最大的车用半导体市场——中国稳居第一,市场份额为13.9%,在韩国也以17.7%的市场份额持续领跑,并在日本以 13.2%的市场份额稳
[单片机]
英飞凌稳居<font color='red'>微控制器</font>领域榜首,巩固其在全球车用半导体市场的领导地位
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved