基于51单片机火灾报警系统课程设计.doc

上传人:laozhun 文档编号:4147899 上传时间:2023-04-07 格式:DOC 页数:28 大小:958.50KB
返回 下载 相关 举报
基于51单片机火灾报警系统课程设计.doc_第1页
第1页 / 共28页
基于51单片机火灾报警系统课程设计.doc_第2页
第2页 / 共28页
基于51单片机火灾报警系统课程设计.doc_第3页
第3页 / 共28页
基于51单片机火灾报警系统课程设计.doc_第4页
第4页 / 共28页
基于51单片机火灾报警系统课程设计.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《基于51单片机火灾报警系统课程设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机火灾报警系统课程设计.doc(28页珍藏版)》请在三一办公上搜索。

1、 51单片机火灾报警系统课程方案设计本文设计的用于小型防火单位的单片机火灾报警系统具有以下特点: (1)能对室内烟雾(CO2, CO) 及温度突变进行报警,具有声、光双重报警功能。(2)系统故障报警功能。当系统出现硬件故障时,能发出故障报警信号。(3)异常报警功能。当环境出现异常(如烟雾浓度过大或是温度较高)时,能发出异常报警信号,引起人们注意,尽可能避免火灾的发生。(4)火灾报警功能。一旦真出现火灾(烟雾和温度同时出现异常)时,能立即发出语音、光火灾警报15 。据类似本系统的报警器现场模拟实验表明, 本系统安全可靠, 误报率低。且由于其体积小、操作维护方便、成本低廉等, 具有广阔的应用前景。

2、一、整体电路图二、系统结构图传感器放大电路A/D转换单片机状态指示灯声音报警浓度显示按键串口通信为了便于系统维护和功能扩充,采用了模块化程序设计方法,系统各个模块的具体功能都是通过子程序调用实现的。本系统主要包括数据采集子程序、火灾判断与报警子程序等,系统程序流程图如图所示。 为了降低误报率,系统采用多次采集、多次判断的方法。每次数据采集后根据得到的数据对现场情况进行判断,然后综合多次判断结果做出最终的火情判断。主程序是一个无限循环体,其流程是:首先在上电之后系统的各部分包括单片机各个端口输入输出的设置、外围驱动电路和数据存储电路等完成初始化,其次是对芯片内的程序进行初始化,接下来执行火灾报警

3、系统中的数据采集任务,数据通信任务和查询判断任务。三、火灾报警系统硬件设计3.1 系统核心芯片选择3.1.1 传感器介绍3.1.1.1 AD590温度传感器要准确地进行火灾报警, 选择合适的温度和烟雾传感器是准确报警的前提。综合考虑各因素,本文选择集成温度传感器AD590 和气体传感器TGS202 用作采集系统的敏感元件。AD590是美国Analog Devices公司生产的一种电流型二端温度传感器。电路如图3-1所示。由于AD590 是电流型温度传感器,他的输出同绝对温度成正比,即1A/k,而数模转换芯片ADC0809 的输入要求是电压量2,所以在AD590 的负极接出一个1k的电阻R和一个

4、100的可调电阻W ,将电流量变为电压量送入ADC0809。通过调节可调电阻,便可在输出端VT 获得与绝对温度成正比的电压量,即10 mV/K。图3-1 AD590应用电路图AD590有以下特点:1、AD590的测温范围-55+150。2、AD590的电源电压范围为4V-30V。电源电压可在4V-6V范围变化,电流变化1,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会损坏。3、输出电阻为710M;4、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线形误差0.3。3.1.1.2 TGS202气体传感器火灾中气体

