安全检测设计 - 图文

更新时间:2024-01-25 08:00:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

河南城建学院 课程设计

可燃性气体检测系统的设计

摘要

随着可燃性气体种类和应用范围的增加,其使用场所和贮气仓库内的泄漏、火灾爆炸事故日益增多。从安全、环保及经济上考虑,研制一种检测可燃性气体自动报警和自动打开排器装置的一种控制器是非常必要的。

本设计对可燃性气体泄漏报警、控制器进行了深入的研究,采用了“探测器+单片机控制电路”设计思路,具有检测误差小,反应速度快等优点。选用MQ2气体传感器对现场可燃性气体浓度进行检测,采用功能和性价比较高的STC89C52单片机作为中央处理单元,对浓度信号进行采集、数据处理、显示、报警及打开排气装置等工作。

本设计的可燃性气体报警、控制器可以检测空气中以烷类气体为主的多种可燃性气体的浓度,实时显示浓度值,当达到预先设定的上限报警设定值时,发出声音报警和控制信号,以提示操作人员采取安全对策或自动控制相关安全装置。该报警器可以实时、准确检测可燃性气体,并且可以长时间可靠无误的报警,具有很广泛的应用前景和推广价值。

关键词: 报警器;可燃性气体;单片机;气体传感器

I

河南城建学院 课程设计

目录

1 绪论 ...................................................................... 3 1.1课题研究的目的和意义及来源 ............................................... 3 1.1.1课题研究的目的和意义 ................................................... 3 1.1.2课题的来源 ............................................................. 3 1.2 可燃性气体报警控制器国内外现状 ........................................... 4 1.3本课题主要完成的任务 ..................................................... 5 2 可燃性气体报警控制器的方案设计 ............................................. 5 2.1 气体传感器的选型 ......................................................... 5 2.1.1 气体传感器的种类 ....................................................... 5 2.2 MQ-2传感器简介 ......................................................... 7 2.2.1 MQ2传感器概述 ........................................................ 7 2.2.2 MQ2传感器详细说明 .................................................... 7 3 可燃性气体报警控制器的硬件设计 ............................................. 8 3.1 可燃性气体检测报警器的设计 ............................................... 8 3.1.1 可燃性气体检测报警器的结构 ............................................. 9 3.2 STC89C52系列单片机系统结构特点 .......................................... 9 3.3 可燃性气体报警控制器的电路设计 .......................................... 10 3.3.1 A/D转换电路 .......................................................... 10 3.3.2 STC89C52单片机接口电路 ............................................... 12 3.3.3 声音报警电路 .......................................................... 13 3.3.4 显示电路 .............................................................. 14 3.3.5灯光报警 .............................................................. 16 4 可燃性气体报警器的软件设计 ................................................ 17 4.1 STC89C52单片机调试及开发工具 ........................................... 17 4.2 可燃性气体报警控制器软件流程及设计 ...................................... 18 4.2.1 主程序流程图及设计 .................................................... 18 4.2.2 T0中断子程序 ......................................................... 19 4.2.3 线性化处理子程序设计 .................................................. 20 4.2.4 十六进制转化十进制子程序设计 .......................................... 22 4.2.5 显示子程序设计 ........................................................ 23 4.2.6 数据处理模块 .......................................................... 24 4.3 电路仿真 ............................................................... 25 5 系统调试 ................................................................. 28 5.1 硬件的调试 .............................................................. 28 5.1.1 排除逻辑故障 .......................................................... 28 5.1.2 排除元器件故障 ........................................................ 28 5.1.3 排除电源故障 .......................................................... 28 5.2 联机仿真调试 ............................................................ 29 5.3软件调试 ................................................................ 30 5.4软、硬件整体调试 ........................................................ 30 结论........................................................................ 31 致谢........................................................................ 32 参考文献 .................................................................... 33

1

河南城建学院 课程设计

附录A:硬件电路总图 ........................................................ 33 附录B: STC89C52 数据手册 ................................................... 35 附录C:主要参考文献及摘要 .................................................. 36 附录D:程序清单 ............................................................ 37

2

河南城建学院 课程设计

1 绪论

1.1课题研究的目的和意义及来源

1.1.1课题研究的目的和意义

随着石油化学工业的发展,易燃、易爆、有毒气体的种类和应用范围都有所增加。液化石油气、天然气、煤气等这些气体主要含有烷类、烃类、烯类、醇类、苯类以及一氧化碳、氢等成分,是易燃、易爆、有毒、有害的气体。它们易流动、易燃烧,在生产、输送、贮存和使用这些气体的过程中,如违反操作规程或设备密封质量不好,都有可能发生可燃气体泄漏的现象。当与空气混合后的混合物达到一定的浓度时,就是一种爆炸性混合物,遇火就会发生剧烈的化合反应,产生大量的热,会燃起大火,进而酿成火灾或爆炸事故,给国家和人民的生命财产造成损失。国内外均有不少这方面的报道,其教训是非常深刻的。为了防患于未然,只有采用先进、可靠的安全监测仪表,严密监测环境中的可燃性气体的浓度,及早发现事故隐患,采取有效措施,将事故消灭在酿成事故之前,才能确保安全生产,居民的人身财产安全才能有保证。

可燃性气体报警控制器属于《中华人民共和国强制检定的工作计量器具目录》中第46项,它归类于物理化学计量器具。《建筑设计防火规范》(GBJ16-87)第10.3.2条明确规定:“散发可燃气体、可燃蒸汽的甲类场所,应设置可燃性气体浓度检测报警装置”。但现在国内使用的报警控制器,许多产品使用时间过长,产品老化严重,技术指标达不到标准,报警器的性能也不稳定。有些是保养不当,如电池流水腐蚀仪器,或蓄电池损坏使报警器不能工作;有些是因使用不当而造成故障,因此不能进行准确,安全的报警和控制。2003年12月,国家执行新的可燃性气体探测器标准(GB 15322-2003)《可燃气体探测器》。在2004年10月国家颁布《可燃气体检测报警器规程JJG693-2004 》。一部分不合规定的可燃性气体报警控制器将停止使用[10]。因此,研制一种新型,性能稳定、准确监测可燃性气体,并且合乎国家相关规定的报警控制器势在必行。

