为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于单片机的家用煤气泄漏监控系统的设计与实现

2018-09-21 5页 doc 16MB 41阅读

用户头像 个人认证

北溟愚鱼

暂无简介

举报
基于单片机的家用煤气泄漏监控系统的设计与实现 目 录 1 摘 要 2 ABSTRACT 3 第1章 绪论 3 1.1 课题来源及研究意义 4 1.2 煤气泄漏监控系统的研究现状 4 1.3 系统设计内容 5 第2章 煤气泄漏监控系统的方案设计 5 2.1 设计思想 5 2.2 煤气泄漏检测监控系统的整体设计 6 2.3 气体传感器的选型 6 2.3.1 气体传感器的介绍 7 2.3.2 气体传感器的选定 8 第3章 煤气泄漏监控系统的硬件部分设计 8 3.1 单片机系统的设计 8 3.1.1 AT89C51...
基于单片机的家用煤气泄漏监控系统的设计与实现
目 录 1 摘 要 2 ABSTRACT 3 第1章 绪论 3 1.1 课题来源及研究意义 4 1.2 煤气泄漏监控系统的研究现状 4 1.3 系统设计内容 5 第2章 煤气泄漏监控系统的设计 5 2.1 设计思想 5 2.2 煤气泄漏检测监控系统的整体设计 6 2.3 气体传感器的选型 6 2.3.1 气体传感器的介绍 7 2.3.2 气体传感器的选定 8 第3章 煤气泄漏监控系统的硬件部分设计 8 3.1 单片机系统的设计 8 3.1.1 AT89C51单片机概述 8 3.1.2 引脚和最小系统 10 3.1.3 时钟电路 11 3.1.4 复位电路 12 3.2 按键电路设计 13 3.3 信号采集电路设计 13 3.3.1 气体信号采集电路的设计 16 3.3.2 温度信号采集电路的设计 17 3.4 A/D转换部分电路设计 17 3.4.1 模数转换芯片ADC0809 19 3.4.2 A/D转换电路 20 3.5 显示部分电路的设计 20 3.5.1 LCD1602显示屏 21 3.5.2 显示部分电路 21 3.6 报警排风的电路设计 23 第4章 煤气泄漏监控系统的软件部分设计 23 4.1 主程序图 24 4.2 温度采集流程图 25 第5章 系统仿真 25 5.1 编程软件简介 26 5.2 仿真软件简介 27 5.3 仿真测试 30 5.4 实物制作 32 第6章 总结 34 附录 程序清单 44 致 谢 摘 要 随着生活水平的提高,罐装煤气和煤气管道已经进入千家万户。在人们享受它带来的方便的同时,也受到了由于设备使用不当或者设备老化而导致的煤气泄漏的巨大威胁。煤气泄漏可以使人煤气中毒,煤气在和空气混合到一定比例形成的混合物还会发生爆炸,严重威胁到了人们的生命财产安全。针对这种情况设计了一种煤气泄漏监控系统,该系统可以很好的在家用煤气发生泄漏的时候发出警报,使危急情况得到处理。 本系统以AT89C51单片机为核心,由MQ-2传感器、单片机AT89C51、模数转换芯片ADC0809、LCD1602液晶显示屏、DS18B20构成,它的用途是测量空气中煤气的浓度及温度,在煤气浓度或者温度大于或者等于预设值定将发出声、光报警。该系统有硬件与软件设计两部分。硬件部分的设计包括煤气浓度采集电路的设计、温度采集电路的设计、模/数转换电路的设计、单片机最小系统电路和按键电路的设计、显示电路的设计、报警电路的设计。软件部分由KEILC51编程PROTEUS仿真。该设计主要完成了系统原理图的绘制,软件仿真,并利用单片机开发板实现了具体的功能,经验证该系统工作稳定可靠。 关键词:MQ-2传感器;报警;监控;AT89C51单片机 ABSTRACT With the improvement of living standards, canned gas and gas has entered innumberable families. While people enjoy it bring convenience, has been due to improper use or equipment aging of huge threat to gas leakage. Leaking gas can make the person the gas poisoning, the gas and air mixture to a certain proportion to form the mixture will be an explosion, a serious threat to people's life and property safety. For this situation is to design a kind of gas leak monitoring system, the system can be very good at the time of household gas leak alarm, for emergency treatment. This system USES AT89C51 microcontroller as the core, by MQ - 2 sensor, single chip microcomputer AT89C51, modulus conversion chip ADC0809, LCD1602 LCD screen and DS18B20, its purpose is to measure the concentration of the gas in the air and the temperature, the gas concentration or temperature is equal to or greater than the preset value will send out sound and light alarm. The system hardware and software design of two parts. The design of the hardware part includes the gas concentration of acquisition circuit design, the design of the temperature acquisition circuit, d/a conversion circuit design, single chip microcomputer minimum system circuit and the design of key circuit, display circuit design, the design of the alarm circuit. Part of the software is KEILC51 programming PROTEUS simulation. This design is mainly completed the system schematic drawing, software simulation, and the use of microcontroller development board to achieve a specific function, verified the system work stable and reliable. Key words: MQ - 2 sensors; alarm; monitoring; AT89C51 第1章 绪论 1.1 课题来源及研究意义 随着经济和科技水平的提高,人们生活水平也在逐步改善,罐装煤气和管道煤气已经进入到普通百姓的家庭。设备不正确的使用方法或者老化是产生煤气泄漏的关键起因,煤气泄漏对人民的生命危害极大且威胁着人民的财产安全。一氧化碳是煤气的主要成分,一氧化碳基本上不与水相溶,它的特点是没有刺激性、没有气味、没有颜色、鼻子闻不到,在与空气混杂比达12.5%~80%时,此时的混合物拥有爆破性。由人类呼吸进入血液循环,造成血液缺氧症,造成结构缺氧,遏制结构呼吸[1]。煤气中对人体伤害最大的物质还是它。所以,设计出有作用的,可以使用在家中的煤气监控系统是拥有巨大含义的,而且市场运用上也是前途光明的。 以下是健康的成年人或许产生一氧化碳中毒的现象: 50ppm 健康的成年人可以经受最多8个小时; 200ppm 2到3小时后人会感到疲劳,略微头疼; 400ppm 1到2小时后前额痛,3小时后将危及性命; 800ppm 45分钟普通人会痉挛、目眩、呕吐;2小时将会失去意识;2到3小时内可能会死亡; 1600ppm 20分钟会目眩、呕吐、头晕;会在一小时内死去; 3200ppm 5到10分钟内呕吐、头晕、目眩;25到30分钟死亡; 12800ppm 1到3分钟死亡。 由此可见,煤气泄漏时对人们造成的危害是很大的,发生煤气泄漏时会让人中毒,导致生命危险,而且还有随时发生爆炸的可能。煤气一旦泄漏,如果不及时采取措施就会造成的一系列的事故,因此,找到一个解决方法是我们需要做的。应用煤气泄漏监控系统就是抵挡煤气泄漏的主要措施。有关内行说明,煤气泄漏出来的巨量一氧化碳是发生煤气中毒的起因,若是应用煤气泄漏监控系统,在煤气泄漏时就会产生报警信号,人们可以及早关掉煤气阀门,将危险去除。相关组织经过长时间检验得出结果,煤气泄漏监控系统预防煤气泄漏事件发生的有效率大于95%。 1.2 煤气泄漏监控系统的研究现状 现在,普通的煤气报警装置性能一般,稳定性不好,况且较大的监控系统主要面对工矿及公共场所的检测,并且售价较高,还需要被专职人员看管,不适宜在家庭应用。 家用煤气泄漏的监控系统对于煤气的正常使用是十分要紧的。周围环境中煤气的浓度通过煤气泄漏监控系统的气体传感器被探测到,控制电路接收到被探测到的信号的模拟量,当环境中煤气浓度超越了预设定的值的时候,灯光报警信号会被装置报警灯发出,声音报警被报警器发出。热线型气体传感器、氧化物半导体、催化燃烧型是煤气报警装置的探测煤气的传感器的重要类别,当然剩下的是极少的。四周的煤气附着这些传感器上,电化学反应或化学反应在它的层发生,使其电物理性质发生变化。煤气泄漏监控系统在企业、货仓、学校、社区、城市安防、工厂等很多地方被普遍使用。 1.3 系统设计内容 本文基于单片机设计家用煤气泄漏监控系统。设计分为两个主要部分:系统硬件部分设计与控制编程。 (1)硬件部分 浓度、温度检测和显示模块、报警模块、主要控制模块是基于单片机的家用煤气泄漏监控系统硬件的主要3个部分。浓度检测主要由MQ-2气体传感器组成;温度测量被温度传感器构成,显示部分用LCD1602显示器来展现;主要控制模块主要有单片机和关联的软件部分构成;报警模块主要由键盘和报警器组成,键盘用于煤气报警浓度及温度的设置,报警器用于达到报警浓度及温度的报警处理。 (2)软件部分 主程序与中断处理是它软件部分两大重要模块:中断输进去的设置和I/O口,定时器初始化是通过主程序实现,等待定时器的中断和传感器来到平稳的运行形态通过延时实现;中断处理程序依据详细的状况要有对应子程序。程序要实行多遍调试,分开编程。对每个子程序块所处理的题目要非常清楚。 第2章 煤气泄漏监控系统的方案设计 2.1 设计思想 煤气泄漏监控系统具备可以测验监控空气中的煤气的浓度和报警的功用。单片机控制电路、气体信号采集电路、A/D转换电路其最基本的构成模块。 气体传感器构成了气体信号采集电路,模拟的电信号是由气体信号转化成的。模拟的电信号被模数转换芯片转换成数字信号之后送到单片机。这些数字信号通过单片机来处置,而且被分析处置的数据经单片机来判定,和设定值相比是不是相等或者被超越,若是被超越就会主动报警,产生报警声,若是没有就为正常形态。为了报警装置特别完美,在煤气浓度检测的同时加上温度检测,在温度过高的情况下发出报警,还在声音报警根基上,加上灯光报警,改变的光信号能够吸引人们的注视,补偿喧闹中声音报警的限制。提出的整体设计思路的是依据报警装置该拥有的功用。 煤气泄漏检测报警装置的两大核心部件:气体传感器、单片机,依据报警装置功用,选取精准、适宜、性价比高的单片机和气体传感器是十分重要的。 2.2 煤气泄漏检测监控系统的整体设计 系统基本方框图如图1所示。 图1 系统基本方框图 本系统运用AT89C51单片机,组合ADC0809转换芯片组成了煤气检测监控系统。系统整个设计有气体传感器、AT89C51单片机、显示部分组成。LCD1602可以显示室内煤气浓度和温度。系统用传感器MQ-2进行煤气测量,然后传出0-5V的电压信号,再然后把模拟量传送到ADC0809,通过A/D转换,形成对应数字量通过它的输出通道DB0~DB7递送到单片机的P1口,用温度传感器来检测温度,通过DS18B20把信息传送给单片机,单片机把收取的数字量实行数据分析处置,LCD1602显示煤气浓度及室内温度,当环境中有煤气泄漏或者温度升高,并且达到预定浓度或者温度,单片机会让LED闪烁和蜂鸣器发声,发出声音和灯光的报警,并发动开关打开通风换气装置,实现煤气的安全使用。 2.3 气体传感器的选型 气体传感器属于气敏传感器,它可以检测环境中的煤气浓度,将气体信号转换为电信号,经过模/数转换芯片,单片机接收到被模拟信号转化成的数字信号,让单片机实现数据分析处置,浓度分析及报警处理等工作。煤气泄漏监控系统的中心部件之一就是气体传感器,所以选型很重要[2]。 2.3.1 气体传感器的介绍 依据检测的道理能够划分成下面几种: (1)行使物理化学本质的:比如半导体气体传感器、接触燃烧气体传感器等。 (2)行使物理本质的:比如热导气体传感器、红外传感器等。 (3)行使电化学本质的:比如电势型气体传感器、电流型气体传感器等。 气体传感器既能是一个功用的,也能为多种功用的;有些为独自的个体,有的是被许多功用相异的传感器的组合阵列[3]。不过,只要是完好的气体传感器都拥有下列要求: (1)能够测验某一种气体,与环境中的另外的气体则没有反应; (2)能够准确的测验被检测的气体浓度, 而且比较敏捷; (3)能够很快的对检测气体做出反应,循环性好; (4)长期工作稳定性好; (5)使用寿命长; (6)便宜,便于应用于养护。 常见气体传感器: (1)半导体气体传感器 (2)固体电解质气体传感器 (3)接触燃烧式气体传感器 (4)高分子气体传感器 (5)电化学传感器 (6)热传导传感器 2.3.2 气体传感器的选定 监控系统主要测验的气体为煤气,所以依照监控系统测验气体类型的条件,选择接触燃烧式气敏传感器或者半导体气敏传感器。 频繁的给传感器标定,为确保它的精确性的必经的道路。平常持续应用两个月,就要给传感器的量程进行校对。 通过比较这两类气敏传感器的使用特点,半导体气敏传感器的长处更为卓越:准确性高、反应速度快、稳定性优越、便捷、经济,同时没有探头阻缓和中毒情景,养护费用低等。所以,本次设计监控系统气体信息收集方面的中心应用半导体气敏传感器。而本此设计选择了MQ-2型气敏传感器,MQ-2气体传感器拥有普通半导体气敏传感器准确性高、反应速度快、稳定性优越、使用时间长等特点[4]。 第3章 煤气泄漏监控系统的硬件部分设计 3.1 单片机系统的设计 3.1.1 AT89C51单片机概述 AT89C51单片机是高性能、低电压CMOS 8位CPU,它的FLASH存储器是4k。AT89C51具有2K字节闪存的ROM,其能够编写程序还能够擦除,可以反复擦除1000次。ATMEL高密度不容易丢失的存储器的制作技艺被运用在AT89C51上,同时可以兼容MCS-51输出管脚和指令集。AT89C51中一起加入8位CPU和闪烁存储器,让其效率更高。AT89C51单片机以它的高敏捷性,价格低廉化为嵌入式控制系统的最佳选择。 主要特性如下: (1)4K字节FLASH,可编程;(2)与MCS-51兼容;(3)在0Hz-24MHz下全静态工作;(4)1000次重复写/擦;(5)保留数据长达10年;(6)内部RAM为128×8位;(7)可以锁定三级程序存储器;(8)32个可编程I/O口;(9)中断源5个;(10)16位定时/计数器两个;(11)拥有时钟电路与片内振荡器;(12)闲置和掉电模式为低功耗;(13)1个可编程串行通道口[5]。 3.1.2 引脚和最小系统 40条引脚双列直插式是AT89C51的封装结构,如图2是它的引脚图。这里面,2条是电源引脚,2条外接晶体,4条是控制引脚,剩下的是I/O引脚。 图2 AT89C51引脚图 主要引脚介绍: VCC:电源。 GND:接地。 P0口:P0口的双向I/O引脚是8个,8TTL是引脚接收的门电流。高阻输入就是在给P0口第一次送“1”,这个时候的连上拉电阻。 P1口:P1口的双向I/O引脚也是8个,在它的里面带有上拉电阻。4TTL为它里面的缓冲器吸取/发出的门电流大小。 P2口:P2口的双向I/O引脚也是8个,在它的里面带有上拉电阻。4TTL为它里面的缓冲器吸取/发出的门电流大小。它的管脚被拉高,在为P2口送“1”的时候,用作输入口。 P3口:P3口的双向I/O引脚也是8个,在它的里面带有上拉电阻。4TTL为它里面的缓冲器吸取/发出的门电流大小。 RST:复位输入引脚。 ALE/PROG:在外面的存储器来读写的时候,这个引脚锁存地址是低位字节。在FLASH编写程序的时候,这个引脚给编写程序输进去脉冲。周期平稳的正脉冲由ALE输出,这个周期比振荡器周期大5倍。所以它能为外部输出脉冲,也可用来定时。不过当成外部数据存储器时,就会跨越一个ALE脉冲。 /PSEN:External program memory(外部程序存储器)选通信号。在由External program memory取指时,一个机器周期中/PSEN有效两次。不过访问External program memory时,就不显示这两次有用的信号。 /EA/VPP:无论有没有内部程序存储器,全作为外部程序存储器在/EA为低电平时。 XTAL1:给振荡器反相放大器或者内部时钟运行电路供应输入。 XTAL2:振荡器输出引脚。 上电复位是用RC充电来实现的。 图3中电容C1和C2的效果为飞快起振与巩固振荡频率,15到33pF位通常起电容值,33pF的电容被本系统所运用。6MHz的晶振频率被运用。时钟信号较平静的为内部振荡形式所得到,通常用在现实电路,12M的晶体振荡器被本系统所运用。 图3 AT89C51的最小系统 3.1.3 时钟电路 AT89C51的时钟电路出现脉冲之后掌控指令准确的发生动作。CPU掌控信号掌控指令发生动作的时间顺序为AT89C51的时序。AT89C51内部电路要按时序进行运行须在时钟信号下才可以,可以保证各个部件同步运行。外部时钟与内部时钟为AT89C51时钟的两类形式。 内外部形式之时钟电路如图4(a)和4(b)。运用外面的振荡脉冲连接到XTAL1或者XTAL2是外部时钟的形式。HMOS与CHMOS单片机的外面的时钟信息接进去的形式是相异的。 RXD接地,TXD接入外部振荡器。外部振荡信号选择频率低于12MHz的信号因为它没有特别的条件,仅仅保证脉冲宽度。片内发生器出现两相时钟P1与P2,提供给AT89C51应用。这里选用内部方式的时钟电路。 (a) 内部方式时钟电路 (b) 外部方式时钟电路 图4 时钟电路 3.1.4 复位电路 AT89C51初始化动作是复位。 AT89C51上电后,首先就是复位,其效果就是让CPU与系统的其他元件还原为一个明确的初始形态,在此基础上就行下一步动作。因此,复位是一个很重要的操作。但是 AT89C51自身是不可以来复位的,需要结合外部复位电路才可以完成。 手动复位和上电复位是外部复位的两类形式。 上电复位是利用充电实现的。如图5(a),复位电路的参数被给出。 按键手动复位有按键电平和按键脉冲复位两种形式。如图5(b)为按键电平复位,图5(c)为按键脉冲复位。在复位按键按下后,通过小电阻复位端和电源连通,马上放电,RST转变成高电平,在复位按键释放后,经过电源给电容的再次充电,RST引脚产生复位正脉冲,RC电路时间常数决定了延续的时间长短。这里选用按键电平复位。 (a) 上电复位 (b) 按键电平复位 (c) 按键脉冲复位 图5 复位电路 3.2 按键电路设计 按键接低的方式被本设计运用,用来读取按键,AT89C51初始时,因为是高电平,在按键按下的时候,会给AT89C51一个低电平,信号被AT89C51进行处理。 口的电平高低被单片机I/O口获取作为判断是不是有按键按下是独立式键盘的实现方法。连接地的端口是常开按键,单片机的一个I/O口与另一端口连接,把这个I/O口置为高电平在程序开始时,这个高电平被I/O口保卫在通常没有键按下的时候。在有键按下的时候,I/O口转变成低电平由于I/O口与地的短路。按键松开后,I/O口依旧维持在高电平因为AT89C51内部的上拉电阻使然。如果我们想知道有没有按键动作的发生,只要在程序中查找这个I/O口的电平状态就行了。 本设计有三个按键,用于设置温度与浓度上限,上键K1是设置键,用于设置温度和煤气浓度上限,一端接单片机P2.6端口,一端接地,中间键K2是加值键,用于增高温度或者煤气浓度的报警值,一端接单片机P2.7端口,一端接地,下键K3是减值键,用于减低温度或者煤气浓度的报警值,一个端口连接单片机P3.7端口,另一端口接地。按键电路如图6。 图6 按键电路 3.3 信号采集电路设计 3.3.1 气体信号采集电路的设计 (1)MQ-2传感器 SnO2是MQ-2气体传感器所应用的原料,其在干净的空气的导电率是十分低的。随着煤气浓度的增加,传感器的电导率也随之增加。电导率的变化通过分压电路的转换输出的电压信号和煤气浓度相浓度照应。MQ-2实物图如图7。 图7 MQ-2气敏传感器实物 在对液化气、丙烷、天然气、氢气以及其它可燃蒸汽检测中MQ-2气敏传感器的灵敏度较高。 图8中纵坐标是传感器的电阻比(Rs/Ro),横坐标是气体浓度。Rs代表传感器在不同浓度气体中的电阻值。Ro代表传感器在1000ppm氢气中的电阻值[6]。 灵敏度特性: 图8 传感器典型的灵敏度特性曲线 图9是传感器典型的温度、湿度特性曲线。图中纵坐标是传感器的电阻比(Rs/Ro)。Rs代表在有1000ppm 丙烷,不同温/湿度下传感器的电阻值。Ro代表在有1000ppm 丙烷,20℃/65%RH要求下传感器的电阻值[7]。 图9 温度、湿度特性曲线 图10 传感器基本测试电路 图10是传感器的基本测试电路。该传感器需要施加2个电压:给传感器供给特殊的运行温度的加热器电压(VH),测试电压(VC),来检测电阻(RL)两端的电压(VRL)。 图11 MQ-2原理图 (2)气体信号采集电路 本次设计中,用作信号采集器件的是MQ-2 气体传感器,器件的1、3、4脚被接到+5V电源的正极,2、5、6脚被接到地。被收集到的信号经1k 电阻R1之后传递给ADC0809的模拟输入端,R2作用是调整输出信号。具体电路连接如图12所示。 图12 信号采集电路 3.3.2 温度信号采集电路的设计 (1)温度传感器DS18B20 外加不锈钢保护管封装的DS18B20可组网数字温度传感器芯片,其优点有体积小,耐性好,便捷,封装方式多等,主要用于各类较小环境装置数字测温与控制方面。单线接口的形式是其独特的,仅需一条口线就可以完成微处理器和DS18B20的双向通讯;-55℃~+125℃是其温度测量范围,0.5℃是其的固定的测温分辨率;还支持多点组网的功能;独一的三线上可以并联多个DS18B20,完成多处温度的测量;工作电源为3~5V/DC;在使用中不需要任何外围元件[8]。 DS18B20的性能特点如下: 1)选择DALLAS公司单线接口的形式是独有的,只需一条口线就能够完成微处理器和DS18B20的双向通讯; 2)在使用中不需要任何外围元件; 3)+3.0V~+5.5V是供电电压领域,可用数据线为其供电; 4)测温范围:-55~+125℃。固有测温分辨率是0.5℃; 5)用户可自设定报警的上下限值; 图13为DS18B20引脚图。 图13 DS18B20引脚图 各引脚功能为:I/O是数据输入/输出端(即单线总线),是漏极开路输出,外接上拉电阻,平常是高电平。UDD是能够选择的外部电源端,不用的时候接地,GND是地,NC为空脚[9]。 (2)温度信号采集电路 图14 温度信号采集电路 3.4 A/D转换部分电路设计 3.4.1 模数转换芯片ADC0809 ADC0809模数转换芯片有28条引脚,双列直插式封装方式被其运用,如图15所示。其各引脚功能如下: 图15 ADC0809引脚图 IN0~IN7:8路模拟量的输入端。 2-1~2-8:8位数字量的输出端。 ADDA、ADDB、ADDC:3位地址的输入线,被用于选通8路模拟输入其中的一路。 ALE:地址锁存的允许信号,输入高电平管用。 START:输入端,用于A/D转换开启脉冲,要让它开动(0809复位由于脉冲上升沿,启动A/D转换由于下降沿)得输进去正脉冲(最少100ns宽)。 EOC:完成信号,输出端,当转换完成的时候,这个端口会输出来一个高电平(工作时是低电平)。 OE:数据出来的允许信号,输入高电平管用。想要打开输出的三态门,出来数字量就要在A/D转换完成时,这个端口输进去一个高电平。 CLK:时钟脉冲的输入端。不高于640KHZ是时钟频率的要求。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地[10]。 怎样确定A/D转换的实现是数据传递的关键问题,要来传递,只有明确实现后才可以。可采用下面三种方式。 (1)定时传送方式 就A/D转换器来说,转换时间是固定与已知的技术指标。因此策划延时的子程序,移用这个子程序在模/数转换开始之后,转换一定已经实现,只要延迟时间到了,接下来可以来递送数据。 (2)查询方式 转换完成的形态信息在模/数转换芯片上也有说明。想要知道转换是不是实现,下一步的数据递送能够运用查询的形式,测试EOC的形态。 (3)中断方式 中断请求信号是表示转换实现的状态信号(EOC),数据的传递用中断的形式。想要通过指令来数据传递,只有确定转换完成,无论运用上面的何种方法。第一步发送的口地址并以信号管用的时候,OE信号就有作用,将转换的数据传递到数据总线,使AT89C51采纳。 3.4.2 A/D转换电路 由MQ-2气体传感器收集的电信号连接电阻之后连接模数转换芯片ADC0809的 IN0端口;ADC0809的ADD A、ADD B、ADD C和VREF(-)端接地;VREF(+)接5V电压;ALE端接START接单片机的P3.3端口;BOC端口接单片机P3.6端;CLOCK接单片机ALE端口;OUT1-OUT8分别连接单片机的P1.7-P1.0端口;用作用是收集转化为的数字信号;OE端连接P3.2端口。详细的电路衔接方法如图16所示。 图16 A/D转换部分 3.5 显示部分电路的设计 3.5.1 LCD1602显示屏 在AT89C51的人和机器交流层面中,液晶显示器、发光管、LED数码管是输出方法的普通几类。LCD1602显示有几个突出特点: (1)显示质量高; (2)数字式接口; (3)体积小、重量轻; (4)功耗低。 耗能低是液晶显示器的显著特点,内部的电极和驱动IC是主要耗能部件,耗所以用的电量就比其他的要少一些。 1602字符型LCD简介 字符型液晶显示模块是特地展示字母、数字、符号等点阵式LCD,现在普遍应用16*1,16*2,20*2与40*2等类型[11]。一般实物图如图17。 图17 LCD1602显示屏实物图 如图18为LCD1602的引脚图。 图18 1602字符型液晶引脚图 第1脚:VSS接地。 第2脚:VDD接5V正电源。 第3脚:VL是对比度的调整端口,连到正电源时是最大,连到地时是最小。 第4脚:RS是Data/Cmd寄存器挑选端口,高、低电平依次选取Data寄存器与Cmd寄存器。 第5脚:R/W是读/写信息挑选端口,高电平时是读动作,低电平时是写动作。在RS和R/W同时送入低电平,这时是写的命令或着显示地址的动作,在R/W是“1”RS是“0”的时候能够读忙信号,在R/W是“0”RS是“1”的时候能够写入数据。 第6脚:E端为1602的使能端口,在E端送出一个正脉冲后,1602模块实行命令。 第7~14脚:D0~D7为8位输入/输出数据线。 第15和16脚:分别为背光源正极、负极[12]。 3.5.2 显示部分电路 显示部分选用1602LCD液晶显示。AT89C51的P0口操纵着LCD液晶显示,其中P0口连接上拉电阻的8个管脚之后依次与操纵LCD1602的D0-D7衔接[。电路连接方式如图19所示。 图19 LCD显示部分 3.6 报警排风的电路设计 数字信号通过单片机分析处理之后若是环境中煤气浓度大于或者等于报警装置设立的设定值时,单片机就会驱动蜂鸣器报警,黄色LED灯闪烁,风扇转动。图20中用电机代替风扇。黄色LED的正极连到+5V电源的正极,负极经过一个电阻之后连到AT89C51的P2.1端口。当温度达到设定值,单片机就会驱动控制蜂鸣器报警,红色LED灯闪烁。红色LED的正极连到+5V电源的正极,负极经过一个电阻之后连到AT89C51的P2.2端口。蜂鸣器正极连到+5V电源的正极。具体电路连通方法如图20所示。 图20 报警显示部分 第4章 煤气泄漏监控系统的软件部分设计 4.1 主程序流程图 SHAPE \* MERGEFORMAT 图21 系统流程图 4.2 温度采集流程图 SHAPE \* MERGEFORMAT 图22 DS18B20流程图 第5章 系统仿真 系统仿真采用Keil C51与Proteus联调,先用Keil C51生成程序,导入到Proteus进行仿真测试。 5.1 编程软件简介 Keil软件能够同时进行集编辑,编译,仿真,赞成汇编,PLM语言和C语言的程序的编写[13]。比较汇编语言,在功能上、可读性、可维护性上、结构性C语言有突出的特点,所以使用简单方便。体会更为深刻的是先编写汇编语言然后再编写C语言程序。Keil C51软件具备功用强悍的汇成开拓调试用具与充足的库函数。此外,Keil C51生成目标代码的效率是很高的,只需要看一下编译后产生的汇编代码,即可以感受到。而且产生的汇编代码极为严密在多数语句,轻松的就能明白。如图23和图24是生成HEX文件的页面。 图23 设置生成hex文件 图24 程序编译并生成hex文件 5.2 仿真软件简介 Proteus ISIS是由英国Labcenter electronics公司制作的软件,它可以仿真,还能够设计电路。是现在仿真数字电路、模拟电路、单片机及外围器件的最佳选择[14]。得到了用户的喜爱,也受到了用户们的一致好评。当今Proteus是把电路仿真软件、PCB设计软件和模拟仿真相结合唯一的开发平面。它的处理器模型支持PIC,ARM7,HC11,AVR,MSP430,DSP和Cortex系列,8051系列的CPU模型[15]。编译部分,Proteus ISIS支持IAR、Keil和MPLAB等许多编译器。 5.3 仿真测试 利用proteus描述的系统电路的原理图,如图25所示。 图25 系统的电路原理图 下面在单片机导入利用Keil C51生成的程序进行仿真测试,仿真主要测试一下几点: (1)没有煤气泄漏时系统运转是不是正常; (2)煤气过高时系统运转是不是正常; (3)温度过高时系统工作是否正常; (4)按键是否正常。 图26 正常情况下的仿真结果 正常情况下仿真结果如图26所示,室内温度与煤气浓度均没有超过设定的最低值,LCD1602显示屏上出现室内温度与煤气浓度,没有 LED灯光闪亮,没有蜂鸣器发声,电机没有转动。 图27 浓度超标时的仿真结果 当室内煤气浓度超过设定的最低值时的仿真结果如图27所示,LCD1602显示屏上显示室内温度与当前煤气浓度值,这个时候单片机会送出一个低电平,驱使黄色LED灯闪烁,蜂鸣器报警,电机转动。如图27红框内所示。 图28 温度超标时的仿真结果 当室内温度超过设定的最低值时的仿真结果如图28所示,LCD1602显示屏上出现室内当前温度与煤气浓度值,这个时候单片机同样送出一个低电平,驱使红色LED灯闪烁,蜂鸣器报警。如图28红框内所示。 图29 按键的仿真结果 按键可以设置报警温度和煤气浓度的上限,如29图中显示屏内所示,煤气和煤气浓度的报警上限已改变。 运用Proteus来电路仿真,加载程序过后,系统在平常运行下显示环境中煤气浓度和温度。当环境中煤气浓度超标时,系统会发出报警。当温度过高时,系统照样可以报警。通过仿真考证,这个监测监控系统完成了设计的需要。 5.4 实物制作 煤气监控系统实物的制作利用万用板,将MQ-2 气体传感器,ADC0809转换芯片,AT89C51单片机,DS18B20温度传感器,LCD1602显示器以及蜂鸣器,LED灯,按键,风扇等元件和各种电阻、电容根据系统电路原理图焊接到一起,具体制作好的实物如图30所示。 图30 煤气监控系统实物图 第6章 总结 本设计主要完成了系统原理图的绘制,程序的编程,仿真调试以及实物制作。应用程序以C语言编写,充分利用芯片的内部资源,提高了代码执行效率,减小了代码的容量。经过仿真与实物验证,本系统稳定的完成所需的功能,但是设计中还有一些缺点,比如在实物中排风装置只是连接了一个较小的风扇,如果用在实际家庭则需要连接220V的排风扇。由于该系统具有体积小、功耗低、安装调试简单、可靠性高等优点,因此,该煤气泄漏监控系统有着良好的市场前景。 参考文献 [1]刘春梅.基于单片机的煤气泄漏检测与报警系统的设计[J].科技资讯,2012,02:113~114 [2]王化祥,张淑英.传感器原理及应用[M].天津:天津大学出版社,2012:220~230 [3]王泽荣,王进浩,张婷婷.室内空气质量监测与传感器的应用[J].商情,2010,17:17~17 [4]陈智文.室内煤气泄漏监控系统设计与实现[J].数控技术,2012,06:19~20 [5]李全利.单片机原理及接口技术[M].北京:高等教育出版社,2007.211~215 [6]王程研.基于AVR单片机的智能家庭测控报警系统设计[J].科技创新导报,2010,26:92~92 [7]白雪.静电纺SnO2/Al203纳米复合纤维及其气敏性研究[D].天津:天津工业大学,2010,52~55 [8]李华.智能厨房煤气监控系统[J].电脑开发与应用,2011,04:38~41 [9]江进国,王文巧.基于GSM网络的煤气泄漏自动关闭系统的设计[J].安全与环境工程,2013,20(01):121~131 [10]汪文,陈林.单片机原理及应用[M].湖北:华中科技大学出版社,2007.112~130 [11]贾艳娟,王永清.基于单片机的煤气浓度监控系统的设计[J].计算机时代,2011,05:98~99 [12]李育生,常晓明,闫晓伟.基于单片机的煤气渗漏监控系统的设计[J].山西大同大学学报,2008,03:33~35 [13]赵亮,侯国锐.单片机C语言编程与实例[M].北京:人民邮电出社,2003 [14]杜树春.基于Proteus和Keil C51的单片机设计与仿真[M].北京:电子工业出版社,2011.1~48 [15]翁嘉民.单片机应用开发技术、基于Proteus单片机仿真和C语言编程[M].北京:中国电力出版社,2010.56~68 附录 程序清单 //程序头函数 #include //显示函数 #include //宏定义 #define uint unsigned int #define uchar unsigned char #define Data_ADC0809 P1 //管脚声明 sbit LED_wendu= P2^2; sbit LED_yanwu= P2^1; sbit baojing= P2^5; sbit DQ = P2^0; //ADC0809 sbit ST=P3^3; sbit EOC=P3^6; sbit OE=P3^2; //按键 sbit Key1=P2^6; sbit Key2=P2^7; sbit Key3=P3^7; signed char w; //温度值全局变量 uint c; //温度值全局变量 bit bdata flag=0; //煤气含量变量 uchar temp; uchar yushe_wendu=50; uchar yushe_yanwu=45; //按钮模式| uchar Mode=0; //函数声明 extern uchar ADC0809(); extern void Key(); void delay(uint z) { uint i,j; for(i=0;i0;i--) { DQ = 0; // 给脉冲信号 dat>>=1; DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4); } return(dat); } /*****写一个字节*****/ void WriteOneChar(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat>>=1; } } /*****读取温度*****/ unsigned int ReadTemperature(void) { unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器 a=ReadOneChar(); //读低8位 b=ReadOneChar(); //读高8位 t=b; t<<=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; //放大10倍输出并四舍五入 return(t); } //===================================================================================== //===================================================================================== //===================================================================================== /*****读取温度*****/ void check_wendu(void) { c=ReadTemperature()-5; //获取温度值并减去DS18B20的温漂误差 if(c<0) c=0; if(c>=999) c=999; } //ADC0809读取信息 uchar ADC0809() { uchar temp_=0x00; //转化初始化 ST=0; //开始转换 ST=1; ST=0; //外部中断等待AD转换结束 while(EOC==0) //读取转换的AD值 OE=1; temp_=Data_ADC0809; OE=0; return temp_; } void Key() { //模式选择 if(Key1==0) { while(Key1==0); if(Mode>=3) Mode=0; else { write_com(0x38);//屏幕初始化 write_com(0x0d);//打开显示 无光标 光标闪烁 write_com(0x06);//当读或写一个字符是指针后一一位 Mode++; switch(Mode) { case 1: { write_com(0x80+7);//位置 break; } case 2: { write_com(0x80+15);//位置 break; } case 3: { write_com(0x38);//屏幕初始化 write_com(0x0c);//打开显示 无光标 无光标闪烁 Mode=0; break; } } } } if(Key2==0&&Mode!=0) { while(Key2==0); switch(Mode) { case 1: { yushe_wendu++; if(yushe_wendu>=99) yushe_wendu=99; write_com(0x80+6); write_data(0x30+yushe_wendu/10); write_data(0x30+yushe_wendu%10); break; } case 2: { yushe_yanwu++; if(yushe_yanwu>=255) yushe_yanwu=255; write_com(0x80+13); write_data(0x30+yushe_yanwu/100); write_data(0x30+yushe_yanwu%100/10); write_data(0x30+yushe_yanwu%10); break; } } } if(Key3==0&&Mode!=0) { while(Key3==0); switch(Mode) { case 1: { yushe_wendu--; if(yushe_wendu<=0) write_com(0x80+6); write_data(0x30+yushe_wendu/10); write_data(0x30+yushe_wendu%10); break; } case 2: { yushe_yanwu--; if(yushe_yanwu<=0) yushe_yanwu=0; write_data(0x30+yushe_yanwu%100/10); write_data(0x30+yushe_yanwu%10); break; } } } delay(200); write_com(0x38);//屏幕初始化 write_com(0x0c);//打开显示 无光标 无光标闪烁 } void main() { check_wendu(); check_wendu(); Init1602(); while(1) { temp=ADC0809(); check_wendu(); Key(); if(Mode==0) { Display_1602(yushe_wendu,yushe_yanwu,c,temp); if(temp>=yushe_yanwu) { LED_yanwu=0; baojing=0; } else { LED_yanwu=1; } if(c>=(yushe_wendu*10)) { baojing=0; LED_wendu=0; } else { LED_wendu=1; } if((temp论文
的撰写,使我系统的了解了单片机控制方面的知识,这对我以后的工作是宝贵的财富。由于作者水平有限,设计中难免有疏漏和不足之处,欢迎老师和专家指正。 P3 P0 AT89C51 P2 P1 上电复位 电源电路 排风设备 报警电路 LCD显示器 DS18B20 ADC0804 MQ-2 开始 初始化 设置温度与浓度值 执行相应的 指示控制 判断当前 浓度范围 读AD转换浓度 读取温度值 判断当前 温度范围 判断是否超 过浓度范围 判断是否超 过温度范围 执行相应的 指示控制 结束 N N Y Y 否 是 发出温度转换命令 写入18B20 读温度前复位 显示测温点位置 18B20复位 开始 18B20存在? 延时 发出读温度命令 写入18B20 读入温度值数据 返回 延时 _1234567890.unknown
/
本文档为【基于单片机的家用煤气泄漏监控系统的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索