基于51单片机室内煤气天然气泄漏警报器的设计_第1页
基于51单片机室内煤气天然气泄漏警报器的设计_第2页
基于51单片机室内煤气天然气泄漏警报器的设计_第3页
基于51单片机室内煤气天然气泄漏警报器的设计_第4页
基于51单片机室内煤气天然气泄漏警报器的设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 南 京 理 工 大 学 毕业设计说明书(论文) 作作 者者:笑嘻嘻 学学 号:号: 学习 学院学院(系系):电子工程与光电技术学院 专专 业业:电子信息工程 题题 目目: 基于 51 单片机室内煤气,天然气泄漏警 报器的设计 指导者:指导者: (姓 名) (专业技术职务) 评阅者:评阅者: (姓 名) (专业技术职务) 2012 年 6 月 张文青工程师 毕毕业业设设计计说说明明书书(论论文文)中中文文摘摘要要 随着天然气的大量使用,每一座居民大楼都被天然气所“笼罩” 。天然气的普 及给公共生活带来了方便,减少了城市的污染,提高了生活质量和效率,但是同时, 天然气也是潜在的“危险品”,一旦发

2、生大面积泄漏,处置不及时就可能引发大爆 炸,给居民的生命财产安全带来巨大的威胁。面对燃气泄漏而造成的种种事故威 胁,我们需要一个解决办法。使用天然气报警器是对付燃气无形杀手的重要手段 之一。 本论文以半导体气敏传感器和单片机技术为核心设计的气体报警器可实现声 光报警功能,是一种结构简单、性能稳定、使用方便、价格低廉、智能化的气体 报警器,具有一定的实用价值。 其中选用 MQ-2 传感器实现对气体的检测,具有灵敏度高、响应快、抗干扰 能力强等优点,而且价格低廉,使用寿命长。经 AT89C51 单片机处理,并对处理 后的数据进行分析,是否大于或等于某个预设值(也就是报警限),如果大于则会 自动启动

3、报警电路发出报警声音,反之则为正常状态,而且在此设计中我们通过 DS18B20 温度传感器和 AT89C51 单片机进行连接,将温度信号转换成单片机可识 别的数字信号,经过单片机处理并对其进行分析,最终将温度还有气体的浓度显 示在 LED 的显示管中。 关键词 气敏传感器 报警器 单片机 温度传感器 毕毕业业设设计计说说明明书书(论论文文)外外文文摘摘要要 TitleTitle Design of indoor gas 响应时 间均0 秒;感应时间均1 秒。 (3)半导体气敏传感器的原理 当半导体器件被加热到稳定状态时,气体接触半导体表面而被吸附,吸附 的分子首先在表面自由扩散,失去运动能量,

4、一部分分子被蒸发掉,另一部分 残留分子产生热分解而固定在吸附处。当半导体的功函数小于吸附分子的电子 亲和力时,则吸附分子将从器件夺得电子而变成负离子吸附,半导体表面呈现 电荷层。具有负离子吸附倾向的气体,如 O2和 NON,等被称为氧化型气体或电子 接收型气体。如果半导体的功函数大于吸附分子的离解能,则吸附分子将向器 件释放出电子,而形成正离子吸附。具有正离子吸附倾向的气体有 H2、CO,碳氢 化合物和醇类等,被称为还原型气体或电子供给型气体 半导体气敏传感器的参数 1)工作电压:5VDC 2)静态功耗:15mW 3)工作温度:1050 4)相对湿度:95% 5)初期稳定时间:3min. 6)

5、检测浓度范围:02000ppm(一氧化碳) (4)MQ-2 的相关参数 本次的设计采用的MQ-2气体传感器,MQ-2气敏传感器所使用的气敏材料是 在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃性 气体时,传感器的电导率随空气中可燃性气体浓度的增加而增大。使用简单的 电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。 (1)灵敏度特性: 图 3.1 传感器典型的灵敏度特性曲线 注:图中纵坐标为传感器的电阻比(Rs/Ro) ,横坐标为气体浓度。 Rs 表示传感器在不同浓度气体中的电阻值 Ro 表示传感器在1000ppm不同气体中的电阻值 (2)温/湿度的影响: 图

