基于单片机的可燃性气体检测仪的设计毕业论文(编辑修改稿)内容摘要:

应采用高性 8 能的单片机,要求工作稳定、测量精度高、通用性强、功耗低,保证报警器的精确性及可靠性,而且最好体积小,成本低,有利于减少报警器的体积,降低报警器的成本。 图 31 可燃性气体监测报警器结构框图 可燃性气体浓度检测报警装置的电路设计 AT89S52 单片机 AT89S52 单片机是一种低功耗高性能的 CMOS8 位微控制器,内置 8KB 可在线编程闪存。 该器件采用 Atmel 公司的高密度非易失性存储技术生产,其指令与工业标准的 80C51 指令集兼容。 片内程序存储器允许重复在线编程,允许程序存储器在系统内通过 SPI 串行口改写或用同用的非易失性存储器改写。 通过把通用的 8位 CPU 与可在线下载的 Flash 集成在一个芯片上, AT89S52 便成为一个高效的微型计算机。 它的应用范围广,可用于解决复杂的控制问题,且成本较低 [1]。 时钟电路 单片机 复位电路 温度采集电路 气体浓度采集电路 紧急报警电路 显示电路 9 图 32 AT89S52 ADC0832 的介绍 ADC0832 具有以下特点 ( 1)采用 8 位分辨率 ,也就是说是 256 个字节; ( 2) 双通道 AD转换 ,便于输入与输出; ( 3) 输入输出电平与 TTL/CMOS 相兼容 ,所以兼容性很好; ( 4)当采用 5V电源供电时, 输出 电压在 05V 之间 ; ( 5) 工作频率为 250KHz,转换时间为 32us。 10 ADC0832 与单片机接口电路 图 33 ADC0832与单片机接口电路 单片机对 ADC0832 的控制 ADC0832 与单片机的接口为 4 条数据线,分别为 CS,CLK,DO, DO,DI在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可将 DO,DI并联在一根数据线上使用。 当 ADC0832 未工作时, CS 端为高电平,芯片禁用。 CLK,DO,DI 的电平任意。 要进行转换时必须先将 CS使能端置为低电平。 DO、 DI用于输入通道功能选择数据信号。 CH0/CH1 用于输入信号。 DS18B20 测温电路 图 34 DS18B20电路 11 DS18B20的 1脚接地, 2脚数据端接单片机的 , 3脚接 VCC,为了确保 DS18B20工作可靠, 2 脚要接 10K 的上拉电阻。 发生爆炸不仅和气体浓度有关,温度也有影响,当气体浓度达到一定值后,只有达到爆炸温度限,可燃性气体才会发生爆炸。 报警电路 图 35 声光报警电路 本系统中采用蜂鸣器报警,由于单片机输出电流较小,所以用三极管 9013 驱动蜂鸣器发出声音。 与此同时,发光二极管发出光线,加强报警效果。 四位数码管显示电路 图 36 数码管显示电路 12 4 位数码管为共阳管,由于单片机输出电流比较小,故用 4 个 PNP 型的三极管9012 来驱动数码管。 单片机输出低电平时三极管导通,使数码管的 4 各公共端 5 和 12 脚为高电平,此时数码管的数据端输入低电平后数码管被点亮, 120 欧电阻 R12 到 R19 为三极管的限流电阻。 可燃性气体传感器转换电路 图 37 可燃性气体传感器 MQ2 经过 AD0832转换后接单片机口 LED 数码管 LED 数码管的引脚说明 这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有 LED 的阳极连接到共同接点,而每个 LED 的阴极分别为 a、 b、 c、 d、 e、 f、 g及 dp(小数点);共阴极则是把所有 LED 的阴极连接到共同接点,而每个 LED 的阳极分别为 a、 b、 c、d、 e、 f、 g及 dp(小数点),如下图所示。 13 图 38 共阳数码管内部结构 此次设计中采用的是共阳四位数码管,内部的 4个数码管共用 a~dp 这 8根数据线,为人们的使用提供了方便,因为里面有 4个数码管,所以它有 4 个公共端,加上 a~dp,共有 12 个引脚,下面便是一个共阳的四位数码管的内部结构图(共阴的与之相反)。 引脚排列依然是从左下角的那个脚( 1 脚)开始,以逆时针方向依次为 1~12 脚,下图中的数字与之一一对应。 图 39 4位共阳数码管内部结构 管教顺序:从数码管正面看,以第一脚为起点,管脚的顺序是逆时针方向排列。 12986 公共脚 A11 B7 C7 D2 E1 F10 G5 DP3 14 数码管编码说明 4位数码管编码说明,如 31表所示: 表 31 控制命令表 显示 ( e) ( d) ( dp) ( c) ( g) ( b) ( f) ( a) 十六进制 0 0 0 1 0 1 0 0 0 28H 1 1 1 1 0 1 0 1 1 EBH 2 0 0 1 1 0 0 1 0 32H 3 1 0 1 0 0 0 1 0 A2H 4 1 1 1 0 0 0 0 1 E1H 5 1 0 1 0 0 1 0 0 A4H 6 0 0 1 0 0 1 0 0 24H 7 1 1 1 0 1 0 1 0 EAH 8 0 0 1 0 0 0 0 0 20H 9 1 0 1 0 0 0 0 0 A0H H 0 1 1 0 0 0 0 1 61H L 0 0 1 1 0 0 0 1 3DH 1 1 1 1 0 1 1 1 F7H C 0 0 1 1 1 1 0 0 3CH 4 可燃性气体报警器的软件设计 主程序设计及流程图 主程序流程图如图 41 所示。 首先要给传感器预热三分钟,因为 MQ2型半导体电阻式可燃性气体传感器在不通电存放一段时间后,再次通电时,传感器不能立即正常采集可燃性气体信息,需要一段时间预热。 程序初始化结束后,系统进入监控状态。 AT89S52 单片机对传感器监测的可燃性气体浓度信号进行 A/D 转换、平均值法滤波、线性化处理后,将浓度值与报警限设定值相比较,判断是否报警。 同时送入段式液晶显示可燃性气体浓度值。 15 图 41 主程序流程图 主程序初始化流程图 主程序初始化流程图如图 42 所示。 给传感器预热后,程序开始执行初始化子程序,这部分实现的功能包括各种 I/O口输入输出状态的设定、寄存器初始化、中断使能等。 首先设定定时初值 50ms,利用 IAP 写入 EEPROM,作为取值间隔。 然后设置定时器 0,选择方式 1。 方式 1 状态下定时器的工作寄存器 TH TL1 是全16 位参与操作。 接下来定时器 0 中断允许位置 1,打开定时器 0,关闭蜂鸣器,开启绿灯,设置报警限初值。 开始 程序初始化 传感器预热三分钟并故障检测 A/D 转换 线性化处理 平均值法滤波 浓度显示 进入报警处理程序 是否超过报警限 结束 N Y 16 图 42 主程序初始化流程图 中位值平均滤波法数字滤波设计 在装置对环境中的可燃性气体进行检测的时候 , 不可能保证完全没有干扰的现象,偶然的波峰波谷值还是存在的,与正常值相比较差距还是比较大的 , 所以要对干扰值进行处理。 在本设计中采用的是 中位值平均滤波法数字滤波 ,避免了 一般的平均值法 将干扰带入到了结果中去 , 减少了浓度采集的误差。 中位值平均滤波法 的原理是采集环境中可燃性气体浓度的 N 个数据 , 然后找出最大值和最小值删除不用 ,计算 剩下 的 N– 2 个 采集 数据的平均值。 这种方法 大大的减小了偶然的误差,提高使 可燃性气体浓度 检测仪 的准确性。 开始 结束 设定定时初值 50ms 关闭蜂鸣器 设置定时器 0,选择方式1 打开定时器 0,中断允许 设定初值 是否保存报警初值 N Y 17 在 准确的实验验证中 中, N的值应该取的相对大一点 , 本设计为了 加快测量计算速度 和效率,在可燃性气体浓度检测仪的 设计中 N 取 值为 10。 调用 A/D 转换器连续进行 10 次采样, 然后找出 最大值和最小值 舍弃 , 最后 计算 余下 8个值的平均值, 将获得的平均值送到单片机的寄存器中。 下 图 43 所示 为 中位值平均滤波法的程序流程图。 图 43 中位值平均滤波法程序流程图 开始 设置采样次数 N=10 送入寄存器 将 10 个采样值排序 和除以 8 求平均值 求第二个到第九个值的和 调用 A/D 转换 已采样 10次 N Y 18 插值法线性化处理 设计 基于单片机的可燃性气体浓度检测仪的设计 , 在输出的电压信号都是静态模式的 , 但是在浓度与电阻值的变化 往往不是一条理想的直线 ,因此在实际应用中要对得到的曲线进行 线性化处理, 模拟出一条近似直线来代替曲线。 插值法是函数逼近的一种重要方法,是数值计算的基本课题。 本次对可燃性气体的浓度与电阻的关系就采用插值法进行线性化。 可燃性气体浓度检测仪 使用的 MQ2半导体 传感器 , MQ2 气体传感器的 电阻是随着可燃性气体浓的升高而降低的,因此输入单片机的电压 反而是增加的。 图 44为 MQ2 内置电阻的负载 电压值与可燃性气体浓度对应曲线, 由图可以看出 , MQ2负载 电压值与可燃性气体浓度之间是非线性的关系, 因此要 实时显示可燃性气体浓度 , 需要对 曲线其进行线性化处理。 在误差许可范围内,根据标定曲线形状 ,把曲线分成若干小段,对每小段分别线性化。 图 44 MQ2 负载采集电压值与可燃性气体浓度关系 根据分段线性插值法求输入单片机的某一电压值对应的可燃性气体浓度的 公式如下: 式中, N 为所分区间个数, f (x)为实际可燃性气体监测浓度, x为实际气体 19 监测浓度对应的电压值, xi 是区间的下限浓度对应电压值, xi+1 是区间的上限浓度对应电压值, f (xi)为区间下限可燃性气体浓度值, f (xi+1 )为区间上限可燃性气体浓度值。 5 代码的编写及烧写过程 代码的编写 本设计代码编写使用的是 Keil 软件 , Keil 是当前最流行的单片机开发软件,可以用它来汇编你的汇编语言源程序,编译你的 C 语言源程序,连接和重定位你的目标文件和库文件,创建 HEX文件,调试你的目标程序。 如下图 51就是用 Keil软件 编写代码的界面。 图 51 Keil软件编写代码界面 20 程序的烧写 硬件连接 将 下载线一端与计算机 USB 口相连,另一端 10PIN 插头插入目标电路板的 ISP口,然后给目标板上电 ,如下图 52 所示。 连。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。