基于STC89C51单片机的烟雾报警器设计(煤气火灾检测报警)(含文档、源码与proteus仿真,以及系统详细介绍)

news2024/9/21 8:02:54

本篇文章论述的是基于STC89C51单片机的烟雾报警器设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。

目录

摘要

原理图

实物图

仿真图

元件清单

代码

系统论文

资源下载


摘要

随着现代家庭用火、用电量的增加,家庭火灾发生的频率越来越高。烟雾报警器也随之被广泛应用于各种场合。

本课题所研究的无线多功能火灾报警器采用STC89C51为核心控制器,利用气体传感器MQ-2、ADC0809模数转换器等实现基本功能。通过这些传感器和芯片,当环境中烟雾浓度或可燃气体浓度等发生变化时系统会发出相应的灯光报警信号和声音报警信号,以此来实现烟雾报警,当烟雾达到一定的范围时,系统还可以驱动继电器工作,继电器可以驱动负载,如换气风扇、报警信号灯、消火栓水龙头开关等。实现智能报警控制。

关键词:气体传感器MQ-2;火灾报警;单片机;智能控制

原理图


实物图


仿真图


元件清单(部分)


代码


//程序头函数
#include <reg52.h>
//显示函数
#include <display.h>

//宏定义
#define uint unsigned int 
#define uchar unsigned char
#define Data_ADC0809 P1
 
//管脚声明
sbit LED_R= P2^2;	//COled
sbit LED_Y= P2^0;
sbit FENG = P2^5;	//蜂鸣器
sbit san=P3^4;		//风扇
//ADC0809
sbit ST=P3^3;
sbit EOC=P3^6;
sbit OE=P3^2;
sbit A0=P3^1;		//0809A0地址脚
//按键
sbit Key1=P2^6;		//设置键
sbit Key2=P2^7;		//加键
sbit Key3=P3^7;		//减键

bit bdata flag2,flag7;
uchar set;


//函数声明
extern uchar ADC0809();
extern void Key();
/*
void delay(uint z)
{
	uint i,j;
	for(i=0;i<z;i++)
	for(j=0;j<121;j++);
}
*/

//
uchar MQ2=0,MQ7=0;		//读取传感器数据变量

//指示灯变量

uchar WARNING2=30,WARNING7=20;		//初始上限值

void init()				 //定时器初始化函数
{
	TMOD=0x01;			  //工作方式
 	TL0=0xb0;
 	TH0=0x3c;			 //赋初值
 	EA=1;				 //打开中断总开关
	ET0=1;				//打开中断允许开关
 	TR0=1;				//打开中断定时开关
}

void main()			   //主函数
{
	Init1602();		   //初始化显示函数
	init();			   //初始化定时器
	while(1)		   //进入循环
	{
		A0=0;		   //地址脚=0时,读取MQ2数据				                   
		MQ2=ADC0809();
		A0=1;		   //地址脚=1时,读取MQ7数据
		MQ7=ADC0809();
		if(set==0)	   //不在设置状态时
		Display_1602(MQ2,MQ7,WARNING2,WARNING7); //正常显示数据
		if(set==0)
		{
			if(MQ2<WARNING2)	   //判断数据是否小于报警值
			flag2=0;
			else if(MQ2>WARNING2)
			flag2=1;
			if(MQ7<WARNING7)
			flag7=0;
			else if(MQ7>WARNING7)
			flag7=1;			
		}
		else
		{
			flag2=0;flag7=0;
		}
		Key();						 //扫描按键函数
	}
}
//ADC0809读取信息
uchar ADC0809()
{
	uchar temp_=0x00;
	OE=0;	//初始化高阻太
	ST=0;	//转化初始化
	ST=1;	//开始转换
	ST=0;
	while(EOC==0)	//外部中断等待AD转换结束
	OE=1;	   //读取转换的AD值
	temp_=Data_ADC0809;
	OE=0;
	return temp_;
}

