版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的智能火灾报警系统的设计基于单片机的智能火灾报警系统的设计基于单片机的智能火灾报警系统的设计摘要:现代科学技术正在不断地进步与发展,科技发展的成果正在日新月异的在我们的生活之中产生深刻的影响。随着工业及家庭用火、用电量的逐步增加,以及随着时间的推移没有得到清除的火灾隐患,学校、楼房、体育馆等建筑场所发生火灾的概率也越来越高。除了减少火灾隐患,从根源上杜绝火灾发生的可能之外,能够对已经发生的火灾进行及时预测和报警、及时的对火情做出应对也不失为一种可行性非常高的方法。基于这种思路,本课题设计了一种基于单片机的智能火灾报警系统,主要采用的模块有STC89C52单片微控制器、MQ-2烟雾传感器、ADC0809模数转换器、DS18B20温度传感器、LCD1602显示屏和继电器等实现任务书的要求,并添加了新的功能。当环境的烟雾或温度数值达到系统设定的阈值时,系统则会发出相应的LED灯光报警信号和蜂鸣器声音报警信号。通过这种方式实现智能化的火灾报警,并通过成果实物来完成整个设计过程。关键词:STC89C52单片机;火灾报警;MQ-2烟雾传感器;DS18B20温度传感器;
DesignofIntelligentFireAlarmSystemBasedonSingle-ChipMicrocomputerAbstract:Modernscienceandtechnologyareconstantlyprogressinganddeveloping,andtheresultsofscientificandtechnologicaldevelopmentarerapidlychangingandhavingaprofoundimpactonourlives.Withthegradualincreaseofindustrialanddomesticfiresandelectricityconsumption,andthehiddenfirehazardsthathavenotbeeneliminatedovertime,theprobabilityoffiresinschools,buildings,gymnasiumsandotherconstructionsitesisalsoincreasing.Inadditiontoreducingtheriskoffireandeliminatingthepossibilityoffirefromtherootcause,itisaveryfeasiblemethodtobeabletopredictandalarmthefirethathasoccurredinatimelymannerandrespondtothefireinatimelymanner.Basedonthisidea,thissubjectdesignedanintelligentfirealarmsystembasedonsinglechipmicrocomputer.ThemainmodulesusedareSTC89C52single-chipmicrocontroller,MQ-2smokesensor,ADC0809analog-to-digitalconverter,DS18B20temperaturesensor,LCD1602displayandelectricrelaystofulfilltherequirementsofthemissionstatement,andaddnewfunctions.Whentheenvironmentalsmokeortemperaturevaluereachesthethresholdsetbythesystem,thesystemwillissuethecorrespondingLEDlightalarmsignalandbuzzersoundalarmsignal.Inthisway,theintelligentfirealarmisrealized,andthewholedesignprocessiscompletedthroughtheactualresults.Keywords:STC89C52micro-controller;firealarm;MQ-2smokesensor;DS18B20temperaturesensor;
目录1 绪论 绪论课题的研究背景火灾(fireaccident),意指因火苗缺乏应有的控制而导致乃至扩大并造成各种损失和伤害,包括财产损失和人身伤亡的过度燃烧。火灾具有以下四个特点:成长性、浮动性、偶发性和盲目性,会对人们的生命和财产安全以及社会设施等造成极大的威胁。数千年以来,由于火灾而造成的人们生命与财产损失不计其数,产生严重后果导致巨大损失的严重火灾更是不胜枚举。历史上发生的比较著名的火灾有:公元64年7月发生在罗马的罗马大火;1666年9月发生的伦敦大火;1886年6月发生的温哥华大火;1994年12月发生的克拉玛依大火;2007年10月发生在美国加利福尼亚州的圣地亚哥大火;2019年4月发生的巴黎圣母院大火以及自从2019年11月发生以来肆虐近半年的澳大利亚山火[1]。我国地大物博,人口众多,960万平方公里的土地上生活着14亿人口,随着我国经济水平的快速发展和城市基础设施的不断建设,高层建筑、地下建筑和大型综合建筑日渐增多,火灾发生的隐患随着时间的推移也逐步增加,火灾发生的次数以及其造成的损失也呈现了日渐上升的趋势。在我国,根据火灾造成的财产损失和人身伤亡的不同差别,在2007年6月1日起开始执行的,由中华人民共和国公安部下发的《关于调整火灾等级标准的通知》中将我国发生的火灾调整为四个等级:特别重大火灾、重大火灾、较大火灾和一般火灾[2]。基于以上种种原因,火灾报警系统技术便应运而生。火灾报警器是一种装设在建筑物内或者特定场所的警报器,用于在火灾可能发生以及已经发生时发出警报信号,是人们可以随机应变,进而降低生命和财产的损失。火灾报警器有很多种类,最常见的为声光报警器,它的动作原理为:当探测器(包括电离烟雾探测器、感温火灾探测器、红外感烟火灾探测器、火警侦测器、火警探测器、火灾警报器、烟雾侦测器、烟雾探测器、火警受信总机等)动作时向火灾报警主机传送报警信号,火灾报警主机随即给声光报警器传输信号,声光报警器开始蜂鸣报警以及发出闪光信号。如今某些火灾警报器已经发展到可以自己发出蜂鸣或者闪光。课题的研究目的与意义:“以上”包括本数,“以下”不包括本数。
目的目前,随着国内家庭等小型场所内用火、用电的次数越来越多,规模越来越大,发生火灾的可能性也水涨船高。而家庭失火很容易因发现不及时,缺乏消防装备设施,人员情绪紧张惊慌失措撤离受阻或扑救不到位等原因,很有可能会发展为猛烈的火灾,造成生命与财产的重大损失。根据消防部门的有关统计数据,家庭火灾的数量已经占到了所有火灾总数的30%以上。家庭火灾的原因是多种多样的,比如电线老化破损,电器线路超负荷使用,电器插座不牢靠,照明灯具距离可燃物过近,电气设备过流或短路,家中存放酒精汽油等易燃易爆物品,倾倒未完全熄灭的炉灰煤球,使用汽油等易燃液体帮助生活,燃气管道老化,儿童把玩火柴打火机以及长时间不关闭电源或火源等。综上所述,家庭失火发生之后一旦处置不当,报警迟缓则会造成严重后果,可能原本幸福的家庭顷刻之间家破人亡,毁于一旦。因此,帮助人们积极了解家庭火灾的起因,防止火灾的发生,发生之后快速准确的报警,乃是本课题的目的所在。意义本次课题设计的基于单片机的智能火灾报警系统,对于国内家庭以及小型场所的消防安全具有重大的意义。在我国的一、二线城市,几乎每一天都有家庭火灾的发生,每一天都有悲剧上演。只要本系统的设计有助于阻止一起家庭火灾的发生,有助于挽救一个即将支离破碎的家庭,有助于保护一座社会设施免受火焰的侵袭,作者便认为它有着对于人民、社会、国家无法估量的意义。我国火灾报警器的应用现状和自动报警系统应用技术发展趋势[3]国内自动火灾报警的应用现状使用范围小;智能化程度较低;网络化程度较低;组件的连接方式有改善空间;自动火灾报警系统应用技术的发展趋势网络化;智能化;多样化;包括火灾的探测技术的多样化和设备的连接方式的多样化小型化社区化无线化高灵敏度化兼容性化火灾报警系统的总体方案设计本课题主要研究对象是基于单片机的智能火灾报警系统。本节主要目的是介绍系统总体方案,包括系统的功能要求、系统技术要求、工作要求、创新部分以及系统组成及方案设计介绍。系统功能要求①设计一款基于单片机的智能火灾报警系统,环境的烟雾信号由半导体气体烟雾传感器采集,温度信号由数字温度传感器采集,烟雾信号经AD转换为数字信号后送单片机,单片机一方面对检测的烟雾和温度信号处理并通过LCD液晶显示器实时显示,另一方面与预设的烟雾和温度阈值范围比较并判断是否报警,通过加、减按键可设置报警的阈值范围,设置有紧急报警按键以应对突发情况。系统技术要求(1)进行设计方案的比较,并选定设计方案;(2)完成原理分析,进行各主要元器件的选择并设计电路;(3)用protues完成系统原理图绘制;(4)硬件的制作、软件的编写及系统的调试。系统工作要求认真阅读理解设计任务书;做好相关调查研究、查阅文献资料,征询指导教师意见;撰写开题报告;制订设计方案,征询指导教师意见;论文撰写;论文答辩。创新部分当环境烟雾值超过设定值后,除了LED灯闪亮之外,单片机会驱动继电器使得风扇转动模拟排烟;当环境烟雾值和温度值均超过设定值后,除了两只LED灯闪亮报警之外,单片机驱动继电器使得风扇和水泵转动模拟排烟和排水。:“系统功能要求”,及以下的“系统技术要求”、“系统工作要求”等部分摘抄自《毕业设计任务书》;“创新部分”及“系统组成及方案设计介绍”为创作部分。
系统组成及方案设计介绍系统组成系统组成如下图所示图2-SEQ图2-\*ARABIC1系统组成图方案设计介绍AD烟雾采集模块AD转换模块有两种方案选取,一种是ADC0832模数转换器,这种模数转换器体积较小,兼容性好,是一种双通道的模数转换器。另一种方案是较为简单的ADC0809模数转换器,此种模数转换器功耗较小,只能选通一路输入信号进行转换,成本很低,程序和指令较为简单,适宜于初学者使用。考虑到本次系统设计对AD转换需求不是很高,只对一路输入信号进行转换即可满足要求,再结合成本、体积、兼容性等其他方面的因素综合起来考量,决定AD转换模块采用ADC0809模数转换器;烟雾传感器可选用MQ-2和MQ-5气体烟雾传感器。这两种传感器都需要进行数据采集之后经过AD转换为数字量后送入单片机处理。MQ-5单片机对液化石油气、天然气和煤气等气体灵敏度较高,对烟雾、乙醇等气体响应度较低[4],不适用于本次的火灾报警系统,因此烟雾采集模块选用对烟雾、乙醇等气体更加敏感准确的MQ-2气体烟雾传感器;单片机电路当作者进行到选取哪一主控芯片作为此系统核心器件这一步时,有数个方案设计被提出:第一种方案:采用宏晶科技公司的改良版STC89C52单片机,这种单片机价格相对低廉,指令相对简单,且属于已经学习过的已有知识,各方面资料也非常齐全。第二种方案:采用Microchip公司出品的PIC16F877A单片机。这种单片机优点是内存较大,flash程序可靠,编译好的程序可反复擦写,但成本比较高,而且相对来说开发条件不是很好,难度比较大。第三种方案:选用美国德州仪器生产的MSP430单片机作为主控芯片,这种芯片功耗非常低,指令集较为精简高效,但开发难度比较大,而且成本高昂,不适用于较为简单的系统之中。因此,在综合了开发难易程度、系统成本以及系统复杂度多方面的考虑之后,决定单片机电路采用STC89C52单片机,Proteus仿真中因没有收录STC89C52单片机,因此选用指令集和STC89C52单片机相同,且同为51系列单片机的AT89C52进行仿真;液晶显示模块液晶显示屏可选用LCD1602和LCD12864两种方案,考虑到LCD12864显示器虽然显示功能比LCD1602更为强大有效,但是功耗较高,成本相比于LCD1602要高出许多,而且过大的显示屏会显得有些畸形而且会造成空间浪费。综合各方面考量之后,选用体积更加小巧、成本更加低廉且能足够达到系统所需要求的LCD1602液晶显示屏用于显示模块;按键模块按键模块采用3只按钮。从上至下分别命名为1号按钮、2号按钮和3号按钮。显示模式下,1号按钮为切换模式,2号按钮无设定功能,3号按钮为紧急报警按钮,按下之后LED灯闪亮,同时蜂鸣器报警。显示模式下按下1号按钮则切换至设置模式,默认设定的参数为温度值,2号按钮为增大选定参数的设置值,3号按钮为减小选定参数的设置值;再次按下1号按钮为切换至烟雾参数,之后再次按下1号按钮为返回至显示模式。声光报警提示模块声光报警提示模块由LED灯和蜂鸣器组成。当环境温度值超过设定值时,红色LED灯亮同时蜂鸣器报警;当环境烟雾值超过设定值时,黄色LED灯亮同时蜂鸣器报警。继电器模块继电器模块与声光报警提示模块有着千丝万缕的联系。当环境烟雾值超过设定值时,继电器吸合使得风扇转动模拟排烟;当环境温度值和烟雾值均超过设定值时,继电器吸合使得水泵工作模拟排水灭火。温度采集模块温度采集模块采用DS18B20温度传感器晶振及复位电路单片机晶振频率为11.0592MHz;复位电路采用一个按钮作为复位按键,按下后重置整个系统。
系统的硬件设计系统总体电路图图3-SEQ图3-\*ARABIC1系统总体电路图系统总体电路图如图所示。此电路图的制作工具是Proteus。Proteus是一款由英国LabCenterElectronics公司设计的、主要用于EDA仿真,和单片机及其外围器件仿真的电子设计自动化软件。Proteus具有完善的电路仿真功能,智能原理图设计,数量众多的仿真器件,多样的激励源,丰富的虚拟仪器和生动的仿真显示,是非常好的仿真单片机及外围器件的工具,受到了国内从事单片机学习的教师和学生、开发单片机应用的科技工作者以及单片机爱好者的普遍青睐[4]。主控电路主控电路采用STC89C52单片机,配合晶振电路、复位电路以及单片机最小应用系统组成。STC89C52单片机是兼容传统的工业标准MCS-51指令集和输出管脚,且配备有8K字节的系统可编程Flash存储器的高性能、低电压的单片机,其制造技术是采用ATMEL公司的高密度非易失存储器技术5。相比于其他的51系列单片机,STC89C52单片机的内核同样是MCS-51,但为了更好的功能性和兼容性做了许多改进和完善的地方,使该单片机具有其他51单片机尚未获得的功能。该单片机的总控制电路如下图:图3-图3-SEQ图3-\*ARABIC2STC89C52单片机总控制电路时钟电路STC89C52的时钟电路的组成部分是一个以高增益反相放大器为核心器件的内部振荡器,它有两个引脚:RXD引脚和TXD引脚,接线之后分别具有不同的功能。RXD引脚用于放大器输入接口,TXD引脚是放大器的输出接口。单片机可以通过内部和外部两种方式产生时钟信号。内部方式的时钟电路如下图所示,图3-SEQ图3-\*ARABIC3STC89C52单片机内部方式时钟电路定时元件外接在TXD和RXD引脚上时,振荡器内部就会产生不需要添加外部激励信号就可以自行产生的恒值稳定和持续的自激振荡。由电容和石英晶体构成的谐振并联回路往往被用作单片机内部的定时元件,具有定时功能。通常的晶振频率范围一般在1.2MHz到12MHz中选择,频率的微小调整可根据电容值的选择而进行。复位电路复位是单片机电路的恢复到初始状态的过程,主要目的是将PC寄存器重置为起始状态,使单片机从0000H重新开始执行设定的程序。一般来讲有两种情况需要复位,除了正常第一次进入系统需要进行初始化复位之外,当系统在程序运行过程中出现错误导致系统锁死或因个人的操作原因使系统故障时,都需要通过复位按键使系统初始化。下表是单片机一些寄存器的复位状态[5]。寄存器复位状态寄存器复位状态PC0000HTCON00HPSW00HTL000HACC00HTH000HDPTR0000HTL100HSP07HTH100HP0-P3FFHSBUF不定IPXX000000BSCON00HIE0X000000BTMOD00HPCON0XXX0000B表3-SEQ表3-\*ARABIC1寄存器复位状态STC89C52主要引脚功能详细说明:电源引脚(2根)VCC:接+5V电源,为整个单片机提供所需电能;GND:接地线,为整个单片机提供保护。晶振时钟电路引脚(2根)XTAL1:片内振荡电路输入端;XTAL2:片内振荡电路输出端。可编程的输入、输出引脚(32根)STC89C52单片机有4组8位可编程I/O口,分别命名为P0、P1、P2、P3口,每一组可编程I/O口都有8根引脚(共4×8=32根)P0口:八位双向I/O口线;P1、P2、P3口:均是八位准双向I/O口线;每个引脚的命名方式相同,均是PX(0、1、2、3).数字(0、1、2、3、4、5、6、7)STC89C52的主要功能[5]:兼容MCS-51指令;32个双向I/O口;时钟频率24MHz;256×8bit内部RAM;8K可擦写FlashROM;3个16位可编程定时/计数器;2个串行中断;2个外部中断源;2个读写中端口线;3级加密位;可编程UART串行通道;烟雾采集和AD转换电路本系统中采用MQ-2烟雾传感器作为烟雾采集的主要器件,AD转换器使用ADC0809(Proteus仿真中使用ADC0808代替),ADC0809转换器将MQ-2采集到的烟雾数值转换成数字信号后送入单片机进行下一步处理。MQ-2介绍MQ-2气体传感器(Grove-GasSensor)对于家庭和工业检测泄露气体很有用。它适用于检测氢气(H2)、液化石油气(LPG)、甲烷(CH4)、一氧化碳(CO)、乙醇(C2H6O)或丙烷(C3H8)。由于其响应时间很短且灵敏度很高,可以尽快进行测量。可以通过电位器调节它的灵敏度。MQ-2具有以下功能:检测范围广;使用时间长;灵敏度高;响应迅速;抗干扰能力出色,驱动电路简单。ADC0809介绍ADC0809是由美国国家半导体公司生产的A/D模数转换器,采用CMOS工艺制造,内部有一个8通道多路开关,它可以根据地址码锁存译码之后的信号,选通8路模拟输入信号中的一个进行AD转换[6]。ADC0809具有以下特性:8位分辨率,8路输入通道;单个+5V电源供电;模拟输入电压范围0V~+5V;转换时间100μs(时钟为 640KHz)或130μs(时钟为500KHz);工作范围-40℃~+85℃;功耗低,约15mW。ADC0809芯片有28条引脚。封装方式为双列直插式,引脚功能如下:START:A/D转换启动/复位脉冲输入端,从引脚输入一个正脉冲时AD转换器启动(如果输入的脉冲是上升沿将使ADC0809复位,下降沿将使AD转换启动);EOC:A/D转换结束信号的输出端。当ADC0809将模拟量转换为数字量这个过程结束之后,此端口将输出一个高电平(转换期间一直为低电平);OE:数据输出允许信号输入段,仅高电平有效。当A/D转换结束时,从此端输入一个高电平才能打开输出三态门输出数字量;CLK:时钟脉冲信号输入端;VCC:电源端,输入+5V电压;GND:接地端口;REF(+)、REF(-):基准电压;IN0~IN7:8路模拟量输入端;2.1~2.8:8位数字量输出端。液晶显示电路说明系统的显示屏采用LCD1602液晶显示屏幕。LCD1602液晶显示屏是一种广泛应用的点阵字符行液晶显示模块,专门用于字母、符号和数字等图形的显示和某些自定义符号,每一行可显示16个字符,可显示出两行图像。相比于数码管,液晶显示器作为输出器件具有以下优点[7]:显示质量高,品质高且不会出现屏幕闪烁的情况;重量比相同的显示面积的传统显示器轻许多;与单片机的接口连接-更加简单可靠,进行操作更加方便;因主要功耗消耗在其内部的电极和驱动IC上,因此耗电量极小。下表为LCD的液晶接口信号功能表[7],编号符号引脚说明编号符号引脚说明1VSS电源地2VDD电源正极3VL液晶显示对比度调节4RS数据/命令选择5R/W读写选择(H/L)6E使能信号7D0数据口8D1数据口9D2数据口10D3数据口11D4数据口12D5数据口13D6数据口14D7数据口15BLA背光电源正极16BLK背光电源负极表3-SEQ表3-\*ARABIC2LCD液晶接口信号功能表LCD1602通过指令变成来实现显示屏、光标操作和液晶模块的读/写操作。具体LCD1602的指令参见下表[7]:序号指令RSRWD7D6D5D4D3D2D1D01清屏00000000012光标复位000000000X3输入方式设置00000001I/DS4显示开关控制0000001DCB5光标或字符移位控制000001S/CR/LxX6功能设置00001DLNFxx7字符发生存储器地址设置0001字符发生存储器地址8数据存储器地址设置001显示数据存储器地址9读忙标志或地址01BF计数器地址10写入数据至CGRAM或DDRAM10要写入数据的内容11从CGRAM或DDRAM中读取数据11读取的数据内容表3-SEQ表3-\*ARABIC3LCD1602指令表液晶显示屏正是利用了液晶的通过向其控制的区域施加电压信号,利用液晶分子在电场作用下排列方向发生变化,即可显示出图像的这一神奇特性。它具有色彩鲜艳,、厚度薄,体积小、适用于大规模集成电路,目前在个人电脑、数码相机、个人电话等领域得到了大规模的使用和发展。声光报警电路本系统的声光报警电路主要由蜂鸣器、LED灯和电阻组成。下面分别介绍两种元件。蜂鸣器蜂鸣器是一种直流电压作电源输入的一体化结构电子讯响器,广泛应用于打印机、复印机、报警器、个人电脑、电子玩具、定时器、电话机等电子产品中,用作发声器件。它主要有两个种类,分别是压电式和电磁式。压电式蜂鸣器主要组成部分有多谐振荡器,压电蜂鸣片,阻抗匹配器和共鸣箱,有些压电式蜂鸣器还配备有发光二极管。电磁式蜂鸣器的主要构成是振荡器、电磁线圈、磁铁和振动膜片。在通入电流的情况下振荡器产生的音频信号电流流过电磁线圈。在电磁线圈周围产生电磁场,和磁铁共同作用下使振动膜片周期性的振动发声。蜂鸣器的驱动电路一般来讲需要额外配备一个三极管,其目的是使流过三极管的电流放大以达到标准,和一个限流电阻,当三极管饱和导通,流过电流时蜂鸣器工作发声,三极管截止时蜂鸣器停止发声。LED灯LED(LightEmittingDiode),意指发光二极管,主要化学成分是含镓(Ga)、砷(As)、氮(N)、磷(P)等的化合物。种类分为有机发光二极管(OLED)和无机发光二极管(LED)。它特性众多,包括但不限于可以在高速开关状态下工作;响应速度快;保护环境;发出冷光不生热,不吸引蚊虫,但是它最突出的特点是节能,开启相同时间时,LED灯消耗的电能只有白炽灯的10%,节能灯的25%,在节能环保的大环境下,发光二极管有着广阔的应用前景。温度采集电路传感器在现代检测技术行业中扮演着不可或缺的角色,能对现实世界中无处不在的模拟量进行检测并提供可靠的、能供单片机进行处理的数字信号,传感器可以将人们生活于其中的现实世界和微小但缜密高速的计算机世界联系起来,对电子信息化和设备自动化起着举足轻重的作用。本系统的温度采集电路的核心器件是美国DALLAS公司生产的DS18B20可组网数字温度传感器,该温度传感器直接输出数字信号,具有体积小、节约开支、精度高和抗干扰能力强的特点。形式多种多样,包括磁铁吸附式、螺纹式、不锈钢封装式、管道式等。DS18B20的性能特点作为数字式温度传感器,DS18B20具有以下优秀的性能特点[9]:在使用中不需要外围元件;可以使用数据线进行供电,供电电压范围从+3.0V到+5.5V;用户可自行设定报警上下限值,本课题中即应用了此特点;通过编程可实现9~12位的数字读数方式;采用单线接口方式,仅需要一条接线即可实现传感器与单片机之间的双向通讯;测量范围大,覆盖了-55℃~+125℃。本身固有的测量分辨率位0.5℃。测量精度高,在全部工作范围内可确保温度测量误差不超过2℃,在-10℃至85℃之间更是可以确保误差小于0.5℃;具有极高的转换速率,进行9位温度值转换只需要93.75ms;支持多点组网功能;具有负压特性,具有电源反接保护电路,内含64位只读存储ROM,包括8位产品系列号,8位循环冗余校验码(CRC)和48位产品序号,也可适配各种单片机系统。DS18B20引脚介绍图3-SEQ图3-\*ARABIC4DS18B20引脚和封装图I/O为数据输入/输出端,外部串接上拉电阻后常态下高电平,属于漏极开路输出。GND接地,UDD工作状态下接可供选用的外部电源(不用时接地),NC放空。DS18B20的程序流程图图3-SEQ图3-\*ARABIC5DS18B20的程序流程图按键驱动电路本系统读取按键的方式是将按键接地,低电平有效。按下按键时低电平信号输入单片机处理。一般来说,单片机的按键键盘有两种形式,分别称为矩阵式键盘和独立式键盘。独立式键盘独立式按键是两种方式中相对来说较为简单的按键结构,每个按键都通过一根数据输入线连接到单片机,每一个按键都互相独立且互不影响之间的工作状态,每根接线与单片机的一个I/O口相连,另一端接电源或者接地。本设计选取通常的接地状态,按键按下时通过数据线向单片机输入低电平信号,只需在程序中检测对应I/O口的状态即可判断按键是否按下。这种键盘输入方式优点是结构简单,而且系统更加稳定,适用于按键个数不多的单片机系统[10]。矩阵式键盘矩阵式键盘首先通过识别单片机I/O口读取的电平高低状态判断是否有按键按下,然后再确定是哪个按键被按下。将常开按键的一端接地另一端接到单片机某I/O口上,程序起始状态此I/O口置于高电平,按键按下后可采用逐行扫描法,寻找行、列交叉点的闭合按键。矩阵式键盘的优点是节约单片机的I/O口资源,但是程序比较复杂,适用于按键比较多的单片机系统[10]。按键消抖按键按下的过程是机械触点闭合、释放的过程,由于弹性的作用,机械触点的闭合和断开瞬间不可避免地会产生电平不稳定的现象,这并不是我们在按下按键时通过注意操作可以避免的。因此按键输入电压的信号也会存在抖动的现象。因此,采用什么方法去除抖动是必须要面对的问题。按键抖动的时间长短取决于按键的机械特性,一般为5~10ms。消抖方法一般有两种:硬件消抖和软件消抖。硬件消抖是在电路中加入一些元件消除抖动的影响,如加入电容滤波,采用单稳延时电路等。这种方式可以避免抖动的产生,但是会使得电路和程序变得复杂,同时增加成本。因此一般采用软件消抖的方式去除抖动,这种方式是在检测到按键按下时延迟一段时间,一般为20ms,时间过去时候再次检测按键状态。如果仍然为闭合则判定为按键按下,如果按键断开则认为是扰动信号。这种方式简单可行,不需要额外增加电路元件而且成本较低,因此在单片机系统中被广泛采用[10]。继电器驱动电路控制继电器用于电路的逻辑控制,它具有记忆和逻辑功能,能组成复杂的逻辑控制电路,目的是将某种电量(如电流I或电压U等)或非电量(如温度T压力F时间t转速r等)的变化转换为开关量,从而实现对电路的控制功能。继电器的种类多种多样,包括电磁式继电器、中间继电器、电流继电器、电压继电器、时间继电器、热继电器、速度继电器、液位继电器、压力继电器和真空继电器等。本设计采用的是电磁式继电器。其组成部分是铁芯、线圈、衔铁和触电簧片等。当线圈两端施加一定的电压时。线圈中会在法拉第电磁感应的作用下产生电流,衔铁就会在电磁力吸引的作用下吸向铁芯,从而带动触点吸合使电路导通。线圈断电后,电磁感应消失,衔铁在弹簧作用下复原,触点因此断开。通过这种接通断开的方式在电路中实现导通、切断的操作。本设计的继电器由相应的PNP型三极管驱动,电流从发射极流入三极管。开机时,默认状态下P3.5为高电平,三极管截止。当P3.5变成低电平时,三极管的基极被拉低,产生基极电流使得三极管导通,继电器得电吸合驱动负载,电路进行相应的操作。
系统的软件设计Keil软件介绍本系统的软件程序编写通过C语言开发,软件开发环境是美利坚合众国KeilSoftware公司出品的KeilC51软件。此软件兼容51系列单片机,相比于汇编语言,C语言在功能上、结构性、可读性和可维护性上有着较为明显的优势。Keil软件利用一个集成开发环境(μVision)将C语言编译器、链接器、宏汇编、库管理和一个功能强大的仿真调试程序组合成一个整体,生成的代码效率高,便于人们理解,在开发大型软件时能更好的体现高级语言的优势[11]。2013年10月,Keil公司正式发布了最新的一款Keil软件:KeilμVision5IDE.系统程序流程图当系统开始工作时,首先对需要进行初始化的器件,包括DS18B20温度传感器、LCD1602液晶显示屏等元器件进行初始化,接着读取DS18B20传回的温度数值和经ADC0809转换后的,由MQ-2烟雾传感器采集的烟雾数值。如果超过设定的阈值则会驱动声光报警电路报警,同时驱动继电器电路吸合。系统程序流程图如下:图4-SEQ图4-\*ARABIC1系统程序流程图主程序主程序是程序执行的起点,是程序模块化的重要组成部分,是程序开始运行和结束的中心部分,一般会调用其他函数进行运行。主程序的程序流程图如下:图4-SEQ图4-\*ARABIC2主程序的程序流程图初始化传感器和温度采集程序在采集温度之前首先需要对DS18B20温度传感器进行初始化,其目的是配置传感器的寄存器使DS18B20转换精度复合系统要求。初始化完成之后才可对DS18B20进行读取温度的操作。读取温度首先需要使DS18B20复位,之后跳过读取系列号直接启动温度转换,之后再一次进行复位操作,跳过系列号后发送读取温度指令,在指令作用下读取温度寄存器,最后通过一系列的计算将数据转换为实际的温度[12]。DS18B20温度传感器程序流程图如下:图4-SEQ图4-\*ARABIC3DS18B20温度传感器程序流程图按键程序本设计共采用三只按钮,独立式键盘,每一只按键在不同模式下都有不同的功能,其中3号按键设定了紧急报警功能。按键程序流程图如下:图4-SEQ图4-\*ARABIC4按键程序流程图AD转换程序首先将OE置低电平,接着ST端口输出高脉冲启动AD转换,结束后OE返回低电平,单片机读取AD转换后的结果。AD转换程序流程图如下:图4-SEQ图4-\*ARABIC5AD转换程序流程图
系统总体仿真和调试系统仿真图5-1为系统总体电路仿真。因Proteus没有收录STC89C52单片机,因此选用同为51系列单片机的AT89C52单片机作为代替;同样Proteus库中没有MQ-2气体烟雾传感器,因此采用滑动电阻器模拟MQ-2检测的烟雾浓度引起的模拟量变化。在本系统仿真中,小蓝点代表低电平,小红点代表高电平。仿真图左上角为采用滑动变阻器替代后的MQ-2烟雾采集电路;图中左位置为继电器电路、单片机最小系统和复位电路;图左下角为AD转换电路,采用ADC0808;图中上部分为DS18B20数字温度传感器电路;正中为单片机系统的核心:AT89C52代替STC89C52的单片机主控电路;右上角为LCD1602显示屏,显示出字符参数;右部中间为继电器电路和声光报警电路,核心器件是LED灯和蜂鸣器;系统右下角是由三个按钮组成的按键电路,分别负担不同的职责。图5-SEQ图5-\*ARABIC1系统仿真图仿真结果如下(显示模式):图5-SEQ图5-\*ARABIC2显示模式下系统仿真由图可见,温度传感器显示的实时气温为49℃时,液晶显示屏上的温度数据为48.5,烟雾数值也符合滑动变阻器模拟量的设置,说明程序在显示模式下是正确的;设置模式下仿真结果如下图:图5-SEQ图5-\*ARABIC3设置模式下系统仿真由图可见,设置模式下烟雾值被选中,处于设定状态下,按动按键即可进行调整,说明程序在设置模式下是正确的;报警状态下仿真结果如下图所示:图5-SEQ图5-\*ARABIC4报警状态下系统仿真当实时温度和烟雾值均超过设定值时,由图可见两只LED灯闪亮,蜂鸣器报警,同时继电器吸合,完美符合设定的任务要求。说明程序在报警状态下是正确的。因此,由仿真结果来看程序准确无误。实物测试图经过实物测试,系统烟雾传感器读取数据一切正常,温度传感器读取数据一切正常,LCD1602正常显示实际烟雾和温度,参数超过设定阈值时继电器动作正常。下图为硬件成果实物测试图。图5-SEQ图5-\*ARABIC5硬件成果实物测试图程序调试的问题在仿真过程中发现,系统会时不时出现蜂鸣器滴滴响的情况,发生时间不定,发生频率不定,每次发生时蜂鸣器响的次数同样不定。经过搜索文献,仍然无法确定此问题的来源和解决方法。猜测是Proteus软件单片机晶振频率和实际不一致导致的,原因是调整单片机频率之后蜂鸣器滴滴响的频率会发生显著变化。这个问题在实物成果中没有体现。除此之外,系统调试并无其他问题。
结束语火灾作为一种大部分情况下由于人们的疏忽而引起的失去控制的燃烧导致的灾害,如果控制不当可能会造成严重的后果,对人类的生命财产和社会的和谐稳定造成了巨大威胁。本课题在大量参考国内外资料的设计前提下,提出了一种基于单片机的智能火灾报警系统,控制处理器以STC89C52单片机为核心,DS18B20数字温度传感器和MQ-2气体烟雾传感器作为辅助,能够设定报警的阈值,系统的温度和烟雾超过设定值时会引起系统报警,同时驱动继电器进行模拟排烟和放水操作。本系统具有体积小,调试简单,功耗较低,可靠性高等优点,具有广阔的前景。经过几个月的潜心设计,最终通过单片机系统将毕业设计任务书中的要求基本实现。由于时间、经验有限以及个人水平尚未达到较高标准,本设计仍存在一些不足和缺陷,敬请老师批评指正。这次毕业设计对我来说既是一次挑战自我的机会,更是一次锻炼自己的难得机遇。通过此次毕业设计让我收获颇丰,通过自己的努力,巩固了自己所学知识,加强了自己的动手能力和实际分析问题、解决问题的能力,了解到了书本上所学的理论知识和实际动手应用的巨大差别,让我深刻体会到了“学以致用”和“知行合一”这两个词蕴含的实际意义。
参考文献[1]本部分参考维基百科——“火灾”条目[EB/OL]./wiki/%E7%81%AB%E7%81%BD[2]中华人民共和国公安部下发的《关于调整火灾等级标准的通知》,该火灾等级标准从2007年6月1日起执行。[3]禹城市公安消防大队贾明海德州市公安消防支队防火处王海祥《火灾自动报警技术的应用现状及其发展趋势》253020[D].[4]百度文库MQ-5气体传感器介绍[EB/OL]./view/cbe8bc1414791711cc7917f9.html[5]本部分参考维基百科、百度百科——“Proteus”条目[EB/OL]./wiki/Proteus/item/proteus/752902?fr=aladdin[6]STC89C52单片机详细介绍[EB/OL]./view/b6713a2450e2524de4187e6b.html.[7]本部分参考百度百科——“ADC0809”[EB/OL]./item/ADC0809/2552150?fr=aladdin[8]本部分参考百度百科|——“LCD1602”[EB/OL]./item/LCD1602/6014393?fr=aladdin.[9]本部分参考百度百科——“DS18B20”条目[EB/OL]./item/DS18B20/10295269?fr=aladdin[10]张兰红,邹华.单片机原理及应用[M].机械工业出版社.2017.6[11]本部分参考百度百科——“Keil”条目[EB/OL]./item/keil/4082184?fr=aladdin[12]晏敏,颜永红,曾云,非接触式红外测温原理及误差分析[J].计量技术,2005(1):23-25.[13]贺亮.从零开始学51单片机[M].北京:电子工业出版社,2012.[14]宋彦雄,蔡岱贤.基于单片机的楼宇火灾智能报警系统设计[J].机电工程技术,2011(01).[15]邵婷婷,高瑛,等.基于单片机的智能火灾报警系统设计[J].电子制作,2015(02).[16]韩泽欣,杨雪松.基于单片机的智能火灾报警系统[J].甘肃科技,2013(01).[17]张鲲,陈美伊,等.基于单片机的家庭智能火灾报警系统的设计[J].软件,2014(04).
致谢当时光的列车缓缓驶过,在盐城工学院度过的四年岁月即将画上一个句点,这个句点虽说不是十全十美的无怨无悔,却也称得上是善始善终的圆满。在此离别的时刻,我要向所有教导过我的老师,和四年同窗的同学们表示由衷的感谢。大学四年时光里,我的辅导员吴老师给予了我无微不至的关心与帮助,他的认真负责,脚踏实际的忙碌身影给我留下了十分深刻的印象;在一个多学期的毕业设计中,由于我自身水平有限,如果没有指导老师王老师的悉心指导和督促,我一定无法如此顺利的完成此次毕业设计,我特别感谢指导毕业论文的王老师,,从最初的选题、构思、查阅资料、设计、制作到最后的修改、定稿、审阅,提出了许多建设性的指导意见,正是因为王老师的严谨作风,让我的设计论文在微小之处也做出了订正和修改,使我的论文更加严谨规范,结构更加清晰紧凑。非常感谢吴老师和王老师对我的教导。我还要特别感谢四年同窗生涯的朋友和同学们,如果没有他们,大学时光将会失去许许多多绚烂的色彩。在忙碌与紧张的这一学期中,正是我的朋友和同学们,给我的弥漫着紧张和压迫的毕业设计画上了浓墨重彩的一笔,给这段时光增添了许多欢乐和笑骂。最后,我要感谢我的母校,给了我这次机遇让我能够凭借自身的能力,检验四年来的学习成果。在此过程中,学校给我提供了许多的方便和帮助,让我能更好的完成自己的毕业设计,同时也让我有机会将所学知识了实际运用结合起来,增强了自身的动手操作和解决问题的能力,在今后的学习和工作中能更好的做出自己应有的贡献,为社会、为祖国的建设添砖加瓦。
附录附录1:源程序//程序头函数#include<reg52.h>//显示函数#include<display.h>//宏定义#defineuintunsignedint#defineucharunsignedchar#defineData_ADC0809P1//管脚声明sbitLED_wendu=P2^2;//温度报警灯引脚sbitLED_yanwu=P2^1;//烟雾报警灯引脚sbitbaojing=P2^5;//蜂鸣器引脚sbitDQ=P2^0;sbitfs=P3^4;sbitfs1=P3^5;//ADC0809sbitST=P3^3;//AD转换启动脉冲输入端sbitEOC=P3^6;//AD转换结束信号输出端sbitOE=P3^2;//数据输出允许信号输出端//按键sbitKey1=P2^6;//定义1号按键sbitKey2=P2^7;//定义2号按键sbitKey3=P3^7;//定义3号按键//sbitKey_ISO=P3^1;signedcharw; //温度值全局变量uintc; //温度值全局变量bitbdataflag=0;//未使用uchartemp;//ad0809读出数据的缓存ucharyushe_wendu=50;//预设温度值ucharyushe_yanwu=45;//预设烟雾值//按钮模式|ucharMode=0;//函数声明externucharADC0809();externvoidKey();voiddelay(uintz){ uinti,j; for(i=0;i<z;i++) for(j=0;j<121;j++);}/*****延时子程序*****/voidDelay_DS18B20(intnum){while(num--);}/*****初始化DS18B20*****/voidInit_DS18B20(void){unsignedcharx=0;DQ=1;//DQ复位Delay_DS18B20(8);//稍做延时DQ=0;//单片机将DQ拉低Delay_DS18B20(80);//精确延时,大于480usDQ=1;//拉高总线Delay_DS18B20(14);x=DQ;//稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);}/*****读一个字节*****/unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat|=0x80;Delay_DS18B20(4);}return(dat);}/*****写一个字节*****/voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;Delay_DS18B20(5);DQ=1;dat>>=1;}}/*****读取温度*****/unsignedintReadTemperature(void){unsignedchara=0;unsignedcharb=0;unsignedintt=0;floattt=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);}//=====================================================================================//=====================================================================================//=====================================================================================/*****读取温度*****/voidcheck_wendu(void){ c=ReadTemperature()-5; //获取温度值并减去DS18B20的温度误差 if(c<0)c=0; if(c>=999)c=999;}//ADC0809读取信息ucharADC0809(){ uchartemp_=0x00; //初始化高阻态 OE=0;//转化初始化 ST=0;//开始转换 ST=1; ST=0; //外部中断等待AD转换结束 while(EOC==0)//读取转换的AD值 OE=1; temp_=Data_ADC0809; OE=0; returntemp_;}voidKey(){ //模式选择 if(Key1==0)//1号按键被按下 { while(Key1==0); Mode++; switch(Mode) { case1://设置温度模式显示 { write_com(0x0f);//光标闪烁 write_com(0x80+7);//位置 break; } case2://设置烟雾模式显示 { write_com(0x80+15);//位置 break; } case3://回到显示模式 { write_com(0x38);//屏幕初始化 write_com(0x0c);//打开显示无光标无光标闪烁 Mode=0; break; } } } if(Key2==0&&Mode!=0)//2号按键被按下 { while(Key2==0);//2号按键被按下 switch(Mode) { case1://设置温度模式温度+1 { yushe_wendu++; if(yushe_wendu>=99) yushe_wendu=99; write_com(0x80+6); write_data(0x30+yushe_wendu/10); write_data(0x30+yushe_wendu%10); write_com(0x80+7); break; } case2://设置烟雾模式烟雾+1 { yushe_yanwu++; if(yushe_yanwu>=255) yushe_yanwu=255; write_com(0x80+13); write_data(0x30+yushe_yanwu/100); write_data(0x30+yushe_yanwu%100/10); write_data(0x30+yushe_yanwu%10); write_com(0x80+15); break; } } } if(Key3==0&&Mode!=0) { while(Key3==0);//等待按键抬起 switch(Mode) { case1://设置温度模式温度-1 { yushe_wendu--; if(yushe_wendu<=0) yushe_wendu=0; write_com(0x80+6); write_data(0x30+yushe_wendu/10); write_data(0x30+yushe_wendu%10); write_com(0x80+7); break; } case2://设置烟雾模式烟雾-1 { yushe_yanwu--; if(yushe_yanwu<=0) yushe_yanwu=0; write_com(0x80+13); write_data(0x30+yushe_yanwu/100); write_data(0x30+yushe_yanwu%100/10); write_data(0x30+yushe_yanwu%10); write_com(0x80+15); break; } } }/* delay(200)// write_com(0x38);//屏幕初始化 write_com(0x0c);//打开显示无光标无光标闪烁*/}bitis_Iso=0;voidmain()//主函数入口{ Init1602(); check_wendu(); delay(800); check_wendu(); while(1) { if(Key3==0&&Mode==0)//显示模式下按下紧急按键进行报警 { delay(1); if(Key3==0) { while(Key3==0); is_Iso=1; LED_yanwu=0; baojing=0; LED_wendu=0; } } if(is_Iso==0)//没有紧急报警的情况下 { temp=ADC0809(); check_wendu(); Key(); if(Mode==0) { Display_1602(yushe_wendu,yushe_yanwu,c,temp); if(temp>=yushe_yanwu)// { LED_yanwu=0; baojing=0; fs=0; } else { LED_yanwu=1; } if(c!=999&&c>=(yushe_wendu*10))//当前温度大于预设温度且读取温度正常 { baojing=0; LED_wendu=0; } else { LED_wendu=1; } if((temp>=yushe_yanwu)&&(c>=(yushe_wendu*10)))//烟雾在正常范围内 { fs1=0; } if((temp<yushe_yanwu)&&(c<(yushe_wendu*10)))//烟雾超过预设值 { baojing=1; fs=1; fs1=1; } } } }} /***********display.h函数**************///宏定义#defineuintunsignedint#defineucharunsignedchar//LCD管脚声明sbitLCDRS=P2^3;sbitLCDEN=P2^4;//初始画时显示的内容ucharcodeInit1[]="SETT:00E:000";ucharcodeInit2[]="NOWT:00.0E:000";//LCD延时voidLCDdelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=10;y>0;y--);}//写命令voidwrite_com(ucharcom){LCDRS=0;P0=com;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;}//写数据voidwrite_data(uchardate){LCDRS=1;P0=date;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;}//1602初始化voidInit1602(){uchari=0;write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示无光标无光标闪烁write_com(0x06);//当读或写一个字符是指针后一位write_com(0x01);//清屏write_com(0x80);//设置位置for(i=0;i<16;i++){ write_data(Init1[i]);}write_com(0x80+0x40);//设置位置for(i=0;i<16;i++){ write_data(Init2[i]);}}voidDisplay_1602(yushe_wendu,yushe_yanwu,c,temp){ //设置温度 write_com(0x80+6); write_data(0x30+yushe_wendu/10); write_data(0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生药学知识点总结
- 法院检察院书记员考试笔试试题讲解及历年真题
- 陋室铭赛课一等奖教案
- 企业信访稳定工作领导小组职责
- 初中七年级英语上册Unit 1 Section A(1a-1d)与语音板块教学设计
- 初中地理九年级一轮复习“亚洲自然环境填图过基础”教学设计
- 智能合约在普惠金融场景中的应用研究-第1篇
- 服装项目商业融资计划书
- 新人教版九年级英语单元写作范文
- 灰姑娘童话剧本
- 2025-2030中国酸级萤石精粉市场现状调研及发展潜力评估研究报告
- 2025年国家公务员考录《申论》真题及参考答案(副省级)
- 图书仓储技师试题及答案
- 餐厨垃圾综合利用特许经营项目实施方案
- 网吧安全生产会议记录
- 2025黄委会考试卷及答案
- 医药销售总监销售汇报大纲
- 全市 控告申诉知识竞赛题
- 2025年幼儿园教师选调进城考试模拟试题(附参考答案)
- 非煤露天矿山知识培训课件
- (正式版)DB61∕T 5036-2022 《普通高级中学建设标准》
评论
0/150
提交评论