1.1.2课题的来源

随着城市煤气、天然气事业及化学工业的迅速发展,易燃、易爆的气体种类和应用范围在不断增加,这些易燃易爆气体在生产和使用过程中,一旦发生泄漏将会引起中毒、火灾、爆炸等重大事故,人们在对安全生产的重视程度日益增加的同时,对生产技术手段也进行不断的提高, 研制一种新型、性能稳定、准确监测可燃性气体报警控制器势在必行。

3

河南城建学院 课程设计

而传统的模拟型可燃性气体报警控制器,对于气体传感器的特性补偿、修正,采用匹配补偿传感器的硬件调整方式;这种调整方式虽然具有现场调整方便的优点,但补偿拟合的范围窄,匹配传感器的部件选择困难,而难以获得较好的补偿、修正效果。因此,本次设计采用了“探测器+单片机控制电路”设计思路。

本次设计采用以STC89C52芯片为核心,用半导体陶瓷式气体传感器MQ-2来检测外部气体浓度,结合外部硬件电路实现对可燃性气体进行报警控制装置。STC89C52芯片具有功能强大,性价比高等一系列优点,适合产品大规模生产。同时,设计出的可燃性气体报警控制器具有操作简单,实用性强,价格便宜,安全性高等特点,所以非常适合贮气仓库,以及家庭等场所使用,具有很高的实用价值。

正是由于可燃性气体报警控制器对于安全生产的重要性,国内外有众多厂家研制、生产这一产品。从运用所学知识和实际意义出发,研制一种固定式可燃性气体报警控制器,它主要对以烷类气体为主的多种可燃性气体进行检测控制。

1.2 可燃性气体报警控制器国内外现状

可燃性气体报警控制器在国外己经发展成为一种相当成熟的产品。日本是最早发明燃气报警器的国家,己有50多年的历史。无论在气体探测器的研制上,还是在报警器的性能上,均处于国际领先水平。日本政府和生产企业大力推广报警器的使用,使燃气泄漏和爆炸等事故的事故率远远低于欧美等发达国家。其中FIGARO、理研都是专门研制、生产可燃性气体报警控制器的厂家,他们生产的产品以采用最先进的气敏传感器、响应速度快、性能可靠、寿命长而著称。

我国在70年代初期开始研制可燃性气体报警控制器,生产型号多样、品种较齐全,应用范围也由单一的炼油系统扩展到几乎所有危险作业环境的各种类型报警器,产品数量也在不断增加。但主要是在引进国外先进的传感器技术和先进的生产工艺基础上,又进行研究与开发,形成自己的特色。近年来,在气体选择性和产品稳定性上也有很大进步[7]。

工业可燃性气体报警控制器一般分为可燃性气体检漏仪(简称“检漏仪”)、可燃性气体报警控制器(简称“控制器”)、可燃性气体探测器(简称“探测器”)三大系列产品。

“检漏仪”的体积较小,可随身携带或手持,采用碱性电池或可充电电池供电,一般可以连续工作近12小时。该仪器主要应用于燃气管道的查漏与巡线。若有燃气泄漏,检漏仪便会发出声光报警,同时显示气体浓度,以便及时采取安全措施,防止爆炸等恶性事故的发生。

“探测器+控制器”,这是在工业装置上和生产过程中使用最多的检测仪器,可在防爆现场长期监测气体的浓度。这种仪器大都装设在油库、乙炔站、液化气

4

河南城建学院 课程设计

站和煤气站等易燃易爆的危险场所。探测器安装在防爆现场,控制器放在值班室等有人值守的地方,二者采用屏蔽电缆线连接。当在现场的探测器探测到燃气泄漏之后,通过屏蔽电缆线将信号传到控制器,控制器发出声光报警,同时启动排风装置或关闭电磁阀切断气源,以确保安全。

1.3本课题主要完成的任务

本课题是基于单片机的家用可燃性气体检测报警器控制器的研制,主要完成以下任务:

(1) 对单片机报警器系统进行整体的规划和结构的设计。

(2) 以STC89C52单片机为中央处理器,对硬件电路进行设计和改进,使其功能更

加完善。系统硬件电路主要分为A/D转换电路、STC89C52单片机接口电路、声音报警控制电路、显示电路四个部分。

(3) 系统的软件编制。在程序的编写过程中,分别对主程序和各部分子程序进行

了流程图的绘制,同时加入了详细的文字注释,以便于后期的改进与维护。

2 可燃性气体报警控制器的方案设计

2.1 气体传感器的选型

可燃性气体传感器是一个气-电变换器,它的作用是把可燃性气体在空气中的含量(即浓度)变成电信号,进而由单片机采集信号、数据处理、浓度显示以便报警控制。传感器作为对可燃性气体的敏感元件,是各种类型(袖珍式、便携式、固定式)仪表的核心之一。因此,传感器的选型是非常重要的[3]。

2.1.1 气体传感器的种类

国外从30年代开始研究开发气体传感器。过去气体传感器主要用于煤气、液化石油气、天然气以及矿井中的瓦斯气体的检测与报警,目前需要检测的气体种类由原来的还原性气体(H2, C4H10, CH4等)扩展到毒性气体(CO,NO2, H2S, NO, NH3, PH3等)。气体传感器种类繁多,从原理上可以分为三大类: (1) 利用物理化学性质的气体传感器:如半导体、催化燃烧等。 (2) 利用物理性质的气体传感器:如热导、光干涉、红外吸收等。 (3) 利用电化学性质的气体传感器:如电流型、电势型等。

5

河南城建学院 课程设计

下面对工业上常用的几种气体传感器作以简单介绍。 (1) 半导体气体传感器

这类传感器主要使用半导体气敏材料,利用气敏元件的电阻、电流或电压随气体浓度变化的原理工作的。由于具有灵敏度高、响应快、输出信号强、耐久性强、结构简单、价格便宜等诸多优点,这类传感器得到了广泛的应用。目前,世界上许多国家开展了对半导体气敏材料的研究,其中日本、美国处十领先地位,我国也投入大量资金和人力进行研究,并取得一定成果。该传感器己成为世界上产量最大、使用最广的气体传感器之一。 (2) 固体电解质气体传感器