void Key()			  //按键函数
{
	if(Key1==0)		   //设置按键
	{
		while(Key1==0);//按键释放
		FENG=0;		   //打开蜂鸣器
		set++;		   //设置变量加
		flag2=0;
		flag7=0;	   //报警变量清零
		LED_Y=1;
		LED_R=1;	   //关闭LED
		san=1;		   //关闭风扇
		TR0=0;		   //关闭定时器
	}
	if(set==1)		   //设置报警值
	{
		write_com(0x38);//屏幕初始化
		write_com(0x80+0x40+6);//位置
   		write_com(0x0f);//打开显示 无光标 光标闪烁
   		write_com(0x06);//当读或写一个字符是指针后一一位
		FENG=1;

	}
	if(set==2)
	{
		write_com(0x38);//屏幕初始化
		write_com(0x80+0x40+15);//位置
   		write_com(0x0f);//打开显示 无光标 光标闪烁
   		write_com(0x06);//当读或写一个字符是指针后一一位
		FENG=1;

	}
	else if(set>=3)		 //设置完
	{
		set=0;			 //清零
		write_com(0x38);//屏幕初始化
		write_com(0x0c);//打开显示 无光标 无光标闪烁
		FENG=1;			//关闭蜂鸣器
		TR0=1;			//打开定时器
	}
	if(Key2==0&&set==1)	//加按键按下
	{
		while(Key2==0);		//按键释放
		FENG=0;				//打开蜂鸣器,做按键音
		WARNING2++;						//报警值加
		if(WARNING2>=255)				//报警值加到最大
		WARNING2=0;						//报警值清零
		write_com(0x80+0x40+4);			//选中位置显示报警值
		write_data('0'+WARNING2/100);	//将报警值拆开成单独的一位,显示。例如报警值是123,那么123除以100的商是1,这里显示的就是1
		write_data('0'+WARNING2/10%10);	//123除以10得到的商是12,,12除以10的余数就是2,这里显示的就是2
		write_data('0'+WARNING2%10);	//123除以10的余数是3,这里显示的就是3,数据+“0”是为了得到液晶中对应数字的显示码
		write_com(0x80+0x40+6);			//闪烁的位置
		FENG=1;							//关闭蜂鸣器
	}
	if(Key2==0&&set==2)					//注释同上
	{
		while(Key2==0);
		FENG=0;
		WARNING7++;
		if(WARNING7>=255)
		WARNING7=0;
		write_com(0x80+0x40+13);
		write_data('0'+WARNING7/100);
		write_data('0'+WARNING7/10%10);
		write_data('0'+WARNING7%10);
		write_com(0x80+0x40+15);//位置
		FENG=1;
	}
	if(Key3==0&&set==1)
	{
		while(Key3==0);
		FENG=0;
		WARNING2--;
		if(WARNING2<=0)
		WARNING2=255;
		write_com(0x80+0x40+4);
		write_data('0'+WARNING2/100);
		write_data('0'+WARNING2/10%10);
		write_data('0'+WARNING2%10);
		write_com(0x80+0x40+6);//位置
		FENG=1;
	}
	if(Key3==0&&set==2)
	{
		while(Key3==0);
		FENG=0;
		WARNING7--;
		if(WARNING7<=0)
		WARNING7=255;
		write_com(0x80+0x40+13);
		write_data('0'+WARNING7/100);
		write_data('0'+WARNING7/10%10);
		write_data('0'+WARNING7%10);
		write_com(0x80+0x40+15);//位置
		FENG=1;
	}
}

系统论文


Abstract

Along with the modern home with fire, electricity consumption increases, the frequency of home fires is getting higher and higher. Smoke detectors have also been widelyused in various occasions.

Wireless multifunctional fire alarm in the paper uses STC89C51 as the core controller,the realization of the basic functions of the gas sensor MQ-2, ADC0809 converter etc..Through these sensors and chips, when environmental smoke concentration or combustible gas concentration changes the system sends out corresponding light alarm signal and the sound alarm signal, in order to achieve smoke alarm, when the smoke reaches a certain range, the system can also drive the relay, the relay can drive a load, such as a ventilation fan, alarm signal lamp, fire hydrant water tap switchetc.. Implementation of intelligent alarm control.