5、烟雾主要是CO2 和CO。TGS202气体传感器能探测CO2, CO, 甲烷、煤气等多种气体,他灵敏度高,稳定性好,适合于火灾中气体的探测。如图3-2所示,当TGS202探测到CO2或CO时,传感器的内阻变小,VA迅速上升。选择适当的电阻阻值,使得当气体浓度达到一定程度(如CO浓度达到0106%)时,VA 端获得适当的电压。图3-2 TGS202应用电路图3.1.2 ISD1420语音芯片3.1.2.1 ISD1420引脚图3 -3 ISD1420引脚3.1.2.2 ISD1420各引脚及其功能介绍电源(VCCA,VCCD):芯片内部的模拟和数字电路使用不同的电源总线,并且分别引到外封装上,这

6、样可使噪声最小。模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近芯片。地线(VSSA,VSSD):芯片内部的模拟和数字电路也使用不同的地线,这两个脚最好在引脚焊盘上相连。录音(/REC):低电平有效。只要/REC 变低(不管芯片处在节电状态还是正在放音),芯片即开始录音。边沿触发放音(/PLAYE):此端出现下降沿时,芯片开始放音。电平触发放音(/PLAYL):此端出现下降沿时,芯片开始放音。 录音指示(/RECLED):处于录音状态时,此端为低,可驱动 LED。话筒参考(MIC REF):此端是前置放大器的反向输入。当以差分形式连接话筒时,可减小噪声,提高共模抑制

7、比。自动增益控制(AGC): AGC 动态调节器整前置境益以补偿话筒输入电平的宽幅变化,使得录制变化很大的音量(从耳语到喧哗嚣声)时失真都能保持最小。模拟输出(ANA OUT):前置放大器输出.前置电压增益取决于AGC 端的电平。模拟输入(ANA IN):此端即芯片录音的输入信号。对话筒输入来说,ANA OUT 端应通过外接电容连至本端。喇叭输出(SP+、SP-):这对输出端能驱动16以上的喇叭。单端使用时必须在输出端和喇叭间接耦合电容,而双端输出既不用电容又能将功率提高4倍。录音时,它们都呈高阻态;节电模式下,它们保持为低电平。外部时钟(XCLK):此端内部有下拉元件,不用时应接地。输入时钟

8、的占空比无关紧要,因为内部首先进行了分频。地址(A0A7):地址端有两个作用,取决于最高(MSB)两位 A7、A6 的状态。3.1.2.3 语音段的寻址语音芯片与单片机的连接,常通过串行口来实现,串行口也可以通过辅助电路分时多用。定义好串行口的工作方式(串行口控制寄存器SCON字节地址为98H,可位寻址),当由按键输入或其它需要语音输出时,串行口向CPU申请中断,响应中断后,CPU便可以从串行数据中识别出语音段编号,输出语音信号。发送结束,中断由软件清零。3.1.3 80C51芯片3.1.3.1 80C51芯片的引脚及功能图3-4 80C51芯片的引脚图下面按引脚功能分为4个部分叙述个引脚的功

9、能。(1)电源引脚VCC和VSSVCC(40脚):接+5V电源正端;VSS(20脚):接+5V电源正端。(2)外接晶振引脚XTAL1和XTAL2XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。(3)控制信号或与其它电源复用引脚 控制信号或与其它电源

10、复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。(A)RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。(B)ALE/ P (30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低(C)PSEN(29脚):片外程序存储器读选通输出端,低

11、电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。(D)EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。(4)输入/输出(I/O)引脚P0口、P1口、P2口及P3口(A)P0口(39

12、脚22脚):P0.0P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。(B)P1口(1脚8脚):P1.0P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P

13、0口接收输入的低8位地址。(C)P2口(21脚28脚):P2.0P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。(D)P3口(10脚17脚):P3.0P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见下表 表1 单片机P3.0管脚含义引脚第2功能P3.0RXD(串行口输入端0)P3.1TXD(串行口

14、输出端)P3.2INT0(部中断0请求输入端,低电平有效)P3.3INT1(中断1请求输入端,低电平有效)P3.4T0(时器/计数器0计数脉冲端)P3.5T1(时器/计数器1数脉冲端)P3.6WR(部数据存储器写选通信号输出端,低电平有效)P3.7RD(部数据存储器读选通信号输出端,低电平有效)综上所述,MCS51系列单片机的引脚作用可归纳为以下两点:1).单片机功能多,引脚数少,因而许多引脚具有第2功能;2).单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。3.14 A/D转换芯片在单片机控制系统中,控制或测量对象的有关变量,往往是一些连续变化的模拟量