这是一种产量仅次于半导体气体传感器的一类传感器。它使用固体电解质材料作为气敏元件。其原理是气敏材料在通过气体时产生离子,形成电动势,钡U量电动势从而测量气体浓度。由于这种传感器电导率高,灵敏度和选择性好,因而得到了广泛的应用,几乎打入了石化、环保、矿业等各个领域。如测量H2S YST-Au-WO3, NH3的NH'4CaCO3等。但这种传感器制造成本高,检测气体范围有限,在检测环境污染领域中有优势。 (3) 接触燃烧式气体传感器

这类传感器可分为直接接触燃烧式和催化接触燃烧式气体传感器。其工作原理是:气敏材料在通电状态下,可燃性气体氧化燃烧或在催化剂作用下氧化燃烧,产生的热量使电热丝升温,从而使其电阻值发生变化,测量阻值变化从而测量气体浓度。接触燃烧式气体传感器在环境温度下非常稳定,并能对爆炸F限的绝大多数可燃性气体进行检测,普遍应用于石化工厂、造船厂、矿井隧道、浴室、厨房等处可燃性气体的监测和报警。这类传感器只能测量可燃性气体,对不可燃性气体不敏感。在燃气爆炸下限内输出为线性、只与燃气浓度成正比、温度和湿度的变化对其工作状态影响很小、选择性好、反映准确、精度高、再现性好。其不足的是催化剂寿命有限,当在可燃性气体与空气的混合物中有硫化氢等含硫物质的情况下,则有可能在无焰催化燃烧的同时,有些固态物质附着在催化元件表面,阻塞载体的微孔,从而引起响应缓慢,反应滞缓或中毒,使灵敏度降低。 (4) 高分子气体传感器

利用高分子气敏材料制作的气体传感器近年来得到很大的发展。高分子气敏材料在遇到特定气体时,其电阻、介电常数、材料表面声波传播速度和频率、材料重量等物理性能发生变化D21高分子气敏材料由于具有易操作性、工艺简单、常温选择性好、价格低廉、易与微结构传感器和声表面波器件相结合,在毒性气体和食品鲜度等方面的检测中具有重要作用。高分子气体传感器具有对特定气体分子灵敏度高,选择性好,且结构简单,能在常温下使用,可以弥补其它气体传感器的不足。 (5) 电化学传感器

6

河南城建学院 课程设计

这类传感器由膜电极和电解液灌封而成。气体浓度信号将电解液分解成阴阳带电离子,通过电极将信号传出。它的优点是:反映速度快、准确、稳定性好、能够定量检测,但寿命较短(大于等于两年)。它主要适用于毒性气体的检测。目前国际上绝大部分毒气检测采用该类型传感器。

2.2 MQ-2传感器简介

2.2.1 MQ2传感器概述

MQ-2是郑州炜盛电子科技有限公司生产的可燃气体传感器,对一氧化碳、甲烷,液化石油气具有很高的灵敏度和良好的选择性。具有长期的使用寿命和可靠的稳定性,驱动电路简单,较大的电信号输出。应用于家庭和生产环境下的一氧化碳探测装置,适宜于一氧化碳、煤气,液化石油气等的探测。

2.2.2 MQ2传感器详细说明

MQ-2型气敏元件的敏感层是用非常稳定的二氧化锡制成的。因此,它具有优秀的长期稳定性,在正常使用条件下,其使用寿命可达5年。

图2-1给出了MQ-2元件对不同气体的灵敏度特性。温度为20摄氏度,湿度为65%,氧气浓度为21%,RL=l0k,Ro为1000ppmLPG(液化石油气)中气敏元件电阻,Rs为不同气体不同浓度下气敏元件电阻。

图2-1 MQ-2灵敏度特性曲线

7

河南城建学院 课程设计

MQ-2工作原理:

传感器的表面电阻Rs是通过与其串联的负载电阻RL上的有效电压信号VRL

输出而获得的。二者之间的关系为:

公式

(3-1)

图2-2为负载测试曲线图,是利用测试回路测得在传感器由洁净空气转移至一氧化碳或甲烷气氛中时,RL上的信号输出变化情况,输出信号的测定是在一个完整的加热周期或在两个完整的加热周期内测得。

图2-2 负载测试曲线图

3 可燃性气体报警控制器的硬件设计

3.1 可燃性气体检测报警器的设计

在可燃性气体报警控制器的设计中,单片机是仪表的核心部件。它一方面接收传感器检测到的可燃性气体浓度所对应的模拟电压信号,另一方面要对这一信号进行处理,控制报警、控制电路进行相应操作,与此同时判断是否收到外部中断请求。在单片机所实现的这些功能中,特别是信号处理部分,需要单片机有较快的运行速度,才能对现场气体浓度做出快速、准确的检测,进行相应的处理。同时考虑选择低价实用的机型,并为制同一系列的低功耗产品做准备。根据多方面的比较,本设计选用生产的STC89C52系列单片机作为报警器的核心控制器。

首先,可燃性气体浓度信号通过MQ-2气体传感器将可燃性气体浓度信号转换成电压信号,经过前置放大电路后,经过A/D转换,输出一个适合单片机接收的电压信号,然后,送入STC89C52中,线性化数据处理后,将电压信号转化成对应的十六进制浓度值。最后,将浓度值送入LED数码管显示。当检测到的

8

河南城建学院 课程设计

可燃性气体浓度超出上限报警设定值时,报警器发出声音报警,同时继电器启动驱动排气装置,实现排气系统的自动控制。

3.1.1 可燃性气体检测报警器的结构

可燃性气体报警控制器系统结构如图3-1所示,系统以STC89C52单片机为核心,配合外围电路共同完成信号采集、浓度显示、声音报警、自动控制等功能。

通过预设气体浓度,MQ2传感器进行检测气体浓度,假如超过预设气体浓度时,将发出声音报警,并自动启动排气装置。

5V电源 输出控制 声、光报警 单 片 机 浓度采样电路 浓度比较 图3-1 可燃性气体报警控制器系统结构 3.2 STC89C52系列单片机系统结构特点

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案[2]。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚电路如图3-2所示,STC89C52主要性能有以下几点:

9

河南城建学院 课程设计

(1) 与MCS-51单片机产品兼容

(2) 8K字节在系统可编程Flash存储器 (3) 1000次擦写周期

(4) 全静态操作:0Hz~33Hz (5) 三级加密程序存储器 (6) 32个可编程I/O口线 (7) 三个16位定时器/计数器

(8) 八个中断源全双工UART串行通道 (9) 低功耗空闲和掉电模式 (10) 掉电后中断可唤醒 (11) 看门狗定时器 (12) 双数据指针 (13) 掉电标识符

图3-2 STC89C52引脚图

3.3 可燃性气体报警控制器的电路设计

3.3.1 A/D转换电路

ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8。 对ADC0809主要信号引脚的功能说明如下: IN7~IN0——模拟量输入通道

ALE——地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。

START——转换启动信号。START上升沿时,复位ADC0809;START下降沿时

10

河南城建学院 课程设计

启动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。本信号有时简写为ST.

A、B、C——地址线。 通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表9-1。

CLK——时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号

EOC——转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。

D7~D0——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高

OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。

Vcc—— +5V电源。

Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V).

图3-5 A/D转换电路

11

河南城建学院 课程设计

VIN1采集传感器输出的信号电压信号,当采集的电压超过1.96V时,即表示浓度超过约45%时,系统将发生报警。

3.3.2 STC89C52单片机接口电路

STC89C52采用PQFP贴片式的封装形式,有40个管脚。根据单片机制作的原理以及报警器实现的功能,其接口电路主要分为五个部分。STC89C52单片机接口电路如图3-3所示。

图3-6 STC89C52单片机接口电路

(1) 复位模块

复位操作可以使单片机初始化,也可以使死机状态下的单片机重新启动,因此非常重要。为可靠起见,电源上电稳定后还要经一定的延时,才能撤销复位信号,以防电源开关或电源插头分一合过程中引起的抖动而影响复位。在本设计中,采用的是阻容RC上电复位电路,通过电容加到RST端上一个高电平复位信号,高电平持续时间取决于RC电路参数。为了保证系统能可靠地复位,RST端上高电平信号必须有足够长的时间。 (2) 系统时钟模块

时钟电路产生单片机的工作时序脉冲,是单片机正常工作的关键。本次设计中采用外部独立时钟震荡器所产生的时钟信号。在STC89C52的18脚(XTAL1)和19脚(XTAL2)外接12M的晶体,同时并连2个22pF的电容,产生系统时钟。

12

河南城建学院 课程设计

(3) 显示模块

由STC89C52的32~39脚以及21~26脚构成浓度显示输出信号。本次设计中采用的是动态显示的方法进行浓度显示。 (4) 声音报警模块

由STC89C5242的11脚(TXD)实现声音报警控制。当可燃性气体浓度超过限定值时,扬声器发出鸣叫报警,同时启动54继电器。

3.3.3 声音报警电路

当可燃性气体浓度超过限定值时,扬声器发出鸣叫报警。

13

河南城建学院 课程设计

图3-7 声音报警控制电路

声音报警电路如图3-7所示,它是由三极管,继电器,扬声器以及排气电路构成。当实际检测浓度低于设定浓度时,三极管不导通,扬声器以及继电器均不工作,排气电路处于断开状态;当实际检测浓度等于或超过设定浓度时,通过P2.0和P2.1与单片机的连接从而引起电平的变化,P2.0和P2.1都为低电平,三极管导通,在扬声器发出报警声音的同时,继电器也进行工作,而使排气电路形成闭合回路,达到自动进行排气控制的效果。

3.3.4 显示电路

14

河南城建学院 课程设计

图3-8 数码管显示电路

数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极.通过解码电路得到的数码接通相应的发光二极而形成相应的字,其工作原理见图3-9。

15

河南城建学院 课程设计

图3-9 数码管结构图

要使数码管显示0—9这10个数字,只要控制其相应的管脚所接发光二极管点亮便可完成。若要使数码管显示一个“3”字,只需控制其“a、b、c、d、g”这几个发光管点亮即可。由于数码管内是没有限流电阻的,在实际应用时,必须对每一段发光管回路中串一限流电阻,否则极容易损坏数码管。本设计中数码管用于显示当前的外界气体浓度。

3.3.5灯光报警

灯光报警电路如图4-7所示,灯光报警电路由R22、LED2(黄色)组成,电阻起限流的作用。当可燃气体浓度小于浓度设定值时,单片机对应引脚输出高电平,无灯光报警;当检测可燃气体浓度大于浓度设定值时,单片机对应引脚为低电平,进行相应的灯光报警。

16

河南城建学院 课程设计

图3-10 灯光报警控制电路

黄灯闪烁时表示当前处于初始化状态,报警器初始化完成后。绿灯不停的进行闪烁表示当前工作正常。

4 可燃性气体报警器的软件设计

4.1 STC89C52单片机调试及开发工具

嵌入式系统的开发往往借助于开发系统工具,而各种开发系统一般都比待开发调试的嵌入式系统要复杂得多。STC89C52系列单片机的调试、开发工具由硬件和软件两部分组成,硬件只需一台PC机、目标板和一个称为FET(FlashEmulation Tool)的JTAG控制器。

STC89C52FET仿真工具的功能主要是将由PC机打印机接口来的8位并行数据与来自JTAG接口的串行数据进行相互转换,以实现PC机与STC89C52芯片中的JTAG接口的通讯。具体包括: (1) 程序下载

当用户将源程序(C语言)经keil软件语法检查无误并生成代码时,就可以将程序代码在如图的环境中下载到]Flash芯片中,而用户的系统可以是在线状态。 (2) 设置断点

17

河南城建学院 课程设计

用户可以通过调试环境软件的人机对话界面。在程序中设置断点。在STC89C52中,可以同时设置4个硬件断点,它是经过JTAG接口的传输,由芯片中的几组断点条件寄存器实现的。 (3) 现场观察与修改

用户可以通过调试环境软件的人机对话界面,检查或修改Flash芯片内的各种存储器、寄存器的数据。

在调试过程中,根据需要可以进行软件模拟仿真和硬件仿真。

4.2 可燃性气体报警控制器软件流程及设计

本设计中,软件要解决的主要问题是检测传感器送来的可燃性气体浓度信号,进行线性化处理,用LED显示浓度,若浓度值超出限定值,报警器发出声音报警,同时启动排气装置,因此分为主程序、T0中断子程序、线性化处理子程序、十六进制转化十进制子程序,浓度显示子程序、键扫描子程序六个部分。在程序的编写过程中,加入了详细的文字注释,以便于后期的改进与维护。

4.2.1 主程序流程图及设计

主程序流程图如图4-1所示,由于MQ-2型气体传感器在不通电状态下存放一段时间后,再通电时,器件并不能立即投入正常工作,需要一定的时间预热,所以采用延时程序对传感器预热。本设计对传感器预热一段时间,预热的同时,设定所要检测可燃性气体浓度的上限值。主程序还包括显示子程序,T0中断子程序等,以完善报警器的功能,给检测人员带来方便。

18

河南城建学院 课程设计

开始 初始化定时器 初始化AD转换器 初始化传感器 AD采集数据 按键扫描 数码管显示 按键处理 数据处理

图4-1 主程序流程图

4.2.2 T0中断子程序

程序初始化后,系统进入采样状态。对采集的气体次数每3次进行一次处理。经A/D转换、滤波、线性化处理、进制转化后,由LED显示其浓度值。同时将浓度值与上限报警设定值相比较,以判断是否需要报警控制处理。流程图如图4-2所示。

19

河南城建学院 课程设计

开始重装T0初值计数单元+11秒?Y采样子程序N采样计数+13次Y滤波N中断返回线性化处理送入显示超过上限值?Y声音报警,启动排气装置N十六进制转化十进制图4-2 T0中断子程序流程图

4.2.3 线性化处理子程序设计

在单片机测控系统中,使用之前必须进行静态标定(校准),以得到输出信号与被测信号的关系-输出曲线,用来作为使用过程中的计量依据。但是标定时输出曲线往往不是一条理想的直线,所以要对标定曲线进行线性化处理,用一条拟

20

河南城建学院 课程设计

合直线近似代替输出曲线,线性化是智能仪表的典型功能之一。

由于电压值与气体浓度之间是非线性的关系,为了实时显示气体浓度,需要对其进行线性化处理。在误差许可范围内,根据标定曲线形状,以及单片机处理能力,把曲线分成8段,对每小段分别线性化。浓度0%LEL-99%LEL分成8段如下:

0%LEL~10%LEL 10%LEL~20%LEL 20%LEL~28%LEL 28%LEL~36%LEL 36%LEL~45%LEL 45%LEL~61%LEL 61%LEL~78%LEL 78%LEL~99%LEL 单片机经过滤波后,得到3个采样值的一个真值,把这个真值通过查表比较,确定其所在区间的上下限电压值和上下限浓度值,根据公式(4-1),计算出该电压值对应的浓度值。分段点的电压值和浓度值分别存储在两个表格中,线性化处理子程序如图4-3所示。

(Y上-Y)下Y滤=Y?(滤X下-)X (4-1) 下+(X上-X)下式中Y上---区间上限浓度值

Y下---区间下限浓度值

Y滤---实际气体测试浓度值 X上---区间上限浓度对应电压值 X下---区间下限浓度对应电压值 X滤---实际气体测试浓度对应电压值

21

河南城建学院 课程设计

开始根据滤波后的电压,通过查表比较的方法确定所在的分段区间滤波后电压值与该区间电压下限相减X2=X滤-X下区间上下限浓度值相减Y1=Y上-Y下完成16×16位定点乘法求出Z=X2×Y1区间上下限电压值相减X1=X上-X下完成32÷16位定点除法求出Y2=Z/X1求出Y滤=Y2+Y下将Y滤进行十六进制到十进制转化并送至显示子程序 图4-3 线性化处理子程序流程图

4.2.4 十六进制转化十进制子程序设计

经过线性化处理后的浓度是十六进制的,而LED显示的浓度是十进制的,所以要进行十六进制转化十进制子程序处理,再送入显示子程序。流程图如图4-4所示。

22

河南城建学院 课程设计

开始将24H送入AA-100C=0?Y25H+1NA+100A-10C=0?Y26H+1NA+10A送入27H图4-4 十六进制转化十进制子程序流程图

4.2.5 显示子程序设计

本次设计采用的是四位并行接口动态显示电路

23

河南城建学院 课程设计

开始 调入字符偏移量和位选代码 查表送入显示 延时2MS 指向下一个偏移量 3位显示完成? 图4-5 显示子程序流程图

4.2.6 数据处理模块

24

河南城建学院 课程设计

开始 烟雾超标信号输入 打开继电器、蜂鸣器 定时器打开 时间计时 N 报警时间已到? Y 停止报警

4-6数据处理模块

4.3 电路仿真

单片机煤气报警系统仿真图如图4-7所示,此为浓度检测正常状态;单片机煤气报警系统仿真图如图4-7所示,此为浓度超限报警状态;单片机煤气报警系统仿真图如图4-7所示,此为传感器显示当前的浓度。

25

河南城建学院 课程设计

图4-7 家用可燃性气体检测报警器仿真图

系统仿真通过电压表的电压输入表示外部传感器输入的电压,并将其进行显示。

单片机煤气报警系统仿真图1所示,仿真图中用0-5V的电压表显示当前输入的电压,并代替了传感器。因为传感器在pruteus里找不到MQ-2这个传感器,只能使用输入电压表示当前浓度的变化。

26

河南城建学院 课程设计

仿真图2

单片机煤气报警系统仿真图2所示,此模块使用LED数码管进行选择动态显示ACD0809采集的浓度信息。

仿真图3

单片机煤气报警系统仿真图3所示,此模块用于采集传感器的浓度。

27

河南城建学院 课程设计

5 系统调试

5.1 硬件的调试

在单片机开发过程中,从硬件设计到软件设计都需要做到准确无误。可见调试的工作量比较大。调试部分是单片机系统设计中至关重要的部分。调试的成功与否直接关系到整个系统运行的可行性。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。

当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试大体可以分为以下几步。

5.1.1 排除逻辑故障

这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。

5.1.2 排除元器件故障

造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。

5.1.3 排除电源故障

28

河南城建学院 课程设计

在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。

5.2 联机仿真调试

联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。

信号线是联络单片机和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。52系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等几大类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。例如对片选信号,运行相关小程序就可以检测出译码片选信号是否正常。

执行程序后,就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为1μs/每格档),这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。

对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器,当按下复位键时,可以看到的复位引脚将变为高电平;一旦松开,电平将变低。

总而言之,对于脉冲触发类的信号我们要用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。

显示器部分调试为了使调试顺利进行,首先将LED显示分离,这样就可以用静态方法先测试LED显示,分别用规定的电平加至控制数码管段和位显示的引脚,看数码管显示是否与理论上一致。不一致,一般为LED显示器接触不良所致,必须找出故障,排除后再检测电路工作是否正常。对应进行编程调试时,分为两

29

河南城建学院 课程设计

个步骤:第一,对其进行初始化(即写入命令控制字,最好定义为输出方式)。第二,将 LED结合起来,借助开发机,通过编制程序(最好采用“8”字循环程序)进行调试。若调试通过后,就可以编制应用程序了。

5.3软件调试

软件调试主要采用keil软件调试编译单片机程序。由于由于STC89C52可以擦写上千次,所以在这个调试过程中,并没有用仿真器来实践,而是直接将程序烧写进单片机来操作。将通过KEIL软件编译通过的单片机程序生成的“.hex”文件用烧录软件通过下载线烧写进单片机中。

5.4软、硬件整体调试

软、硬件联调是将已经调试通过的软件和硬件结合起来一起进行调试。这部分是单片机制作过程中最重要的调试部分。单一的软件或是硬件的调试通过了并不能验证总的方案的可行性。只有将整个系统的软件硬件相结合连接起来进行调试,也就是综合调试。如果调试成功了才能说明此系统的功能实现,系统设计已经成功。

采用Keil软件和硬件电路板进行软硬件联合仿真,首先编译单片机程序,然后运行编译的程序,程序检查成功后,再把程序烧入硬件之中。对调试过程中出现的错误要仔细分析,然后不断更正错误,直至达到理想效果为止。

在软硬件联调时,根据在程序中设定的阈值,将打火机打火放到气体传感器周围,这样气体传感器就可以采集到相应可燃气体浓度,当浓度超过预设阈值,蜂鸣器就会立即报警,同时吸合继电器。

30

河南城建学院 课程设计

结论

本次设计对可燃性气体报警控制器进行了深入的研究,在参考国内外一些资料的基础上,比较合理地选择了系统的设计方案,采用了“探测器+单片机控制电路”设计思路,由于具有操作简单,实用性强,价格便宜,安全性高等特点,所以非常适合贮气仓库,以及家庭等场所使用,具有很高的实用价值。

本次设计的可燃性气体报警器由探测器与单片机控制电路两大部分构成。根据设计要求、使用环境、成本等因素,选用MQ-2气体传感器。该传感器是对以烷类气体为主的多种可燃性气体有良好敏感特性的广谱型半导体敏感器件。它的灵敏度适中,响应与恢复特性好,长期工作稳定性、重现性、抗环境气氛影响及抗温湿度影响等性能均优。该仪器采用了高性能STC89C52单片机作为核心电路,充分利用了STC89C52的高速数据处理能力和丰富的片内设置,实现了仪器的小型化和智能化,使仪表具有结构简单、性能稳定、成本低等优点。应用程序用C语言编写,充分利用芯片资源,提高了测量精度和代码执行效率,减小代码容量。对可燃性气体采用滤波、线性化处理等,不但最大限度地排除现场噪声干扰,降低可燃性气体报警器误报概率,而且易于在单片机中实现。此电路具有结构简单,调试方便,线性度好,温漂小等优点。

本次设计也存在着一些需要完善的地方,譬如让检测进行网络连接,实行多点同时检测、如何更加智能化的进行报警工作,如何能更好的减少检测误差等问题值得去进一步的研究和探讨。

本次设计的可燃性气体报警控制警器灵敏度高,在测量范围内具有较理想的特性,适用于低流速的可燃性气体测量。本课题的工作为便携式仪器的研制和实用化提供了较好的实现方案,为今后该领域的研究提供了很好的参考依据。

31

河南城建学院 课程设计

致谢

从课题的选择、理论研究、最终方案的确立到设计的撰写、定稿,都渗透着老师的心血,他兢兢业业的工作作风、科学严谨的治学态度和宽以待人、认真负责的优秀品质必将在今后的学习和工作中时时激励我、督促我。通过这次课程设计,我取得了很大的进步,这与老师在生活上、工作上和学习上给予我的关心和帮助是分不开的,在此我深表谢意。同时向给过我帮助的同学表示由衷地感谢。

在此谨向他们表示衷心地感谢!

32

河南城建学院 课程设计

参考文献

[1]王元庆.新型传感器原理及应用[M].北京:机械工业出版社,2002:67-69.

[2]王幸之等.AT89系列单片机原理与接口[M].北京:北京航空航天大学,2004:104-106. [3]牛德芳.半导体传感器原理及应用[M].大连:大连理工大学出版社,1993:97-101. [4]厉玉鸣.化工仪表及自动化[M].北京:化学工业出版社,2006:144-147.

[5]李永生,杨莉玲.半导体气敏元件的选择性研究[J].传感器技术.2002,(3):1-3. [6]李忠国,陈刚.单片机应用技能实训[M].北京:人民邮电出版社,2006:49-52.

[7]阮维国.TGS813型半导体气敏传感器及其在燃气毒气检测中的应用电路[J].现代科学仪器.1998,(3):1-2

[8]宋浩,田丰.单片机原理及应用[M].北京:清华大学出版社,2005:133-136.