Key words: MQ-2 gas sensor; fire alarm; MCU; intelligent control

1 绪论

1.1 课题的研究背景

火灾作为一种在时空上失去控制的燃烧所引发的灾害,对人类生命财产和社会安全构成了极大的威胁。由此引发的重大安全事故比皆是,所以人类一直也未停止过对它的研究。

火灾早已成为我国常发性和破坏性以及影响力最强的灾害之一。随着经济和城市建设的快速发展,城市高层、地下建筑以及大型综合性建筑日益增多,火灾隐患也大大增加,火灾发生的数量及其造成的损失呈逐年上升趋势。

   在过去的很长一段时间,人类不得不进行专题研究火灾过程中爆发,截至目前,已形成一个较为成熟的概念。火灾的发生和发展过程是一个复杂的物理和化学过程,但也与环境很强的相关性。正常情况下,发生火警,伴随着烟雾,温度,光照,信号产生的过程。产生不同的环境和不同的火燃烧成分,烟雾粒度组成,温度分布和光谱的气体成分是不同的,所以火过程中涉及多个物理和化学参数,特点是强大的,一般的骚乱有着本质的不同。基于上述特点,早起的火灾探测技术应运而生,特别是多的火灾探测技术被广泛采用在火灾探测领域,如复合材料的物理参数复合烟气温度探测器,使用不同的带光传感器的复合双波段火焰探测器。

    在我国,随着经济的发展和生活水平的提高,工业与民用建设日趋增多,火灾发生的可能性也随之大幅提高。另外,现代建筑物中塑料制品和玻璃的大量应用使火场内外部的求援行为困难重重。现代建筑,尤其是在大型酒店,宾馆,商场,图书馆,博物馆,档案馆和办公楼及其他公共场所,对于火灾报警系统也提出了更高的要求。一旦发生火灾将很难及时救助,势必要给国家和个人带来不可估量的损失。 

基于上述情况,火灾自动报警技术便应运而生,火灾自动报警系统是始终警惕火灾报警和输出联动忠实的哨兵火灾信号的有力手段,是一种早期预警。

1.2 课题的研究目的与意义

目的:随着现代家庭用火,用电增加,家庭火灾发生的频率越来越高。家庭火灾,很容易扑灭不及时,有着缺乏消防设备和在场的人战斗惊慌失措逃离缓慢的不利因素,最终导致的生命和财产的重大损失。消防部门的统计数据显示,所有的火灾比例中,家庭火灾占全国火灾的30%。家庭火灾的原因是多方面的,可能把我们的注意力,也可能隐藏在我们没有注意到的地方。

综上所述,许多人因不懂家庭安全常识引起火灾事故,使好端端的幸福家庭眼间毁于一旦,有的导致家破人亡,而且一旦发生居民家庭火灾,处置不当、报警迟缓,是造成人员伤亡的重要因素。所以说,人们应该积极了解家庭火灾的主要起因,还有预防火灾的发生。这就是我们研究声光报警器的目的。

意义:在中国的一些大、中型城市,几乎每一天发生家庭火灾,所以每一个家庭必须始终关注防火。如果能根据你家的实际情况,提前采取简单的防火措施,有些悲剧是完全可以避免的。声音和视觉的报警,对减少火灾损失具有现实意义。

 一系列悲剧性的损失,由国家从社会各界意识到,声光报警对火灾的报警的必要性。据调查,在最近的火灾大部分的房子里还没有安装报警器。因此声光报警,对发生火灾预防具有重要意义。

1.3 火灾报警器的发展与现状

