基于单片机的酒精检测仪的设计

更新时间:2024-06-03 22:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

酒精浓度检测仪的设计

一、前言

对气体中酒精含量进行检测的设备有五种基本类型,即:燃料电池型(电化学)、半导体型、气体色谱分析型、红外线型、比色型。但由于价格和使用方便的原因,常用的只有燃料电池型和半导体型两种。

燃料电池作为一种发电装置,它的原理是将存在于燃料与氧化剂中的化学能直接转化为电能。当前各国家都在广泛研究环保型能源,因为它直接可以把可燃气体转变成电能,并且不产生污染,酒精传感器只是燃料电池的一方面应用。与半导体型的相比,燃料电池型呼气酒精检测仪有很多优势,即稳定性好,精度高,抗干扰性好。但是燃料电池酒精传感器的结构要求非常精密,制造难度相当大,并且材料成本高,价格昂贵。

如今的酒精浓度检测仪都是采用可替代吹管,酒精仪从传统的机械检测或酒精计到现在的利用传感器和单片机核心技术的酒精浓度检测仪是在技术上是一大突破,提高了检测酒精的精确度,社会公共安全系数也大大的提高。

但是现在大部分一般的酒精浓度检测仪价格低的灵敏度低,准确度高的售价也比较昂贵,并且大多只是对结果进行预警、低报、高报三限报警点设置。为了得到准确的浓度数值,在LED 显示酒精浓度数值上应实现普及。同时很多其他气体会可能会对检测的结果产生影响,从而影响准确度,所以在传感器的腐蚀性以及排除其他干扰的能力上也待提升。现在大多都是对气体浓度或液体浓度的单一检测,最好是能解决一个检测仪能同时对酒精的气体和液体两种状态下的检测。

本课题分为两部分:硬件设计部分和软件设计部分。硬件部分为利用MQ3气敏传感器测量空气中酒精浓度,并转换为电压信号,经A/D转换器转换成数字信号后传给单片机系统,由单片机及其相应外围电路进行信号的处理,显示酒精浓度值以及超阈值声光报警。程序采用模块化设计思想,各个子程序的功能相对独立,便于调试和修改。而硬件电路又大体可分为单片机小系统电路、A/D转换电路、声光报警电路、LED显示电路,按键电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍。

二、酒精测试仪总体方案设计

2.1 酒精浓度检测仪设计要求分析

设计的酒精浓度测试仪应具有如下特点:

(1)数据采集系统以单片机为控制核心,外围电路带有LED显示以及键盘响应电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程。

(2)系统具有低功耗、小型化、高性价比等特点。

(3)从便携式的角度出发,系统成功使用了数码管显示器以及小键盘。由单片机系统控制键盘和LED显示来实现人机交互操作,界面友好。 (4)软件设计简单易懂。 2.2 酒精浓度检测仪设计方案

设计时,考虑酒精浓度是由传感器把非电量转换为电量,传感器输出的是0-5伏的电压值且电压值稳定,外部干扰小等。因此,可以直接把传感器输出电压值经过A/D转换器转换得到数据送入单片机进行处理。此外,还需接人LED显示,4*4键盘,报警电路等。

其总体框图如图2-1所示。

声光报警电路 被测 环境 气敏 传感器 A/D转换电路 单片机 LED显示 键盘

图2-1 基本工作原理图

三、硬件设计

3.1 传感器的选择

本系统直接测量的是呼气中的酒精浓度,再转换为血液中的酒精含量浓度,故采用气敏传感器。考虑到周围空气中的气体成分可能影响传感器测量的准确性,所以传感器只能对酒精气体敏感,对其他气体不敏感,故选用MQ3型气敏传感器。其有很高的灵敏度、良好的选择性、长期的使用寿命和可靠的稳定性。MQ3型气敏传感器由微型Al2O3,陶瓷管和SnO2敏感层、测量电极和加热器构成的敏感元件固定在塑料或不锈钢的腔体内,加热器为气敏元件的工作提供了必要的工作条件。传感器的标准回路有两部分组成。其一为加热回路,其二为信号输出回路,它可以准确反映传感器表面电阻值的变化。传感器的表面电阻RS的变化,是通过与其串联的负载电阻RL上的有效电压信号VRL输出面获得的。负载电阻RL可调为0.5-200K。加热电压Uh为5v。上述这些参数使得传感器输出电压为0-5V。MQ3型气敏传感器的结构和外形、标准回路、传感器阻值变化率与酒精浓度、外界温度的关系图如图3-3所示。为了使测量的精度达到最高,误差最小,需要找到合适的温度,一般在测量前需将传感器预热5分钟。

