内容发布更新时间 : 2024/12/22 14:37:47星期一 下面是文章的全部内容请认真阅读。
龙源期刊网 http://www.qikan.com.cn
基于STC89C52单片机的烟雾报警器软件设计
作者:于博 欧阳宏基
来源:《软件工程》2016年第11期
摘 要:随着当今社会经济的飞速发展与易燃材料的大量应用,所以,就有必要来研制一种结构相对简单、经济,且实用的烟雾检测及报警系统来满足防火的需要。本系统以STC89C52单片机为基础的烟雾报警器软件设计以MQ-2气体传感器为检测节点,系统通过检测待测区域的气体与烟雾的气体浓度,经过对相关获取信号的调整处理,数据采集到单片机进行D/A转换处理,进行了软件设计实现,在进行测试中达到了设计预期目标,体现在当被测烟雾浓度超过预设数值,进行报警,该系统集成度高,设计简单,可满足多种场合的烟雾报警。
关键词:STC89C52单片机;烟雾报警;仿真开发 中图分类号:TP311.1 文献标识码:A 1 引言(Introduction)
近年来,智能建筑的迅速发展,工业与生活等面临火灾的各种隐患变得愈发广泛,安全防火已经从过去的人工控制发展为目前的火灾智能报警、智能灭火阶段。目前存在的传感器设计中,设计者对传感器和电路设计对报警器对烟雾的响应反馈影响很关键,在综合分析了气敏式传感器、离子式烟雾传感器、光电传感器后,选择了应用广泛和对烟雾反馈及时的气敏式传感器。本文根据传感器的类型给出一种基于STC89C52单片机的烟雾报警器的设计。该系统的硬件设计方面,首先从总体设计方案入手进行需求分析,然后按照系统功的要求对各硬件电路单元进行分析设计,其次进行硬件设计和软件仿真,设计要求达到了对于家庭和工厂的气体泄漏装置,同时对家庭液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等的探测,报警器能够达到一定数值后自动报警。
2 基于STC89C52单片机的烟雾报警器的硬件电路设计(Design of hardware circuit of smoke alarm based on STC89C52 single chip microcomputer)
在信号采集前端节点,烟雾检测传感器一般我们选取的传感器的型号是可燃气体传感器MQ-2,在具体检测中,该型号的气体传感器在材料选取的介质气敏材料是在纯净的空气中电导率一般较低的二氧化锡。当火灾发生时,会产生可燃气体、烟雾、温度增高的变化,同时该传感器的电导率会引起系列变化,具体体现在随着空气中的各种可燃气体浓度的增高而引起了电导率的数值增大。我们只需要简单的电路设计,就能够将该浓度烟雾数据转化为数字信号的进行输出。在具体实践中,该气体传感器对大部分气体灵敏度高,具体体现在液化气、丙烷、
龙源期刊网 http://www.qikan.com.cn
氢气等,同时对天然气和其他可燃物产生的蒸汽的检测效果也很灵敏。这种传感器可检测多种可燃性气体,另外烟雾中含有多种MQ-2可检测的其他,则其可作为烟雾传感器使用,是一款适合多种应用的低成本传感器。图1为硬件原理图。 3 传感器性能分析(Sensor performance analysis)
图2是气体传感器的结构图,图3是传感器的基本测试电路。该传感器需要施加两个电压:加热器电压(VH)和测试电压(VC)。其中VH用于为传感器提供特定的工作温度。VC则是用于测定与传感器串联的负载电阻(RL)上的电压(VRL)[1]。这种传感器具有轻微的极性,VC需用直流电[2]源。在满足传感器电性能要求的前提下,VC和VH可以共用同一个电源电路。为更好利用传感器的性能,需要选择恰当的RL值。 3.1 灵敏度特性
仪器传感器的气敏材料的测量精度关系着火灾发生时的报警启动时间,同时测量结果的数值与被测量真值的真实结果偏离程度是要关注的重点。在火灾烟雾报警中,精度是一个相对的数值,任何一种测量的精密程度高低都只能是相对的,都不是绝对数值的精确,为使测量结果准确可靠.尽量减少误差,提高测量精度必须充分认识测量可能出现的误差,以便采取必要的措施来加以克服。通常在测量中有基本误差、补偿误差、绝对误差、相对误差、系统误差、随机误差、过失误差与抽样误差等[3]。MQ-2烟雾传感器[4]灵敏度曲线如图4所示。 3.2 烟雾检测传感器电路原理图
MQ-2烟雾传感器电路原理如图5所示。
其中U11(MQ-2)的PIN5与PIN2为加热电路,对应结构图中的两个H端;PIN1、PIN3、PIN4、PIN6构成检测电路。MQ-2传感器的供电电压Vc和加热电压Vh都为5V,负载电阻R20为5.1kΩ。ADC1(P1.1)在清洁空气中的值以及检测到烟雾时的值需要根据实际应用情况进行调整,以下仅为在实验条件下做的不完全的实验结果,仅供参考。在清洁空气中,ADC1的AD采样值为50左右;在烟雾中(燃烧纸产生的烟雾或者液化气),ADC1的AD采样值为大于85。当AD采集的数值大于85时表明检测到烟雾。 4 软件实现(Software implementation) #include
void main(void) { uint j;
龙源期刊网 http://www.qikan.com.cn
uart1_init(); P1ASF=(1
ADC_CONTR=ADC_360T|ADC_ON; while(1) {
delay_ms(500);
j=adc10_start(1); if(j>0x55) Uart1_String(\); } }
uint adc10_start(uchar channel) uint adc; uchar i; ADC_RES=0; ADC_RESL=0;
ADC_CONTR=(ADC_CONTR & 0xe0)|ADC_START|channel; i=250; do{
if(ADC_CONTR & ADC_FLAG) {
ADC_CONTR &= ~ADC_FLAG; adc=(uint)ADC_RES; adc=(adc