近年来,无线火灾报警系统在国外已被开发,并走向实用。起初,无线火灾报警系统不仅是价格贵,还必须连接布线,这是只适合一些特殊的地方,检测设备的一部分。今天,几乎所有的电气装置,可以通过无线遥控改变,可广泛应用于各类建筑和场所。美国松柏公司(ITI)成立于1981年,是美国最大的无线报警系统制造商制造,其产品占90%的无线报警器在北美市场的年销售额已接近一亿美元。该公司生产的无线火灾报警系统还通过了中国的“国家消防电子产品质量监督检验测试中心”的监测,该系统可作为火灾报警系统,但也可作为一个安全的系统,两者的结合,是一个高科技的无线安全系统。

    火灾报警系统在中国相对较晚,与发达国家相比, 20世纪70年代末的十年间,中国开始研制生产的火灾报警系统。 20世纪80年代后,国内各大厂商也大多是模仿国外产品,或引进国外技术生产的,没有真正意义上的核心技术,市场刚刚开始发展。真正的火灾报警产品的发展也促进了市场的成熟,政府逐步开放的大门,在同一时间,外国公司开始进入中国的防火市场,带来先进的技术在20世纪90年代。此期间,中国生产的火灾报警产品的企业也得到了快速发展,在一些企业中,技术合作,合资生产,并取得了不菲的成绩,但今天在市场上创造了许多强大的企业,有些技术已接近或赶上国际标准。

1.4课题的研究内容

烟雾报警器,主要检测可燃气体和烟雾,再通过单片机控制相应的报警和驱动负载。通过液晶显示当前的烟雾值,通过按键设定相应的阀值。

该项目主要是为了完成任务,包括:

⑴硬件部分:包括传感器的选择,显示模块的选择,烟雾信号转换电路的设计,报警驱动电路的设计。

(2)软件部分:包括微处理器控制程序的编制和原理图的绘制。

(3)系统的综合调试与分析:在软硬件完成以后,要对系统进行综合的测试与实验,分析系统的可靠性与实用性,调整系统的不足。

2 火灾报警器的总体方案设计

本课题主要是实现烟雾报警和火灾发生时的报警及控制,下面分别对系统功能要求、系统技术要求及系统实现方案总体阐述。

2.1系统的功能要求

本系统的研制主要包括以下几项功能:

(1)火情探测功能:为了提高火灾报警的准确性和及时性,火灾报警系统需要使用各种方法进行火灾探测。在实际使用中,根据不同的防火场所,用户可以选用温度探测法、可燃气体检测法及烟雾探测法等合适的火灾探测方法,来有效的探测火灾;

(2)灯光报警功能:当室内烟雾浓度过大、有火情产生、故障等异常情况发生时,报警器要进行灯光报警。当烟雾超过最大设定值时,可以驱动火灾控制负载工作。

2.2 系统的技术要求

在了解这个系统的工作原理以及功能之后,我们就可以基本确定系统的技术要求。系统采用的单片机处理器成本都比较低,可以满足批量生产和各类工程的需求。对于完整的一个系统而言,为提高市场的竞争力,这个系统应符合体积小、功耗低、数传性能可靠和成本低廉等技术要求。具体指标和参数如下:

(1)体积小:探测器的体积要尽可能的小,这样占用的空间才能减少,使用和更换才会方便;

(2)功耗低:系统可以采用三节5号干电池供电或5v电源供电。

(3)可靠性高:由于不确定的电磁干扰可能存在在系统工作环境中,为了保证系统长时间的可靠工作,以及减少误报次数,所以选择多指示灯,指示不同的状态。

2.3 系统的组成及方案设计

本设计主要由烟雾探测传感器电路、单片机、灯光报警电路、负载驱动电路、控制程序和编解码程序等组成。

系统的组成结构如下:

图2.1

致谢

这次毕业设计得到了很多人的帮助,其中**老师对我的关心和支持尤为重要,每次遇到难题,我首先想到的就是向金老师寻求帮助。另外,他严谨的作风使我的论文即使在谨小细微处也给予了纠正,让我的论文无论是结构还是内容变得更加公整、紧凑,感谢金老师对我的悉心指导。

感谢校方给予我这样一次机会,能够独立地完成这样一个设计作为检验这些年来学习的成果,在这个过程当中,学校给予我们各种方便,使我们在即将离校的最后一段时间里,能够更多学习一些实践应用知识,增强了我们实践操作和动手应用能力,提高了独立思考的能力。再一次对我的母校表示感谢。

感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,正是因为有了你们的帮助,才让我不仅学到了本次课题所涉及的新知识,更让我感觉到了知识以外的东西,那就是团结的力量。


资源下载