6、 3.2 传感器典型的温度、湿度特性曲线 图中纵坐标是传感器的电阻比(Rs/Ro) 。 Rs表示在含1000ppm 甲烷、不同温/湿度下传感器的电阻值 Ro表示在含1000ppm 甲烷、20/65%RH环境条件下传感器的电阻值 表3.3 传感器的相关的参数 (3)规格: (4)A.标准工作条件 符号参数名称技术条件备注 Vc 回路电压 24VDC VH 加热电压 5.0V0.2VACorDC 0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 -20-1001020304050 Rs/R0 60%RH 30%RH 85%RH B. 环境条件 C. 灵敏度特性 敏感体功耗(Ps)值:

7、Ps=Vc2Rs/(Rs+RL)2 传感器电阻(Rs)值:Rs=(Vc/VRL-1)RL (4)结构,外形 MQ-2 气敏元件的结构和外形如图 4 所示(结构 A 或 B), 由微型 Al2O3 陶瓷 管、SnO2 敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成 的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有 只针状管脚,其中个用于信号取出,个用于提供加热电流。 RL 负载电阻可调 RH 加热电阻 313 室温 PH 加热功耗 900mW 符号参数名称技术条件备注 Tao 使用温度-1050 Tas 储存温度-2070 R相对湿度小于95% R O2 氧气浓度

8、 21%(标准条件) 氧气浓度会影响灵敏度特性 最小值大于 符号参数名称 技术参数 备注 Rs 敏感体表面电阻 2K-20K (2000ppm C3H8 ) (R3000ppm/ R1000ppm C3H8) 浓度斜率0.6 标准工作条 件 温度: 202 Vc:5.0V0.1V 相对湿度: 65%5% VH: 5.0V0.1V 适用范围: 5000- 20000ppm 天然气 预热时间不少于48小时 图 3.4 MQ-2/MQ-2S 气敏元件的结构和外形 MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸 汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应

9、用 的低成本传感器。 此次的 MQ-2传感器因为在 protues 的元器件库中无法找到,然后只能利用 protel 进行设计。 元器件选择 电源采用输入 AC:220V 50Hz,输出 DC:稳压 5V 的电源变压器;烟雾传感 器 MQ2;一个 50K 的电位器;一个 1 K 的电阻;一个三脚的开关;晶体管采 部件材料 1气体敏感层二氧化锡 2电极金(Au) 3测量电极引线铂(Pt) 4加热器镍铬合金(Ni-Cr) 5陶瓷管三氧化二铝 6防爆网100目双层不锈钢 (SUB316) 7卡环镀镍铜材(Ni-Cu) 8基座胶木或尼龙 9针状管脚镀镍铜材(Ni-Cu) 图 3.4 用 9013 型号

10、;继电器采用 JRC4100F 5V 的型号;通电指示灯采用 3.5V 的淡 绿发光二极管;风扇 FAN 为 5V 的单转向小型风扇。 其原理图如下图 3.5: 图 3.5 MQ-2 原理图 电路如图 3.5 所示, MQ2 为烟雾传感器,FAN 为 5V 电机。电路采用交 流供电,220V 交流市电从插头引入电路,经电源变压器降压后变为直流,直流 电压直接供传感器 MQ2 的加热丝 H-H 工作, 加热丝给传感器 MQ2 预热一定时间后,才能正常检测烟雾。 稳压电压同时供控制电路工作,接在继电器、通电指示灯和风扇上。当 MQ2 所处的环境烟雾在允许范围内时,其两端输出电极 H-H 间导电率很

11、低, 则加在电极间两端 HH 电压很低,则输出电压升高,晶体管 9013 导通,此时 加在继电器 JRC4100F 两端的电压达到它的启动电压(V) ,继电器跳转,通 电指示灯熄灭;风扇 FAN 电路接通,风扇工作,开始吸收烟雾。风扇产生吸力 将烟雾吸入装有活性炭过滤筛的壳体,先经过一层活性炭过滤后,再经过负离 子发生器,从而除掉有害物质。过滤筛可以拆下来清理或更换,活性炭也可以 更换。当烟雾逐渐减少,传感器 MQ2 导电率升高,加在电极间两端 HH 的电 压升高,输出电压变小,晶体管 9013 截止,则继电器 JRC4100F 两端电压为 零,继电器跳转为常态,风扇 FAN 停止转动,通电指