2

图3-1 MQ3 结构和外形

图3-2 MQ3 结构图

图3-3 传感器阻值变化率与酒精浓度、外界温度之间的关系

3

3.2 A/D转换电路

在单片机应用系统中,被测量对象的有关变化量,如温度、压力、流量、速度等非电物理量,须经传感器转换成连续变化的模拟电信号(电压或电流),这些模拟电信号必须转换成数字量后才能在单片机中用软件进行处理。实现模拟量转换成数字量的器件称为A/D转换器(ADC)。

A/D转换器大致分有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近型A/D转换器,精度、速度、价格适中;三是∑-△A/D转换器。

该设计中选用的是ADC0809属第二类,是8位A/D转换器。0809具有8路模拟信号输入端口,地址线(23-25脚)可决定那一路模拟信号进行A/D转换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2μs的高电平脉冲时,就开始A/D转换。7引脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许端,当OE脚为高电平时,A/D转换数据输出。10脚为0809的时钟输入端。 3.2.1 ADC0809的引脚及功能

逐次比较型A/D转换器在精度、速度、和价格上都适中,是最常用的A/D转换器件。芯片采用的是ADC0809,以下介绍ADC0809的引脚及功能。芯片如图3-4所示。

图3-4 ADC0809的引脚

ADC0809是一种逐次比较式8路模拟输入、8位数字量输出的A/D转换器。由图可见,ADC0809共有28个引脚,采用双列直插式封装。主要引脚功能如下:

⑴ IN0-IN7是8路模拟信号输入端。 ⑵ D0-D7是8位数字量输入端。

⑶ A、B、C与ALE控制8路模拟通道的切换,A、B、C分别与3根地址线或数据线相连,3位编码对应8个通道地址端口。

需要注意的是:ADC0809虽然有8路模拟通道可以同时输入8路模拟信号,但每个

4

瞬间只能换1路,共用一个A/D转换器进行转换,各路之间的切换由软件改变C、A、B引脚上的代码来实现。地址锁存与译码电路完成对 A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,图3-5为通道选择表。

图3-5 通道选择表

⑷ OE、START、CLK为控制信号端,OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。

⑸ VR(+)和VR(-)为参考电压输入端。 3.2.2 ADC0809的结构及转换原理

ADC0809的结构框图如图3-6。ADC0809采用逐次比较的方法完成A/D转换的,由单一的+5V电源供电。片内有锁存功能的8路选1的模拟开关,由C、B、A引脚的功能来决定所选的通道。0809完成一次转换需100μs左右,输出具有TTL三态锁存缓冲器,可直接连接到MCS-51的数据总线上。

通过适当的外接电路,0809可对0-5V的模拟信号进行转换。

5

START CLK

IN7 8 路模…. 拟量开 IN0

关 EOC 8位A/D三态输D0 转换出锁存. 器 器 . C . B 地址锁D7 A 存与密ALE

码 VCC GND VR(+) VR(-) OE 图3-6 ADC0809的结构框图

3.2.3 ADC0809连线图

ADC0809与单片机的连线图如图3-7:

6

图3-7 ADC0809的连线图

3.3 89C51单片机系统

单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个虽小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。 3.3.1 单片机片内结构

51单片机的片内结构如图3-8所示。它把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。按功能划分,它有如下功能部件组成:

⑴ 微处理器(CPU)。 ⑵ 数据存储器(RAM)。 ⑶ 程序存储器(ROM/EPROM)。

7

⑷ 4个8位并行I/O口(P0口、P1口、P2口、P3口)。 ⑸ 一个串行口。

⑹ 2个16位定时器、计数器。 ⑹ 2个16位定时器、计数器。 ⑺ 中断系统。

⑻ 特殊功能寄存器(SFR)。

8 XTAL1 XTAL2 CPU (运算器) (控制器) 数据存储器 RAM P0 P2 8 程序存储器 ROM/EPROM P1 串 行 口 定时器/计数器 中断系 统 特殊功能寄存器 (SFR) P3 8 ALE PSEN EA 8 RESET 图3-8 51单片机片内结构

上述功能部件都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但CPU对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。

从硬件角度来看,与MCS-51指令完全兼容的新一代AT89CXX系列机,比在片外加EPROM才能相当的8031单片机抗干扰性能强,与87C51单片机技能相当,但功耗小。程序修改直接用+5V或+12V电源擦除,更显方便、而且其工作电压放宽至2.7V-6V,因而受电压波动的影响更小,而且4K的程序存储器完全能满足单片机系统的软件要求,故AT89C51单片机是构造本检测系统的更理想的选择。 3.3.2 89C51芯片介绍