如果有需要这个系统的源码、仿真、论文等资源的可以私信我。感谢你的阅读~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1933312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TikTok内嵌跨境商城全开源_搭建教程/前端uniapp+后端源码

多语言跨境电商外贸商城 TikTok内嵌商城&#xff0c;商家入驻一键铺货一键提货 全开源完美运营&#xff0c;接在tiktok里面的商城内嵌&#xff0c;也可单独分开出来当独立站运营 二十一种语言&#xff0c;可以做很多国家的市场&#xff0c;支持商家入驻&#xff0c;多店铺等等…

服务器IP和电脑IP有什么不同

服务器IP和电脑IP有什么不同&#xff1f;在当今的信息化时代&#xff0c;IP地址作为网络世界中不可或缺的元素&#xff0c;扮演着举足轻重的角色。然而&#xff0c;对于非专业人士来说&#xff0c;服务器IP和电脑IP之间的区别往往模糊不清。本文旨在深入探讨这两者之间的不同&a…

若依前端和后端时间相差8小时

原因基类未设置时区 实体类继承 BaseEntity 加上timezone"GMT8" /** 创建时间 */ JsonFormat(pattern "yyyy-MM-dd HH:mm:ss" , timezone"GMT8") private Date createTime; 解决

golang程序性能提升改进篇之文件的读写---第一篇

背景&#xff1a;接手的项目是golang开发的&#xff08;本人初次接触golang&#xff09;经常出现oom。这个程序是计算和io密集型&#xff0c;调用流量属于明显有波峰波谷&#xff0c;但是因为各种原因&#xff0c;当前无法快速通过serverless或者动态在高峰时段调整资源&#x…

MViTv2:Facebook出品,进一步优化的多尺度ViT | CVPR 2022

论文将Multiscale Vision Transformers (MViTv2) 作为图像和视频分类以及对象检测的统一架构进行研究&#xff0c;结合分解的相对位置编码和残差池化连接提出了MViT的改进版本 来源&#xff1a;晓飞的算法工程笔记 公众号 论文: MViTv2: Improved Multiscale Vision Transforme…

Fiddler抓包过滤host及js、css等地址

1、如上图所示 在Filter页面中勾选Hide if URL contains&#xff1b;输入框输入 REGEX:\.(js|css|png|google|favicon\?.*) 隐藏掉包含js、css、png、google等的地址&#xff1a; Hide if URL contains: REGEX:\.(js|css|png|google|favicon\?.*) 2、使Filters设置生效 A…

微软新版WSL 2.3.11子系统带来“数百个新内核模块“和新功能

微软今天发布了新版的 Windows Subsystem for Linux(WSL)。与当前的 WSL 2.2.4 稳定版相比&#xff0c;WSL 2.3.11 具有许多特性&#xff1a;它从旧版的 Linux 5.15 LTS 内核转到了 Linux 6.6LTS内核。今天的发布说明指出&#xff0c;WSL 2.3.11 基于 Linux 6.6.36.3&#xff0…

【C++刷题】[UVA 489]Hangman Judge 刽子手游戏

题目描述 题目解析 这一题看似简单其实有很多坑&#xff0c;我也被卡了好久才ac。首先题目的意思是&#xff0c;输入回合数&#xff0c;一个答案单词&#xff0c;和一个猜测单词&#xff0c;如果猜测的单词里存在答案单词里的所有字母则判定为赢&#xff0c;如果有一个字母是答…

力扣622.设计循环队列

