基于单片机的仓库防火报警系统设计--大学论文.doc
2015届本科毕业设计基于单片机的仓库火灾报警系统设计院 (系) 名 称物理与电子信息学院专 业 名 称电子信息科学与技术学 生 姓 名刘艳艳学 号110524068指 导 教 师马海燕讲师完 成 时 间2015年5月8日24基于单片机的仓库火灾报警系统设计刘艳艳物理与电子信息学院 电子信息科学与技术专业 学号:110524068指导老师:马海燕 摘要:早期的火灾报警系统是通过人的观察,例如巡逻,当有人发现了火灾时,就通过喊话或鸣铜锣通知其他的人来灭火。随着社会的进步,经济的快速发展,仓库的物资越来越多,火灾报警迫在眉睫。本设计采用智能化的火灾报警系统,以AT89C51单片机作为系统的控制核心,结合外围的烟雾传感器、温度传感器,声、光报警器、数码管显示器等电路,通过C语言编程,实现了对仓库火情的监测与自动报警。基于单片机的仓库火灾报警系统安全可靠,误报率较低,操作较方便,成本较低。关键词:AT89C51;火灾;报警The Design of Warehouse Fire Alarm System Based on SCMLiu Yan-yanCollege of Physics and Electronic Information Electronic Information Science and TechnologyNo: 110524068Tutor: Ma Hai-yanAbstract:Early fire alarm system is observed by people, such as patrol, when someone discovered fire, the other people on notice to the fire by shouting or beat gong. Along with social progress, rapid economic development, more and more warehouse supplies, fire alarm imminent. This design uses intelligent fire alarm system to AT89C51 SCM as the control system, combined with the periphery of the smoke sensors, temperature sensors, sound, light alarm, digital display and other circuit, through C language programming, a warehouse fire monitoring the situation with alarm. Microcontroller-based warehouse fire alarm system is safe and reliable, low false alarm rate, the operation more convenient and low cost.Key words: AT89C51; fire; alarm目 录 摘要11 引言32 系统总体设计方案32.1 系统的设计目标42.2 系统的总体设计方案43 主要元器件介绍43.1 AT89C51单片机53.2 传感器介绍63.2.1 MQ-2烟雾传感器63.2.2 DS18B20温度传感器83.3 ADC0832模数转换器84 系统硬件设计94.1 单片机最小系统94.2 烟雾检测电路104.3 温度检测电路114.4 烟雾浓度显示电路114.5 光报警电路124.6 声音报警电路124.7 系统总电路图135 系统软件设计155.1 系统主流程图155.2 烟雾浓度处理流程图155.3 温度采集流程图165.4 火灾判断与报警176 PCB板图设计187 总结19参考文献20附录211 引言最早的火灾报警系统是通过人的观察,例如巡逻,当有人发现了火灾时,就通过喊话或鸣铜锣通知其他的人来灭火。随着社会的进步,人们渐渐的研制出了高科技来预防火灾的发生,节省了很多的人力物力。当发生火灾的时候报警设备发出报警信号,人们就可以以最快的速度到达火灾现场救火,以减轻损失,这就是火灾报警的前身。火灾自动报警系统已有百余年的发展历史,19世纪40年代美国诞生的火灾报警装置标志着火灾自动报警系统首次进入人们的视野1。1890年在英国,感温式火灾探测器研制成功并应用于火灾探测系统,标志着火灾自动报警系统的发展走上正轨2。此后,随着世界科技取得了突飞猛进的进步和各种新兴技术的出现和发展,火灾监测技术也相应迅速发展,各种类型的火灾探测器相继问世,火灾自动报警系统也在此基础上蓬勃发展起来。到20世纪80年代中后期开始,随着计算机技术、控制技术、集成电路技术、传感器技术及智能技术的快速发展,火灾自动报警系统步入智能化时代,各种智能型的火灾自动报警系统相继出现,模拟量可寻址技术的应用使得火灾报警系统的安全性、精准性和智能性有了很大提高,在火灾自动报警系统发展史上具有里程碑的意义3。 我国火灾报警系统起步较晚,从20世纪70年代才开始研制生产这类产品。自改革开放以来,高层建筑甚至超高层建筑如同雨后春笋般蓬勃发展,使得火灾自动报警系统的需求量迅速增加,同时也加速了火灾自动报警系统的技术创新,带动了这一行业的发展。随着我国经济的快速发展,如今的物资水平丰富,仓库的火灾报警迫在眉睫。我国火灾自动报警系统的研发,生产和应用等方面不断地吸引了社会各界的人力、物力、财力和科技的投入,并取得了令人瞩目的成就。目前仓库应实现智能化要求,其中包括实行安全防范系统自动化监控管理;仓库的火灾、有害气体泄漏实行自动报警;火灾报警系统应是以烟、温及可燃气体等探测器为主体。本设计采用AT89C51单片机为控制核心,配合外围电路,利用烟雾传感器、温度传感器、A/D转换器和声、光报警电路、显示电路,可实现对火灾的自动报警。该系安全可靠,误报率较低,操作较方便,成本较低,还可用于住宅,小区,宿舍,办公楼等场所。2 系统总体设计方案2.1 系统的设计目标 基于单片机的仓库火灾报警系统设计一般由传感器、火灾警报装置及具有其它辅助功能的装置组成的。它应能在火灾初期,将燃烧时产生的烟雾、热量以及光辐射等物理量,通过感温、感烟等火灾探测器变成电信号,传输到火灾报警的控制器,进行报警4。温度传感器把温度信号(数字形式)发送给单片机,烟雾浓度信号是模拟信号,必须转换成数字信号发送给单片机。单片机数字信号滤波处理和数据分析之后判断是否大于或等于预设值,即临界温度报警或烟尘浓度。如果温度或烟雾浓度大则触发报警电路,开始发出报警,则显示非正常状态,否则这是一个正常的状态。2.2 系统的总体设计方案基于单片机的仓库火灾报警系统设计,由单片机、单片机最小系统、传感器、显示器和报警模块组成。由于AT89C51单片机不具有模数转换功能,所以烟雾传感器必须将烟雾浓度信号(模拟形式)通过A/D转换器转换成数字形式,温度传感器将温度信号(数字形式)发送给单片机。单片机数字信号滤波处理和数据分析之后判断是否大于或等于预设值,如果烟雾浓度或温度大于预设值则触发报警电路,发出声、光报警。基于单片机的仓库防火报警系统原理框图如图1所示。温度检测晶振电路烟雾检测A/D转换复位电路烟雾浓度显示状态指示灯声音报警AT89C51图1 基于单片机的仓库防火报警系统原理框图3 主要元器件介绍3.1 AT89C51单片机 自动报警系统的核心器件是单片机,它是整个系统的“心脏”,由它来接收报警信号并控制、协调各功能模块的正常工作。市面上有很多种类的单片机,在该设计中可使用AT89C2051、STC89C51、AT89S51和凌阳公司生产的16位单片机等。在选择单片机的时候要考虑许多因素,一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性。考虑到系统的功能和经济性等因素,采用的是40引脚的AT89C51系列单片机,作为核心控制CPU。由ATMEL公司生产的MCS-51系列单片机AT89C51型号单片机是一种低功耗、高性能的8位CMOS微型处理器芯片。片内带有4KB的EEPROM程序存储器,与工业标准的89C51指令兼容。AT89C51单片机引脚图如图2所示:图2 AT89C51单片机引脚图AT89C51单片机主要的工作特性5:(1)内含4KB的Flash存储器,擦写次数1000次;(2)内含128字节的RAM;(3)具有32根可编程I/O线;(4)具有2个16位可编程定时器;(5)具有5个中断源、2级优先权的中断结构;(6)具有1个全双工的可编程串行通信接口;(7)具有1个数据指针DPTR;(8)两种低功耗工作模式,即空闲模式和掉电模式;(9)具有可编程的3级程序锁定位;(10)AT89C51的工作电源电压为5(1+0.2)V典型值为5V;(11)AT89C51最高工作频率为24MHZ。3.2 传感器介绍为了能及时有效地发现火灾,必须做好关键的第一步,即火灾传感器的选择。经过对火灾发展的过程分析,发现火灾一般有3个阶段,即早期火灾的阴燃、中期温度上升阶段和后期发光爆炸阶段。若火灾在阴燃阶段,会产生大量的烟、少量的热和很少量的光辐射;中期上升阶段宜采用温度传感器;如果火势进一步发展,就会产生很强的光辐射,此时宜采用感光传感器进行监测6。其中烟雾传感器不仅可探测一般火情,对阴燃火的探测效果较好,主要用于火情早期各种燃烧的烟雾颗粒进行探测,这一点就弥补了温度传感器对阴燃火不敏感,响应速度慢以及不能区分是火灾的热还是环境或人为因素的热等缺点。可以探知早期火灾烟雾中的可燃气体浓度,这样就大大降低了各种环境因素的干扰,提高了报警的可信度。在仓库的火灾报警系统设计中只探讨早期和中期火灾的报警系统,采用感烟、感温传感器相结合的方式。3.2.1 MQ-2烟雾传感器 基于单片机的仓库防火报警系统采用的是二氧化锡半导体气敏材料的传感器,型号为MQ-2,这种传感器是N型半导体表面离子式。MQ-2烟雾传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。给传感器一个预热电源(五伏直流电源),但温度加热到200300温度时候,空气中的氧气被二氧化锡所吸附,氧气变成负离子吸附在表面,这样半导体中的电子就会减少,从而导电能力减弱,使电阻值增加。是利用这一点把烟雾的浓度的信息转化成电信号,当传感器所处环境中存在可燃气体时,烟雾的浓度越大,电阻率就会变小电阻就减小,导电率上升。MQ2烟雾传感器可检测出多种可燃性气体,尤其对液化气、丙烷和氢气的灵敏度高,对天然气和其他可燃蒸汽的检测也很理想,是一款适合多种应用的低成本传感器,其显著的优点是在较宽的浓度范围内对可燃气体有良好的灵敏度6。MQ-2烟雾传感器实物图及引脚图如图3所示。图3 MQ-2烟雾传感器实物图及引脚图传感器的特性及主要技术指标:(1) MQ-2型传感器的一般特点: MQ-2型传感器对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感。 MQ-2型传感器具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。 MQ-2型传感器具有良好的抗干扰性,可准确排除有刺激性非可燃性烟雾的干扰信息,例如酒精和烟雾等。 电路设计电压范围宽,24V以下均可;加热电压5±0.2V。(2)MQ-2型传感器的特性参数: 回路电压:(Vc) 524V。 取样电阻:(RL) 0.120K。 加热电压:(VH)5±0.2V。 加热功率:(P)约750mW。 灵敏度:以甲烷为例R0(air)/RS (0.1%CH4)5。 响应时间:Tres10秒。 恢复时间:Trec30秒。 (3)引脚说明: A1或A2为输出的一端。 H为加热接线段。 B1或B2为输出另一端。3.2.2 DS18B20温度传感器温度传感器使用数字温度传感器DS18B20,它只有三个引脚,其精度可精确到0.0625,可进行环境温度的测量。DS18B20是美国Dallas公司生产的单总线数字温度传感器,可将温度信号直接转换成串行数字信号供微处理器处理,而且可在一条总线上挂接多个DS18B20芯片,构成多点温度检测系统无需任何外加硬件7。是将温度传感器和信号调理电路集成在一块芯片中,节省了外围硬件,应用非常方便。DS18B20温度传感器可提供912位温度读数,读取或写入 DS18B20的信息仅需一根总线,总线本身可向所有挂接的DS18B20芯片提供电源,无需额外电源8。DS18B20能实用很宽泛的电压,使用电压范围是3.0V5.5V,可以测量的温度范围是-55+125,当温度在-10+85的范围内它的精度为±0.5。DS18B20的测温原理是利用温敏振荡器的频率随温度变化的关系,把温度信号直接转换为串行数字信号,通过内部计数器对受温度影响的振荡器周期的计数可实现温度测量。DS18B20温度传感器引脚图如图4所示DS18B201 2 3 GND I/O VDD图4 DS18B20温度传感器DS18B20引脚说明(1)DQ是数字信号的输出/输入端;(2)GND是电源接地;(3)VDD是芯片电源供电的输入端。3.3 ADC0832模数转换器 A/D转换器的种类很多,就位数来分有8位、10位、12位、16位等。位数越高,其分辨率也越高,但价格也越贵。而就其结构而言,有单一的A/D转换器,有内含多路开关的A/D转换器。基于单片机的仓库火灾报警系统设计选用的是ADC0832模数转换器。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,工作频率是250KHZ。有两个输入模拟量的通道,有两个数据的输出能够对数据进行校验,这样能把转换的数据误差率降低。芯片的转换速度也比较快而且稳定。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,能够很方便的选择通道。ADC0832的引脚图如图5所示。图5 ADC0832模数转换芯片引脚图芯片接口说明:(1) CS:片选使能,低电平芯片使能(2) CHO:模拟输入通道0,或作为IN+/-使用(3) CH1:模拟输入通道1,或作为IN+/-使用(4) GND:芯片参考零电位(地)(5) DI:数据信号输入,选择通道控制(6) D0:数据信号输出,转换数据输出(7) CLK:芯片时钟输入(8) Vcc/REF:电源输入及参考电压输入(复用)4 系统硬件设计4.1 单片机最小系统(1)晶振电路晶振电路是给单片机工作提供时钟信号的,芯片内部有一个高增益的反相放大器用于形成内部的振荡器。引脚XTAL1是这个放大器的输入端子,XTAL2是这个放大器的输出端子。在片外的陶瓷谐振器或者是石英晶体作为反馈元件和放大器形成了一个自激振荡器。AT89C51晶振电路使用的是石英晶体,电容选择的是三十皮法。(2)复位电路复位电路的基本功能是:当系统得电的时候提供一个复位信号,当系统稳定的时候在撤销复位信号。单片的有两种复位方式,一种是手动按钮复位,另一种是上电复位,本设计的复位采用的是手动复位。手动复位是在需要复位的时候按下按钮使复位端子加上高电平,复位电路中S1为手动复位开关,电容C3可避免高频谐波对电路的干扰。AT89C51单片机最小系统如图6所示。 图6 AT89C51单片机最小系统4.2 烟雾检测电路当烟雾浓度上升的时候,烟雾传感器将烟雾的浓度转换成电压信号,经过模数转换器把有效信号传递给AT89C51单片机。但是烟雾传感器是在温度很高的情况才能正常的工作,所以在报警系统必须有预热的时间,才能发挥正常的作用。 ADC0832是的5号和6号引脚由于不同时有效,为了节省单片机的接口所以连接在一起使用,当此引脚输入的串行数据是1、0的时候则是选择的通道0,当输入的是1、1的时候选择的是通道1,当输入的是0、0的时候通道0接模拟信号的正相输入端,通道1接输入信号的负相。当引脚的串行数据是0、1的时候0通道接入的是模拟信号的负相输入端,1通道接入的是正相。本设计只用一个通道,所以单片机的P37口首先给转换芯片一个低电平,激活芯片,然后再给芯片5、6号引脚一个1、0的信号,选中通道0。仓库火灾报警的烟雾检测电路如图7所示。图7 烟雾检测电路 报警器故障自诊断判断传感器电源连接情况,在传感器的地端串联一个电阻R,当传感器正常连接时,电阻和传感器分压,此时电阻两端有微弱的电压,如果传感器电源连接不正常,则会产生断路,检测到电阻两端电压为0V。4.3 温度检测电路 DS18B20将检测的温度信号(数字信号)发送给单片机,温度检测电路图如图8所示。图8 温度检测电路4.4 烟雾浓度显示电路 LED数码管是一种半导体的发光器件,它的组成是发光二极管,通过点亮不同的二极管来显示所需要的数字,可以显示09的数字。数码管根据发光二极管的数量可分为七段数码管和八段数码管。八段数码管比七段数码管多一个小数点,根据可以显示的八的个数可分为一位、两位、四位等。根据二极管的连接方式可分为共阴极和共阳极。其中共阴极指的是数码管之中的发光二极管所有的阴极都连接在一起,同理共阳极是指所有的阳极都连接在一起形成一个公共端。共阳极的数码管,控制端输入的是低电平相应的发光二极管就会发光,输入端是高电平的时候相应的二极管就熄灭,本设计选择的是共阳极数码管。烟雾浓度显示电路如图9所示。图9 烟雾浓度显示电路4.5 光报警电路 光报警电路是根据单片机所给电压,确定LED灯中的电流流向,以驱动灯发光。图中当单片机为低电平时,小灯是亮的;高电平时,小灯灭。光报警电路如图10所示。 图10 光报警电路4.6 声音报警电路当单片机给电路一个低电平时,蜂鸣器报警。声音报警电路如图11所示图11 声报警电路4.7 系统总电路图 系统总电路图如图12所示。 图12 系统总电路图5 系统软件设计5.1 系统主流程图火灾报警系统是采用AT89C51作为控制芯片,主要功能模块包括:控制I/O端口、逻辑判断处理、驱动外部电路等,该部分是火灾报警系统智能化的集中体现。开始主程序是一个无限循环的,它的流程是:当系统得电后,系统的各个部分包含单片机的各个功能模块都将进行初始化,然后就进行火灾报警的数据采集的部分,然后开始判断是否有火灾发生,最后进行报警程序。当初始完成,D1、D2都不发光,只有D3发光,蜂鸣器也不会发出报警。主程序流程图如图13所示。初始化第一次烟雾温度信号采集判断报警? N第二次烟雾温度信号采集判断 Y 正常报警?异常报警 N Y 手动复位火 灾 报 警图13 系统主流程图5.2 烟雾浓度处理流程图 烟雾浓度处理流程图如图14所示。开始ADC0832初始化 数据采集大于上限? N Y 结束图14 烟雾浓度处理流程图5.3 温度采集流程图温度采集流程图如图15所示。移入温度暂存器返回开始跳过ROM发送读取命令读取操作,验证CRCCRC校验正? DS18B20复位 N YY 图15 温度采集流程图5.4 火灾判断与报警(1)火灾报警数据的处理方法基于单片机的仓库火灾报警系统中使用的是烟雾传感器MQ-2和温度传感器DS18B20,本次设计中设定的温度值是60,烟雾报警的浓度是3.2%FS,经过换算最后得到的烟雾传感器的输出的临界电压值是4.6V。(2)火灾判断与报警系统对烟雾进行了两次测量然后进行比较判断,每次信号采集完成之后得到的数据和设定的阈值进行比较,当温度大于等于60的时候,温度异常,设置寄存器的变量是1,否则是0;当烟雾的浓度大于等于3.2%FS时,烟雾浓度异常,设置寄存器的变量是1,否则是0,这样综合两次的寄存器的变量就能判断现场是否有火灾发生。当两个寄存器都是0的时候,表示情况是正常的,当两个寄存器有一个是1就说明情况异常,当两个都是1的时候,说明有火灾发生。系统对现场进行报警,报警过后再进行信号采集,再一次进行采集现场的温度和信号进行判断,然后系统做出判断结果。当系统状态为00时,表示正常。当系统状态为01时候D1灯亮,表示温度异常,P14变为低电平,同时P34口变为低电平,蜂鸣器报警。当系统状态为10时候D2灯亮,表示烟雾浓度异常,P15口变为低电平,同时P34口变为低电平,蜂鸣器报警。当系统状态为11时候D1、D2灯同时亮,表示烟雾浓度异常,P14口变为低电平,P15口变为低电平,同时P34口变为低电平,蜂鸣器报警。6 PCB板图设计 基于单片机的仓库火灾报警系统的PCB板图设计如图16,17所示图17 PCB板图(1)图18 PCB板图(2)7 总结本文设计的基于单片机AT89C51的仓库火灾自动报警系统,不同于传统的使用单一传感器的探测报警,采用了温度传感器DS18B20和烟雾传感器MQ-2相结合的多传感器探测方法,使系统灵敏度高、响应时间短,在火灾发生的早期就能准确的报警。系统在采集温度烟雾信号时,采用多次采集,多次判断的方法,降低了误报率。以AT89C51单片机作为系统的控制器安全可靠,误报率低,操作方便,成本较低。本设计还存在许多需要完善和作进一步研究的问题:(1)本文使用的DS18B20在保证精确度的情况下可以并联使用8个,可以实现多点测温。(2)可以设置联动装置,当有险情发生时不仅能发出报警信号,而且能驱动相应的灭火装置进行灭火,在火灾发生的早期及时控制险情的蔓延。但这种情况下提高报警系统的精确度,降低误报率是应该考虑研究的主要难题。(3)火灾报警系统没有联网,可以使用GSM模块进行信息的无线传送,这样能够及时将险情信息发送至消防指挥中心。参考文献1 S.M. Lo, C.M. Zhao, M. Liu, A. Coping. A simulation model for studying the implementation of performance-based fire safety design in buildingsJ. Automation in Construction, 1998, 17(7): 852-863.2 J. K. W. Wong, H. Li, S. W. Wang. Intelligent building research: a reviewJ. Automation in Construction, 2005, 14(1): 143-159.3 雍静, 李北海, 杨岳. 建筑智能化技术M. 北京: 科学出版社, 2008.4 吕津. 一种新颖的火灾自动报警控制器的硬件设计D. 四川大学, 2006. 5 汪振华. 智能化住宅防盗防火报警系统设计与实现D. 电子科技大学, 2011.6 孙小春. 基于单片机的无线火灾报警系统研究A. 杨凌职业技术学院, 2013.7 吴金华. 基于单片机的温度监控报警系统设计A. 江西应用技术职业学院.2013.8 吕俊亚 一种基于单片机的温度控制系统设计与实现J. 计算机仿真, 2012, ( 7) : 242 245附录:void main(void) uchar i,j; Read_Yanwu(); Delay_ms(1000); Read_Yanwu(); Read_ Yanwu (); if(MQ2_IS_OK) Display_ Yanwu (); while(1) for(j=0;j<25;j+)DIS_SEG(); i+; if(i>5) Read_ Yanwu (); if(MQ2_IS_OK)Display_ Yanwu (); i=0; void DIS_SEG(void) if(ng=1)P0=0x40;elseP0=tabDisplay_Digit3; SEG1=0; Delay_ms(5); SEG1=1; P0=tabDisplay_Digit2; SEG2=0;Delay_ms(5); SEG2=1; P0=(tabDisplay_Digit1+0x80); SEG3=0;Delay_ms(5); SEG3=1; P0=tabDisplay_Digit0; SEG4=0;Delay_ms(5); SEG4=1; DS18B20模块程序如下/初始化DS18B20uchar Init_DS18B20() uchar status; DQ1 = 1;Delay(8); DQ1 = 0;Delay(90);DQ1 = 1;Delay(8);status = DQ1;Delay(100);DQ1 = 1;return status;/读一个字节uchar ReadOneByte() uchar i,dat=0;DQ1 = 1;_nop_();for(i=0;i<8;i+) DQ1 = 0;dat >>= 1;DQ1 = 1;_nop_();_nop_();if(DQ1)dat |= 0X80;Delay(30);DQ1 = 1;return (dat); /写一个字节void WriteOneByte(uchar dat) uchar i;for(i=0;i<8;i+) DQ1 = 0;DQ1 = dat& 0x01;Delay(5);DQ1 = 1;dat >>= 1; void Read_Temperature() EA=0; if(Init_DS18B20()=1)DS18B20_IS_OK=0;else WriteOneByte(0xcc); WriteOneByte(0x44); Init_DS18B20();WriteOneByte(0xcc);WriteOneByte(0xbe);Temp_Value0 = ReadOneByte(); Temp_Value1 = ReadOneByte();DS18B20_IS_OK=1;EA=1;