15、,如温度、压力、流量、位移、速度等物理量。但是大多数单片机本身只能识别和处理数字量,因此必须经过模拟量到数字量的转换(AD转换),才能够实现单片机对被控对象的识别和处理。完成AD转换的器件即为AD转换器。AD转换器的主要性能参数有:(1) 分辨率分辨率表示AD转换器对输入信号的分辨能力。AD转换器的分辨率以输出二进制数的位数表示;(2) 转换时间转换时间指AD转换器从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。不同类型的转换器转换速度相差甚远;(3) 转换误差转换误差表示AD转换器实际输出的数字量和理论上的输出数字量之间的差别,常用最低有效位的倍数表示;(4) 线性度线性度指

16、实际转换器的转移函数与理想直线的最大偏移。目前有很多类型的AD转换芯片,它们在转换速度、转换精度、分辨率以及使用价值上都各具特色,综合全部因素设计决定采用美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器ADC0809。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片.A/D转换电路采用了常用的8位8通道数模转换专用芯片ADC0809,ADC0809由8路模拟开头、地址锁存与译码器、8位A/D转换器和三态输出锁存缓冲器组成,芯片引脚图如图3-5所示, 内部结构图如图3-6所示

17、。图3-5 ADC0809引脚图 图3-6 ADC0809内部结构图ADC0809的引脚功能:D7-D0 :8位数字量输出引脚IN0-IN7 :8位模拟量输入引脚VCC :+5V工作电压GND :地REF(+) :参考电压正端REF(-) :参考电压负端START :A/D转换启动信号输入端ALE :地址锁存允许信号输入端ADC0809的主要性能指标为:(1)分辨率为8位。(2)最大不可调误差:ADC0809为1LSB。(3)单电源+5v供电,基准电压由外部提供,典型值为+5v,此时允许输入模拟电压为05V。(4)具有锁存控制的8路模拟选通开关。(5)可锁存三态输出,输出电平与TTL电平兼容。

18、(6)转换速度取于决芯片的时钟频率。当时钟频率500KHz时,转换时间为128s。 3.1.5 数码管显示电路ICM7218 是INTERSIL公司生产的一种性能价格比较高的通用8 位L ED 数码管驱动电路, 28 脚双列封装,是一种多功能L ED 数码管驱动芯片,可与多种单片机接口使用。ICM7218 的输出可直接驱动L ED显示器,不需外接驱动电路,工作电压为+5V,其构成的显示电路结构简单,使用方便。同样由单片机向ICM7218写控制字及数据,编程部分像给外部RAM写数据一样简单。当单片机写入模式控制字后,ICM7218以约定的方式接收显示数据并将数据写入静态显示RAM中。数据接收结束

19、,ICM7218在扫描控制电路的控制下,按设定的译码模式,以动态扫描显示方式向段显示驱动器和位控驱动器发出控制信号,直到下一个控制字写入前,不停地进行动态显示工作。其引脚图和内部框图如图3-7所示。图3-7 ICM7218引脚图及内部框图3.2 单片机外围接口电路3.2.1晶振电路晶振电路为单片机80C51工作提供时钟信号,芯片中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振荡器一起构成自激振荡器。电路中的外接石英晶体及电容C2、C3接在放大器的反馈回路中构成并联振荡电路,系统的晶振电路如图

20、3.3所示。由于外接电容C2、C3的容量大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,电容的容量大小范围为;如果使用陶瓷谐振,则电容容量大小为。本设计中使用石英晶体,电容的容值设定为30pF。3.2.2 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。80C51的复位信号是从REST引脚输入到芯片内的施密特触发器中

