基于C51单片机的多气体检测系统设计

2014-11-13来源: 21ic关键字:AT89C51  ADC0809  气体检测

  气体传感器是一种能将气体种类及其与浓度有关的信息转换成电气信号的装置。根据这些电气信号的强弱就可以获得与待测气体在环境中存在情况有关的信息,从而可以进行检测、监控、报警。因此由气体传感器与模式识别系统构成的智能化气味识别仪器有着广泛的应用领域,如食品工业、化学工业、环境监测、医学诊断、安全检查等,越来越受到广泛关注。

  传统的气体检测大多采用单气体检测方式, 即每测量一种气体需要一种测量仪表。用一种仪器能够进行多种气体的检测和识别是气体检测仪的发展趋势,而本设计采用酒精传感器、甲烷传感器、一氧化碳传感器等多种气体传感器组成传感器阵列,通过传感器阵列能把气体中的特定成分检测出来,并将其转化为电信号,然后采用ADC0809 将传感器输出的模拟信号转换为数字信号,运用AT89C51 进行数据处理和计算,并通过LED 显示气体种类和浓度信息,这样就实现了对多种气体的定性识别和检测。

  1 硬件电路设计

  本设计硬件电路由数据采集、数据转换、数据处理、结果显示和报警等部分组成,涉及的芯片有AD0809 模数转换芯片、AT89C51单片机、SUN7474频率发生器以及一些气体传感器、驱动电路、复位电路和LED 显示模块。系统的功能框图如图1 所示。

 

  图1 系统功能框图

  图1 系统功能框图

 

  1.1 气体传感器阵列

  气体传感器阵列是电子嗅觉系统的关键组成单元,相当于初级嗅觉神经元,由具有广谱响应特性、交叉灵敏度较大、对不同气味/气体有不同灵敏度的气敏元件组成。

  气体传感器是组成气体传感器阵列的核心器件。气体传感器是一种把气体中的特定成分检测出来,并将其转化为电信号的器件。通常,气体传感器阵列可以采用数个单独的气体传感器组合而成,并采用集成工艺制作,体积小,功耗低,便于信号的集中采集与处理。单个气体传感器与传敏阵列在特性上有质的区别,单个气体传感器对气味/ 气体的响应可用强度来表示,而气敏传感器阵列除了各个传感器的响应外,在全部传感器组成的多维空间中形成响应模式,在环境条件一定的情况下,阵列上的响应模式与其激励是一一对应的,而这正是该系统能对多种气味和气体进行辨识的关键所在。

  本设计要求实现对酒精、甲烷、一氧化碳气体的定性和定量分析,首先最重要的工作是选择合适的传感器,通过对性能、可实现性、价格等的对比,针对酒精气体,选择的是MQ-303A酒精传感器,针对甲烷气体,采用的是MQ-4 半导体气体传感器,针对一氧化碳气体,选择的是V-40 一氧化碳传感器,由这三种传感器组成传感器阵列。

  该设计通过气体传感器阵列采集气体信息,并将采集到的信息转化为电信号,然后送到ADC0809 进行模数转换。

  1.2 数据采集和数据处理系统

  由气体传感器阵列输出的微弱电信号,经各自信号放大电路对信号进行预处理,使其转换为O ~5V 范围内变化的直流信号,送到A/D 转换电路变换为数字信号,对其进行数据采集处理。

  为了方便与89C51 单片机的连接,本系统选用ADC0809芯片对采集到的气体信息进行模数转换。其分辨率为8 位,不必进行零点和满度调整,且具有高阻抗斩波稳定比较器,8个通道的多路开关可直接存取8 个单端模拟信号中的一个。利用单片机写启动A / D 转换器,转换结束后再由ADC0809 向89C51 发出中断请求信号,CPU 响应中断请求。通过对译码器的读操作,读取转换结果并送到被测量的相应存储区。再重新选择被测量,并再次启动A/D转换后中断返回。ADC0809与单片机89C51 连线线路如图2 所示。

 

  图2 ADC0809 与89C51 的连线线路

  图2 ADC0809 与89C51 的连线线路

 

  微处理器采用的是AT89C51 芯片。

  89C51 单片机是ATMEL、PHILIPS和SST等公司生产的与80C51 兼容的低功耗、高性能8 位单片机,具有比8031 更丰富的硬件资源,特别是其内部增加的闪速可电改写的存储器Flash ROM给单片机的开发及应用带来了很大的方便,且芯片价格非常便宜。在该系统中89C51 主要对采集数据进行处理,按各种气体浓度的数学模型计算出其浓度,由数码管显示其相应的气体种类及浓度值,当浓度超标时,进行报警。

  该系统还采用了分频器SUN7474.分频器对脉冲信号进行2的n次方分之一的分频,例如把32768HZ 的脉冲信号变成1HZ的秒信号。通常利用T触发器实现,每来一个脉冲后触发器状态改变一次,经过n个T触发器处理后就可以得到2的n次方分之一的分频信号。89C51接12MHZ晶振,经ALE端后输出到分频器为2MHZ,分频器进行分频后为ADC0809 提供所需的工作时钟。

  1.3 显示电路

  在该设计中,LED 显示器的显示方法采用动态显示。LED 动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,在选通相应LED后,即在显示字段上得到显示字形码。这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。本设计中处理结果采用4位LED显示,首位显示气体类别,后3 位显示气体浓度。逐位轮流点亮各个LED,每一位保持1ms,在10~20ms 之内再一次点亮,重复不止。这样利用人的视觉停留,好像4 位LED 同时点亮一样。

  综上可得,基于单片机的多气体检测系统的数据采集、数据处理及结果显示电路如图3。

 

  图3 多气体检测系统电路

  图3 多气体检测系统电路[page]

 

  2 软件设计

 

  本设计由数据采集、数据转换、数据处理、显示和报警几个模块组成。

  主程序流程图为图4。

 

  图4 主程序流程图

  图4 主程序流程图

 

  AD0809 部分程序流程图为图5。

 

  图5 AD0809 部分程序流程图

  图5 AD0809 部分程序流程图

 

  显示子程序流程图如图6。

 

  图6 显示子程序流程图

  图6 显示子程序流程图

  结语

  本文介绍了进行多气体分析的电子嗅觉系统的硬件结构和软件设计。在本设计中采用多传感器组成传感器阵列,可针对多种不同气体进行信息采集、信息转换和数据处理,最后显示气体种类和浓度信息,为多种气体的检测提供了一种切实可行的解决方案。

