武汉工程大学邮电与信息工程学院
毕业设计( 论 文)说明书
论文题目学 号学生姓名专业班级指导教师总评成绩
基于单片机的火灾自动报警系统 吴涛 测控技术与仪器02班 王 欣 年 月 日
6202040228 武汉工程大学邮电与信息工程学院 毕业设计(论文)
目 录
摘要 ................................................................ Ⅱ Abstract ............................................................ Ⅲ 第1章 绪论 .......................................................... 1
1.1课题的研究其意义 .............................................. 1 1.2火灾报警的发展趋势 ............................................ 2 1.3报警系统的特点 ................................................ 2 1.4系统的研究范围 ................................................ 3 第2章 自动火灾报警系统整体方案设计 .................................. 4
2.1火灾发生的条件 ................................................ 4 2.2自动火灾报警系统的组成 ........................................ 5 2.3系统的总体方案设计 ............................................ 6 第3章 系统硬件模块的选择 ............................................ 7
3.1 主要芯片的选择 ............................................... 7 3.2 传感器的选择 ................................................. 8 第4章 系统硬件模块设计 ............................................. 13
4.1 单片机外围接口电路 .......................................... 13 4.2 AD转换电路 .................................................. 14 4.3 光报警电路 .................................................. 15 4.4 报警器故障自诊 .............................................. 16 4.5 显示部分 .................................................... 17 第5章 火灾报警系统的软件设计 ....................................... 19
5.1 软件开发环境 ................................................ 19 5.2 火灾报警系统程序设计 ........................................ 20 第6章 功能仿真验证分析 ............................................. 31
6.1关于仿真与编程软件 ........................................... 27 6.2 Protues仿真原理图 ........................................... 27 第7章 总结 ......................................................... 30 致 谢 .............................................................. 31 参考文献 ............................................................ 32 附录 ................................................................ 33
I
武汉工程大学邮电与信息工程学院 毕业设计(论文)
摘 要
近年来,火灾是造成人们财产和人生安全损失的罪魁祸首之一。在世界上发生频率最高的灾难就是火灾,全世界几乎每天都有火灾发生。随着社会主义现代化的发展,城里的高层建筑,地下商场以及大型的建筑群日益增多。火灾的隐患也伴随着社会的发展而逐年升高。火灾出现的次数及其造成的生命财产损失在逐年上升,火灾一旦发生,对人的生命财产是极大的危害【1】。
本次设计通过AT89C51单片机和MQ-2型半导体电阻式烟雾传感器为核心设计的烟雾报警器从而实现报警、故障自诊断、浓度级别显示、报警设置、温度显示及与温度报警值设定等功能。是一种结构简单、性能 、稳定、使用方便、价格低廉、智能化的烟雾报警器。能够有效的预防火灾,减少火灾造成的财产损失【13】。
关键词:报警器;AT89C51;传感器;火灾预防
II
武汉工程大学邮电与信息工程学院 毕业设计(论文)
Abstract
Fire almost every day all over the world. With the development of socialist modernization,the city of high-rise buildings,underground shopping malls and large buildings is increasing. The hidden danger of the fire also increased year by year along with the development of the society. Cruel calamity,it is the people understood that with the increasing of social wealth,the development of social economy,the dangers of fire brings us constantly expanding. He destroyed not only material wealth. But also caused the social anxiety and confusion. Also directly threaten the safety of life,to the soul of people caused great trauma,reduce unnecessary loss for the people. Automatic fire alarm system is to protect people's life and property safety and invention,and with the continuous improvement of modern technology. In a way,the function,and structure. AT89C51 and MQ - 2 type semiconductor resistance type smoke sensor as the core design of the smoke alarm can realize alarm,fault self-diagnosis,concentration level display,alarm limit setting,temperature and the temperature alarm value set. Is a kind of simple structure, stable performance,easy to use,low cost, intelligent smoke alarm. Has a certain practical value.
Keywords: smoke alarm;AT89C51;sensor;
III
武汉工程大学邮电与信息工程学院 毕业设计(论文)
第1章 绪论
1.1课题的研究及其意义
在各种灾害中,火灾是最经常、最普遍地威胁公众安全和社会发展的主要灾害之一。火灾是世界上发生频率较高的一种灾害,几乎每天都有火灾发生,据联合国“世界火灾统计中心(wFsC)2000统计资料”,全球每年约发生火灾600万至700万次,全球每年死于火灾的人数约为65000人至75000人。欧洲和北美发生的火灾较多,死亡人数却相对较少,这与欧美发达国家的生活水平高以及消防设施完善有关;亚洲居住人数最多,发生火灾次数较少,但死亡人数较多,这与亚洲经济发展程度不高、消防设施不完善等因素有[11]。火灾早已成为我国常发性和破坏性以及影响力最强的灾害之一。火灾是世界上发生频率较高的一种灾害,几乎每天都有火灾发生。据统计,我国70年代火灾年平均损失不到2.5亿元,80年代火灾年平均损失接近3.2亿元。进入90年代,特别是1993年以来,火灾造成的直接财产损失上升到年均十几亿元,年均死亡2000多人。随着经济和城市建设的快速发展,城市高层、地下以及大型综合性建筑日益增多,火灾隐患也大大增加,火灾发生的数量及其造成的损失呈逐年上升趋势。一旦发生火灾,将对人的生命和财产造成极大的危害[2]。
严峻的事实证明,随着社会和经济的发展,社会财富日益增加,火灾给人类、社会和自然造成的危害范围不断扩大,它不仅毁坏物质财产,造成社会秩序的混乱,还直接危胁生命安全,给人们的心灵造成极大的伤害。残酷的现实让人们逐渐认识到监控预警和消防工作的重要性,良好的监控系统和及时的报警机制可以大大降低人员的伤亡,为社会减少不必要的损失。火灾自动报警系统(FAS)就是为了满足这一需求而研制出的,并且其自身的技术水平也在随着人们需求的不断地提高,在功能、结构、形式等方面不断地完善[3]。
1.2火灾报警的发展趋势
最初始的火灾报警就是通过人工来实现的,例如通过人工的方式,当有人发现出现了火灾时,就通过呼叫通知其他的人来灭火。伴随着社会的进步,人们渐渐的研制出了高科技来防范火灾的发生,省去了很多的人力物力。当发生火灾的时候报警设备发出报警信号,人们就可以以最快的速度抵达火灾现场进行扑救,来达到减轻损失,这就是火灾报警的前身【4】。
自动火灾报警系统,从发展历程来看,可分为三个阶段:
1,自动火灾报警系统为多线型。每个传感器有三根线,除了两根电源线还有一根报警线。报警模块必须向传感器提供电源,报警显示装置和信号线相连,当某个传感器发现火灾,系统会相应的点亮相关的灯来提示人们,有火灾发生。在国外,如日本“日探”公司最早生产的(CPF)自动火灾报警系统。它的主要作用是报警,或者在联合一些简单的联动装置,例如蜂鸣器,显示器等。这个系统
1
武汉工程大学邮电与信息工程学院 毕业设计(论文)
对其外围传感器设备不能进行故障排查功能,只有当电源线断电的时候才能作出反应。这个系统的缺点是校验工作量特别大,安装也是十分的繁琐,和容易出现错误。
2,自动火灾报警系统为总线型。这种自动火灾报警系统使用了功能比较全面的微型处理器。如单芯片微型计算机(单片机)。各个模块和传感器用地址编码形式。通过控制器和总线的方式进行信号的传送。传感器的报警形式是数字量,硬件的条件决定了它的灵敏度。灵敏度是不能调节的。这种系统能进行现场编程,是各个模块能较为灵活的控制联动装置,这个系统能对自身的故障进行自动检测,对外围的装置的故障也能进行排查,它的最大的缺点就是很难区分故障的类型。现在,国内大多数的自动火灾报警系统是此类产品。这是因为这种系统有很好的自动控制和自动检测功能,再加上施工简单,价格便宜。所以很多的单位使用这种报警系统。
3,自动火灾报警系统为智能型。因为先进的计算机技术已经应用到了自动火灾报警系统之中,这样就使自动火灾报警系统有了飞跃的发展。传感器的报警由过去的开关量变成了数字量。智能系统给人民带来了很多的优点。人们可以根据不同的保护环境设置不同的火灾报警灵敏度。如果是环境变化较大的地方,传感器的灵敏度就要求要低一些。对于环境变化不大的地方或者比较重要的地方对于火灾要求比较严格的场所,要求传感器的灵敏度就比较高。
1.3报警系统的特点
自动火灾报警系统对于保护人民的生命财产安全是十分重要的,目前,在自动火灾报警系统在家庭中的使用率是很低的,与欧美发达国家相比我们国家市场的发展才刚刚起步,尤其是家庭自动火灾报警系统认可度普遍更低,随着人们火灾防范意识的提高,会有更多的人意识到火灾防范的重要性。可以推测自动火灾报警系统即将会有很广阔的发展空间。
目前,国内的一些企业也开始重视智能报警系统的市场,开始研制一些早期的智能火灾报警系统。比如,有我国南京消防公司生产的超早期火灾自动报警系统。(SH97300)是高灵敏度激光吸气式感烟火灾探测报警系统。它的灵敏度可以达到0.0042dB/m。比最早期的烟雾传感器的灵敏度高一百倍以上。并且也具有安装方便,价格便宜,智能报警等诸多特点。这个系统被大量的应用于重要的场合,如图书馆、计算机房,资料室等等。但是在国内的很多的重要地方的火灾报警系统是从外国进口的设备或引进的技术,系统的灵敏度和环境的匹配能力有限,探测的烟雾浓度范围,和节能设计方面还需要很大的提高。在推广之前还有很多的技术瓶颈需要解决,毋庸置疑的是未来的最先进的自动火灾报警系统在随着科学技术的发展,市场推广的应用和人类防火意识的不断增强,会被越来越多的用户所信赖。应用的范围也会越来越广泛,火灾自动报警技术的更新也会不断的发展【5】。
2
武汉工程大学邮电与信息工程学院 毕业设计(论文)
1.4系统的研究范围
在任何场合都有可能发生火灾,但是在不同场合发生火灾的预兆也不尽相同。例如,居民小区,各种超市百货商店都有很多易燃的物品,有较高人员密集的火车站、商场、加油站、网吧、电影院、仓库等其他易燃易爆的场合,还有一些现代化手段场合如汽车上,飞机,船舶运输等,其中有些地方发生火灾是很缓慢的,渐渐的温度升高,这样使燃点很低的材料达到了燃点发生燃烧,如果不能得到及时的控制,火势逐渐的变大,最后无法控制,发生火灾造成人员和财产的损失。自动火灾报警系统能够根据温度,和烟雾的浓度发现火灾,及时报警,如果这种类型的火灾警报,随着时间的推移,将能够有效地控制火灾。对于一些火灾发生得更快,通常只有几秒钟十秒钟的时间大火将达到无法控制的状态。
本文研究了预警和响应火灾一般场合,这样的火灾是温度较慢,温度会逐渐的升高,可燃物没有产生火灾之前会产生烟雾和其它有害气体。系统涉及的现场检测比较温度、烟密度测试,信号,声音报警,不同的报警显示的不同的危险。在基于AT89C51作为控制芯片,接受和处理火灾探测器输出信号,温度信号,烟雾浓度及声光报警器的火灾报警系统【6】。
这个设计单片机火灾报警系统为家用系统,有以下几个特点:
1、能够室内烟雾等有害气体和温度的突然变化报警含有声、光双重报警。 2、系统故障报警,单发生硬件故障,可以发出故障报警信号。
3、异常报警。环境异常时(如烟尘浓度太大或高温),它可以发送一个警报信 号异常,注意尽量避免火灾。
4、火灾报警。火灾一旦发生(烟雾和温度异常同时发生),声音报警可以即时发出信号。它类似于现场报警系统的仿真,系统安全可靠,较低的误警率。由于其体积小,易操作和维护,成本低,具有广阔的应用前景。
3
武汉工程大学邮电与信息工程学院 毕业设计(论文)
第2章 自动火灾报警系统整体方案设计
2.1火灾发生的条件
火灾产生需要一定的条件,包括燃烧物、助燃剂和达到一定的燃点。发生火灾是指燃烧过程中失去了控制造成的灾害。可燃物有三种形态,即固态,气态和液态。一般来讲空气中的氧气被看作为助燃剂。可燃物燃烧一般是在外界获得了内能是温度升高达到了燃点,这时液体或者固体也会分解成可燃气体(如CO、H2等),这些物质颗粒悬浮在空中,被成为气溶胶。在生成气溶胶的时候,会生成一些比较大颗粒物质,被叫做烟雾。当可燃物燃烧以后使其表面继续产生可燃气体或者烟雾,而且燃烧的面积将增大,同时会产生明火,火焰会发出红外线和紫外线并且产生大量的热能。产生的这些气溶胶,明火,烟雾和热能都称之为火灾参量,通过这些物质能提前的发现火灾是否存在,由于火灾发生时有很多不同的现象,可将火灾分为无明火,明火和快速火焰等。根据大量的火灾事实证明,无明火的燃烧是形成火灾的重要原因【8】。
一般来说,一般可燃物在燃烧时候会有一些现象,一开始会出现可燃性的气体,后来会出现烟雾,在空气流通性比较好的情况下也就是氧气比较多的时候才会完全的燃烧产生明火。发出红外线,紫外线,并且发出大量的热量。使周围的环境温度迅速上升。在刚开始燃烧过程无明火所占的时间比较长,这时会产生大量的烟雾,但是由于燃烧的不够剧烈,所以温度也不是很高,如果产生烟雾报警器就能发现火灾,就能及时的扑灭火灾,减小损失。当产生明火时,很快的蔓延开来,使周围的环境温度和快的升高。这时温度传感器能探测到温度异常发出报警,就能很快的控制火势,火灾的过程如下图2.1所示。
图2.1 火灾发生过程
2.2自动火灾报警系统的组成
火灾报警系统的组成是报警装置,传感器模块,还有其他的辅助功能,如喷水装置,通风装置等,在火灾报警系统中,触发器件就是产生的报警信号的装置(有自动的和手动的两种)。最主要的元件是传感器和报警装置。
传感器通过火灾现场发出的化学或物理变化(如发出的红外线,温度上升还
4
武汉工程大学邮电与信息工程学院 毕业设计(论文)
有产生的烟雾,和一些可燃性气体)把这些信号转换成电信号,发送到火灾报警系统,使火灾报警系统发出相应的报警消息。区域报警器将接收到消息发出报警信号。提醒值班人员火灾发生的地点,请及时的灭火。
由火灾探测器、联动单元和控制器组成了自动火灾报警系统,先由传感器探测到烟雾,或者是温度的异常,然后传递给单片机,由单片机判断是否报警,这个系统除了有自动火灾报警功能以外还能对系统进行自检,检测设备是否能正常工作。而且能够现场编程,实现各个模块的灵活运用。由于自动火灾报警系统传感器的不同,可以将自动火灾报警系统分为下面四种:
(1)温度传感器型火灾报警系统
这种报警系统是根据火灾发生的时候形成的火焰,把周围的温度升高,使温度传感器产生电信号,来触发报警系统。
(2)烟雾传感器型火灾报警系统
目前国内主要有激光感烟式、光电感烟式和离子感烟式等烟雾传感器型。
(3)感光型火灾报警系统
感光型报警系统是根据火灾发生时火焰产生的光,还有光闪烁的频率来使光感传感器产生电信号。触发报警系统进行报警。由于敏感光的波长的不同,这种系统可以对紫外线的辐射进行探测,因为紫外线的波长比较短。也可以对红外线进行探测,红外线的波长相对较长。
(4)综合性火灾报警系统
如果对上述三种报警系统任意结合两种或两种以上的报警系统就称之为综合性的火灾报警系统,这种系统的可靠性运行比较好,可以综合的探测火灾,确保及时发出警报【10】。
2.3系统的总体方案设计
2.3.1系统方案设计选择 1、方案一
采用单片机为主控芯片。烟雾采集芯片采集信号,经过A/D转换,传递给单片机,经过显示,报警。
烟雾传感器 图2.2 方案一
5
A/D转换芯片 单片机系统 显示部分 报警模块 武汉工程大学邮电与信息工程学院 毕业设计(论文)
2、方案二
采用单片机为主控芯片,同样经过烟雾传感器,再经信号处理模块,然后A/D转换,最后传递给单片机。同样温度模块把温度传递给单片机,送至显示部分和报警部分。
烟雾传感器
图2.3 方案二
信号处理模块 A/D转换芯片 单片机系统 显示部分 温度传感器 报警模块 为了使系统能够可靠的运行,温度传感器将温度传递给单片机,更准确的把现场的信息传递给单片机,信号处理模块能有效的提高报警的灵敏度。所以本系统选择方案二。 3、系统整体设计方案
一个完整的火灾报警系统,必须包含以下部分:传感器、控制器、数据处理器和报警模块。这个系统是以单片机为核心的控制系统结合传感器的温度测量设备,实现火灾报警系统的设计。可以对室内和室外实时采集温度和烟雾浓度,如果发现测量温度或烟尘浓度高于临界值报警。温度传感器把温度信号(数字形式)发送给单片机,烟雾浓度信号是模拟信号,用模数转换器将其变成数字信号给单片机。单片机数字信号滤波处理和数据分析之后判断是否大于或等于预设值,即临界温度报警或烟尘浓度。如果烟雾浓度大则触发报警电路,开始发出报警声音则显示非正常状态,否则这是一个正常的状态。这个系统的整体方案如图2.4所示。
烟雾传感器信号处理烟雾浓度显示 A/D转换AT89C51 状态指示灯 温度传感器 图2.4
声音报警 控制装置 自动火灾报警框图
6
武汉工程大学邮电与信息工程学院 毕业设计(论文)
第3章 系统硬件模块的选择
3.1 主要芯片的选择
3.1.1 单片机的选择
单片机是本系统最重要的部分,它不但要接收烟雾传感器传来的模拟信号和温度传感器传来的数字信号还有故障检测信号,而且还有对两种信号和记忆值对比,然后控制相应的报警。同时,单片机查询是否有按键按下。在单片机实现的这些功能之中,对转换好的信号做数字滤波,再对信号进行数字化处理,这些过程是通过软件实现的。这对单片机的要求是计算速度较快。这样仪表检测人员才能够正确的观察到事实的烟雾浓度。并作出相应的处理。但是在满足系统的计算速度的同时还要考虑到他的价格和体积。在保证系统能够可靠的性能和精确性能的同时不提高成本,缩小体积。在实际应用之中AT89C51单片机应用的很广泛,开发的工具和多,容易学习,价格低,这样是最适合民用,商用,用途是十分的广泛的,根据以上优点,本篇论文用AT89C51作为报警器的核心部件。
本论文的控制芯片是AT89C51,它是由ATMEL公司生产的,AT89C51是一种含有4K字节的可擦除可编
图3.1 单片机 程的只读存储器,还有128字节的随机存储数据的存储
器的高性能、低电压CMOS8位的微处理器的单芯片微型计算机,简称单片机。这款单片机是一种高性能低功耗的芯片。片内有八位的中央处理器,和Flash存储单元,可以在各个系统之中灵活的运用。它本身有四十个引脚,三十二个外部I/O端口,有两个外部中断,两个十六位的可编程的定时/计数器。两个全双工串行通信端口。AT89C51的引脚图如图3-1所示。芯片能用常规方法进行编程,同样也可以在线编写。尤其是反复擦写的存储器能够有效的降低成本。
3.1.2 模数转换芯片的选择
A/D转换器的种类很多,就位数来分,有8位、10位、12位、16位等。位数越高,其分辨率也越高,但价格也越贵。而就其结构而言,有单一的A/D转换器,有内含多路开关的A/D转换器。本次论文选用的是ADC0832芯片。
7
武汉工程大学邮电与信息工程学院 毕业设计(论文)
图3.2 ADC0832芯片的引脚图
ADC0832 具有以下特点: 1、芯片的分辨率是八位的; 2、有两个输入模拟量的通道;
3、芯片的输入输出的电平和TTL、COMS是通用的;
4、电源的供电范围也比较广泛,五伏电源供电,输入的电压在零到五伏之间; 5、工作频率是250KHZ,转换的时间是32us; 6、芯片的功耗很小,大约是15mw;
7、封装类型比较多如双列直插、PICC等多种封装;
8、商用的芯片温度范围是比较宽泛的在零到七十摄氏度之间,工业用芯片的温度是零下40摄氏度到85摄氏度。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,芯片有两个数据的输出能够对数据进行校验,这样能把转换的数据误差率降低。芯片的转换速度也比较快而且稳定。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,能够很方便的选择通道。
3.2 传感器的选择
3.2.1烟雾传感器的选择
1、烟雾传感器的比较 (1)离子式烟雾传感器
这种烟雾传感器是用一种技术比较良好,工作性能比较稳定的的传感器它的用途也比较广泛,现在已经被应用到各种消防报警系统中,性能十分的优越,比气敏电阻类的传感器要好很多。 (2)光电式烟雾传感器
这种传感器内部结构有一套比较复杂的光通道,有红外对管,当没有烟雾的时候接受设备是接受不到红外发射器发出来的红外线,但是当有烟雾进入光学通道的时候,由于各种折射和反射,此时接收器就能接受到红外线,这时控制系统
8
武汉工程大学邮电与信息工程学院 毕业设计(论文)
通过和记忆值的比较来判断是否发生火灾,如果超过了记忆的数值就发出报警信号。
离子式与光电式的比较:
离子式的烟雾传感器对于比较微小的烟雾粒子会更加敏感,另外对于各种烟雾均有响应;而向前式光电烟雾传感器对于颗粒相对较大的烟雾粒子是最敏感的,但是对于黑烟和灰色的烟尘响应能力相对较差。当火灾很大,而且烟雾浓度也比较大的时候,空气中的烟雾的微小颗粒比较多,而且当无明火的燃烧会有更多的含有大颗粒的烟雾。当火灾发生的时候,就会产生大量的比较小的颗粒,这时候离子式传感器会产生较大的电压的变化,此时离子烟雾传感器会先报警。光电式的传感器会相对慢一些,但是两者的间隔时间不大,但是这种火灾发展的速度极快,发生后会迅速变大,这种场合适合安装响应快的传感器,建议安装离子传感器。还有一种就是没有明火的火灾现场,会产生这时粒子较大颗粒的烟雾,这种场合适合用光电传感器。 (3)气敏式烟雾传感器
这种传感器是用于识别气体的传感器。他们主要是包括接触燃烧式、半导体气敏式和电化学式传感器等,在这些传感器中用的最广泛的就是半导体气敏传感器。它的应用主要有:瓦斯气体的探测、氟利昂的探测、一氧化碳气体的探测、还有酒精的探测等等。
它能将气体的种类和气体的浓度相关的信息转换成为电信号,根据这些电信号的大小就能得到和待测气体在空气中的浓度大小,从而可以进行检测、监控、报警;还可通过一些接口电路和计算机相连接形成一个系统,能够自动的检测、控制和报警。
气敏式烟雾传感器的最经典的型号是MQ-2气体传感器。这种传感器常用与家庭和工厂的气体泄漏装置,适用于很多种气体,包括液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等的检测。
火灾中的烟雾是有固体颗粒,还有可燃性气体混合而成的,有很多的物理特性比如体积、质量、温度、电荷等物理特性。离子型烟雾传感器改变电压的变化是通过烟敏电阻的电离室引起的。通过电压的变化来表述火灾现场烟雾离子的微电流变化装置。当电离室中有烟雾时,就会改变电离室空气的电离状态,这是就相当于电离室的等效电阻增大,电阻增大就会引起电离室两端电压的改变,从而确定空气中的烟雾状态情况。而气体传感器是探测空气中可燃性气体的含量,在家庭中能对于煤气,一氧化碳等有害性气体进行探测。
通过比较分析,本设计的感烟探测器采用的是MQ2传感器,因为离子式传感器NIS-90内部有微量的放射性物质,有可能泄漏,对人体和环境都有一定的危害。本次设计是家庭火灾报警系统。通过研究选择MQ2烟雾传感器。MQ2型号传感器功耗比较低,用途比较广泛,适用于高灵敏度烟雾传感器火灾报警系统。 2、关于烟雾传感器
9
武汉工程大学邮电与信息工程学院 毕业设计(论文)
本论文用的是二氧化锡半导体气敏材料的传感器,型号为MQ-2,这种传感器是N型半导体表面离子式。给传感器一个预热电源(五伏直流电源),但温度加热到200~300℃温度时候,空气中的氧气被二氧化锡所吸附,氧气变成负离子吸附在表面,这样半导体中的电子就会减少,从而导电能力减弱,使电阻值增加。当空气中有烟雾的时候,晶粒间界处的势垒受到该烟雾的调制而变化,就会使电阻值发生变化。就是利用这一点把烟雾的浓度的信息转化成电信号,当烟雾的浓度越大,电阻率就会变小电阻就减小。
图3.3 烟雾传感器实物图
传感器的特性及主要技术指标: (1) MQ-2型传感器的一般特点
(a)MQ-2型传感器对天然气、液化石油气等烟雾有很高的灵敏度,尤其对
烷类烟雾更为敏感。
(b)MQ-2型传感器具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。
(c)MQ-2型传感器具有良好的抗干扰性,可准确排除有刺激性非可燃性烟雾的干扰信息,例如酒精和烟雾等。
(d)电路设计电压范围宽,24V以下均可;加热电压5±0.2V。 (2) MQ-2型传感器的特性参数。
(a)回路电压:(Vc) 5~24V。 (b)取样电阻:(RL) 0.1~20K。 (c)加热电压:(VH)5±0.2V。 (d)加热功率:(P)约750mW。
(e)灵敏度:以甲烷为例R0(air)/RS (0.1%CH4)>5。 (f)响应时间:Tres<10秒。 (g)恢复时间:Trec<30秒。 引脚说明:
1、A1或A2为输出的一端。
10
武汉工程大学邮电与信息工程学院 毕业设计(论文)
2、H为加热接线段。 3、B1或B2为输出另一端。
3.2.2 温度探测器的选定
1、本次论文温度传感器的选择要求
由于温度检测的参数的不同,一般情况用于民用建筑和工业上的温度传感器有差温式、定温式、差定温式等等。
对于选择那种温度传感器我们需要考虑的因素有:
A 所测量的温度是不是要求记录并且报警和自动控制,是不是要求远距离传送和远距离传输。
B 要求的测量的温度大小和精度要求。 C 传感器元件的封装是否合适。
D 所测量的温度随时间的变化速度,由于测量元件有滞后的世间,滞后的时间是否满足要求。
E 所测量的场合对测量的元件是不是有影响和危害。 F 经济性,元件的价格,和使用的方便性。
根据以上的这些因素,经过考虑,本次论文温度传感器使用的是DS18B20数字温度传感器。 DS18B20的特点
DS18B20数字温度传感器结构简单,接线相对方便,有不同型式的封装,不同的封装可以用于多种场合,封装如管道式、不锈钢、磁铁吸附式、螺纹式封装,型号多种可以根据所需的场合选择适合的传感器。
图3.4 DS18B20数字温度传感器引脚图
这种温度传感器的主要特点:
A 这中传感器能实用很宽泛的电压,使用电压范围是:3.0~5.5V,一般不用独立的电源,可以在寄生电源上工作。
B 比较方便的数据接口方式,这种温度传感器和单片机相链接的时候只需要一条数据线就能实现单片机和传感器的双向通讯。
11
武汉工程大学邮电与信息工程学院 毕业设计(论文)
C 本传感器支持多点网络的功能,几个传感器可以并联在一个三条线上,能够实现多点测试功能。
D本传感器使用的时候不用任何的外围元件,所有的传感器和模拟数字转换电路都继承在一起。
E 本传感器可以测量的温度范围是 -55℃~+125℃,当温度在-10~+85℃的范围内它的精度为±0.5℃。
F 可编程的分辨率是9~12位,这样的分辨率分别是0.5℃、0.25℃、0.125℃和0.0625℃,这样就能适应需要高精度测量的场合。
G 九位的分辨率转换时间是93.75ms,当把分辨率设置为12为的时候需要的时间是750ms速度较快。
H 测量的结果能以数字的型式发出去。用一根线以串行的型式传递给CPU,同时也可以传送CRC校验码,这样传感器就有很强的抗干扰能力,和纠错的能力。
I 负压特性:当电源的极性不小心接反的时候芯片不能烧毁,然而芯片也不能正常工作。
2、DS18B20的外形和内部结构。
DS18B20的内部主要是由四部分构成的,包括ROM光刻(64为)、温度传感器、温度报警触发器TH和TL(非挥发)、和配置寄存器。 3、DS18B20引脚定义:
A,DQ是数字信号的输出/输入端; B,GND是电源接地;
C,VDD是芯片电源供电的输入端。
当火灾发生的时候,烟雾传感器将烟雾的浓度转换成电压信号,然后经过放大器,把信号进行放大和滤波,把有效信号传递给A/D转换器,把模拟信号转化成为数字信号,再传递给控制系统,控制系统将这些数字信号进行和记忆的数值进行对比,分析是否发生火灾,然后把浓度转换为十进制送到显示部分进行显示,发出声光报警。但是烟雾传感器是在温度很高的情况才能正常的工作,所以在报警系统必须有预热的时间,才能发挥正常的作用。报警器需要向传感器提供一个五伏的直流电源,为了使系统运行可靠性增强,在提供电源的同时,进行故障检测。如果烟雾传感器的加热电阻丝或者电缆线和传感器的电源线接触不良,就会发出报警信号,但是这种报警信号是和火灾的报警信号是不同的。烟雾检测器的功能如下:
(1) 当系统自身发生故障的时候能够自己排查。 (2)单片机有看门狗进行自检单片机的状态。
使用单片机的看门狗的功能,看门狗定时的检测单片机的工作状态,如果单片机进入死循环的状态,马上给单片机一个复位信号,保证系统的正常工作。
12
武汉工程大学邮电与信息工程学院 毕业设计(论文)
第4章 系统硬件模块的设计
4.1单片机外围接口电路
1、晶振电路
晶振电路是给单片机工作提供时钟信号的,芯片内部有一个高增益的反相放大器用于形成内部的振荡器。引脚XTAL1是这个放大器的输入端子,XTAL2是这个放大器的输出端子。在片外的陶瓷谐振器或者是石英晶体作为反馈元件和放大器形成了一个自激振荡器。系统的晶振如图3-7所示,但是外接的两个电容的容量不同会对振荡频率的高低有一点影响,还有工作的稳定性,对于起振的难易程度和温度的稳定性能也是有影响的。例如使用的是石英晶体,电容的大小应该是三十皮法左右,但是用的是陶瓷振荡器电容的容量就应该是四十皮法左右。本论文使用的是石英晶体,电容选择的是三十皮法。
2、复位电路
复位电路的基本功能是:当系统得电的时候提供一个复位信号,当系统稳定的时候在撤销复位信号。为了使运行可靠,当电源稳定时候在经过一段延时后再撤销复位信号。作用是为了防止当电源开关的瞬间有抖动从而影响复位。复位是在单片机启动过程起作用的,这样使处理器和系统的每个部件都处在初始的状态,然后开始工作。单片机的复位信号是有复位引脚(REST)进入到芯片里面的触发器中的。在系统正常工作的时候,同时振荡器稳定后,如果复位引脚上有高电平信号并且持续了两个周期以上即二十四个振荡周期。单片机的处理器就会响应把系统给复位。单片的有两种复位方式,一种是手动按钮复位,另一种是上电复位,这个论文采用的是手动复位。
手动复位是在需要复位的时候按下按钮使复位端子加上高电平,采取的措施是在复位端和单片机的单元上接一个按钮,当想复位的时候,电源的电平就会接到复位端子上,则系统就会复位。人的动作相对于系统是很慢的,按钮的时间最快也是几十毫秒。所以,设计完全能够满足复位的时间要求。复位电路中S1为手动复位开关,电容C3可避免高频谐波对电路的干扰。AT89C51晶振电路与复位电路如图4.1,图4.2所示。
图4.1 AT89C51单片机的晶振电路
13
武汉工程大学邮电与信息工程学院 毕业设计(论文)
图4.2 AT89C51单片机的复位电路
4.2 AD转换电路
ADC0832是的5号和6号引脚由于不同时有效,为了节省单片机的接口所以连接在一起使用,当此引脚输入的串行数据是1、0的时候则是选择的通道0,当输入的是1、1的时候选择的是通道1,当输入的是0、0的时候通道零接模拟信号的正相输入端,通道一接输入信号的负相。当引脚的串行数据是0、1的时候零通道接入的是模拟信号的负相输入端,一通道接入的是正相。本次论文只是用单相一通道,所以单片机的P37口首先个给转换芯片一个低电平,激活芯片,然后在给芯片5、6号引脚一个1.0的信号,选中通道0。当第三个时钟脉冲下降的时候D0(6)开始进行读取数据工作,当时钟信号是第四个的下降沿时候D0开始输出数据的高位DATA7当像一个脉冲继续输出直到DATA0,然后开始反向输出即输DATA0~DATA7,此次转换结束。芯片和单片机的接口如图4.3所示。
图4.3 ADC0832
14
武汉工程大学邮电与信息工程学院 毕业设计(论文)
4.3 烟雾信号调理电路
图4.4 烟雾信号处理模块
烟雾传感器的处理信号图4.4所示,当烟雾浓度上升的时候,4(6)脚的电压上升,使比较器的U-电压升高,当电压大于U+的时候输出负电平,这使发光二极管发光,提醒监视员,有异常情况发生,同时三极管的基极变为低电平,三极管由饱和区变为截止区,输出的TTL电平是低电平。同时在4(6)脚上输出的信号经过放大器和电容的滤波,根据虚断可知
ii0 (3-1)
VV0R1R3R1 (3-2)
ViV0R1R3R1这将传感器的输出信号
虚短可知VVVi (3-3)所以提高传感器的灵敏度。
进行了放大,可以增加报警系统的灵敏度。使用放大器可以是输入的电阻增大,
4.3.1 光报警电路
此类报警根据单片机所给电压,确定LED灯中的电流流向,以驱动灯发光。连接电路如图4.5所示。图中当单片机为低电平时,小灯是亮的;高电平时,小灯灭。
15
武汉工程大学邮电与信息工程学院 毕业设计(论文)
图4.5 光报警电路
4.3.2 声报警电路
当火灾发生时,烟雾传感器和温度传感器将接受到的信息传送给AT89C51单片机由单片机判断是否超过预警值,超过则让报警器报警,其中报警器中的声报警电路图如图4.6所示。
图4.6 声报警电路
4.4 报警器故障自诊断
判断传感器电源连接情况,在传感器的地端串联一个电阻R,当传感器正常连接时,电阻和传感器分压,此时电阻两端有微弱的电压,单片机可以通过P2.1口检测到:如果传感器电源连接不正常,则会产生断路,检测到电阻两端电压为0V。
16
武汉工程大学邮电与信息工程学院 毕业设计(论文)
4.5显示部分
LED数码管是一种半导体的发光器件,它的组成是发光二极管,通过点亮不同的二极管来显示所需要的数字,可以显示0~9的数字。数码管按照发光二极管的数量可分为七段数码管和八段数码管。八段数码管比七段数码管多一个小数点,按照能显示八的个数可分为一位、两位、四位等。按照二极管的连接方式可分为共阴极和共阳极。其中共阴极指的是数码管之中的发光二极管所有的阴极都连接在一起,同理共阳极是指所有的阳极都连接在一起形成一个公共端。共阳极的数码管当控制端输入的是低电平相应的发光二极管就会发光,当输入端是高电平的时候相应的二极管就熄灭。为了提高单片机的驱动能力,大多选的都是共阳极,本论文选择的也是共阳极数码管。
动态数码管是指每个数码管的a b c d e f g相同的字母都连接在一起,每个数码管的公共端作为片选端子,当输入端子连接到P0时候,P0输出一个字符,所有的数码管都是相同的,但是要看那个数码管显示就要相应显示的数码管的片选端子为高电平。高电平的会发光,低电平的不会发光,通过选通不同的数码管数码管闪烁发光,由于时间比较短,所以人的眼睛分辨不出来的,看上去是每个数码管都在发光。这就是动态显示。如4.7图所示。
图4.7 显示电路
4.5.1控制电路
报警温度用按键S2,S3,S4来设置,S2为调整键,按一次可调整报警
上限温度值,按两次可调整报警下限温度值,按三次数码管恢复到正常温度显示。S5是紧急呼叫按键,火灾报警系统中的控制电路图4.8如图所示
17
武汉工程大学邮电与信息工程学院 毕业设计(论文)
图4.8 控制电路
18
武汉工程大学邮电与信息工程学院 毕业设计(论文)
第5章 火灾报警系统的软件设计
5.1 软件开发环境
本次论文没有用汇编语言编写,采用C语言编写程序,然后通过Protues软件进行仿真调试,最后根据调试得出应有的结果。
因为C语言比较简练,他是由函数组成的,设计的时候结构比较分明,几个函数模块可以分别调用,当调试程序的时候,如果出现问题更容易排查,改进程序的时候也容易找到相应的模块。同时也兼容汇编语言的微操作功能。
5.2 火灾报警系统程序设计
5.2.1主程序设计
火灾报警系统控制器的控制系统是采用AT89C51作为控制芯片,主要功能模块包括:控制IO端口、逻辑判断处理、驱动外部电路、语音报警和A/D采样等,该部分是火灾报警系统智能化的集中体现。
为了使系统方便维护,自动火灾报警系统的软件设计采用的是模块化设计程序,这些模块的作用是通过调用子程序来实现的。这样使程序有清晰的结构。但需要扩展程序的时候也很方便。这个系统主要包括主程序、火灾判断和报警子程序,还有温度烟雾数据采集子程序。系统的程序流程图见图5.1所示。 上电复位后单片机的各个功能模块首先初始化,然后利用传感器对火灾报警器部分进行数据采集,判断是否有火灾发生,如果有火灾产生,为了降低误报率,系统采用多次采集、多次判断的方法,每次数据采集后根据得到的数据对现场情况进行判断,然后综合多次判断结果做出最终的火情判断。
19
武汉工程大学邮电与信息工程学院 毕业设计(论文)
开
第一次烟雾温度信号采集判断 初始化 始
报警? Y N
正常
火灾报警 手动复位 报警? 异常报警 第二次烟雾温度信号采集判断 图5.1主程序设计
5.2.2 主程序初始化设计
主程序的流程图如图5.2所示,这部分的主要作用是要设定I/O端口的输入输出的状态设定、开中断、寄存器的初始化等等。先要设定定时器的工作方式,在开启中断系统,用来响应中断的定时器,并且及时对气体的浓度进行采样。然后把蜂鸣器关掉,同时开启绿灯,设置报警的初值。
20
武汉工程大学邮电与信息工程学院 毕业设计(论文)
开 始 定时器初始化值 开中 断 关闭蜂鸣器 打开绿灯
是否报警? Y N 返回
设定初值 图5.2 初始化设计
5.2.3烟雾浓度处理设计
开始 ADC0832初始化
数据采集 21 武汉工程大学邮电与信息工程学院 毕业设计(论文)
N 大于上限 ? Y Y 结束 图5.3烟雾浓度子程序
当烟雾浓度超过报警设定值时,报警器发出一种近似警笛的鸣叫声,对应通道的红灯闪亮,以提示操作人员采取安全对策或自动控制相关安全装置,从而保障生产安全,避免火灾和爆炸事故的发生。
5.2.4温度采集设计
(1)DS18B20的初始化
图5.4 复位时序图
单片机先给数据线一个高电平,然后做延时,最后在将电平拉低,这个延时的范围不是很严格,大约在480~960us之间就可以。再将数据线电平拉高。这时等待初始化完成,一般在15~60us之间芯片会给单片机一个低电平,但是一般要进行时间限定,防止无限的等待,进入死循环。如果单片机接收到了一个低电平,单片机还是要进行延时480us,然后将数据线的电平拉高,初始化完成。 (2) DS18B20的写数据
图5.5写数据时序图
先把数据线电平拉低,然后延时15us,然后从低到高位发送数据(CCH由于本设计只用了一个DS18B20所以要跳过ROM)一次只能发送一位。延时45us。把数据线拉高。然后不断的重复上面的过程,直到整个数据发送完毕。最后还是
22
武汉工程大学邮电与信息工程学院 毕业设计(论文)
要把数据线上的电位拉高。 (3)DS18B20读数据
图5.6读数据时序图
把数据线的电位拉高,再做延时处理大约2us,把数据线拉低,延时6us,把数据线的电平拉高,做延时处理大约4us。然后读数据线上的状态为,做处理,进行延时,然后重复上述步骤,直到读取完成一个字节。流程图如5-7所示。
开始
DS18B20 复位 跳过 ROM 发送读取命令 读取操作,验证CRC N CRC校验正? Y 移入温度暂存器 23 武汉工程大学邮电与信息工程学院 毕业设计(论文)
返回
图5.7 DS18B28驱动程序
5.2.5键盘扫描的设计
开始开始 扫描键值 N 是否有键盘按下? Y 延时10ms消抖动 N 是否有键按下? Y 提取键值 调用子程序 图5.8 键盘扫描程序
首先扫描输入信号,然后判断是否有按键按下,若没有则返回上一步,若有则过10秒后在次判断是否有按键按下,有按键按下则提取按键值,调用它的子程序,没有则回到扫描键值这一步,在次重新扫描。
5.2.6 火灾报警程序
(1)火灾报警数据的处理方法
最早使用的是固定的门限检测,也是应用的最广泛的火灾探测的方法,这种
24
武汉工程大学邮电与信息工程学院 毕业设计(论文)
方法的计算量很小而且很容易实现,这种方法的原理是根据火灾探测器探测到的信号作为根据,然后和设定好的数值进行比较,当检测到的数值大于设定的报警值的时候,就会发出报警信号。
本次的火灾报警系统中使用的是烟雾传感器MQ2和温度传感器DS18B20,在本次论文中设定的温度值是60℃烟雾报警的浓度是3.2%FS,经过换算最后的到的烟雾传感器的输出火灾烟雾传感器的临界电压值是4.6V。
(2)火灾判断与报警
系统对烟雾进行了两次测量然后进行比较判断,每次信号采集完成之后得到的数据和设定的阀值进行比较,当温度大于等于60℃的时候,温度异常,设置寄存器的变量是1,否则是0;当烟雾的浓度大于等于3.2%时候,烟雾浓度异常,设置寄存器的变量是1,否则是0,这样综合两次的寄存器的变量就能判断现场是否有火灾发生。当两个寄存器都是0的时候,表示情况是正常的,当两个寄存器有一个是1就说明情况异常,当两个都是1的时候,说明有火灾发生。系统对现场进行报警,报警过后再进行信号采集,再一次进行采集现场的温度和信号进行判断,然后系统做出判断结果。
当系统状态为00时,表示正常。
当系统状态为01时候绿灯亮,表示温度异常,P14变为低电平,同时P34红色的灯闪烁发出光报警,蜂鸣器报警。
当系统状态为10时,表示烟雾浓度异常,P15口变为低电平,P34口变为低电平,绿灯亮,蜂鸣器报警。
5.2.7 滤波子程序
当采集烟雾的浓度的时候,会遇到干扰现象,尖脉冲的干扰,这种干扰只能影响几个采集的数据,被干扰的数据和其他的数据相差很大的,这时采用平均值法去滤波,也会影响到其他的准确数据。造成更大的偏差。因此,我们可以采取极值平均法进行滤波。就是对采样的数据进行比较,去掉最大值,然后再去掉最小值,最后计算剩下的数据的平均值。这种方法的优点是不但可以除去脉冲的干扰而且还可以去掉小的随机干扰。确保报警器的检测浓度的准确性,能够减小错误,保证系统的可靠性运行。滤波子程序如图5.9所示。
25
武汉工程大学邮电与信息工程学院 毕业设计(论文)
中断入口 设定采样次数 调用 A/D转换
N 达到设定次数? Y 采样值排序 求累加的和 求累加和的平均值 返回
图5.9 滤波程序
26
武汉工程大学邮电与信息工程学院 毕业设计(论文)
第6章 功能仿真验证分析
6.1关于仿真与编程软件
本次设计首先用KeilC51进行编程开发,然后通过Protues软件进行仿真调试,最后根据调试得出应有的结果。 (1)Keil C51开发系统
Keil C51的相关介绍,本章不再赘述。 (2)Protues软件概述
Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
6.2 Protues仿真原理图
当设定房间发生火情时,也就是房间一的温度和烟雾的水平超过传感器预设值。部分功能Protues仿真原理图如下图6.1所示。
图6.1 仿真原理图
27
武汉工程大学邮电与信息工程学院 毕业设计(论文)
图6.2正常情况
如图6.2所示,当没有火灾发生的时候,数码管显示当前的温度和烟雾浓度,D5为电源指示灯。
图6.3温度过高
温度的设定值是30度,当温度超过30度时,D3发光,D1闪烁,蜂鸣器发出报警,提示人们有异常情况发生。
图6.4烟雾浓度过高
当烟雾浓度过高时,D4发光,同时D1闪烁,蜂鸣器同样发出报警声音。数码管显示当前的温度和烟雾的浓度等级。
图6.5火灾发生
当烟雾浓度和温度同时超标,D3,和D4同时发光,提示人们有火灾发生。
图6.6紧急呼叫
28
武汉工程大学邮电与信息工程学院 毕业设计(论文)
当有特殊情况发生的时候,火灾报警器,有一个紧急呼叫按钮,被按下就会发出声光报警,及时没有火灾发生,也会报警。
本设计可以根据实际情况设定报警的温度和烟雾浓度的范围,通道按钮可以调节。如图6.7所示。
图6.7 设定报警范围
29
武汉工程大学邮电与信息工程学院 毕业设计(论文)
总结
本文设计了一种基于单片机AT89C51的火灾自动报警系统,系统安全可靠,误报率低,操作方便,成本较低。本设计抛弃了传统的使用单一传感器探测报警,采用了温度传感器DS18B20和烟雾传感器MQ2相结合的多传感器探测方法,使系统灵敏度高、响应时间短,在火灾发生的早期就能准确的报警。系统使用了8位A/D转换芯片ADC0832,以通用芯片AT89C51作为系统的控制器。系统在采集温度烟雾信号时,采用多次采集,多次判断的方法,降低了误报率。在系统的软件设计方面,采用了模块化程序设计方法,系统各个模块的具体功能都是通过子程序调用实现的。既使得程序结构清晰,又便于以后进一步扩展其功能,也便于系统的维护。
当发生火灾,系统以声光的形式发出报警。在系统中设置了1个蜂鸣器,实现声音报警;并且还设置了4个发光二极管,分别对应系统的正常、异常、火灾、紧急呼叫状态。如果系统出现硬件故障,能发出故障报警;如果只有一种信号参数出现异常(如烟雾浓度过大或是温度较高),能发出异常报警信号;如果烟雾和温度同时出现异常,则说明有火灾,发出火灾警报。
由于时间紧迫和个人能力有限,本文设计的火灾报警系统还存在许多需要完善和作进一步研究的问题,如:
(1)火灾报警系统判断的算法有待进一步的研究改进,应用更先进的神经网络和模糊识别等智能算法,降低系统的误报率,提高灵敏度。
(2)本文使用的DS18B20在保证精确度的情况下可以并联使用8个,可以实现多点测温。
(3)DS18B20的测温范围为-55℃~+125℃,在温度升高较快的现场不适用,若同时使用其他类型的温度传感器如热电偶温度传感器,其测温范围最高可达2000摄氏度。
(4)可以设置联动装置,当有险情发生时不仅能发出报警信号,而且能驱动相应的灭火装置进行灭火,在火灾发生的早期及时控制险情的蔓延。但这种情况下提高报警系统的精确度,降低误报率是应该考虑研究的主要难题。
(5)火灾报警系统没有联网,可以使用GSM模块进行信息的无线传送,这样能够及时将险情信息发送至消防指挥中心。
(6)用户不能根据自己的需要设定火灾报警阈值,报警系统的灵活性不高,可以考虑扩展人机对话模块,提高报警系统在多种场合下的适应性。
30
武汉工程大学邮电与信息工程学院 毕业设计(论文)
致 谢
我历时将近两个月时间终于把这篇论文写完了,在这段充满奋斗的历程中,带给我的学生生涯无限的激情和收获。在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。在校图书馆查找资料的时候,图书馆的老师给我提供了很多方面的支持与帮助,尤其要强烈感谢我的论文指导老师王欣老师,没有她对我进行了不厌其烦的指导和帮助,无私的为我进行论文的修改和改进,就没有我这篇论文的最终完成。在此,我向指导和帮助过我的老师们表示最衷心的感谢!
四年的学习生活在即将划上一个句号,而于我的人生来说却仅仅只是一个逗号,我将面对新的征程的开始。本研究及论文是在我的导师王欣的亲切关怀和耐心的指导下完成的。伟人、名人固然为我所崇拜,可是我更迫切地想要把我的敬意献给给一位平凡的人,我的导师王欣老师。也许我不是您最出色的学生,但您却是我所最尊敬的老师。您是如此的治学严谨,学识渊博,视野广阔,思想深刻,您用心为我营造一种良好的学术氛围,让我的论文更加的严谨。
同时,我也要感谢本论文所引用的各位学者的专著,如果没有这些学者的研究成果的启发和帮助,我将无法完成本篇论文的最终写作。至此,我也要感谢我的朋友和同学,他们在我写论文的过程中给予我了很多有用的素材,也在论文的排版和撰写过程中提供热情的帮助!
金无足赤,人无完人。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和同学批评和指正!
31
武汉工程大学邮电与信息工程学院 毕业设计(论文)
参考文献
[1] 孙育才.MCS-51系列单片微型计算机及其应用.第4版,东南大学出版社, 2006.
[2] 康华光.电子技术基础模拟部分.第4版,高等教育出版社,2006. [3] 刘军.单片机原理与接口技术.华东理工大学出版社,2006. [4] 李中望.一种智能火灾报警系统的设计方案.安防科技,2008.
[5] 王忠民.基于单片机的语音数字联网火灾报警器设计.现代电子技术,2004. [6] 王钊.智能型火灾报警系统的设计与研究:(硕士学位论文).西安理工大学, 2009.
[7] 孙健.基于ARM7的火灾自动报警控制器研制:(硕士学位论文).浙江大 学,2007.
[8] 王忠民,郝静,张瑜等.基于单片机的语音数字联网火灾报警器设计.西安邮 电学院.
[9] 张向亮.智能建筑火灾自动报警系统的设计与研究:(硕士学位论文)武汉 理工大学,2010.
[10] 陈颖.基于C8051F单片机的火灾智能报警控制系统的设计:大连海事大学, 2007.
[11] 于智洋.浅析智能建筑中火灾自动报警系统的设计[J].潜江:江汉石油科技,2008.
[12] 吴龙标,袁宏永.火灾探测与控制工程[M].合肥:中国科学技术大学出版社,1999.
[13] 范维澄.中国火灾科学基础研究概况[J].火灾科学,2005.
[14] 缪顺兵,熊光明,李永萍等.自动火灾报警系统设计与研究[J].装备制造技术.2006.
[15] 黄凤娟.单片机火灾报警系统的设计.安徽电子信息职业技术学院学报,2010 年第1期.
[16] 孟立凡,蓝金辉.传感器原理与应用.北京:电子工业出版社,2007.8.
32
武汉工程大学邮电与信息工程学院 毕业设计(论文)
附录
(1)原理图
33
武汉工程大学邮电与信息工程学院 毕业设计(论文)
(2)原件清单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
原件名称 AT89C51 ADC0832 40P座 8P座 103电位器 33P电容 11.0592M晶振 小按键 5V有源蜂鸣器 10K 510欧姆 220欧姆 4.7K 5.6K 1K 10UF电容 三极管9012 三极管9013 DS18B20 4位一体共阳数码管 万用板 电池盒或USB母口 mq-2 红色LED 绿色LED 个数 1 1 1 1 1 2 1 5 1 4 8 5 1 1 4 1 4 1 1 1 1 1 1 2 1 34
武汉工程大学邮电与信息工程学院 毕业设计(论文)
(3) 程序源代码:
#include #define uchar unsigned char //宏定义 #define SET P1_4 //定义调整键 #define DEC P1_5 //定义减少键 #define ADD P1_6 //定义增加键 #define BEEP P3_4 //定义蜂鸣器 #define hujiao P1_1 sbit ADCS = P3^7; sbit ADCLK = P3^5; sbit ADDI = P3^6; sbit ADDO = P3^6; bit shanshuo_st; //闪烁间隔标志 bit beep_st; //蜂鸣器间隔标志 bit flag=0;//紧急呼叫标志 sbit DIAN = P2^5; //小数点 uint abc; uchar x=0; //计数器 signed char m; //温度值全局变量 uchar n; //温度值全局变量 uchar set_st=0; //状态标志 signed char shangxian=30; //上限报警温度,默认值为38 signed char xiaxian=5; //下限报警温度,默认值为38 uchar nongdu=1; uchar code LEDData[]={0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0}; 35 武汉工程大学邮电与信息工程学院 毕业设计(论文) /*****延时子程序*****/ void Delay(uint num) { while( --num ); } /*****初始化定时器0*****/ void InitTimer(void) { TMOD=0x1; TH0=0x4c; TL0=0x00; //50ms(晶振11.0592M) } /*****定时器0中断服务程序*****/ void timer0(void) interrupt 1 { TH0=0x4c; TL0=0x00; x++; } /*****读取温度*****/ void check_wendu(void) { uint a,b,c; c=ReadTemperature()-5; //获取温度值并减去DS18B20的温漂误差 a=c/100; //计算得到十位数字 b=c/10-a*10; //计算得到个位数字 m=c/10; //计算得到整数位 n=c-a*100-b*10; //计算得到小数位 if(m<0){m=0;n=0;} //设置温度显示上限 36 武汉工程大学邮电与信息工程学院 毕业设计(论文) if(m>99){m=99;n=9;} //设置温度显示上限 } /*****显示开机初始化等待画面*****/ Disp_init() { P2 = 0xf7; //显示- P0 = 0xbf; Delay(200); P0 = 0xef; Delay(200); P0 = 0xfb; Delay(200); P0 = 0xfe; Delay(200); P0 = 0xff; //关闭显示 } /*****显示温度子程序*****/ Disp_Temperature() //显示温度 { P2 =LEDData[m%10]; //显示C P0 = 0xbf; Delay(300); P2 =LEDData[m/10]; //显示个位 P0 = 0xef; Delay(300); P2 =0xf7; //显示十位 P0 = 0xfb; Delay(300); P2 =LEDData[abc]; //显示百位 P0 = 0xfe; 37 武汉工程大学邮电与信息工程学院 毕业设计(论文) Delay(300); P0 = 0xff; //关闭显示 } /*****显示报警温度子程序*****/ Disp_alarm(uchar baojing) { P2 =0x3c; //显示C P0 = 0xbf; Delay(200); P2 =LEDData[baojing%10]; //显示十位 P0 = 0xef; Delay(200); P2 =LEDData[baojing/10]; //显示百位 P0 = 0xfb; Delay(200); if(set_st==1)P2 =0x61; else if(set_st==2)P2 =0x3d; //上限H、下限L标示 P0 = 0xfe; Delay(200); P0 = 0xff; //关闭显示 } Disp_nongdu(uchar baojing)//烟雾浓度报警显示 { P2 =0xff; P0 = 0xbf; Delay(200); P2 =0xff; P0 = 0xef; Delay(200); P2 =0xff; 38 武汉工程大学邮电与信息工程学院 毕业设计(论文) P0 = 0xfb; Delay(200); P2 =LEDData[baojing];//显示浓度 P0 = 0xfe; Delay(200); P0 = 0xff; //关闭显示 } /*****报警子程序*****/ void Alarm() { if(x>=10){beep_st=~beep_st;x=0;} if((m>=shangxian&&beep_st==1)||(m void Alarm1() { if(x>=10){beep_st=~beep_st;x=0;} if(beep_st==1)BEEP=1; else BEEP=0; } uchar ADC0832(bit mode,bit channel) //AD转换,返回结果 { uchar i,dat,ndat; ADCS = 0;//拉低CS端 _nop_(); _nop_(); 39 武汉工程大学邮电与信息工程学院 毕业设计(论文) ADDI = 1; //第1个下降沿为高电平 ADCLK = 1;//拉高CLK端 _nop_(); _nop_(); ADCLK = 0;//拉低CLK端,形成下降沿1 _nop_(); _nop_(); ADDI = mode; //低电平为差分模式,高电平为单通道模式。 ADCLK = 1;//拉高CLK端 _nop_(); _nop_(); ADCLK = 0;//拉低CLK端,形成下降沿2 _nop_(); _nop_(); ADDI = channel; //低电平为CH0,高电平为CH1 ADCLK = 1;//拉高CLK端 _nop_(); _nop_(); ADCLK = 0;//拉低CLK端,形成下降沿3 ADDI = 1;//控制命令结束(经试验必需) dat = 0; //下面开始读取转换后的数据,从最高位开始依次输出(D7~D0) for(i = 0;i < 8;i++) { dat <<= 1; ADCLK=1;//拉高时钟端 _nop_(); 40 武汉工程大学邮电与信息工程学院 毕业设计(论文) } } _nop_(); ADCLK=0;//拉低时钟端形成一次时钟脉冲 _nop_(); _nop_(); dat |= ADDO; ndat = 0; //记录D0 if(ADDO == 1) ndat |= 0x80; //下面开始继续读取反序的数据(从D1到D7) for(i = 0;i < 7;i++) { } ndat >>= 1; ADCLK = 1;//拉高时钟端 _nop_(); _nop_(); ADCLK=0;//拉低时钟端形成一次时钟脉冲 _nop_(); _nop_(); if(ADDO==1) ndat |= 0x80; ADCS=1;//拉高CS端,结束转换 ADCLK=0;//拉低CLK端 ADDI=1;//拉高数据端,回到初始状态 if(dat==ndat) return(dat); else return 0; 41 武汉工程大学邮电与信息工程学院 毕业设计(论文) /*****主函数*****/ void main(void) { uint z; InitTimer(); //初始化定时器 EA=1; //全局中断开关 TR0=1; ET0=1; //开启定时器0 BEEP=0; check_wendu(); check_wendu(); for(z=0;z<300;z++) { Disp_init(); } while(1) { if(hujiao==0) { Delay(2000); do{}while(hujiao==0); flag=~flag; } if(SET==0) { Delay(2000); do{}while(SET==0); set_st++;x=0;shanshuo_st=1; if(set_st>3)set_st=0; } 42 武汉工程大学邮电与信息工程学院 毕业设计(论文) if(set_st==0) { abc = ADC0832(1,0); //差分模式,CH0-CH1 abc = abc*19.607843; //转换为实际电压便于显示 abc=abc/1000%10; check_wendu(); Disp_Temperature(); if(flag==1)Alarm1(); else Alarm(); //报警检测 } else if(set_st==1) { BEEP=0; //关闭蜂鸣器 if(DEC==0) { Delay(2000); do{}while(DEC==0); } shangxian--; if(shangxian Delay(2000); do{}while(ADD==0); } shangxian++; if(shangxian>99)shangxian=99; if(x>=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_alarm(shangxian);} } 43 武汉工程大学邮电与信息工程学院 毕业设计(论文) else if(set_st==2) { BEEP=0; //关闭蜂鸣器 if(DEC==0) { Delay(2000); do{}while(DEC==0); } xiaxian--; if(xiaxian<0)xiaxian=0; if(ADD==0) { Delay(2000); do{}while(ADD==0); } xiaxian++; if(xiaxian>shangxian)xiaxian=shangxian; if(x>=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_alarm(xiaxian);} } else if(set_st==3) { BEEP=0; //关闭蜂鸣器 if(DEC==0) { Delay(2000); do{}while(DEC==0); if(nongdu>0) nongdu--; if(nongdu<1)nongdu=0; 44 武汉工程大学邮电与信息工程学院 毕业设计(论文) } if(ADD==0) { Delay(2000); do{}while(ADD==0); } nongdu++; if(nongdu>5)nongdu=5; if(x>=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_nongdu(nongdu);} } } } /*****END*****/ #include #define DQ P1_0 //定义DS18B20总线I/O /*****延时子程序*****/ void Delay_DS18B20(int num) { while(num--) ; } /*****初始化DS18B20*****/ void Init_DS18B20(void) { unsigned char x=0; DQ = 1; //DQ复位 Delay_DS18B20(8); //稍做延时 DQ = 0; //单片机将DQ拉低 Delay_DS18B20(80); //精确延时,大于480us 45 武汉工程大学邮电与信息工程学院 毕业设计(论文) DQ = 1; //拉高总线 Delay_DS18B20(14); x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败 Delay_DS18B20(20); } /*****读一个字节*****/ unsigned char ReadOneChar(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; // 给脉冲信号 dat>>=1; DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4); } return(dat); } /*****写一个字节*****/ void WriteOneChar(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; 46 武汉工程大学邮电与信息工程学院 毕业设计(论文) Delay_DS18B20(5); DQ = 1; dat>>=1; } } /*****读取温度*****/ unsigned int ReadTemperature(void) { unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器 a=ReadOneChar(); //读低8位 b=ReadOneChar(); //读高8位 t=b; t<<=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; //放大10倍输出并四舍五入 return(t); } /*****END*****/ 47 因篇幅问题不能全部显示,请点此查看更多更全内容