力扣622.设计循环队列 通过数组索引构建一个虚拟的首尾相连的环当front rear时 队列为空当front rear 1时 队列为满 (最后一位不存) class MyCircularQueue {int front;int rear;int capacity;vector<int> elements;public:MyCircularQueue(int k) {//最后一位不存…

基于python的三次样条插值原理及代码

1 三次样条插值 1.1 三次样条插值的基本概念 三次样条插值是通过求解三弯矩方程组&#xff08;即三次样条方程组的特殊形式&#xff09;来得出曲线函数组的过程。在实际计算中&#xff0c;还需要引入边界条件来完成计算。样条插值的名称来源于早期工程师制图时使用的细长木条&…

【机器学习】--过采样原理及代码详解

过采样&#xff08;Oversampling&#xff09;是一个在多个领域都有应用的技术&#xff0c;其具体含义和应用方法会根据领域的不同而有所差异。以下是对过采样技术的详细解析&#xff0c;主要从机器学习和信号处理两个领域进行阐述。 一、机器学习中的过采样 在机器学习中&…

未来的社交标杆:如何通过AI让Facebook更加智能化?

在当今信息爆炸的时代&#xff0c;社交媒体平台的智能化已成为提高用户体验和互动质量的关键因素。Facebook&#xff0c;作为全球最大的社交平台之一&#xff0c;通过人工智能&#xff08;AI&#xff09;的广泛应用&#xff0c;正不断推进其智能化进程。本文将探讨Facebook如何…

Qt日志库QsLog使用教程

前言 最近项目中需要用到日志库。上一次项目中用到了log4qt库&#xff0c;这个库有个麻烦的点是要配置config文件&#xff0c;所以这次切换到了QsLog。用了后这个库的感受是&#xff0c;比较轻量级&#xff0c;嘎嘎好用&#xff0c;推荐一波。 下载QsLog库 https://github.c…

CSS技巧专栏:一日一例 7 - 纯CSS实现炫光边框按钮特效

CSS技巧专栏&#xff1a;一日一例 7 - 纯CSS实现炫光边框按钮特效 本例效果图 案例分析 相信你可能已经在网络见过类似这样的流光的按钮&#xff0c;在羡慕别人做的按钮这么酷的时候&#xff0c;你有没有扒一下它的源代码的冲动&#xff1f;或者你当时有点冲动&#xff0c;却…

在Oxygen中比较两个目录的差异,用于编写手册两个版本的变更说明

▲ 搜索“大龙谈智能内容”关注公众号▲ 当我们对手册进行改版的时候&#xff0c;我们通常需要编写变更说明&#xff0c;如下图&#xff1a; 改版通常会改动很多文件的很多地方&#xff0c;如何知道哪些地方更改了呢&#xff1f; Oxygen提供了比较两个目录的功能&#xff0c…

载均衡技术全解析:Pulsar 分布式系统的最佳实践

背景 Pulsar 有提供一个查询 Broker 负载的接口&#xff1a; /*** Get load for this broker.** return* throws PulsarAdminException*/ LoadManagerReport getLoadReport() throws PulsarAdminException;public interface LoadManagerReport extends ServiceLookupData { Re…

【devops】ttyd 一个web版本的shell工具 | web版本shell工具 | web shell

一、什么是 TTYD ttyd是在web端一个简单的服务器命令行工具 类似我们在云厂商上直接ssh链接我们的服务器输入指令一样 二、安装ttyd 1、macOS Install with Homebrew: brew install ttydInstall with MacPorts: sudo port install ttyd 2、linux Binary version (recommend…

将达梦数据库的JDBC驱动包 DmJdbcDriver18.jar 安装到本地 Maven 仓库

项目打包报错&#xff1a;Failure to find com.dameng:DmJdbcDriver18:jar:8.1.3.12 in http://maven.aliyun.com/nexus/content/groups/public 解决方式如下&#xff1a; 从 https://eco.dameng.com/download/ 中下载 达梦JDBC 驱动包&#xff0c;如下 JDK 1.8 对应的 JDBC…

镜像与容器

Docker Image (镜像) Docker 镜像概念 Docker iamge 本质上是一个 read-only 只读文件&#xff0c;这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必需的文件。 可以把 Docker image 理解成一个模板&#xff0c;可以通过这个模板实例化出来很多…

2024全球和国内最常用的弱密码,有没有你的?

密码管理器NordPass分析了来自公开来源的超过4.3TB 的密码数据&#xff0c;找出了当前为止&#xff08;2024年&#xff09;最常用&#xff08;最脆弱&#xff09;的密码。 这些密码主要有下面这些特征&#xff1a; 简单且常用&#xff0c;万年弱密码&#xff0c;比如123456、a…