掌握MCS-51单片机,应首先了解MCS-51的引脚,熟悉并牢记各引脚的功能,MCS-51系列中各种型号芯片的引脚是互相兼容的。制作工艺为HMOS的MCS-51的单片机都采用40只引脚的双列直插封装方式,如图3-9所示。

8

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST (RXD) P3.0(TXD) P3.1(INT0) P3.2(INT1) P3.3T0 P3.4T1 P3.5(WR) P3.6(RD) P3.7XTAL1XTAL2GNDVccP0.0 (AD0)P0.1 (AD1)P0.2 (AD2)P0.3 (AD3)P0.4 (AD4)P0.5 (AD5)P0.6 (AD6)P0.7 (AD7)EA/VPPALE/PROGPSENP2.7 (A15)P2.6 (A14)P2.5 (A13)P2.4 (A12)P2.3 (A11)P2.2 (A10)P2.1 (A9)P2.0 (A8)PDIP

图3-9 AT89C51芯片管脚图

40只引脚按其功能来分,可分为如下3类: ⑴ 电源及时钟引脚:Vcc、Vss、XTAL1、XTAL2。

电源引脚接入单片机的工作电源。Vcc接+5V电源,Vss接地。

时钟引脚XTAL1、XTAL2外接晶体与片内的反相放大器构成了1个晶体振荡器,它为单片机提供了时钟控制信号。2个时钟引脚也可外接独立的晶体振荡器。XTAL1接外部的一个引脚。该引脚内部是一个反相放大器的输入端。这个反相放大器构成了片内振荡器。如果采用外接晶体振荡器时,此引脚接地。XTAL2接外部晶体的另一端,在该引脚内部接至内部反相放大器的输出端。若采用外部时钟振荡器时,该引脚接受时钟振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。

⑵ 控制引脚:PSEN、ALE、EA、RESET(RST)。此类引脚提供控制信号,有的还具有复用功能。

① RST/VPD引脚:RESET(RST)是复位信号输入端,高电平有效。当单片机运行时,在此引脚加上持续时间大于2个机器周期(24个振荡周期)的高电平时,就可以完成复位操作。在单片机工作时,此引脚应为≤0.5V低电平。VPD为本引脚的第二功能,即备用电源的输入。当主电源发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,以保证片内RAM的信息不丢失,从而使单片机在复位后能正常进行。

② ALE/ PROG引脚:ALE引脚输出为地址锁存允许信号,当单片机上电正常工作后ALE引脚不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器锁存的锁存控制信号。即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率为时钟振荡器频率的1/6。 PROG为该引脚的第二

9

功能。在对片内EPROM型单片机编程写入时,此引脚作为编程脉冲输入端。

③ PSEN引脚:程序存储器允许输出控制端。在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为读外部程序存储器的选通信号。此引脚接外部程序存储器的OE(输出允许端)。

④ EA/VPP引脚:EA功能为片内程序存储器选择控制端。当EA引脚为高电平时,单片机访问片内程序存储器,但在PC值超过0FFFH时,即超出片内程序存储器的4KB地址范围时将自动转向执行外部程序存储器内的程序。当EA引脚为低时,单片机只访问外部程序存储器,不论是否有内部程序存储器。

⑶ I/O口引脚:P0、P1、P2、P3,为四个8位I/O口的外部引脚。P0口、P1口、P2口、P3口是3个8位准双向的I/O口,各口线在片内均有固定的上拉电阻。当这3个准双向I/O口作输入口使用时,要向该口先写1,另外准双向口I/O口无高阻的“浮空”状态。

由于单片机具有体积小、质量轻、价格便宜、耗电少等突出特点,所以本系统采用89C51单片机,硬件设计电路图如图1所示。89C51内部有4KB的EPROM,128字节的RAM,所以一般都要根据所需存储容量的大小来扩展ROM和RAM。本电路EA接高电平,没有扩展片外ROM和RAM。 3.3.3 晶振电路和复位电路

电路图如下:

图3-10 晶振与复位电路

3.4 LED显示电路

LED显示有静态显示和动态显示两种显示方式。本设计使用并行输入硬件译码静态显示电路,静态显示电路中,各位可独立显示,只要在该位的段码线上保持段码电平,该位就能保持相应的显示字符。电路中采用了锁存译码器MC14495将P1口低4位输出的BCD码译成七段字型码,利用P1口高四位做为各锁存译码器的所存信号,实现稳定

10

显示。LED使用的是共阴极7段数码管。

数码管显示电路如下

图3-11 数码管显示电路

3.5键盘电路

键盘有两种工作方式:编码式键盘和非编码式键盘。处理方式有扫描法和线反转法。本设计采用的是非编码键盘,并利用扫描法处理按键,消抖由软件实现。 键盘扫描电路图3-12:

图3-12 按键电路

3.6报警电路

11

报警电路图3-13:

图3-13 报警电路

四、软件设计

4.1 主程序框图

主程序流程图如下图4-1所示。 开始 初始化

LCD显示子程序 键盘扫描子程序 A/D转换子程序 数据处理子程序 N

大于阈值? Y

声光报警 图4-1 主程序框图

12

4.2 数据采集子程序程序框图

A/D转换子程序流程图如下图3-2所示。ADC0809初始化后,把0通道输入的0-5V的模拟信号转换为对应的数字量OOH-FFH,然后将对应数值存储到内存单元。程序框图如图4-2

开始

Y 启动ADC0809通道,并延时100μs N 转换完?

读出A/D转换结果

返回 图4-2 数据采集子程序框图 结果存入内存单元 4.3报警子程序程序框图

系统设定阈值并保存在以50H开始的3个单元,为了便于比较和显示,阈值的千位放入50H中,百位和十位放入5lH,个位放人52H中。报警电路分为蜂鸣器报警电路和LED发光报警电路组成。当输入端P3.5为低电平时,有电流通过蜂鸣器,蜂鸣器发出声音报警。而当输入端为高电平时不报警。

报警子程序执行之前,将报警阈值转换为压缩的BCD码并存放在两个存储单元中。传感器输入值A/D转换后,调用比较程序,经过数据处理后显示的测量值与阈值比较,小于阈值则继续执行显示程序。若大于阈值则将单片机的P3.5口清零进行声光报警。40H、4lH、42H单元存放A/D转换后,并进行十进制转换后的结果。40H和50H分别存放的是处理后的测量值与阈值的千位的压缩BCD码,41H和51H分别存放的是处理后的测量值与阈值的百位、十位压缩的BCD码,42H和52H分别存放的是处理后的测量值与阈值的个位的压缩BCD码。程序首先对40H、50H中的值进行比较大小,如果40H中的值大于50H中的值,则进行报警。依此类推,比较41H和51H,42H和52H。程序框图如

13

图4-3:

Y 40H中的BCD码大? 开始 NN 与阈值相等? Y Y 41H中的BCD码大? N N 与阈值相等? Y Y 42H中的BCD码大? N 报警 返回 图4-3 报警子程序流程框图

14

五、课程设计系的心得体会

传统的机械检测仪或酒精计一般灵敏度和准确度也比较低或者检测方法难,由此检测仪向更迅速、更快捷、方便携带等要求发展。工厂,企业到居民家庭,酒精泄露的检测,食品加工,酿酒等需要监控空气中酒精浓度的场合以及对酒后驾车的检测,对居民的人身和财产安全都十分重要且必不可少的。现如今,由于人们安全意识增强,对环境安全性和生活适性要求提高。人们对检测的精度高,准确度高,携带方便等等要求,再加上气体传感器向低功耗、多功能、集成化方向的发展,单片机具有受集成限制,片内储存量较小,可靠性好,扩展简单,控制功能强等特点,所以,基于单片机的酒精浓度检测仪的研究和开发生产具有十分广泛的现实市场和潜在的市场需求。针对目前的现状,该系统设计遵循体积小,质量轻,性价比高的原则。

软件是C语言编写的,具有很好的可控性、模块化和移植性。本系统的主要模块为传感检测、A/D转换、液晶显示和时钟设置。通过本次毕业设计,我加深了很多在大学课本上学到的知识,并且用于实践,相信在以后的工作中,这次设计是我宝贵的财富。

六、参考文献:

[1] 何立民.单片机高级教程应用与设计[M] .北京:北京航空航天大学出版,2007:65-70.

[2] 郑学坚.微型计算机原理及应用[M].北京:清华大学出版社,2006:332-351.

[3] 李维提.郭强.液晶显示应用技术[M].北京:电子工业出版社,2000:78-84.

[4] 何希才.传感器及其应用[M].北京:国防工业出版社,2001:36-45. [5] 王幸之.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004:77-81.

15

附图(总图)

16

本文来源:https://www.bwwdw.com/article/xl16.html

Top