[9]张保卫,尚家封,赵金水.燃气报警器的分类与选择[J].山东消防,2003,(8):1-2 [10]罗翼,张宏伟.PIC单片机应用系统开发典型实例[M].北京:中国电力出版社,2005:111-121.

[11]郝魁红,王化祥,何永勃.TGS813气敏元件低温特性及其非线性分析[J].电子元件与材料.2004,23(3):1-3.

[12]阎石.数字电子技术基础[M].北京:高等教育出版社,1998:123-129.

[13]堂贤远,刘歧山.传感器原理及应用[M].西安:电子科技大学出版社,2000.39-45. [14]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001:65-70. [15]蔡可芬,庄牧林.燃气报警器质量分析评估[J].传感器技术.1999,18(4):2-2.

[16]潘天红,赵德安,邹小波.气体传感器阵列中的信息融合[J].计算机测量与控制.2003,(10):1-3.

[17] Cai Kefen. New Problems of Gas Sensors[J]. Journal of Transducer Technology,1990,(6):1-3 . [18]STC89C52 Date Sheet. [EB/OL].http://www.51c51.com/data /soft/mcu51/2420.html,

2006.

附录A:硬件电路总图

33

河南城建学院 课程设计

34

河南城建学院 课程设计

附录B: STC89C52 数据手册

功能特性描述

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52具有以下标准功能; 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 VCC : 电源 GND: 地

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1 口:P1口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),在flash编程和校验时,P1口接收低8位地址字节。

P2 口:P2口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号

RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉

35

河南城建学院 课程设计

冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当STC89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。

附录C:主要参考文献及摘要

[1]王元庆.新型传感器原理及应用[M].北京:机械工业出版社,2002 [摘要]:作为信息获取的重要手段之一,传感器是将电子系统无法处理的外界物理量或者化学量转换为电信号的主要器件

[2]王幸之等.AT89系列单片机原理与接口[M].北京:北京航空航天大学,2004 [摘要] :STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

[3]李永生,杨莉玲.半导体气敏元件的选择性研究[J].传感器技术.2002,(3):1-3

.[摘要]: 可燃性气体传感器是一个气-电变换器,它的作用是把可燃性气体在空气中的含量(即浓度)变成电信号,进而由单片机采集信号、数据处理、浓度显示以便报警控制。传感器作为对可燃性气体的敏感元件,是各种类型(袖珍式、便携式、固定式)仪表的核心之一。因此,传感器的选型是非常重要的。

[4]李忠国,陈刚.单片机应用技能实训[M].北京:人民邮电出版社,2006

[摘要]:尽管单片机的功能越来越强,内部结构也越来越复杂,但是在一般的控制系统中使用单片机以后,控制系统的硬件结构却是越来越简单。

[5]阮维国.TGS813型半导体气敏传感器及其在燃气毒气检测中的应用电路[J].现代科学仪器.1998,(3):1-2

[摘要]: MQ-2的半导体气体传感器是由二氧化锡组成的半导体陶瓷式气体传感器。它使用

45

在清洁空气中电导率低的二氧化锡作为气敏材料(在空气中约为10~10KΩ)。当存在检测对象气体时,传感器的电导率随空气中气体浓度增加而增加,使用简单的电路即可将电导率的变化,转化为与该气体浓度相对应的输出信号。与采用接触燃烧式的可燃性气体传感器相比,半导体陶瓷式传感器优点显著,不易出现催化剂中毒的现象。它特别适宜可燃性气体泄漏的早期发现和需要长期使用的、可靠性高的场所。

[6]宋浩,田丰.单片机原理及应用[M].北京:清华大学出版社,2005

[摘要]:单片微型计算机(简称单片机)是微型计算机的一个很重要的分支,自20世纪70年代问世以来,以其体积小、可靠性高、控制能力强、使用方便、性能价格比高、容易产品化等特点,在智能仪表、机电一体化、实时控制、分布式多机系统、家用电器等各个领域得到了广泛的应用,对各个行业的技术改造和产品的更新换代起着重要的推动作用。

36

河南城建学院 课程设计

[7]张保卫,尚家封,赵金水.燃气报警器的分类与选择[J].山东消防,2003,(8):1-2 [摘要] :我国在70年代初期开始研制可燃性气体报警控制器,生产型号多样、品种较齐全,应用范围也由单一的炼油系统扩展到几乎所有危险作业环境的各种类型报警器,产品数量也在不断增加。但主要是在引进国外先进的传感器技术和先进的生产工艺基础上,又进行研究与开发,形成自己的特色。近年来,在气体选择性和产品稳定性上也有很大进步。 [8]阎石.数字电子技术基础[M].北京:高等教育出版社,1998

[摘要]:A/D转换的过程是首先对输入的模拟电压信号取样,取样结束后进入保持时间,在这段时间内将取样的电压量化为数字量,并按一定的编码形式给出转换 结束。然后,再开始下一次的取样。

[9]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001 [摘要]:传感器输出信号一般比较微弱,需要经过前置电路对其进行放大、滤波、电平调整,满足单片机对输入信号的要求。

[10]蔡可芬,庄牧林.燃气报警器质量分析评估[J].传感器技术.1999,18(4):2-2

[摘要]:2003年12月,国家执行新的可燃性气体探测器标准(GB 15322-2003)《可燃气体探测器》。在2004年10月国家颁布《可燃气体检测报警器规程JJG693-2004 》。一部分不合规定的可燃性气体报警控制器将停止使用。

附录D:程序清单

主程序:

#include #include #include #include uchar Status_Flag;

#define set_timer TH1 = 0xb1;TL1 = 0xdf; uchar alarm_num; uint dis_buff[4]; uchar keytime=0; uint temp1; uint temp11; uint temp21; sbit ST=P3^0; sbit OE=P3^1; sbit EOC=P3^2; sbit CLK=P3^3; uchar AD_DATA[2]; //保存IN0和IN1经AD转换后的数据 uchar code

led_7[21]={0x80,0xe5,0x0c,0x24,0x61,0x22,0x02,0xe4,0x00,0x60,0xff,

// 有点 0 1 2 3 4 5 6 7 8 9

0x90,0xf5,0x1c,0x34,0x71,0x32,0x12,0xf4,0x10,0x70};