12、示灯变亮。 注:为了使到在烟敏器件电路发生故障的时候烟灰缸还能工作,我们另外接了 一个手动的开关(如电路图中的开关 K) ,这样,当电路发生故障的时候,我们 可以手动的开启电机,一样能达到抽烟过滤的功能。 调试电路主要通过调试可变电阻 ,可以调节烟雾传感器的灵敏度,以获得 满意的烟雾浓度风扇启动点。 3.1.2 单片机的选择 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个 计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单 片机只缺少了 I/O 设备。概括的讲:一块芯片就成了一台计算机。它的体积小、 质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时

13、,学习使用单 片机是了解计算机原理与结构的最佳选择。 单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航 系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的 功效,常在产品名称前冠以形容词“智能型” ,如智能型洗衣机,各种警报 器中的应用等。 一方面它要接收来自传感器的气体浓度的模拟信号和故障检测信号,另一方 面要对两种信号分别进行处理,控制后续电路的相应工作;同时,查询是否有 键按下的命令。在单片机实现的功能中,将模数转换后的信号做数字滤波,再 进行线性化处理,这一过程的软件实现,需要单片机有较快的运算速度,使仪 表监测人员能够观测到并进行相应处理。 根据此次

14、的实验要求设计我们采用的是 51 系列的单片机,根据多方面的比 较我此次采用的是 AT89C51 的单片机。 3.1.3 AT89C51 单片机的介绍 描述 AT89C51 是一个低电压,高性能 CMOS 8 位单片机带有 4K 字节的可反复擦 写的程序存储器(PENROM) 。和 128 字节的存取数据存储器(RAM) ,这种器件采 用 ATMEL 公司的高密度、不容易丢失存储技术生产,并且能够与 MCS-51 系列的 单片机兼容。片内含有 8 位中央处理器和闪烁存储单元,有较强的功能的 AT89C51 单片机能够被应用到控制领域中。 功能特性 AT89C51 提供以下的功能标准:4K 字节

15、闪烁存储器,128 字节随机存取数 据存储器,32 个 I/O 口,2 个 16 位定时/计数器,1 个 5 向量两级中断结构,1 个串行通信口,片内震荡器和时钟电路。另外,AT89C51 还可以进行 0HZ 的静 态逻辑操作,并支持两种软件的节电模式。闲散方式停止中央处理器的工作, 能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。 掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所 有部件的工作直到下一个复位。 引脚描述 AT89C51 单片机的引脚图如下图 3.6: 图 3.6 AT89C51 引脚图 VCC:电源电压 GND:地 P0 口: P0

16、 口是一组 8 位漏极开路双向 I/O 口,即地址/数据总线复用口。作为输 出口时,每一个管脚都能够驱动 8 个 TTL 电路。当“1”被写入 P0 口时,每个 管脚都能够作为高阻抗输入端。P0 口还能够在访问外部数据存储器或程序存储 器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。P0 口在闪烁 编程时,P0 口接收指令,在程序校验时,输出指令,需要接电阻。 P1 口: P1 口一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动 4 个 TTL 电路。对端口写“1” ,通过内部的电阻把端口拉到高电平,此时可作为 输入口。因为内部有电阻,某个引脚被外部信号拉低时输

17、出一个电流。闪烁编 程时和程序校验时,P1 口接收低 8 位地址。 P2 口: P2 口是一个内部带有上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动 4 个 TTL 电路。对端口写“1” ,通过内部的电阻把端口拉到高电平,此时,可 作为输入口。因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。 在访问外部程序存储器或 16 位地址的外部数据存储器时,P2 口送出高 8 位地 址数据。在访问 8 位地址的外部数据存储器时,P2 口线上的内容在整个运行期 间不变。闪烁编程或校验时,P2 口接收高位地址和其它控制信号。 P3 口: P3 口是一组带有内部电阻的 8 位双向 I/O

18、 口,P3 口输出缓冲故可驱动 4 个 TTL 电路。对 P3 口写如“1”时,它们被内部电阻拉到高电平并可作为输入 端时,被外部拉低的 P3 口将用电阻输出电流。 P3 口除了作为一般的 I/O 口外,更重要的用途是它的第二功能,如下表 3.7 所 示: 表 3.7 AT89C51 各部分引脚的作用 端口引脚第二功能 P3.0RXD P3.1TXD P3.2INT0 P3.3INT1 P3.4T0 P3.5T1 P3.6WR P3.7RD P3 口还接收一些用于闪烁存储器编程和程序校验的控制信号。 RST: 复位输入。当震荡器工作时,RET 引脚出现两个机器周期以上的高电平将 使单片机复位。