关键字:AT89C51  ADC0809  气体检测 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/2014/1113/article_17110.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于J2ME的脉搏波测量系统设计原理
下一篇:C8051F30x单片机低成本射频读卡器方案

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

AT89C51通过74HC595锁存器控制流水灯
先上图如图,通过单片机P2^0,P2^1,P2^3将控制信号通过锁存器传输到LED,从而实现流水灯小程序。主程序如下:#include<reg51.h>#include<intrins.h>#include<74HC595.H>void Delay1ms() //@11.0592MHz  { unsigned char i, j;  _nop_(); i = 2; j = 199; do { while (--j); } while (--i);} void delays(unsigned t) //delay 500ms{ t=500*t
发表于 2020-05-04
AT89C51通过74HC595锁存器控制流水灯
单片机特殊功能寄存器表(AT89C51)
AT89C51共21个特殊功能寄存器,按其使用功能可分为5类:ØCPU控制寄存器:ACC、B、PSW、SP、DPL、DPH;Ø中断控制寄存器:IP、IE;Ø定时器/计数器:TMOD、TCON、TL0、TH0、TL1、TH1;Ø并行I/O口:P0、P1、P2、P3;Ø串行口控制:SCON、SBUF、PCON。程序状态寄存器PSW位序号D7D6D5D4D3D2D1D0位符号CYACF0RS1RS0OV--P描  述进位借位、辅助进位用户标志位工作寄存器组溢出标志--奇偶校验 中断优先级寄存器IP位序号D7D6D5D4D3D2D1D0位符号------PSPT1PX1PT0PX0描  述
发表于 2020-01-13
AT89C51单片机十字路口交通灯设计
制作出来的实物图如下: 这是一个十字路口的交通灯设计仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) keil单片机源程序如下:#include<include.h>sbit NS_GRE = P2^5;      sbit NS_YEL = P2^4; sbit NS_RED = P2^3;   sbit EW_GRE = P2^2;  sbit EW_YEL = P2^1;  sbit EW_RED = P2^0;   uint8  EW_Timer = unused8; &
发表于 2019-12-03
AT89C51单片机十字路口交通灯设计
基于AT89c51密码锁设计
;                         钟,防止他人的非法操作*/#include"reg51.h"        #include"intrins.h"#define uint unsigned int#define uchar unsigned char#define ulong unsigned longsbit bj = P3^0;              
发表于 2019-12-02
基于AT89c51密码锁设计
NRF24L01的使用方法和简单操作介绍(附参考程序)
; 这个是经过实际程序测试出来的,比如以下程序:#include<reg51.h>#define k 0xfevoid main(){P1=k;}则会出现此类结果:MOSI = (uchar & 0x80);         // output 'uchar', MSB to MOSI                            uchar = (uchar <
发表于 2019-11-29
NRF24L01的使用方法和简单操作介绍(附参考程序)
AT89C51单片机对直流电动机的驱动仿真加汇编语言源程序
电机驱动仿真原理图如下单片机汇编语言源程序如下:ADC                EQU                35HCLOCK        BIT                P2.4                       &
发表于 2019-11-27
AT89C51单片机对直流电动机的驱动仿真加汇编语言源程序
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved