当前位置:文档之家› 基于单片机的火灾自动报警系统..doc

基于单片机的火灾自动报警系统..doc

火灾自动报警系统的工作原理2.1 系统总体功能概述。

整体电路的框图如图2-1所示:第3章系统硬件设计3.1 核心芯片选择图2-1 系统原理及组成框图1. 芯片AT89S52在火灾报警器的设计中,单片机是其核心部件。

它一方面要接收来自传感器送来的温度、烟雾对应的模拟信号和故障检测信号,另一方面要对这两种信号分别进行处理,以控制后续电路进行相应动作;与此同时查询是否有键按下的请求。

在单片机完成这些工作的过程中,尤其是信号处理中,比较浓度值后送入显示的软件实现比较复杂,要求单片机具备较快的运算速度,使检测人员能够较准确地观测到烟雾浓度,并根据情况进行相应的处理。

并且也要考虑选择低价实用的机型,并为研制同一系列的低功耗产品做准备。

根据多方面的比较,本设计选用ATMEL公司的AT89S52单片机作为控制器。

AT89S52是一个低功耗、高性能的CMOS 8位单片机,片内含4k Bytes(In-system programmable)的可反复擦写1000次的Flash 只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造兼容标准MCS-51指令系统及80C51引脚结构。

芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的计算机AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。

根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。

片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。

可以在4V到5.5V宽电压范围内正常工作。

不断发展的半导体工艺也让该单片机的功耗不断降低。

根据本次设计的具体情况,采用双列直插DIP-40封装。

AT89S52的引脚图如图3-1所示:图3-1 DIP-40封装AT89S52引脚图2、集成温度传感器AD590图3-2 AD590应用电路AD590是美国Analog Devices公司生产的一种电流型二端传感器,电路如图所示。

由于AD590是电流型温度传感器,它的输出同绝对温度成正比,及1 A∕K,,而数模转换芯片ADC0809的输入要求是电压量,所以在AD590的负极接出一个10千欧的电阻R1和一个100欧的可调电阻W,将电流量变为电压量送入ADC080。

通过调节可调电阻便可在输出端V T获得与绝对温度成正比的电压量,即10mV∕K,温度0℃时输出为0,温度25℃时输出为2.982V。

这样便于A/D转换器采集数据。

AD590的应用电路如图3-2所示。

3、气体传感器TGS-202图3-3 TGS202检测电路火灾中气体烟雾主要是CO2和CO,TGS202气体传感器能探测CO2,CO,甲烷,煤气等多种气体,它灵敏度高,稳定性好,适合于火灾中气体的探测。

如上图所示,当TGS202探测到CO2或CO时,传感器的内阻变小,V A迅速上升。

选择适当的电阻阻值,使得当气体浓度达到一定程度(如CO浓度达到0.06﹪)时,V A端获得适当的电压(设为3V)。

电路图如图3-3所示。

4、数码管驱动芯片ICM7218ICM7218 是INTERSIL公司生产的一种性能价格比较高的通用8 位L ED 数码管驱动电路, 28 脚双列封装,是一种多功能L ED 数码管驱动芯片,可与多种单片机接口使用。

ICM7218 的输出可直接驱动L ED显示器,不需外接驱动电路,工作电压为+5V,其构成的显示电路结构简单,使用方便。

同样由单片机向ICM7218写控制字及数据,编程部分像给外部RAM写数据一样简单。

当单片机写入模式控制字后,ICM7218以约定的方式接收显示数据并将数据写入静态显示RAM中。

数据接收结束,ICM7218在扫描控制电路的控制下,按设定的译码模式,以动态扫描显示方式向段显示驱动器和位控驱动器发出控制信号,直到下一个控制字写入前,不停地进行动态显示工作。

其引脚图和内部框图如图3-4所示。

图3-4 ICM7218引脚图及内部框图3.2 单片机外围接口电路AT89S52单片机外围接口电路如图3-5所示,主要包括:1.晶振电路:内部时钟电路的晶振频率一般选择在4MHZ~12MHZ之间(该设计选用6MHZ),外接两个谐振电容。

该电容的典型值为30pF,该设计选用33pF。

2.复位电路:单片机复位采用按键高电平复位,而单片机在平时则复位端为低电平0.3.直流电源两类传感器的输出信号进行放大调理。

电路图如上图3-6所示,运算放大器接成电压放大电路。

从传感器采集过来的微弱电压信号,经过电压放大器的放大,得到较强的模拟电压信号。

采样时,把相应的模拟电压信号从Vi端送进LM324A 进行放大处理后,从Vo端输出送入A/D转换电路。

3.4 A/D转换模块经气敏传感器所检测的电压信号为模拟信号,无法直接被单片机所识别,所以在经过放大电路后对信号进行A/D装换,将模拟信号转化为数字信号输入单片机。

A/D转换电路采用了常用的8位8通道数模转换常用芯片ADC0809,烟雾、温度传感器的输出端分别接到ADC0809的IN0和IN1。

ADC0809的通道选择地址由AT89S52的P0.0~P0.2经地址锁存器74LS373输出提供。

当P2.7=0时,与写信号WR共同选通ADC0809。

其中ALE信号与ST信号连在一起,在WR信号的前沿写入地址信号,在其后沿启动转换。

图中ADC0809转换结束状态信号EOC接到AT89S52的INT1引脚,当A/D转换完成后,EOC变为高电平,表示转换结束,产生中断。

在中断服务程序中,将转换好的数据送到指定的存储单元。

由于ADC0809片内无时钟,故利用8051提供的地址锁存使能信号ALE经D触发器二分频后获得时钟。

因为ALE信号的频率是单片机时钟频率的1/6,如果时钟频率为6MHZ,则ALE信号的频率为1MHZ,经二分频后为500KHZ,与ADC0809的典型值吻合。

电路图如图3-7所示。

3.5 声音报警电路由AT89S52的21脚实现声音报警控制。

当可燃性气体浓度或温度超过限定值时,将P2.0置为低电平,三极管导通,扬声器发出鸣叫报警。

其电路原理图如图3-8所示。

图3-8 声音报警电路图3.6 数码管显示电路数据采集进来并被成功地由模拟量转化为数字量后,就被传送到系统的显示模块,让人们更直接地观察到相关数据。

在本系统中,对LED进行的是动态扫描,除了给显示器提供段的输入之外,还要对显示器进行位控制。

显示器的第一位显示所选择的通道号,而后三位则显示该通道传送进来的相应的数字量。

本系统显示用的4位七段数码管由数码管专用驱动芯片ICM7218A驱动,27、3、1、25、2、24、26脚分别接数码管的a、b、c、d、e、f、g,15、16、23、20脚为位选,分别控制4位数码管的亮灭,ID0~7为数据线,接单片机P0口,WRITE、MODE是写控制位和模式控制位,分别接单片机P3.6、P2.6。

其电路图如图3-9所示。

图3-9 数码管显示电路图第4章系统软件设计4.1 主程序流程图主程序流程图如图4-1所示:图4-1 主程序流程图首先要给传感器预热三分钟,因为传感器需要预热一段时间才能正常采集烟雾和温度信息。

预热同时,对传感器加热丝故障检测,采用软件方式检测传感器加热丝或电缆线是否断线或者接触不良。

程序初始化结束后,系统进入监控状态。

AT89S52单片机对传感器检测到的烟雾浓度和温度信号进行A/D转换、平均值法滤波、线性化处理后,将检测值与报警限设定值相比较,判断是否报警。

同时送入显示器显示通道及相应的数字量。

主程序还包括状态指示灯及按键功能,中断子程序等,使报警器功能更加完善,给用户带来便利。

4.2 主程序初始化流程图主程序初始化流程图如图3-2所示。

这部分实现的功能包括各种I/O输入输出状态的设定、寄存器初始化、中断使能等。

首先设定定时器工作方式,然后开系统中断,以便响应中断定时,及时对气体浓度和温度进行采样。

然后关闭蜂鸣器,开启绿灯,设置报警限初值。

图4-2 主程序初始化流程图4.3 滤波子程序在对气体浓度采样时,可能会遇到尖脉冲干扰的现象。

干扰通常只影响个别采样点的数据,此数据与其他采样点的数据相差比较大。

如果采用一般的平均值法,则干扰将“平均”到计算结果上去,故平均值法不易消除由于脉冲干扰而引起的烟雾浓度采样值的偏差。

为此,可采取去极值平均滤波法,先对N个采样数据进行比较,去掉其中的最大值和最小值,然后计算余下的N–2个数据的算术平均值。

这种方法既可滤去脉冲干扰又可滤去小的随机干扰。

保证报警器检测烟雾浓度的准确性,减小误报、错报的可能。

图4-4 滤波子程序流程图4.4 线性化子程序本论文报警器使用的TGS-202型传感器的电阻是随着可燃气体浓度值的升高而降低的,因此输入单片机的电压也是随之降低的。

电压值与气体浓度之间是非线性的关系,为了实时显示烟雾浓度需要对其进行线性化处理。

在误差许可范围内,根据标定曲线形状,以及单片机处理能力,把曲线分成若干小段,对每小段分别线性化根据分段线性插值法求输入单片机的某一电压值对应的烟雾浓度的公式如下:式中,N为所分区间个数,f(x)为实际烟雾检测浓度,x为实际气体检测浓度对应的电压值,xi 是区间的下限浓度对应电压值,xi+1是区间的上限浓度对应电压值,f(xi )为区间下限烟雾浓度值,f(xi+1)为区间上限烟雾浓度值。

分段插值法线性化程序流程图如图4-5所示:图4-5 线性化子程序开始读取滤波电压X查表并确定X所在电压区间求电压值X与所在区间下限差X m=X-X i求X所在区间的上下限浓度值的差Z=f(X i+1)-f(X i)求上下限电压值的差Xd=X i+1-X i 求Z与Xd的比K=Z/X d求出K与X的和S=K*X m求出f(X)=f(X i)+S保存浓度值返回4.5 报警子程序报警子程序流程图如图4-6所示。

图4-6报警子程序流4.6 键盘处理子程序按键处理子程序流程图如图4-7所示。

图4-7 键盘处理子程序流程图附录。

相关主题