19、 ALE/: PROG 当访问外部程序存储器或数据存储器时,ALE 输出脉冲用于锁存地址的低 8 位字节。即使不访问外部存储器,ALE 以时钟震荡频率的 1/16 输出固定的正 脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部 数据存储器时将跳过一个 ALE 脉冲时,闪烁存储器编程时,这个引脚还用于输 入编程脉冲。如果必要,可对特殊寄存器区中的 8EH 单元的 D0 位置禁止 ALE 操 作。这个位置后只有一条 MOVX 和 MOVC 指令 ALE 才会被应用。此外,这个引脚 会微弱拉高,单片机执行外部程序时,应设置 ALE 无效。 PSEN: 程序储存允许输出是外部程序存

20、储器的读选通信号,当 AT89C51 由外部程 序存储器读取指令时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此 期间,当访问外部数据存储器时,这两次有效的 PSEN 信号不出现。 EA/VPP: 外部访问允许。欲使中央处理器仅访问外部程序存储器,EA 端必须保持低 电平。需要注意的是:如果加密位 LBI 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平,CPU 则执行内部程序存储器中的指令。闪烁存储器编程时, 该引脚加上+12V 的编程允许电压 VPP,当然这必须是该器件是使用 12V 编程电 压 VPP。 XTAL1:震荡器反相放大器及内部时钟发生器的输入端。 XT

21、AL2:震荡器反相放大器的输出端。 振荡器特性: XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放 大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟 源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发 器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求 的宽度。 3.1.4 AT89C51 单片机的时钟电路 T89C51 中有一个用于构成内部震荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外 石英晶体或陶瓷谐振器一起构成自然震荡器。 外接石英晶

22、体及电容 C1,C2 接 在放大器的反馈回路中构成并联震荡电路。对外接电容 C1,C2 虽然没有十分严 格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定 性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用 30PF10PF,而如果使用陶瓷振荡器建议选择 40PF10PF。用户也可以采用外 部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。由于外部时钟信号是通过一 个 2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特 殊要求,但最小高电平持续时间和最大的低电平持续时

23、间应符合产品技术条件 的要求。 图 3.8 内部振荡电路 图 3.9 外部振荡电路 时钟电路图如下图 3.10: 图 3.10 时钟电路图 3.1.5 AT89C51 单片机的复位电路 在整个燃气报警系统中,要进行实验,必须对整个系统先复位。复位是单 片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其作用是 使 CPU 和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作, 因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的, 必须配合相应的外部复位电路才能实现。 单片机的外部复位电路有上电复位和上电和按键均有效的复位两种。我们 在设计单片机复位时,选用上

24、电复位。 上电要求接通电源后,单片机实现自动复位操作。上电瞬间 RST 引脚获得 高电平,随着电容的充电,RST 引脚的高电平将逐渐下降。RST 引脚的高电平只 要能保持足够的时间(2 个机器周期),单片机就可以进行复位操作。该电路 典型的电容参数为:晶振为 12MHZ,电容值为 1uF。 51 单片机复位电路如下图 3.11: 图 3.11 单片机复位电路图 3.2 外围接口电路的设计外围接口电路的设计 3.2.1 驱动模块的选择 对于驱动模块的选择,实验中测得 74LS245 输出高电平为 3.8V,而 74HC245 输出高电平为 5V。由于 74HC245 与 74LS245 相比较价

25、格较贵,而 74LS245 输出的 3.8V 高电平足以驱动七段显示数码管,因此设计中采用 74LS245。 由于七段显示数码管的工作电压为 2V,而 74LS245 输出高电平 3.8V,因此 限流电阻两端的电压为 1.8V。而七段显示数码管每位正常工作的电流为 2mA, 而四位七段数码管的每一个相同的位段又是并联的形式连接的,为了保证每一 位的亮度相同,因此每位段位电流应该为 8mA,即流过限流电阻的电流为 8mA。 因此限流电阻的阻值=1.8V/8mA=225 欧,故本次设计中采用 220 欧的电阻作为 限流电阻。 74LS245 的引脚图如下图 3.12: 图 3.12 74LS245

26、 引脚图 74LS245 是我们常用的芯片,用来驱动 led 或者其他的设备,它是 8 路同 相三态双向总线收发器,可双向传输数据。 74LS245 还具有双向三态功能,既可以输出,也可以输入数据。 当 8051 单片机的 P0 口总线负载达到或超过 P0 最大负载能力时,必须接入 74LS245 等总线驱动器。 当片选端/CE 低电平有效时,DIR=“0” ,信号由 B 向 A 传输;(接收) DIR=“1” ,信号由 A 向 B 传输;(发送)当 CE 为高电平时,A、B 均为 高阻态。 3.2.2 DS18B20 温度传感器的介绍 DS18B20 数字温度传感器接线方便,封装成后可应用于

27、多种场合,如管道式, 螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有 LTM8877,LTM8874 等 等。主要根据应用场合的不同而改变其外观。封装后的 DS18B20 可用于电缆沟 测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温, 弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式 多样,适用于各种狭小空间设备数字测温和控制领域。 1: 技术性能描述 、 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线 即可实现微处理器与 DS18B20 的双向通讯。 、测温范围 55+125,固有测温分辨率 0.5。 、支持多点组网功能,多个

28、 DS18B20 可以并联在唯一的三线上,最多只 能并联 8 个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造 成信号传输的不稳定。 、工作电源: 35V/DC 、在使用中不需要任何外围元件 、 测量结果以 912 位数字量方式串行传送 、不锈钢保护管直径 6 、适用于 DN1525, DN40DN250 各种介质工业管道和狭小空间设备测温 、 标准安装螺纹 M10X1, M12X1.5, G1/2”任选 、PVC 电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 DS18B20 温度传感器引脚图如下图 3.13: 图 3.13 DS18B20 引脚图 DS18B20 内

29、部结构图如下图 3.14: 图 3.14 DS18B20 内部结构图 主要由 4 部分组成:64 位 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作 是该 DS18B20 的地址序列码,每个 DS18B20 的 64 位序列号均不相同。64 位 ROM 的排的循环冗余校验码(CRC=X8X5X41) 。 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。 DS18B20 温度传感器采集温度传入单片机进行分析,最后的结果在 LED 中进行 显示。 对温

30、度部分进行仿真,可以在 DS18B20 的硬件里设计不同的温度值最后再经过 调试在 LED 中进行显示。首先在图 1 中设计温度值为 22.5,在 protues 中的仿 真结果如下图 3.15: 图 3.15 温度值设为 22.5 时的仿真图 在图 2 中设置温度值为 31.5,其结果仿真如下图 3.16: 图 3.16 温度值设为 31.5 时的仿真结果图 由上两图可以知道此次的温度传感器与单片机相连的结果是正确的。 3.2.3 声音报警电路 声音报警电路图如图所示。报警装置采用蜂鸣器较一般的蜂鸣器体积大, 声音响亮,适用于家用燃气报警器的报警声音源。当单片机 AT89C51 的 8 脚

31、(P3.7)置 1 时,三极管导通,蜂鸣器报警。 图 3.17 声音报警电路图 灯光报警由于在 PROTUES 中无法进行声音的仿真,所以此次的设计我们采 用 LED 二极管进行显示,其在 PROTUES 中的硬件连接图如下 3.18: 图 3.18 灯光报警的电路连接图 当无煤气,天然气泄漏的时候此时的 LED 即 P1.3 为高电平 5V,此时的 LED 管不发光。当有煤气,天然气泄漏的时候此时的 LED 为低电平 0V,通过模拟示 波器我们可以得到的是 LED 管脚输出为方波波形,此时的 LED 每 2S 亮灭一次。 波形图如下图 3.19: 图 3.19 LED 接口出口地方的波形图

32、3.2.4 气体检测模块和光报警电路 灯光报警电路图如图所示。单片机 AT89C51 的 1 脚(P1.0)控制输出的状态 指示灯。红灯不亮表示正常状态,环境中可燃气体浓度极低。红灯闪亮表示环 境中可燃烟雾浓度超过报警限值,提醒用户尽快采取相应安全措施。 当烟雾浓度超过报警限,报警器发出鸣叫,用户到达现场,可进行操作停 止报警器鸣叫。若过一点时间浓度仍超出报警限,报警器会再次鸣叫提醒用户。 图 3.20 报警电路图 由前面的我们提到在 protues 中没有气敏传感器的元器件,故在此次的实验 设计中我们采用的是阻值范围在 220k 欧的电阻进行替代,当没有煤气,天然 气泄漏时,此时的电阻值应该

33、在 20k 欧,此时检测出模块的输出端为高电平, 此时的 LED 发光,其仿真的结果如下图 3.21: x1 1% 20K R10 1 33% RV2 10K 3 2 1 84 U4:A LM358 R11 100K R12 10k D2 1N4001 D3 1N4001 Q2 BC338 R13 10k C4 1000u R14 2K R15 3K R11(1) R13(2) R14(2) Q2(B) D4 LED-YELLOW 图 3.21 无煤气泄漏的仿真结果图 当有煤气,天然气泄漏时,此时的阻值应该在 2k 欧,此时应该检测出模块 的输出端为低电平,此时的 LED 灯熄灭。 3.3 总

34、电路设计总电路设计 根据要求,设计中我们选用 AT89C51 单片机。AT89C51 单片机的主控电路 包括时钟电路、复位电路。两电路的接法在前面分别做了介绍,这里不再赘述。 而传感器是将非电量需要转换成与非电量有一定关系的电量。当今信息时 代,随着电子计算机技术的非速发展,自动检测,自动控制技术显露非凡的能 力,而大多数设备只能处理电信号,也就需要把被测,被控非电量的信息通过 传感器转换成电信号。可见,传感器是实现自动检测和自动控制的首要环节。 没有传感器对原始信息进行精确可靠的捕捉和转换,就没有现代自动检测和自 动控制系统。没有传感器就没有现代科学技术的迅速发展。设计中,传感器我 们选择的

35、是MQ-2型气体传感器连接在A/D转换器的输入接口。 我们将主控电路和外围接口电路(AT89C51与A/D转换器的接口电路、 AT89C51与声光报警电路)连接起来,就得到了基于AT89C51的气体报警总电路 图。 当外部环境(气体浓度)达到一定值时,气体传感器就会产生模拟电压, 将它作为输出的模拟信号经 ADC0808 转换器转换为 AT89C51 单片机所能识别的 数字电压量。通过检测信号。当有信号输入时,经程序设定就会驱动 AT89C51 单片机的 P1.7 和 P1.0。而 P1.7 和 P1.0 是与声光报警电路相连接的。 综上所述,得出总电路图如图 3.22 所示: 图 3.22

36、燃气报警系统总电路图 4 燃气泄漏报警系统的软件部分设计燃气泄漏报警系统的软件部分设计 4.1 主程序设计流程与编程主程序设计流程与编程 C 语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具 备汇编语言的功能。C 语言有功能丰富的库函数、运算速度快、编译效率高、 有良好的可移植性,而且可以直接实现对系统硬件的控制。C 语言是一种结构 化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计 技术。此外,C 语言程序具有完善的模块程序结构,从而为软件开发中采用模 块化程序设计方法提供了有力的保障。因此,使用 C 语言进行程序设计已成为 软件开发的一个主流。用 C 语言来

37、编写目标系统软件,会大大缩短开发周期, 且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更 完备的系统,用 C 语言进行单片机程序设计是单片机开发与应用的必然趋势。 所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好 能够掌握基本的 C 语言编程。使用 C 语言肯定要使用到 C 编译器,以便把写好 的 C 程序编译为机器码,这样单片机才能执行编写好的程序。 4.1.1 主程序设计流程图 主程序流程图如图所示。首先要给传感器预热三分钟,因为 MQ-2 型半导体 电阻式气体传感器在不通电存放一段时间后,再次通电时,传感器不能立即正 常采集烟雾信息,需要一段时间预

38、热。程序初始化结束后,系统进入监控状态。 本论文的主程序设计先对传感器预热三分钟,预热同时,对传感器加热丝故障 检测,采用软件方式检测传感器加热丝或电缆线是否断线或者接触不良。 AT89C51 单片机对传感器检测的气体浓度信号进行 A/D 转换,将浓度值与 报警限设定值相比较,判断是否报警。主程序还包括状态指示灯及声音报警功 能设置,使报警器功能更加完善,给用户带来便利。主设计流程如图 4.1.1 系统初始化 程序开始 采集传感器电压 处理传感器电压 判断天然气 浓度是否超标 发出声光报警 图 4.1 主程序流程 4.1.2 主程序的编程 #include #include #define u