21、的。当系统处于正常工作状态时,且振荡器稳定后,如果REST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位,本设计采用的是手动按钮复位。手动按钮复位需要人为在复位输入端REST上加入高电平,采用的办法是在REST端和正电源VCC之间接一个按钮。当人为按下按钮时,则VCC的+5V电平就会直接加到REST端,系统复位。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,设计完全能够满足复位的时间要求。复位电路中SW-PB为手动复位开关,电容C1可避免高频谐波对电路的干扰。80C51的复位电路如图3.8所示。图

22、3-8 80C51晶振和复位电路原理图3.3 数据采集电路本设计中的A/D使用的是通用8位芯片ADC0809,烟雾、温度传感器的输出端经过放大电路后分别接到ADC0809的IN0和IN1。 ADC0809的通道选择地址由80C51的P0.0P0.2经地址锁存器74LS373输出提供。芯片的几个重要管脚功能如下:ALE:地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入. 当P2.0=0时,与写信号WR共同选通ADC0809。

23、START:转换启动信号,当START上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,START应保持低电平。EOC:转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。由于本设计中数模转换芯片使用的是ADC0809,其工作的时钟信号为500KHz,因其内部没有时钟电路,时钟信号由外部80C51的ALE端口提供。系统80C51与ADC0809接口电路如图3-9所示。 图3-9 -1 80C51与ADC0809接口仿真电

24、路图3-9 -2 80C51与ADC0809接口电路原理图当80C51的ALE端口不访问外部存储器时,80C51的ALE端以时钟振荡频率的1/6输出固定的正脉冲信号,故晶振设定12MKz,再经过二分频电路,单片机即可向ADC0809输出500KHz的时钟信号。二分频电路由D触发器实现,R、S端接地,D接Q非,Q端作为输出端,CLK接80C51的ALE端。D触发器的特性方程为 由于当CP=1时,D触发器有效;CP=0时,触发器保持原来状态。故D触发器能实现对ALE端口的信号二分频。由于本火灾报警系统只采集温度、烟雾信号,经过调理的温度、烟雾信号分别进入ADC0809的IN-0和IN-1端口,其余

25、输入引脚接地,8个数字量输出引脚接80C51的P0口。单片机的P0口接受ADC0809传输来8位数字量,向A/D输出的8位地址经地址锁存器74LS373锁存,选择低3位地址作为A/D的通道选通地址。ADC0809通道选通如表3.1。表3.1 ADC0809通道选通通入通道IN0IN1IN2IN3IN4IN5IN6IN7A00001111B00110011C01010101本设计使用74LS373作为地址锁存器,当三态允许控制端OE为低电平时,输出端O0O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0O7呈高阻态,既不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。图

26、中三态允许控制端OE接地,表示三态门一直打开。锁存允许端LE为高电平时,输出端O0O7 状态与输入端D0D7状态相同;当LE由“1”变为“0”时,数据输入锁存器中。LE端接至单片机的地址锁存允许ALE端。当P20=0时,与写信号WR共同选通ADC0809。图中ALE信号与START信号连在一起,在WR信号的前沿写入地址信号,在其后沿启动转换。当ALE端口变为高电平,将74LS373输出端的低3位地址存入A/D的地址锁存器中,此地址经译码选通8路模拟输入之一到比较器。START上升沿将A/D内的寄存器清零,下降沿启动 A/D转换,之后EOC端变成低电平,指示转换正在进行。例如,输出地址F8H可选

27、通通道IN0,实现对温度传感器输出的模拟量进行转换;输出地址F9H可选通通道IN1,实现对烟雾传感器输出的模拟量进行转换。ADC0809的转换结束状态信号EOC接到80C51的INT1引脚,当A/D转换完成后,EOC变为高电平,表示转换结束,结果数据已存入锁存器,并产生产生中断。当80C51知道A/D转换完成后,P20与读信号RD共同控制下的A/D端口OE电平变为高电平时,输出三态门打开,转换结果的数字量输出到单片机上。3.4 信号处理电路图3-10 信号处理电路由于传感器输出的模拟信号比较微弱,且含有干扰信号,所以系统需要将信号进行放大、过滤 。对于传感器输出的模拟信号,一般要用运算放大器对

28、其进行调理或放大,以满足A/D转换器对输入模拟量幅值及极性的要求。在本报警器电路中,同样要对两类传感器的输出信号进行放大调理。电路图如上图3-10所示,运算放大器接成电压放大电路。从传感器采集过来的微弱电压信号,经过电压放大器的放大,得到较强的模拟电压信号。采样时,把相应的模拟电压信号从Vi端送进LM324A进行放大处理后,从Vo端输出送入A/D转换电路。3.5 报警电路3.5.1 语音报警电路图3-12 语音报警电路AD转换器输出的数字信号传输给P0口,读取P0口的内容跟设定的值进行判定,如果大于设定值,P2.1输出低电平,控制语音芯片ISD1420的发出火灾语音报警. 如果小于于设定值,P

29、2.1输出高电平,说明正常,没有火灾发生。3.5.1 光报警电路图3-11 光报警电路AD转换器输出的数字信号传输给P0口,读取P0口的内容跟设定的值进行判定,如果大于设定值,P2.3、P2.4输出高电平,P2.2输出低电平,控制红色发光二级管的发光,实现光报警功能. 如果小于设定值,P2.2、P2.3输出高电平,P2.4输出低电平,控制绿色发光二级管的发光,说明正常,没有火灾发生。如果出现异常情况,P2.2、P2.4输出高电平,P2.3输出低电平,控制绿色发光二级管的发光。3.6 数码管显示电路 数据采集进来并被成功地由模拟量转化为数字量后,就被传送到系统的显示模块,让人们更直接地观察到相关

30、数据。在本系统中,对LED进行的是动态扫描,除了给显示器提供段的输入之外,还要对显示器进行位控制。 本系统显示用的4位七段数码管由数码管专用驱动芯片ICM7218A驱动,分别接数码管的a、b、c、d、e、f、g,DIGIT1、DIGIT2、 DIGIT3、 DIGIT4为位选,分别控制4位数码管的亮灭,ID0-7为数据线,接单片机P0口.WRITE、MODE是写控制位和模式控制位,分别接单片机P3.6、P2.5。其电路图如图3-9所示。四、 火灾报警系统软件设计 4.1 软件开发环境本系统摒弃了传统的汇编语言而采用C语言进行程序设计。因为C语言的描述由函数组成,是一种结构化的程序设计语言,所以

31、更容易实现模块化,而且具有可读性好,易于移植等优点,同时还有汇编语言一样的位操作功能的硬件详细控制指令29。数据结构方面,可以使用结构体和数组,能够处理复杂的数据,可用于实时处理系统。本系统的软件编程使用的是美国Keil Software公司出品的Keil C51,是51系列兼容单片机C语言软件开发系统。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能 体现高级语言的优势。C51工具包的整体结构中,Vision与Ishell分别是C5

32、1 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经C51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对 目标板进行调试,也可以直接写入程序存贮器如EPROM中。 4.2 火灾报警系统程序设计4.21主程序流程图火灾报警系统控制器上采用

33、80C51作为主控芯片,其主要功能包括:控制IO端口、逻辑判断处理、驱动外部电路、语音报警和A/D采样等,该部分是火灾报警系统智能化的集中体现。为了便于系统维护,在火灾报警系统的软件设计中采用了模块化程序设计方法,系统各个模块的具体功能都是通过子程序调用实现的。既使得程序结构清晰,又便于以后进一步扩展其功能。本系统主要包括主程序、温度烟雾数据采集子程序、火灾判断与报警子程序等 4 。系统程序流程图如图4.1所示。图4.1 程序流程图主程序是一个无限循环体,其流程是:首先在上电之后系统的各部分包括单片机输出输入端口的设置、数据存储电路、外围驱动电路等完成初始化,接下来执行火灾报警系统的数据采集程

34、序、火灾判断、报警程序。系统初始化后,80C51的P2.2为低电平,P2.1、P2.3、P2.4、P2.5为高电平,所以只有绿灯亮,红灯、黄灯不亮,蜂鸣器不报警。4.22主程序初始化流程图主程序初始化流程图如图4-2所示。这部分实现的功能包括各种I/O输入输出状态的设定、寄存器初始化、中断使能等。首先设定定时器工作方式,然后开系统中断,以便响应中断定时,及时对气体浓度和温度进行采样。然后关闭蜂鸣器,开启绿灯,设置报警限初值。开始定时器初始化开中断关闭蜂鸣器,打开绿灯设定初值YN是否保持报警初值返回 图4-2 主程序初始化流程图4.23数据采集子程序数据采集是火灾报警系统中的重要环节。为了降低误

35、报率,系统设计时对温度烟雾采用了两次采集、两次判断的方法。每次采集温度烟雾数据后,将数据存入单片机的寄存器,然后在火灾判断程序中,将采集的数据与设定的阈值进行比较,判断现场是否发生火灾。具体流程是:系统和程序初始化后,驱动ADC0809的IN0对温度信号进行A/D转换,单片机接受转换好的数据,存入寄存器,由INT1中断服务程序完成;系统延时10ms,驱动ADC0809的IN1对烟雾信号进行A/D转换,转换完成后存入寄存器。系统延时50ms,进行第二次温度烟雾信号采集,将转换好的数据存入寄存器中。单片机每次驱动A/D转换后等待外部中断1,当ADC0809的EOC端变为1时,即中断到来,说明A/D

36、转换已经完成,通过中断服务程序读取转换得到的数据。由于设计采用的是模块化设计,系统实现报警功能是通过调用子程序实现的。在数据采集子程序中,一次温度烟雾信号采集延时10ms,是让ADC0809准备好进行下一次信号转换。当系统采集2次温度烟雾信号后,转换好的数据存入单片机的寄存器中,系统再调用火灾判断子程序。系统温度烟雾信号采集程序流程图如图4.3所示: 图4.2 数据采集流程图在火灾自动报警系统的程序设计中使用了延时程序,延时10ms的程序如下:void delay_10ms (uint i) while (i-) uchar i , j , k ; for (i=5 ;i0 ;i- ) for

37、 (j=4 ;j0 ;j- ) for (k=248 ;k0 ;k- ) ; 4.24火灾判断与报警程序1.火灾报警数据处理方法固定门限检测法是使用最早,且应用最广泛的火灾探测方法,优点是计算量小且易于实现,其原理是根据火灾探测器的信号幅值作为火灾报警的依据,并与固定的阈值进行比较16:当信号幅值超过报警阈值时,则发出报警,否则解除报警17。 火灾报警系统中使用的是温度传感器AD590和烟雾传感器TGS202,烟雾传感器输出电压v与烟雾浓度p关系为:v=-0.3p+5.6,温度传感器使用的灵敏度是-5.5mV/。在本设计中报警温度设为57,烟雾报警浓度设为3.2英尺(参照市面销售的火灾报警器温

38、度烟雾的报警临界值)。经过换算可得出温度烟雾传感器输出火灾报警临界电压值为:, 2.火灾判断与报警系统对温度和烟雾进行了两次数据采集与判断,每次信号采集后根据得到的数据与设定的阈值比较,当温度57,温度异常,置寄存器变量a为1,否则为0;当烟雾浓度3.2,烟雾浓度异常,置寄存器变量b为1,否则为0。综合两次温度烟雾信号的采集,根据温度和烟雾的寄存器变量a和b的状态,判断现场情况:2个寄存器变量均为0,表示情况正常;2个中仅有1个为1,表示情况异常;2个均为1,表示有火灾发生。系统对现场进行报警判断后,间隔20s后(通过系统的延时程序实现),再一次采集现场的温度烟雾信号进行判断,即每一次语音报警

