便携式酒精测试仪的设计摘要近年来,随着我国经济的发展,人民的生活水平提高,越来越多的人有了自己的私家车,而酒后驾车造成的交通事故也频频发生。机动车驾驶人员“酒后驾车”极易发生道路交通事故,严重危害了道路交通安全和人民生命财产安全。人饮酒后,酒精通过消化系统被人体吸收,经过血液循环,约有90%的酒精通过肺部呼气排出, 因此测量呼气中的酒精含量,就可判断其醉酒程度。本设计实现了对不同浓度酒精的检测和显示,通过适当改进可以用于检测酒后驾车。本文用AT89S51单片机与MQ-3型气体传感器实现了对酒精浓度的测量,并对测量数据进行显示,同时利用二极管简单显示浓度的高低,在设计允许值时发出报警。关键词:传感器;酒精探测仪;单片机;模-数转换AbstractIn recent years, as China's economic development, people's living standards improve, more and more people have their own private cars and traffic accidents caused by drunk driving is also frequent. Driver drives very easy to happen traffic accident after drinking which endanger traffic safety and people safety of life and property seriously. After people drink, the alcohol is absorbed by the human body through the digestive system, through the blood circulation, nearly it have discharge exhaling lung alcohol of 90%. So measure the content of alcohol while exhaling , can judge its drunk degree.Different concentrations of alcohol solution are detected and showed in the design. The design can be used to the detection of drunk driving through improvement. In this thesis, the concentration of alcohol can be measured and displayed by using the gas sensor based on AT89S51 MCU and MQ-3. At the same time the concentration is displayed by LED, and the system allow to alarm in the certain value.Keywords: Sensor Alcohol detector Micro Controller UnitAnalog to Digital Convert目录摘要 (I)ABSTRACT (II)1绪论 (5)1.1酒精测试仪设计的目的及意义 (5)1.2数据采集技术的原理 (5)1.3传感器基础知识 (6)1.3.1传感器的定义 (6)1.3.2传感器的分类 (6)1.3.3传感器的特性 (7)2酒精测试仪总体方案设计 (9)2.1酒精浓度检测仪设计要求分析 (9)2.2酒精浓度检测仪设计方案 (9)3酒精测试仪的硬件设计 (11)3.1单片机模块电路的设计 (11)3.1.1 单片机片内结构 (11)3.1.2单片机的选择 (12)3.1.3单片机最小系统的实现 (15)3.2酒精传感器模块的选择与设计 (16)3.2.1气敏传感器工作原理 (16)3.2.2气敏传感器简介 (17)3.2.3 气体传感器向低功耗、多功能、集成化方向发展 (17)3.2.4传感器的选择 (18)3.2.5 MQ-3的检测 (21)3.3酒精传感器的工作原理 (21)3.3.1传感器性能分析 (21)3.3.2呼出酒精气体浓度与血液酒精浓度关系 (24)3.4A/D转换电路 (25)3.4.1 ADC0809的引脚及功能 (26)3.4.2 ADC0809的结构及转换原理 (27)3.4.3 ADC0809的工作原理 (29)3.4.4 LED显示电路 (29)3.4.5键盘电路 (30)3.4.6报警电路 (31)4测试仪的软件设计 (32)4.1编程语言的选择 (32)4.2开发工具 (33)4.2.1单片机选择 (33)4.2.2开发环境 (34)4.2.3仿真器 (34)4.3主程序框图 (35)4.4数据采集子程序程序框图 (35)4.5报警子程序程序框图 (36)结论 (38)致谢 (35)参考文献 (36)附录 (37)1绪论1.1酒精测试仪设计的目的及意义喝酒后,呼出的气体会有酒味,表情行为会有反常。远古时代人们利用鼻子作为传感器,进行简单的呼出气体酒精测量。19世纪末出现了用体液对酒精进行定量分析。1927年,有科学家建议使用呼出气体做酒精浓度分析。用足球胆收集呼出气体后,通过硫酸和重铬酸钾的混合溶液,溶液的颜色会发生蓝一绿一黄的变化,同已知酒精浓度的标准试剂色管比较,就得到相应的BAC。现在,肺泡气中酒精的测量技术有了很大的进步,有先进微处理器的酒精测试仪已被商品化。越来越多的国家开始禁止酒后驾车。精确的呼出气体酒精测试和传统的法医血液酒精分析相比有许多优点,例如,进行无毒的采样,能进行现场处理,这样为交警节省了时间,使交通控制更高效,能避免运输和贮存有艾滋病病毒和肝炎病毒的血样。本设计基于单片机设计的便携式酒精气体探测仪,可用来检测酒精气体浓度,最主要的用途是检测司机的酒精含量。酒后驾车发生事故的机率高达27%。随着摄入酒精量的增加,选择反应错误率显著增加,当血液中酒精含量由0.5‰增至1‰,发生车祸的可能性便增加5倍,如果增至1.5‰,可能性再增加6倍。机动车驾驶人员“酒后驾车” 及“醉酒驾车”极易发生道路交通事故, 严重危害了道路交通安全和人民生命财产安全。人饮酒后, 酒精通过消化系统被人体吸收, 经过血液循环, 约有90%的酒精通过肺部呼气排出, 因此测量呼气中的酒精含量, 就可判断其醉酒程度。开车司机只要将嘴对着传感头使劲吹气,仪器就能发上显示出酒精浓度的高低,从而判断该司机是否酒后驾车,避免事故的发生。当然,最好的办法是在车内安装这种测试仪,司机一进入车内检测仪就检测司机的酒精含量,如果超出允许值,系统控制引擎无法启动,这样就可从根本上解决酒后驾车问题。酒精气体浓度探测仪在生产生活中也有重要的应用,比如,在一些环境要求严格的生产车间,用这种酒精浓度探测仪,可随时检测车间内的酒精气体浓度,当酒精气体浓度高于允许限定值时,发出警报,提醒。1.2数据采集技术的原理“数据采集”是指将温度、压力、流量、位移等模拟量采集转换成数字量后,再由计算机进行存储、处理、显示或打印的过程。相应的系统称为数据采集系统。从严格意义上说,数据采集系统应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行存储、处理、分析计算,以及从检测的数据中提取可用的信息,供显示、记录、打印或描绘的系统。总之,不论在哪个应用领域中,数据的采集与处理越及时,工作效率就越高,取得的经济效益就越大。数据采集系统的任务,具体地说,就是传感器从被测对象获取有用信息,并将其输出信号转换为计算机能识别的数字信号,然后送入计算机进行相应的处理,得出所需的数据。同时,将计算得到的数据进行显示、储存或打印,以便实现对某些物理量的监视,其中一部分数据还将被生产过程中的计算机控制系统用来进行某些物理量的控制。数据采集系统一般由数据输入通道、数据存储与管理、数据处理、数据输出及显示这五个部分组成。输入通道要实现对被测对象的检测、采样和信号转换等工作。数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。数据处理就是从采集到的原始数据中,删除干扰噪声、无关信息和不必要的信息,提取出反映被测对象特征的重要信息。另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,如打印、显示、绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。1.3传感器基础知识1.3.1传感器的定义国家标准GB7665-87 对传感器下的定义是:“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。1.3.2传感器的分类目前对传感器尚无一个统一的分类方法,但比较常用的有如下三种:(1) 按传感器的物理量分类,可分为位移、力、速度、温度、流量、气体成份等传感器。(2) 按传感器工作原理分类,可分为电阻、电容、电感、电压、霍尔、光电、光栅热电偶等传感器。(3) 按传感器输出信号的性质分类,可分为:输出为开关量(“1”和“0” 或“开”和“关”)的开关型传感器;输出为模拟型传感器;输出为脉冲或代码的数字型传感器。电阻式传感器电阻式传感器是将被测量,如位移、形变、力、加速度、湿度、温度等这些物理量转换式成电阻值这样的一种器件。主要有电阻应变式、压阻式、热电阻、热敏、气敏、湿敏等电阻式传感器件。电阻应变式传感器传感器中的电阻应变片具有金属的应变效应,即在外力作用下产生机械形变,从而使电阻值随之发生相应的变化。电阻应变片主要有金属和半导体两类,金属应变片有金属丝式、箔式、薄膜式之分。半导体应变片具有灵敏度高(通常是丝式、箔式的几十倍)、横向效应小等优点。压阻式传感器压阻式传感器是根据半导体材料的压阻效应在半导体材料的基片上经扩散电阻而制成的器件。其基片可直接作为测量传感元件,扩散电阻在基片内接成电桥形式。当基片受到外力作用而产生形变时,各电阻值将发生变化,电桥就会产生相应的不平衡输出。用作压阻式传感器的基片(或称膜片)材料主要为硅片和锗片,硅片为敏感材料而制成的硅压阻传感器越来越受到人们的重视,尤其是以测量压力和速度的固态压阻式传感器应用最为普遍。热电阻传感器热电阻传感器主要是利用电阻值随温度变化而变化这一特性来测量温度及与温度有关的参数。在温度检测精度要求比较高的场合,这种传感器比较适用。目前较为广泛的热电阻材料为铂、铜、镍等,它们具有电阻温度系数大、线性好、性能稳定、使用温度范围宽、加工容易等特点。用于测量-200°C~ +500°C 范围内的温度。1.3.3传感器的特性(1)传感器的静态特性传感器的静态特性是指对静态的输入信号,传感器的输出量与输入量之间所具有相互关系。因为这时输入量和输出量都和时间无关,所以它们之间的关系,即传感器的静态特性可用一个不含时间变量的代数方程,或以输入量作横坐标,把与其对应的输出量作纵坐标而画出的特性曲线来描述。表征传感器静态特性的主要参数有:线性度、灵敏度、分辨力和迟滞等。(2)传感器的动态特性所谓动态特性,是指传感器在输入变化时,它的输出的特性。在实际工作中,传感器的动态特性常用它对某些标准输入信号的响应来表示。这是因为传感器对标准输入信号的响应容易用实验方法求得,并且它对标准输入信号的响应与它对任意输入信号的响应之间存在一定的关系,往往知道了前者就能推定后者。最常用的标准输入信号有阶跃信号和正弦信号两种,所以传感器的动态特性也常用阶跃响应和频率响应来表示。(3)传感器的线性度通常情况下,传感器的实际静态特性输出是条曲线而非直线。在实际工作中,为使仪表具有均匀刻度的读数,常用一条拟合直线近似地代表实际的特性曲线、线性度(非线性误差)就是这个近似程度的一个性能指标。拟合直线的选取有多种方法。如将零输入和满量程输出点相连的理论直线作为拟合直线;或将与特性曲线上各点偏差的平方和为最小的理论直线作为拟合直线,此拟合直线称为最小二乘法拟合直线。(4)传感器的灵敏度灵敏度是指传感器在稳态工作情况下输出量变化△y对输入量变化△x的比值。它是输出-输入特性曲线的斜率。如果传感器的输出和输入之间显线性关系,则灵敏度S 是一个常数。否则,它将随输入量的变化而变化。灵敏度的量纲是输出、输入量的量纲之比。例如,某位移传感器,在位移变化1mm 时,输出电压变化为200mV,则其灵敏度应表示为200mV/mm。当传感器的输出、输入量的量纲相同时,灵敏度可理解为放大倍数。提高灵敏度,可得到较高的测量精度。但灵敏度愈高,测量范围愈窄,稳定性也往往愈差。(5)传感器的分辨力分辨力是指传感器可能感受到的被测量的最小变化的能力。也就是说,如果输入量从某一非零值缓慢地变化。当输入变化值未超过某一数值时,传感器的输出不会发生变化,即传感器对此输入量的变化是分辨不出来的。只有当输入量的变化超过分辨力时,其输出才会发生变化。通常传感器在满量程范围内各点的分辨力并不相同,因此常用满量程中能使输出量产生阶跃变化的输入量中的最大变化值作为衡量分辨力的指标。上述指标若用满量程的百分比表示,则称为分辨率。(6)传感器的迟滞特性迟滞特性表征传感器在正向(输入量增大)和反向(输入量减小)行程之间输出-输入特性曲线不一致的程度,通常用这两条曲线之间的最大差值△MAX与满量程输出F·S的百分比表示,迟滞可由传感器内部元件存在能量的吸收造成。2酒精测试仪总体方案设计2.1 酒精浓度检测仪设计要求分析设计的酒精浓度测试仪应具有如下特点:(1)数据采集系统以单片机为控制核心,外围电路带有LED显示以及键盘响应电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程。(2)系统具有低功耗、小型化、高性价比等特点。(3)从便携式的角度出发,系统成功使用了数码管显示器以及小键盘。由单片机系统控制键盘和LED显示来实现人机交互操作,界面友好。(4)软件设计简单易懂。2.2 酒精浓度检测仪设计方案设计时,考虑酒精浓度是由传感器把非电量转换为电量,传感器输出的是0-5伏的电压值且电压值稳定,外部干扰小等。因此,可以直接把传感器输出电压值经过A/D转换器转换得到数据送入单片机进行处理。此外,还需接人LED显示,4*4键盘,报警电路等。其总体框图如图2-1所示。图2-1系统设计方框图单片机酒精浓度测试仪用MQ3酒精传感器采集气体信号,并通过数模转换器将模拟信号转换成数字信号送至单片机,单片机对数字信号进行分析处理,并将所得的结果显示出来,可以通过键盘设置不同环境下酒精浓度的不同阀值,如果所检测出的酒精浓度超过了所设定的阀值,那么单片机就能控制蜂鸣器发出声音报警。键盘采用3个独立键盘进行数据输入设定;显示部分用5个数码管显示当前数据,数码管分别用2个74HC573锁存器控制段选和位选。3酒精测试仪的硬件设计3.1 单片机模块电路的设计本硬件由五部分组成:单片机模块,模数转换模块,酒精传感器模块,温度传感模块。本系统由单片机AT89S51控制,其直接控制三个模块:数转换模块将酒精传感器采集到模拟电压信号转换成输送到单片机控制处理,温度传感器DS18B20可以将采集到的温度信号直接以数字信号的形式传到单片机,LCD显示模块可以将经过单片机处理过的酒精气体浓度和温度的具体量化值显示。单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个虽小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。3.1.1 单片机片内结构51单片机的片内结构如图3-1所示。它把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。按功能划分,它有如下功能部件组成: (1)微处理器(CPU)。(2)数据存储器(RAM)。(3)程序存储器(ROM/EPROM)。(4)4个8位并行I/O口(P0口、P1口、P2口、P3口)。(5)一个串行口。(6)2个16位定时器、计数器。(7)中断系统。(8)特殊功能寄存器(SFR)。图3-1系统硬件设计原理图3.1.2单片机的选择AT89S51是低功耗、高性能、采用CMOS工艺的8位单片机,其片内具有8KB 的可在线编程的Flash 存储器。该单片机采用了ATMEL公司的高密度、非易失性存储器技术,与工业标准型80C51单片机的指令系统和引脚完全兼容;片内的Flash存储器可在线重新编程,或者使用通用的非易失性存储器编程;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89S52 功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。掌握MCS-51单片机,应首先了解MCS-51的引脚,熟悉并牢记各引脚的功能,MCS-51系列中各种型号芯片的引脚是互相兼容的。制作工艺为HMOS的MCS-51的单片机都采用40只引脚的双列直插封装方式,如图3-2所示。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST(TXD) P3.1 (INT0) P3.2 (INT1) P3.3 T0 P3.4 T1 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/VPPPSENP2.7 (A15)P2.6 (A14)P2.5 (A13)P2.4 (A12)P2.3 (A11)P2.2 (A10)P2.1 (A9)P2.0 (A8) PDIP(RXD) P3.0ALE/PROG图3-2 AT89C51芯片管脚图40只引脚按其功能来分,可分为如下3类:(1)电源及时钟引脚:Vcc、Vss、XTAL1、XTAL2。电源引脚接入单片机的工作电源。Vcc接+5V电源,Vss接地。时钟引脚XTAL1、XTAL2外接晶体与片内的反相放大器构成了1个晶体振荡器,它为单片机提供了时钟控制信号。2个时钟引脚也可外接独立的晶体振荡器。XTAL1接外部的一个引脚。该引脚内部是一个反相放大器的输入端。这个反相放大器构成了片内振荡器。如果采用外接晶体振荡器时,此引脚接地。XTAL2接外部晶体的另一端,在该引脚内部接至内部反相放大器的输出端。若采用外部时钟振荡器时,该引脚接受时钟振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。(2)控制引脚: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为该引脚的第二功能。在对片内EPROM型单片机编程写入时,此引脚作为编程脉冲输入端。③PSEN引脚:程序存储器允许输出控制端。在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为读外部程序存储器的选通信号。此引脚接外部程序存储器的OE(输出允许端)。④EA/VPP引脚:EA功能为片内程序存储器选择控制端。当EA引脚为高电平时,单片机访问片内程序存储器,但在PC值超过0FFFH时,即超出片内程序存储器的4KB地址范围时将自动转向执行外部程序存储器内的程序。当EA引脚为低时,单片机只访问外部程序存储器,不论是否有内部程序存储器。(3)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。MCS单片机都采用40引脚的双列直插封装方式。40条引脚说明如下:主电源引脚Vss和Vcc(1)Vss接地(2)Vcc正常操作时为+5伏电源外接晶振引脚XTAL1和XTAL2(1)XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。(2)XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。控制或与其它电源复用引脚RST/VPD,ALE/和/Vpp(1)RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接下图8051引脚排列图上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。(2) ALE/正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE 端可以驱动(吸收或输出电流)八个LSTTL电路。对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(功能)。(3)外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间, 在每个机器周期内两次有效, 同样可以驱动八LSTTL输入。(4)/Vpp 、/Vpp为内部程序存储器和外部程序存储器选择端。当/Vpp为高电平时,访问内部程序存储器,当/Vpp为低电平时,则访问外部程序存储器。对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。输入/输出引脚P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。(1)P0口(P0.0 - P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。(2)P1口(P1.0 - P1.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载。(3)P2口(P2.0 - P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸收或输出电流)四个LSTTL负载。(4)P3口(P3.0 - P3.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载。3.1.3单片机最小系统的实现单片机主要擅长系统控制,而不适合做复杂的数据处理,在设计单片机最小系统时通常选用AT89C5l、AT89C52、AT89S51、AT89S52(S系列芯片支持ISP功能)等型号的8位DIP-40封装的单片机作为MCU,一个典型的单片机最小系统一般由时钟电路、复位电路、键盘电路、显示电路部分组成,有时也外扩片外RAM和ROM以及外部扩展接口等电路。3.1.3.1系统时钟电路单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图2所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,补偿电容通常选择20-30pF 左右的瓷片电容。3.1.3.2复位电路单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。上电自动复位通过电容C3充电来实现。手动按键复位是通过按键将电阻R2与VCC接通来实现。。