39、char unsigned char #define uint unsigned int sbit DQ=P10;/定义 18B20 数据线引脚 sbit LED=P13; sbit input=P11; unsigned char flag;/负数标志 /行扫描数组 uchar code scan4=0 xef,0 xf7,0 xfb,0 xfd; /数码管显示的段码表 uchar code table13=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x40,0 x3 9,0 x00;/,-,C,kong /小数

40、部分显示查询表 uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x0 7,0 x08,0 x08,0 x09,0 x09; uchar dispbuf8;/显示缓冲区 uchar temper2;/存放温度数组 uchar TCNT; /* /延时函数 /* void delay (unsigned int us) while(us-); /* /DS18B20 复位函数 /* void reset(void) uchar x=0; DQ=1; delay(80); D

41、Q=0; delay(80); DQ=1; delay(14); x=DQ; delay(20); /* /DS18B20 中读一个字节 /* uchar readbyte(void) uchar i=0; uchar dat=0; for(i=8;i0;i-) DQ=0; dat=1; DQ=1; if(DQ) dat|=0 x80; delay(4); return (dat); /* /向 DS18B20 中写 1 个字节 /* void writebyte(unsigned char dat) uchar i=0; for(i=8;i0;i-) DQ=0; DQ=dat delay(5

42、); DQ=1; dat=1; dealy(4); /* /向 DS18B20 中读取实时温度值 /* void readtemp(void) uchar a=0,b=0; reset(); writebyte(0 xCC);/跳过序列号 writebyte(0 x44);/启动温度转换 reset(); writebyte(0 xCC);/跳过序列号 writebyte(0 xBE);/读 9 个寄存器,前 2 个为温度 a=readbyte();/低位 b=readbyte();/高位 if(b0 x0f) /判断是否为负值 a=a+1; if(a=0) b=b+1; else b=b;

43、flag=10; else flag=12; temper0=a a=a4; temper1=b4; temper1=temper1|a; /* /动态扫描显示函数 /* void scandisp() unsigned char i,value; for(i=0;i4;i+) P3=0 xff; value=tabledispbufi; if(i=2) value|=0 x80; P2=value; P3=scani; dealy(90); /* /定时中断函数 /* void Timer0(void)interrupt 1 using 1 TH0=(65536-50000)/256; TL

44、0=(65536-50000)%256; TCNT+; if(TCNT=6) TCNT =0; LED=LED; /* /主函数 /* void main() uchar temp,temp1; TCNT=0; TMOD=0 x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; IE=0 x82; while(1) if(input=0) TR0=1; else TR0=0; LED=1; readtemp(); temp1=temper0; temp=temper1; dispbuf3=ditabtemp1; dispbuf2=temp%10;

45、 temp=temp/10; dispbuf1=temp%10; dispbuf0=flag; scandisp(); 4.2 程序调试程序调试 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软 件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有 明显的优势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体 会到 Keil C51 生成的目标代码效率非常之高,多数

46、语句生成的汇编代码很紧凑, 容易理解。在开发大型软件时更能体现高级语言的优势。KEILC51 标准 C 编译 器为 80C51 微控制器的软件开发提供了 C 语言环境,同时保留了汇编代码高效, 快速的特点。C51 编译器的功能不断增强,更加贴近 CPU 本身,及其它的衍生 产品。C51 已被完全集成到 uVision2 的集成开发环境中,这个集成开发环境包 含:编译器,汇编 器,实时操作系统,项目管理器,调试器。uVision2 IDE 可为它们提供单一而灵活的开发环境。 4.2.1 程序调试的步骤 (1) 源文件的建立:使用菜单 “新建文件”或者点击工具栏的新建文件按 钮,即可在项目窗口的右

47、侧打开一个新的文本编辑窗口,在该窗口中输入 C 语 言源程序。保存该文件,加上扩展名(.c),这里将文件保存为 gas.c。 (2)建立工程文件:点击“工程-新建工程”菜单,出现一个对话框,要 求给工程起一个名字,我们输入天燃气,不需要扩展名,点击保存按钮,出现第 二个对话框。这个对话框要求选择目标 CPU(即我们所使用的芯片型号 AT89C51)点击 ATMEL 前面的“+”号,展开该层,点击其中的 AT89C51,然后 点击确定按钮。回到主界面,此时,在工程窗口的文件页中,出现了“目标 1”,前面有 “+”号,点击“+”展开,可以看到下一层的“源代码组 1”,这 时的工程还是一个空工程,里

48、面什么文件也没有,需要手动把刚才编写好的源 程序加入,点击“源代码组”使其反白显示,然后,点击鼠标右键,出现一个 下拉菜单。选中其中的“添加文件到原目标 1 的对话框,要求寻找源文件,注 意该对话框下面的“文件类型“默认为 C Souce file (*.c),也就是以 C 为扩 展名的文件。双击燃气.c 文件,将文件加入项目,注意,在文件加入项目后, 该对话框并不消失,等待继续加入其他文件,但初学时常会认为操作没有成功 而再次双击同一文件,这时会出现对话框,提示你所选的文件以在列表中,此 时点击确定,返回前一对话框,然后,点击”关闭”即可返回主界面,返回后, 点击“源程序 1”前的加号,会发

49、现 gas.c 文件以在其中。双击文件名,即打 开源程序。 (3)工程的详细设置:首先点击左边工程窗口的目标 1,然后使用菜单 “工程-为所有目标建立文件”即出现对工程设置的对话框,对这个对话框可 谓非常复杂,共有 8 个页面,要全部高清可不容易,好在绝大部分设置项取默 认值就行了。设置完成以后安确认返回主界面,工程建立、设置完毕。 (4)编译、连接:在设置好工程后,既可以进行编译、连接。选择菜单工 程编译程序,对当前工程进行连接,如果当前文件已修改软件会先对该文件进行 比阿尼,然后在连接以产生目标代码。编译过程中的信息将出现在输出窗口中 的编译页中,如果源程序有语法错误,会有错误报告出现,双

50、击该行,可以定 到出错的位置,对源程序反复修改后,最终会得到如图 5-1 所示的结果,提示 获得了名为 gas.hex 的文件,该文件即可被编程器读入并写到芯片中,同时还 产生了一些其他相关文件可被用于 KEIL 的仿真与调试。最后编译建立所有目标 的结果如图 4.2.1 所示。 图 4.2 在 keilc 编译出结果 4.2.2 程序调试过程中的问题及解决 在进入环境以后,有时会遇到了些问题,总结如下: (1)在进入 Keil 的调试环境以后,发现程序有错 解决方法:将光标定位于需要修改的程序上,用菜单,DebugInline Assambly即可出现对话框,Enter New 后面的编辑框

51、内直接输入需要修改的 程序语句,输入完之后键入回车将自动指向下一条语句,可以继续修改,如果 不在需要修改,可以点击右上角的关闭按钮关闭窗口。 (2)汇编出现数字、字母混淆 解决方法:字母“O” 和 数字 “0”的混淆 (3)程序调试时,一些程序必须满足一定的条件才能被执行到 解决方法:这些条件往往是异步发生或难以预先设定的,这类问题使用的 单步实行方法是很难调试的,这时就要使用程序调试中的另一种非常重要是方 法-断点设置。断点设置的方法有多种,常用的是在某一程序行设置断点,设 置好断点后可以全速运行程序,一旦执行到该程序行即停止,可在此观察有关 变量值,以确定问题所在。在程序行设置/移除断点的

52、方法是将光标定位于需要 设置断点的程序行,使用菜单 Debug/Insert/RemoveBreakPoint 设置或移除断 点(也可以用鼠标在该行双击实现同样的功能);Debug/Enable/Disable BreakPoint 是开启或暂停光标所在懂行的断点功能;Dubug/Disale All BreakPoint 暂停所有断点;Debug/Kill All BreakPoint 清除所有的断点设置。 这些功能也可以用工具条上的快捷键进行设置。 (4)输入程序时,有中文标点,用 keil 编译时出现错误 解决方法:程序里有带中文标点,用英文重输入一遍。 结论结论 气体检测报警器可保障生产与生活的安全,避免火灾和爆炸事故以及煤气 中毒的发生,它是防火、防爆和安全生产所必备的仪器,具有广阔的市场空间 与发展前景。 本论文在对气体传感器和报警技术进行深入研究的基础上,全面比较国内 外同类产品的技术特点,合理地确定系统的设计方案。并对仪器的整体设计和 各个组成部分进行了详细的分析和设计。 本论文设计的气体报警器由气体信号采集电路与单片机控制电路两大部分 构成。 根据设计要求、使用环境、成本等因素,选用 MQ-2 型半导体电阻式气体传 感器。该传感器是对以烷类气体为主的多种气体有良好敏感特性的广谱

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论