39、持续20s,直到系统做出下一次判断结果。当系统状态为00时,表示正常,80C51的P2.2口变成低电平,绿灯亮;当系统状态为01或10时,表示异常,P2.3口变为低电平,P2.1口变为低电平,黄灯亮,蜂鸣器报警;当系统状态为11时,表示发生火灾,P24口变为低电平,P2.1口变为低电平,红灯亮,蜂鸣器报警。结论火灾报警器可保障生产与生活的安全,避免火灾和爆炸事故以及煤气中毒的发生,它是防火、防爆和安全生产所必备的仪器,具有广阔的市场空间与发展前景。本系统通过设计一个以80C51单片机为核心的火灾报警器可以实现语音报警、温度浓度显示、报警限设置、延时报警等功能。是一种结构简单、性能稳定、使用方便

40、、价格低廉、智能化的火灾报警器,具有一定的实用价值。本报警器电路结构简单、可维护性好。由于实现了对普通环境中烟雾浓度和温度的实时监控,因此具有非常普遍的意义,能广泛应用于居民家庭、企事业单位等多方面的安全防范。但是也存在不少的不足。由于电源的波动,传感器的电气特性等问题,使得A/D转换结果有时波动很大,这样就可能出现误报警。由于时间的关系,系统中本应具有的串行通信的功能没有实现,而只是实现了烟雾浓度、温度显示。由于上述缺点的存在,此系统不是很完善,还有待进一步改进。附 录1电路原理图附录2 系统程序#include #define unchar unsigned char#define uin

41、t unsigned int uchar Tem1,Tem2,Smok1,Smok2;uchar Tem=3.6,Smok=4.6; /设定温度烟雾报警阈值uchar a,a1,a2,b,b1,b2;void caiji_wenyan();void delay_10ms(uint i); /程序声明void panduan );void baojing();void main() P21=1; P20=0;WR=1;RD=1; P0=0XFa;P24=1;P23=1;P22=0; /初始化 while(1) /主程序 caiji _wenyan (); /第一次采集温度烟雾信号 Tem2=Te

42、m1;Smok2=Smok1; delay_10ms(5); /延时50ms,让ADC0809准备好第二次数据转换 caiji _wenyan(); /第二次采集温度烟雾信号 panduan(); /将转换的数据与设定的报警阈值比较 baojing(); /报警程序 delay_10ms(2000); /系统隔20s对现场判断 ;void caiji_wenyan() P0=0XF8; /选通IN-0,转换温度信号 WR=0; if(EOC=1) RD=0;Tem1=P0; /当ADC0809转换结束,80C51打开AD的三态门,AD输出数据 else RD=1; /否则,AD继续转换 del

43、ay_10ms(1); P0=0XF9; /选通IN-1,转换烟雾信号 WR=0; if(EOC=1) RD=0;Smok1=P0; else RD=1;void delay_10ms(uint i) /10ms延时程序 while(i-) uchar i,j,k; for(i=5;i0;i-) for(j=4;j0;j-) for(k=248;k0;k-); void panduan() if(Tem1Tem) a1=1; /当采集的温度高于阈值置1,否则,置0 else a1=0; if(Tem2Tem) a2=1; else a2=0; if(Smok1 Smok) b1=1; /当采集

44、的烟雾浓度高于阈值置1,否则,置0 else b1=0; if (Smok2 Smok ) b2=1; else b2=0;baojing() if(a1=a2&b1=b2) /两次采集数据的标志位相同 a=a1; b=b1; if(a=1&b=1) P22=1;P21=0;P23=1;P24=0;P25=1; /温度烟雾标志位都是1,发生火灾 if(a=1&b=0) P23=0;P21=0;P22=1;P24=1;P25=1; if(a=0&b=1) P23=0;P21=0;P22=1;P24=1;P25=1; /温度烟雾标志位只有一个1,异常 if(a=0&b=0) P22=0; /温度烟雾标志位都为0,正常 ;else P25=0;P23=1;P24=1; /两次采集的数据标志位不同,系统故障

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号