// 无点 0 1 2 3 4 5 6 7 8

9

unsigned char code tab[] =

37

河南城建学院 课程设计

{0x00,0x08,0x01,0x09,0x02,0x0a,0x03,0x0b,0x04,0x0c,0x05,0x06,0x07,0x0d,0x0e};

uchar code ditab[16]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9}; uint alarm_data = 30 ; uchar SetSelect = 0; uchar alarm_flag=1; uchar data HaveKey = 0; uchar chushi;

uchar data NewKey[3]={0xff,0xff,0xff};

uchar code KeyTable[16]={0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; // 1 2 3 4 5 sbit P3_3=P1^5; sbit P3_1=P1^4;

#define digit_1_on P3_1 = 0; #define digit_1_off P3_1 = 1; #define digit_2_on P3_3 = 0; #define digit_2_off P3_3 = 1; uchar timer_20ms; uchar work_flag; uchar seconds; uchar time_20ms; uchar time_20ms_1;

uchar work_flag_1 = 1;//开机检测标志 uchar work_lamp_flag;

/*------------------------------------主程序

----------------------------------*/

void main() {

/*TMOD = 0x01; TH0 = 0xDC; TL0 = 0xB0; EA = 1; ET0 = 1; TR0 = 1; TR1 = 1;

ES = 1; ET1 = 1;*/

TMOD = 0x12;//定时器0和定时器2初始设置 TH0 = 0xDC; TL0 = 0xB0; EA = 1; ET0 = 1; TR0 = 1; TR1 = 1;

// ES = 1; ET1 = 1;

init();//AD模数转换器进行初始化 while(1) {

AD(); //ad数据采集 if(alarm_flag ==1)

38

河南城建学院 课程设计

{

if(alarm1 == 0) {

alarm_num = 1; // alarm_lamp1 = 0;

BuzzerOn;//打开蜂鸣器 Alarmon; //打开报警灯 }

/*if(alarm2 == 1) {

alarm_lamp1 = 0; }*/ }

if(alarm_flag ==0) {

alarm_lamp1 = 1; BuzzerOff;

Alarmoff; BuzzerOff; Alarmoff; }

if(alarm1 == 1) {

alarm_num = 0;

work_flag = 1;//报警状态消失后计时开始 }

if(alarm2 == 0) {

alarm_lamp1 = 0; }

if(alarm2 == 1&&alarm3 == 1) {

alarm_lamp1 = 1;

}

if(alarm3 == 0) {

alarm_lamp1 = 0; }

disbuffer();//将显示数据发送至缓冲区 display();//动态扫描

start();//上电初始化工作,黄灯闪烁 if(timer_20ms>=50) {

seconds++; timer_20ms=0; }

if(seconds>200)//当时间大于60秒时,关闭报警 {

39

河南城建学院 课程设计

work_flag=0; BuzzerOff;

Alarmoff; BuzzerOff; Alarmoff; seconds = 0; }

if(time_20ms<50&&work_flag_1==0)//绿灯闪烁 {

work = 1; }

if(time_20ms>=50&&work_flag_1==0)////绿灯闪烁 {

work = 0; } } }

//双变量延时

/*void Delay(unsigned x,unsigned y) {

int i,j;

for(i=0;i

//*****************延时**************// void delay_ms(uchar i) {

uchar j;

for(;i>0;i--) {

for(j=0;j<=120;j++) {;} } }

void start(void) {

if(time_20ms_1<50) {

alarm_lamp1 = 1; }

if(time_20ms_1>50&&time_20ms_1<100) {

alarm_lamp1 = 0; }

if(time_20ms_1>100&&time_20ms_1<150) {

alarm_lamp1 = 1;

40

河南城建学院 课程设计

}

if(time_20ms_1>150&&time_20ms_1<200) {

alarm_lamp1 = 0; }

if(time_20ms_1>150) {

alarm_lamp1 = 1; time_20ms_1=0; work_lamp_flag++; }

if(work_lamp_flag>=10) {

work_flag_1 =0; time_20ms_1=0;

} }

//*****************时间显示扫描**************// void display(void) {

uchar i;

P0 = led_7[dis_buff[i]]; digit_1_on; i++;

delay_ms(1);

P0 = led_7[dis_buff[i]]; digit_1_off; digit_2_on; i++;

delay_ms(1); digit_2_off; i=0;

delay_ms(1); }

//*****************秒送到缓冲区**************// void disbuffer(void) {

temp11=AD_DATA[0]*200; temp21=temp11/51; temp1 = temp21*10;

dis_buff[1] = (temp1-500)/1000+0x0b;

dis_buff[0] = (temp1-500)00/100+0x0b; }

/*********系统初始化***********/

void init() {

EA = 1; //开总中断

41

河南城建学院 课程设计

TMOD = 0x02; //设定定时器T0工作方式 TH0=216; //利用T0中断产生CLK信号 TL0=216;

TR0=1; //启动定时器T0 ET0=1; ST=0; OE=0; }

/***********T0中断服务程序************/

void t0(void) interrupt 1 using 0 {

CLK=~CLK; }

/***********AD转换函数**********/

void AD() {

ST=0; delay(5);

ST=1; //启动AD转换 delay(5); ST=0;

while(0==EOC) ; OE=1;

AD_DATA[0]=P2; OE=0; }

/**********延时函数************/

void delay(uchar i) {

uchar j; while(i--) {

for(j=125;j>0;j--) ; } } /*

------------------------------------------------------------------------------

42

河南城建学院 课程设计

[ interrupt [0x0B] void T0_int (void)

]

[ comment: 定时器TO中断服务程序,定时给主循环发送20ms间隔消息

]

------------------------------------------------------------------------------ */

void T0_int (void) interrupt 3//[0x0B] //定时器T0 20ms 定时 {

TR1 = 0; TR1 = 1; set_timer

if(work_flag==1&&work_flag_1==0) {

timer_20ms++; }

time_20ms++;

if(work_flag_1==1) {

time_20ms_1++; } }

43

本文来源:https://www.bwwdw.com/article/mhcw.html

Top