目 录
摘 要 I
Abstract II
1 引 言 1
2天然气泄露检测报警系统的方案设计 4
2.1 方案选择 4
2.2 天然气泄露报警系统的整体设计方案 5
2.2.1天然气泄漏报警器工作原理 5
2.2.2天然气泄漏报警器的结构 5
3天然气泄露报警的硬件部分设计 7
3.1 STC89C52单片机 7
3.2 传感器的选择 10
3.3 LCD1602液晶显示电路 11
3.4 键盘电路 12
3.5 A/D转换电路 13
3.6 报警电路 15
3.6.1 灯光提示电路 15
3.6.2 声音报警电路 15
3.7 电源电路设计 17
3.8 继电器电路 17
4 天燃气泄漏检测报警系统的软件部分 19
4.1 软件介绍 19
4.2 主程序框图 20
4.3 A/D转换程序流程图 21
4.5 系统调试 22
结 论 24
附录1 源程序清单 25
参考文献 33
致谢 35
摘 要
由于经济和科技的飞速发展,人们开始更加重视生活质量的提高和生活环境的改善。作为清洁能源的天然气进入万千民众家中得到广泛使用,给民众的生活带来诸多便利,减少了城市的空气污染,还提高了人们的生活质量和效率。但是随着城市密集型住宅区的增加,更需要重视住户的安全问题,天然气作为隐形的"危险品"潜伏在我们身边,如果管道和阀门的密封性能不合格,一旦发生泄漏特别容易发生事故,威胁民众的生命及财产的安全。对此,针对家庭用户,在厨房等有易燃气体的场所安装报警器,能够帮助用户时刻监测这些危险气体的变化,避免发生爆炸和中毒事故,会成为未来的发展方向。因此,本文对以上问题,设计出了天然气泄漏报警器。
此设计主要利用了MQ-5传感器采集气体的浓度信号,由系统设置浓度和电压之间的关系,令浓度与电压发生转换、能够显示出当下天然气浓度与声光提示报警构成的报警装置。该检测系统能够检测出当下天然气的浓度,检测出的天然气浓度不超过设定报警设定值的时候,数码管显示器仅显示测出的可燃气体浓度;如果传感器检测出天然气浓度高于系统设定的报警阈值时,系统会给出声光报警,并且还附带语音提醒。结果表明整套系统表现出良好的检测性能和安全性能。
关键词:天然气;气体泄漏报警;MQ-5传感器;安全
Abstract
With the rapid development of economy and technology, people begin to pay more attention to the improvement of life quality and living environment. As a clean energy source, natural gas has been widely used in the homes of millions of people, bringing convenience to people’s lives, reducing air pollution in cities, and improving people’s quality of life and efficiency. However, with the increase of urban intensive residential areas, more attention should be paid to the safety of residents. Natural gas, as a hidden “dangerous goods”, is lurking around us. If the sealing performance of pipelines and valves is not up to standard, accidents are particularly likely to occur once leakage occurs, threatening the safety of people’s lives and property. To this, aim at domestic user, the place that has flammable gas in the kitchen to install alarm, can help user to monitor the change of these dangerous gas at any time, avoid occurrence explosion and toxic accident, can become future development direction. Therefore, this paper designed a gas leak alarm for the above problems.
In order to reduce the potential threat in people’s life, this design mainly USES MQ-5 sensors to collect the concentration signal of gas. The system sets the relationship between concentration and voltage, so that the concentration and voltage can be converted, and the alarm device can display the current concentration of natural gas and the sound and light alarm. The detection system can detect the current concentration of natural gas. When the detected concentration of natural gas does not exceed the alarm setting value, the digital tube display only shows the measured concentration of combustible gas. If the sensor detects that the concentration of natural gas is higher than the alarm threshold set by the system, the system will give a sound and light alarm and also provide a voice warning. The results show that the whole system has good detection performance and safety performance.
Keywords: Natural gas; Gas leakage alarm; MQ-5 sensor; security
1 引 言
随着人民生活水平和环保意识的提高,全世界人民都更加愿意使用清洁能源。许多国家通过立法来解决能源危机,作为长期被认定为最清洁能源之一的天然气,加上1990年中东的波斯湾危机,使原油需求量高的国家想要更加合适的能源,在还没有发现替代能源这个阶段以前天然气的需求量将会不断的加大。
与此同时,我们国家大力向前发展,提出并建设西气东输工程,使我国人民提高了对天然气使用的频率。由于天然气本身所存在的物理特性,如果人们在使用过程中运用的方式不正确,并且因为一些管道不合格或设备年限太长导致管道或设备老化,经常造成天然气泄漏事故,因为室内可燃气体太浓导致的中毒死亡事件也频频发生在眼前。因此,为了降低天然气泄漏爆炸和中毒事件的发生率,天然气泄漏报警器已成为人们生活的迫切需要。家用的燃气泄漏报警装置更是有着大量的市场需求,我们应更加重视。
天然气报警器的设计对减少工业中的瓦斯泄漏同样重要,根据国家统计局的数据统计,仅去年一年之间全国煤矿因瓦斯泄漏的死亡人数就高达2451人,产生了相当大的财力和物力的损失。在我国,发生的特大煤矿事故触目惊心,在04年10月20日,河南省郑州煤炭工业集团有限责任公司大平煤矿发生一起特大型煤与瓦斯引发的重大瓦斯爆炸事故,造成148人死亡,32人受伤(重伤5人),直接经济损失3935.7万元,造成了多少幸福家庭的破灭。同年11月28日陈家山矿四采区发生爆炸事故,共计死亡166人,受伤45人,使多少个孩子失去了父亲。05年2月14日孙家湾煤矿海州立井发生特别重大瓦斯爆炸事故,死亡214人,受伤30人,此事故是近40年来最大的煤矿事故。
这些令人哀痛的数字足以说明天然气气体泄漏报警已成为工业生产中和日常生活中不可或缺的关键装置,至今在各行各业都有产生着重要的保障作用,因此保持24小时不间断检测周围空气红可燃性气体的含量,以及测量有害气体的泄漏,保障人们的生命安全和财产安全刻不容缓。因此,如何设计出性能可靠、价格合理,工作稳定的仪器,这已经成为我们最直接面对的问题。
现阶段,许多的天然气报警器的功能长期没有更新,不能完成保障民众安全的任务。我们可以从分析中得出:我们需要的是具有轻巧方便、检测准确、能够长时间胜任工作的东西。而不能用传统的方法,需要大量的操作时间,需要按顺序将每一个步骤都完成,尽管这种测法的精度非常高,但它又无法对有毒、有害气体进行实时、连续、瞬时检测,因此我们不能选择这种传统的办法。综合校内的学习所得,应该以单片机作为本次设计的核心。单片机在人们的日常生活和工业生产中起着非常重要的角色。单片机的抗干扰能力强、体积小、易于产品化、成本低,在各种恶劣的环境中都能稳定工作,可靠性高,是项目设计的不二之选。
与国外相比,国内的可燃性气体报警器的研制起步略晚,但通过多年的发展,形成了一定的规模和自己的特色,产品多样以及种类齐全。但国内企业及研究主要采用引进和吸收国外的先进技术的方式来发展。虽然经过吸收消化,国内的传感器技术和可燃性气体报警技术取得了不小的进步,性能有所提升。但国内生产的可燃性气体报警器在性能方面扔有很大的空间。集成电路技术的发展让系统集成化的程度提高了许多,令微控制器的成本大幅降低,这让微控制器可能用于低成本要求的可燃气体报警器,通过采用微处理器后是功能进一步优化。另外,微控制器具有灵活可编程的特性,这种特性使得我们仅需通过程序设计就可达成传感器信号调理功能,它还具有强大的数据处理能力和逻辑判断能力,同样也提高了系统长期工作的性能。而发展的下一步,就是利用微处理器拥有强大的通信接口与计算机和通信网连接,就实现了报警系统的组网,这就令报警器更加实用,跟随计算机技术、网络技术和传感器技术的发展,理论能实现物联网,这令报警器拥有了广阔的前景。
本次设计针对天然气泄漏报警器设计方案,做出原型报警器,为产业化提供技术。从电路的设计,传感器的选择。气体浓度数据的处理和天然气报警器的逻辑等方面为设计中心,提高天然气泄漏报警器的稳定性、可靠性与性价比。
2天然气泄露检测报警系统的方案设计
2.1 方案选择
众所周知,一个良好的报警器应该具有检测精度高,长期稳定工作,功耗低,成本低等优点。在整个报警系统中最为重要的就是气体的检测元件。而此类检测元件都是通过运用气体自身特性,利用光电技术转化为能够被放大和处理的电子信号,基于单片机的天然气泄漏报警系统设计可以有如下两种方案:
方案一:选用电化学气体传感器。这种传感器依靠氧化还原反应在传感电极上发生,不同的气体发生不一样的氧化还原反应,这些氧化还原反应使测量电极的电位差发生了变化。此仪器是通过参考电极与测量电极之间的电位变化来得到测量结果,参考电极上没有化学反应,电位时时刻刻都不会发生变化,参考电极与测量电极之间的电位差的变化,两者之间的电位变化就由气体的浓度决定,两者产生的电流与被测气体的浓度成正比,还具有很大的测量范围。但是从实际出发,两个电极之上还是会发生由于氧化还原反应产生的极化现象,同时使检测气体的浓度被缩小在一个范围以内。优点是检测快速准确,体积小,但寿命一般在两年左右,制造成本比较高。
方案二:选择半导体气体传感器。半导体传感器是通过测量半导体内部的电阻值,通过其内部化学反应产生的电阻值的变化来表示被测气体浓度的高低。半导体气体传感器有许多优点,相比电化学传感器具有非常低的售价、反应时间快、测试电路简单灵敏、使用寿命长,可以完成对很多种可燃气体的检测。
通过如上两种方案的应用特性对比,可以得出半导体气体传感器更加适合本次的设计,成本低廉、响应速度高、不容易被干扰、使用方便且后期维护成本也划算,因此,本次设计我选择方案二,最终选择用MQ-5气体传感器作为系统的前端检测元件来检测危险气体。
2.2 天然气泄露报警系统的整体设计方案
2.2.1天然气泄漏报警器工作原理
此设计中的天然气泄漏报警器以STC89C52单片机为操控核心,感知空气中天然气浓度的任务则由MQ-5传感器来执行。MQ-5传感器得到的数据发送给ADC0809转换芯片,ADC0809在将数据转化为单片机能够处理的数据,单片机将数据进行处理之后在将浓度值展示在数码管上再进行判定,如果被测气体浓度超出了报警值,报警器将继电器吸合,LED同时通电,并且喇叭开始发出提示音提示报警;如果浓度没有超过预定的值,数码管上只显示环境中被测气体的浓度值,没有其他的动作。
2.2.2天然气泄漏报警器的结构
家用电器渐渐发展的更加成熟了,开始向智能化、连接网络、信息共享的方向发展。首先保证报警器对于家庭用户来说的安全性能,更要顺应社会发展潮流,在以前的报警器的基础上对其进行了硬件结构的优化:
此系统集处理数据、显示浓度和控制报警这三个优点。可以细分为电源、传感器、信号调试、A/D转换、核心控制单片机等模块。每一个模块都不可缺少,构成了这样一个完善的系统,系统结构框图如图2.1所示。
图2.1 天然气泄露检测报警系统结构框图
3天然气泄露报警的硬件部分设计
3.1 STC89C52单片机
单片机,以前运用在工业的控制方面,也被称为微控制器。这个设计当时是为了让更多的功能集中在一个体积虽小但是更加完善的计算机系统中,这样使得高度集中的系统能够被用在更加严格要求的控制设备。因特尔当时设计出一款名叫Z80的处理器,从此款处理器问世以后,单片机和专用处理器便不再一起被发展。
最早以前的单片机通常是4位或8位的。最熟知的便是因特尔的8031,它的使用方式简单,又非常可靠,收获了无数的赞美。随着科技的进步,也应对工业生产的要求,后来又研制出16位的单片机,但是因为当时的消费能力,单片机的发展受到阻碍。到90年代的电子消费热潮时期,单片机又一次站在了电子产品历史的主舞台。处理能力翻倍增长,制造成本不再高昂,当时32位高端单片机的性能可以直追专用处理器。此时单片机的工作环境已经不仅仅是裸机的环境下了,曾被应用在各种高端的掌上电脑与手机上。
此设计选用STC89C52单片机,低成本、低功耗和超强的抗干扰能力是我们设计的首选。如果我们想要修改程序可以选择用+5V或+12V的电压直接擦除即可,使用起来非常方便,8K的程序储存器使用起来也非常方便,如图3.1为单片机的管脚图。
图3.1 单片机芯片管脚图
STC89C52单片机共有40只引脚:
电源引脚接单片机工作电源,Vcc接+5V电源,GND接地。
P0口:作为端口使用要加上拉电阻,作为总线拓展不用加上拉电阻。本设计中的P0口是作为端口直接使用的,用于控制1602液晶显示器,加了上拉电阻。
P1口:本设计中P1口直接控制ADC0809转换器,使其转换数字量传送给单片机。
P2口:本设计中的P2口同样作为普通端口使用,由于内部自带上拉电阻,于是直接连接控制独立按键的输入信号。
P3口:P3口除作为一般I/O口外,还有其他一些第二功能,如表3.1所示。
表3.1 P3口第二功能表
管脚 配置功能
P3.0 RXD(串行输入端口)
P3.1 TXD(串行输出端口)
P3.2 INT0(外部中断0端口)
P3.3 INT1(外部中断1端口)
P3.4 T0(定时器0的外部输入)
P3.5 T1(定时器1的外部输入)
P3.6 WR(外部数据存储区间的写入端口)
P3.7 RD(外部数据存储区间的读取端口)
中断技术:89C52的中断系统能够接到6个独立中断源的请求[1]。中断一直每时每刻的监视与执行,单片机才能够及时呼应中断源的请求,依靠单片机中的体系。如果中断请求源发送中断的要求,答应了此次的中断要求,单片机会放弃执行现在执行的程序,直接切换到中断的程序。如果这个事情被执行完毕中断源不再发送请求,单片机再从断点处重新执行之前中断的时候执行的程序。如图3.2为整个中断响应和处理过程。
图3.2 中断响应和处理过程
3.2 传感器的选择
此系统为了检测环境中天然气的浓度,而天然气中首要的气体成分为甲烷(CH4),需求直接监测的是空气中的CH4浓度,直接选择使用气敏传感器作为此次的主要部件。环境空气的成分有许多种,往往有我们不需要的因素会影响测量的准确性,所以必须精挑细选一款只对甲烷灵敏,对其他气体不灵敏的传感器,最终对比过后选择用这款MQ-5气敏传感器。此传感器具有很高的敏感度、良好的检测性、成本低、长时间稳定工作。MQ-5传感器是由微型三氧化二铝陶瓷管为包装、灵敏层主要由二氧化锡组成,在它的内部是用塑料或者不锈钢制成的,里面的核心是测量电极,除此之外还有一个加热器,加热器对此元件非常重要,它负责给测量用的气敏元件提供了工作环境[2]。气敏元件是把6只管脚封装在它的内部,其中有4个管脚负责提取信号的任务,另外两个管脚就负责接通加热的电流线,在测量中按照等效电路来计算与之相对应的校对数值。MQ-5传感器是由两部分构成了它的标准回路:第一部分是用来加热的,第二部分是用来表示电阻值的输出回路。图3.3为MQ-5传感器电路图。
图3.3 MQ-5传感器电路图
MQ-5传感器的应用特点:
MQ-5传感器在环境空气中,对可燃烧的成分相当敏感,本设计的核心就是监测可燃气体,当然是首选。二氧化锡的物理特性是导电率很低,非常适合做气敏材料。当传感器监测到周围的环境中包含可燃气体时,MQ-5气敏元件随着在它左右可燃气体的浓度升高,内部的元件的导电率也开始增加,导电率变化内部的电流也会增大,再由信号输出[3]。多种可燃气体都可以被此传感器监测到,更是提高了报警器的安全性和价值,加上低廉的制作成本,非常适合本次设计。
3.3 LCD1602液晶显示电路
本次设计需要一个显示器来显示可燃气体检测输出信号,在这个系统中只需要将传感器检测出的输出信号由软件程序输出到显示器,只输出数字和字母不需要输出图形,那么需要一款接口简单,控制方便,功耗相对其他产品相对较低,能够长期稳定工作的显示器,因此选择了LCD1602液晶显示器。LCD1602A能显示最多两行32个字符。生活中许许多多的地方都能看到液晶显示器的身影,许多检测设备上都用到了作为表示检测数值的输出,大部分的电子手表都是液晶显示器,包括电脑屏幕和电视机[4]。发光管、数码管因为软硬件都相对简单而受大众的追捧。
引脚阐明如表3.2所示。
表3.2 LCD1602引脚释义表
引脚1 接地电源
引脚2 接+5V电源
引脚3 外接电阻调节显示对比度
引脚4 高电平时挑选数据寄存器
低电平时挑选指令寄存器
引脚5 读写信号线
引脚6 使能端
引脚7-14 双向数据线
引脚15 背光源正极
引脚16 背光源负极
我选择了用电阻分压调节对比度,在引脚3上附加了200Ω和10kΩ的电阻,调节的灰度刚好,如果觉得不行可以自己选择调节对比度。液晶显示电路如图3.4所示。
图3.4 液晶显示电路图
3.4 键盘电路
此设计一共用了4个独立按键:一个为设置键,长按可以进入设置报警阈值界面;一个为按键加,在报警值设置界面按下可以让预定值增大;一个为按键减,在报警值设置界面按下会让预定值减小;一个录音键,本次报警器加入了语音报警系统,可以将自己的声音录进系统中,长按进入录音界面,此时按下可以开始录音。单片机初始输出高电平,当使用者按下按键后,输出低电平,单片机才会处理这个输出的信号。键盘电路如图3.5所示。
图3.5 键盘电路图
独立键盘的实现,把按钮连接在单片机的I/O口,按钮如果输出低电平,说明按钮被按下;如果输出的是高电平,则说明按钮并没有被按下[5]。我们只需要在系统查询端口的情况,就可以知道按钮是否被按下。
在使用键盘电路的过程中,无法避免必须面对的问题就是键盘的消抖。出现这种问题的原因是我们的按键是一个纯机械结构,当它被按下时,电路不会立刻稳定的接通,当松开按键时,电路也不会立刻断开连接,这种问题是正常的,没有办法通过人为的施加力的大小或者按下抬起的速度高就能解决。通常来说,我们有两种办法可以克服这种问题,一是通过硬件的办法,二是通过软件解决[6]。此设计中是通过软件来解决这个抖动问题的。我们只需要在按键按下时候给它增加一个10-200ms的延时,延时以后再去读出I/O口的值,当读出的结果是0时,调用程序去处理这个信号即可。
3.5 A/D转换电路
本次设计中,需要将传感器测出的电信号转化成数字信号,于是我们挑选出物美价廉的ADC0809,经它转换出的结果很准确,转换速度也很快,符合本次的设计要求。ADC0809的芯片如图3.6所示。
图3.6 ADC0809的引脚图
ADC0809芯片有28个引脚,表3.3为ADC0809引脚功能表。
表3.3 ADC0809引脚功能表
IN0-IN7 8路模拟量输入端
2-1~2-8 8位数字量输出端
ADCA、ADCB、ADCC 3位地址输入线
ALE 地址锁存允许信号
START A/D转化发动脉冲输入端
EOC A/D转换完毕信号
OE 数据输出允许信号
CLK 时钟脉冲输入端
REF+、REF- 基准电压
Vcc 接+5V电源
GND 接地
在数据传输的过程中有个重要问题是:只能在如何确认A/D转换完成并确认结束后才能进行传输。我们有三种方法:
方法1:定时传输。预先设置一个子程序,转换时间是众所周知的,所以当延迟时间到来时,转换过程已经完成,下一步可以进行数据传输。
方法2:查询。ADC0809具有引脚OE,当转换未完成时输出低电平,当转换完成时输出高电平,因此可以直接测量EOC。下一步是数据传输。
方法3:中断。将EOC的信号输出标记为中断请求,并直接使用中断进行下一步数据传输。
任选一种方法,确定转换结束,就可以发送给单片机。ADC0809连线图如图3.7。
图3.7 ADC0809的连线图
3.6 报警电路
3.6.1 灯光提示电路
灯光提示电路在天然气浓度超出阈值时会亮起,起到警示的效果;在环境空气正常的情况下不会有动作。这个电路是与传感器直接连接在一起的,如果MQ-5传感器测量出的浓度超标,LED灯会直接亮起。
LED是固态半导体器件,通电后可以发光。特点:高亮、低热、使用寿命长、低能耗[7]。电路设计如图3.8所示。
图3.8 灯光提示电路
3.6.2 声音报警电路
本次的声音报警模块选择用语音播报的方式。起初设计声音报警时,计划使用有源蜂鸣器,有源蜂鸣器的程序简单方便控制;但是我想要让报警器发出我想要的声音,带有语音存储,并且发出的声音要足够大,才能起到警示作用,本次设计用单片机作为控制核心,在查阅了资料后发现控制起来也很简单,于是改用了喇叭来作为报警元件之一。
语音芯片选择用ISD4004,如图3.9所示。配合单片机使用非常简单,性能也满足设计要求,这个语音芯片有个特点,可以直接将录音存储到贮存器中,不需要其他的转换环节,这样保证了播放时的音质原生保真[8]。
图3.9 ISD4004电路图
录音用驻极体传声器。声音是通过振动产生的,驻极体本身带电,当外接的声音经过时,会带起驻极体内部的振动,而振动引起了驻极体的电压变化,声音大小也是通过电压的高低来说明。
ISD4004的输出电压太小,不足以让扬声器发声,因此我们就需要一个声音信号放大器,于是选用LM386音频放大器。ISD4004芯片内储存的音频经过音频放大器放大后,才得以让扬声器驱动发声[9]。如图3.10所示。
图3.10 LM386音频放大器图
3.7 电源电路设计
如图3.11,本设计用USB供电,用自锁开关和DC插座为单片机提供5V电源。
图3.11 电源电路
3.8 继电器电路
通常来说,电磁继电器就是电磁铁通上电后,产生吸合的力,衔铁被控制,使电路接通;而当电磁铁断电后,没有了电磁效应,衔铁回归原位,使电路断开。而电磁继电器的优点在于以小电流控制大电流,使用电安全性大大提高[10]。
继电器驱动接口电路如图3.12所示,当正常情况下,浓度没有超过预警值,电磁继电器受到控制,始终被三极管截止高电平电流,无法动作;而当浓度超过预警值时,三极管产生基极电流,不再截止电流,继电器通电,衔铁吸合,负载也被接通,LED灯也不再被三极管截止电流,被点亮。
图3.12 继电器电路
4 天燃气泄漏检测报警系统的软件部分
4.1 软件介绍
本次的软件编写部分是用keil C51进行编写。Keil C51是美国Keil Software公司生产的51系列兼容单片机c语言软件开发系统,能够完美兼容之前版本的文件,提供了许多开发方案:C编译器、宏汇编等。Keil C51生成目标代码的效率非常高,由语句编写出的汇编代码很紧凑,容易理解。Keil C51软件更加适合用C语言去创作,不容易出错还简单易上手。Keil C51软件界面如图4.1所示。
图4.1 Keil 5软件界面
本次的电路设计选用的是Altium Designer,Altium Designer非常强大,从各方面为设计者提供便捷,全面的布局能力使它在软件界叱咤风云,多重技术的加持让开发更加得心应手,为使用者避免了很多细小问题的发生,节省了使用者的大量时间。
在使用AD绘画的电路图和PCB之前,先简单介绍一下其库文件。每个AD软件都包含两个基库Miscellaneous Devices.IntLib和Miscellaneous Connectors.IntLib。MiscellaneousDevices.IntLib库主要包括我们经常使用的电阻、电容器、电感、控制芯片等。Miscellaneous Connectors.IntLib库主要包括我们常用的接口库。当然,如果需要这两个基础资料库中没有的零件,可以在Altium官方网站寻找下载,而我们完全可以先建立我们自己的库,为其中添加一下自己常用的图。
电路图完成后,需要检查电路是否完全满足我们的要求,然后进行电气规格检查,修正所有的错误,完成所有的规格检查,检查是否有错误,还需要检查我们的所有部件的包装是否合格。
4.2 主程序框图
本次主程序设计首先初始化LCD1602液晶显示器,由MQ-5气敏传感器测得的模拟量交给ADC0809转换,下一步读取转换出的数值,在LCD1602液晶显示器中显示具体的数值是多少,判断设置的状态,接下来语音播报当前的数值,判断当前数值是否超出安全值,若超过限值,则继续语音播报常开继电器断开,变成闭合,下一步判断录音键是否按下,如果按下则开始注意切换新的语音文件,扫描设置的限定值,最终回到读取数值的阶段。不停的循环检测。主程序流程图如图4.2所示。
图4.2 主程序流程图
4.3 A/D转换程序流程图
A/D转换程序设计思路为:OE为低电平,允许输入信号,由ST发送一个下降沿的正脉冲,启动转换。EOC在转化期间一直是低电平,当A/D转换结束后,输出高电平,若还是输出低电平,则证明转换还没有结束仍在继续,OE输出为高电平,打开输出三态门,输出数字量,接着由单片机读取数字量,OE输出低电平,允许信号输入,此为一次ADC0809的转换过程。A/D转换程序流程图如图4.3所示。
图4.3 ADC0809转换流程图
4.5 系统调试
在调试系统时,决定分为各个模块阶段进行。首先,气体的检测部分很重要,该模块将模拟量转换为数字量,其原理与数字电压计的设计相同。因此,该部分的系统调试以数字电压计为原理,并基于数字电压计的原理进行调试。接着测试A/D转换模块,检测模块的信号输入到转换模块,开始转换,直到转换结束将数据发送给单片机,可以在显示器中有数值变化。下一步测试数码管的显示器是否显示,用设计的按钮程序设定警报值,然后综合气体浓度和按钮值,完成了该系统的警报预定值调节部分。接着追加声音警报和音响警报的部分,本系统选择用喇叭播放录音,同时点亮LED灯。在测试中发现喇叭偶尔会发出滋滋的电流声,经过搜查百度知道后得知这是因为电路板的焊接问题会造成一些干扰,在操作是避免接触到背板的线。反复进行多次实验测试,完成了整个系统的程序。
在连接好电路板后,把写好的程序烧录到单片机上。确认没有错误后,打开系统电源,报警器的显示器显示规定值为20ppm时,可按下加减按钮进行调节。设定警报值后,不点亮打火机,只放出可燃性气体,出口朝向MQ-5传感器,显示器的数字逐渐变化,警报器生效,LED灯点亮,发出声音警告:浓度超标。图4.4为调试图。
图4.4 调试图
结 论
通过对于上述天然气泄漏报警器设计的分析,我们可以从中得出想要保证正常的生产生活的安全以及防范各种灾难带来的危险,天然气泄漏报警器的使用是不可或缺的,它不仅保障了我们的人生安全,更为我们的生产生活都带来了无限的便利,因此我们可以从中看出得出天然气泄漏报警器的潜力无穷,市场也会选择以更丰富的方式来完善。
本文设计的天然气泄漏检测报警系统以具有各种优点的STC89C52单片机作为主控芯片,以其不是特别昂贵的造价和优秀的处理能力,利用了它丰富又易于控制的各种端口,程序编写简单容易上手,只需要一个一个调用即可,完成了此次的设计任务。系统能够实时监测和显示空气中的天然气浓度,周围天然气气体超标,系统给出声光报警;若没有超标,则仅在1602液晶显示器上显示当前浓度。
本设计在电路方案中采用模块化设计,易于实现功能扩展,能够满足特殊应用领域的功能和可靠性需求。在硬件调试中,采用的电路使用了很多模块化设计。设备不多,调试不难。电路除了集成电路以外,对各电子部件也没有特别的要求。
在调试软件时,发现一些程序只是满足条件而被执行,这增加了步骤调试的难度,在这种情况下,可以选择程序调试的总括断点设置来完全进行调试。而且,在写文章的时候忘记了切换输入方式,汉语标点令程序的编译出现了错误,逐一改进后完成了调试。
在未来的工作中,可以试着将GPRS模块添加到报警器中,使报警器能够实现远程通信功能,访问消防系统,及时向相关部门通知紧急事件的发声,适当扩充功能,进一步完善天然气报警器的功能,提高安全性,提高易用性。
附录1 源程序清单
#include <reg52.h>
#include <intrins.h>
//显示函数
#include <display.h>
#include <4004.h>
//宏定义
#define uint unsigned int
#define uchar unsigned char
#define Data_ADC0809 P1
//管脚声明
//sbit LED_R= P2^2; //黄指示灯
//sbit LED_G= P2^0; //绿色指示灯
//sbit FENG = P2^5; //喇叭
//ADC0809
sbit ST=P3^3;
sbit EOC=P3^1;
sbit OE=P3^2;
//按键
sbit Key1=P2^5; //设置按键
sbit Key2=P2^4; //加
sbit Key3=P2^3; //减
sbit Key4=P2^2;
sbit jdq=P3^0;
bit bdata flag;//指示灯和喇叭闪烁报警标志位
uchar set; //设置标志位
//函数声明
extern uchar ADC0809();
extern void Key();
//天然气含量变量
uchar temp=0;
uchar WARNING=25; // 初始报警值
void delay_2S(void) //4S
{
uchar a;
uchar b,c;
for(c=90;c>0;c–)
for(b=171;b>0;b–)
for(a=16;a>0;a–);
nop(); //if Keil,require use intrins.h
}
//初始化函数
/*void init()
{
TMOD=0x01; //定时器0方式1
TL0=0xb0;
TH0=0x3c; //赋初值
EA=1; //开总中断
ET0=1; //允许定时器0中断
TR0=1; //定时器0开
} */
//主函数
void main()
{
uchar p=0;
uint sum;
Init1602(); //1602初始化
// init(); //初始化函数
while(1)//主循环
{
for(p=0;p<20;p++)
{
temp=ADC0809(); //读取天然气值
sum=sum+temp;
}
temp=sum/20;
sum=0;
if(set==0) //如果没有按下设置(默认set是0,就是正常显示状态)Display_1602(temp,WARNING,Mode); //显示CH4值//开始语音播报
if(set==0)
{//现在浓度playbit=1;playcout=1;playsound();delay_2S();delay_2S();DDstop(); //第一位playbit=1;playcout=(temp/100)+2;playsound();delay_2S();DDstop(); //第二位playbit=1;playcout=(temp%100/10)+2;playsound();delay_2S();DDstop(); //第三位playbit=1;playcout=(temp%100%10)+2;playsound();delay_2S();DDstop();
/* //米
playbit=1;
playcout=12;
playsound();
delay_2S();
DDstop(); */
if(temp<WARNING&&set==0) //如果实际的CH4值小于报警值且在正常显示状态下{jdq=1;
// flag=0; //执行下面flag=0的(主要就是绿灯闪,关喇叭和继电器)
//浓度正常
playbit=1;
playcout=12;
playsound();
delay_2S();
delay_2S();
DDstop();
}
else if(temp>WARNING&&set0) //如果实际的天然气值大于报警值且在正常显示状态下
{
jdq=0;
// flag=1; //执行下面flag=1的(主要就是红灯闪,开喇叭和继电器)
//浓度超标
playbit=1;
playcout=13;
playsound();
delay_2S();
delay_2S();
DDstop();
}
delay_2S();
//录音键按下
if(Key40)
{
Mode=1;
jdq=1;
while(Mode!=14)
{
//按键判断
if(Key40)
{
Mode++;
Display_1602(0,0,Mode);
while(Key40);
//开始录音
playbit=0;
recbit=1;
// playcout=Mode-1;
reccout=Mode-1;;
playsound();
if(Mode2||Mode14||Mode==13)
delay_2S();
delay_2S();
DDstop();
delayms(100); //开始放音playbit=1;recbit=0;playcout=Mode-1;// reccout=Mode-1;;playsound();if(Mode==2||Mode==14||Mode==13)delay_2S();delay_2S();DDstop();} }Init1602();//初始化显示Mode=0;}}Key();//按键扫描
}
}
//ADC0809读取信息
uchar ADC0809()
{
uchar temp_=0x00;
//初始化高阻太
OE=0;
//转化初始化
ST=0;
//开始转换
ST=1;
ST=0;
//外部中断等待AD转换结束
while(EOC==0)
//读取转换的AD值
OE=1;
temp_=Data_ADC0809;
OE=0;
return temp_;
}
//按键函数
void Key()
{
if(Key10) //如果设置按键按下
{
while(Key10);//等待按键释放
// FENG=0; //喇叭响
set++; //设置的变量加1
jdq=1;
flag=0; //绿灯闪
TR0=0; //关定时器0
}
if(set==1)//此时设置报警值
{
write_com(0x38);//屏幕初始化
write_com(0x80+0x40+13);//位置
write_com(0x0f);//打开显示 无光标 光标闪烁
write_com(0x06);//当读或写一个字符是指针后一一位
// FENG=1; //喇叭关
}
else if(set>=2) //又按了下设置
{set=0; //正常显示状态write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示 无光标 无光标闪烁
// FENG=1; //喇叭关
flag=1; //红灯闪
TR0=1; //定时器0开
}
if(Key20&&set!=0) //在设置的状态下按下加
{
while(Key20); //等待按键释放
// FENG=0; //喇叭响
WARNING++; //报警值加1
if(WARNING>=255) //如果报警值大于等于255
WARNING=0; //报警值归零
write_com(0x80+0x40+11);
write_date(‘0’+WARNING/100);
write_date(‘0’+WARNING/10%10);
write_date(‘0’+WARNING%10); //显示报警值
write_com(0x80+0x40+13);//调整位置
// FENG=1; //喇叭关
}
if(Key30&&set!=0) //在设置的状态下按下减
{
while(Key30); //等待按键释放
// FENG=0; //喇叭响
WARNING–; //报警值减1
if(WARNING<=0) //如果报警值小于等于0
WARNING=255; //那么报警值为255
write_com(0x80+0x40+11);
write_date(‘0’+WARNING/100);
write_date(‘0’+WARNING/10%10);
write_date(‘0’+WARNING%10);
write_com(0x80+0x40+13);//调整位置
// FENG=1; //喇叭关
}
}
/*
void time1_int(void) interrupt 1 //定时器中断0
{
uchar count;
TL0=0xb0;
TH0=0x3c; //重赋初值50ms
count++; ///溢出值加1
if(count10) //如果时间到半秒
{
if(flag0) //如果flag为0
{
LED_G=0; //绿灯亮
LED_R=1; //红灯灭
FENG=1; //喇叭关
}
if(flag==1) //如果flag为1
{
LED_G=1; //绿灯关
LED_R=0; //红灯亮
FENG=0; //喇叭开
}
}
if(count==20) //如果时间到1秒
{count=0; //溢出值清零if(flag==0) //如果flag为0{LED_G=1; //绿灯关LED_R=1; //红灯灭FENG=1; //喇叭关}if(flag==1) //如果flag为1{LED_G=1; //绿灯关LED_R=1; //红灯灭FENG=1; //喇叭关}
}
} */
参考文献
[1]彭家书,王公勉,王冰,滕雪漪,蔡玲.基于单片机的GSM智能煤气泄漏报警器[J].黑龙江科技信息,2015,30:18-20
[2]高英侠,滕雪漪,赵永涛.基于单片机GSM煤气泄露报警器的设计[J].企业科技与发展;2018,11:20-22
[3]张伯鹏.先进制造技术基础研究现状及发展趋势[J].中国机械工程,1997,02:56-58
[4]霍孟友.单片机原理与应用[M].北京:机械工业出版社,2004,09:15-17
[5]刘泽峰,郎庆阳,刘云达,骆文栋,韦立顺.一种厨房燃气控制装置[J].科技风,2020,20:28-29
[6]谭浩强.C程序设计[M].北京:清华大学出版社,1999,18:20-22
[7]李佳怡.基于单片机的室内环境多参数监测系统设计[J].数字技术与应用2019,13:25-27
[8]沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社,2005,08:27-29
[9]张振荣.MCS-51单片机原理及实用技术[M].北京:人民邮电出版社,2000,30:32-33
[10]胡喻杰,杨龙成.基于单片机的家庭烟雾报警系统[J].电子技术与软件工程,2019,11:24-26
[11]许连望,陈冲.易燃易爆油气体的智能安检系统[J].闽江学院学报,2019,09:25-26
[12]杨扬,陈亮.有毒气体检测报警系统的研究[J].科技风,2019,09:09-10
[13]吴增,齐虹,陈冲.车内可燃气体监测报警系统设计[J].福州大学学报(自然科学版),2017,12:04-05
[14]王明超.基于单片机的管道泄漏检测报警系统的设计与实现[J].电子设计工程,2019,09:05
[15]兰小燕,徐静,阿如汗,塔拉,汪鹏.基于单片机的可燃性气体报警器的设计[J].电脑知识与技术,2019,04:15-19
[16] 陆忠. 天然气输送与城镇燃气.东营:中国石油大学出版社,2008,02:11-12
[17] 邓立三. 燃气计量. 郑州:黄河水利出版社,2011,11:13-15
[18] 蔡月芝.天然气报警器原理以及功能优化[J].中国化工贸易,2019,15:24-25
[19] 王啸东.天然气检测报警器的设计[J].信息与电脑(理论版),2014,23:31-32
[20] 乔玉灯,彭军.智慧天然气报警装置[J].电子技术与软件工程,2018,08:24-25
致谢
在这次毕业设计中,让我在学习和思想上都受益匪浅。感谢学校给予我这样珍贵的一次机会,依靠自己,独立完成,作为检验大学学习的成果,在这个过程中,学校给与我们各种便利,使我学习到了综合的应用知识与宝贵的实践经验,同时提高了我的动手能力,向我的母校表示真心的感谢。
此外,我要感谢我的指导老师孟军红老师与张有成老师。在这次论文的修改过程中,指导老师们花费了很多的心血,他们认真严谨的工作态度让我的论文更加完善。从选题开始,老师们就在督促我们认真对待,论文稿的上传,老师也是一遍又一遍的指出问题所在,总是帮我们检查出论文中的瑕疵,严格要求,精准指导,促使我能顺利地完成此次毕业设计。向我的指导老师们表达最崇高的敬意和发自内心的感谢。