酒精浓度监测.docx
《酒精浓度监测.docx》由会员分享,可在线阅读,更多相关《酒精浓度监测.docx(24页珍藏版)》请在冰豆网上搜索。
![酒精浓度监测.docx](https://file1.bdocx.com/fileroot1/2023-4/25/449e41e6-36e4-4d57-9868-f46cd63076b2/449e41e6-36e4-4d57-9868-f46cd63076b21.gif)
酒精浓度监测
辽宁工业大学
课程设计
题目:
酒精浓度监测
院系:
电气工程学院
专业:
电气工程及其自动化
姓名:
学号:
指导教师
日期:
2012年12月31日
第1章绪论
本文研究意义
酒后驾车发生事故的机率高达27%。
随着摄入酒精量的增加,选择反应错误率显著增加,当血液中酒精含量由0.5‰增至1‰,发生车祸的可能性便增加5倍,如果增至1.5‰,可能性再增加6倍。
机动车驾驶人员“酒后驾车”及“醉酒驾车”极易发生道路交通事故,严重危害了道路交通安全和人民生命财产安全。
人饮酒后,酒精通过消化系统被人体吸收,经过血液循环,约有90%的酒精通过肺部呼气排出,因此测量呼气中的酒精含量,就可判断其醉酒程度。
开车司机只要将嘴对着传感头使劲吹气,仪器就能发上显示出酒精浓度的高低,从而判断该司机是否酒后驾车,避免事故的发生。
当然,最好的办法是在车内安装这种测试仪,司机一进入车内检测仪就检测司机的酒精含量,如果超出允许值,系统控制引擎无法启动,这样就可从根本上解决酒后驾车问题。
酒精气体浓度探测仪在生产生活中也有重要的应用,比如,在一些环境要求严格的生产车间,用这种酒精浓度探测仪,可随时检测车间内的酒精气体浓度,当酒精气体浓度高于允许限定值时,发出警报,提醒人们及时通风换气,做到安全生产。
本文研究内容
本文是设计一个基于AT89S51单片机的酒精浓度探测仪系统,可用来检测酒精气体浓度,最主要的用途是检测司机的酒精含量。
其中酒精传感器采用MQ-3型,利用该传感器将酒精气体浓度信号转化为电信号,选择适当的放大器放大其电压信号,驱动发光二极管显示酒精浓度的高度,同时利用模数转换芯片将模拟信号进行转化,并由单片机控制,最后用数码管显示。
第2章CPU最小系统
酒精浓度监测仪总体设计方案
基于AT89S51单片机用MQ-3型气体传感器实现酒精气体浓度的检测,需要信号采集模块用于对酒精浓度信号的采集,该信号是通过MQ-3气体传感器和负载电压得到分压电信号。
信号转换模块用来把采集到得模拟电压信号转换为可以用单片机处理的数字信号。
数码管显示模块是对单片机处理后的数字信号的显示,用来显示酒精的浓度。
报警模块是对设定值提供报警功能,该功能用发光二极管显示。
根据各功能模块的设计,可得到它的系统总框图,如图2.1所示。
图2.1系统总框图
CPU的选择
单片微机是单片微型计算机的译名简称,在国内也常称为“单片微机”或“单片机”。
它包括中央处理器CPU,随机存储器RAM,只读存储器ROM,中断系统,定时器/计数器,串行口和I/O口等等。
现在,单片微机已不仅指单片计算机,还包括微计算机,微处理器,微控制器和嵌入式控制器,单片微机已是它们的俗称,其内部结构如图2-1所示。
PSEN
8
8
TAL1
CPU
(运算器)
(控制器)
数据存储器
RAM
P0
P2
程序存储器
ROM/EPROM
P1
串行口
行
口
定时器/计数器
中断系统
殊功能寄存器
(SFR)
P3
ALE
EA
IN7
….
I
0
XTAL2
8
8
RESET
图2.251单片机片内结构
AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4K的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程也可以用传统方法进行编程及通用8位微处理器于单片芯片中,可灵活应用于各种控制领域。
AT89C51提供以下标准功能:
4KBFlash闪存存储器,128B内部RAM,32个I/O口线,看门狗,两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
根据实际需要,本次设计选用的是以8051为核心单元Atmel公司的低耗AT89C51单片机。
AT89S51芯片有40条引脚,采用双列直插式封装,如图2-2所示。
下面说明各引脚功能。
图2.3AT89S51芯片管脚
VCC:
运行和程序校验时接电源正端。
GND:
接地。
XTAL1:
输入到单片机内部振荡器的反相放大器。
XTAL2:
反相放大器的输出,输入到内部时钟发生器。
P0口:
8位漏极开路的。
使用片外存储器时,作低八位地址和数据分时复用,能驱动8个LSTTL上拉电阻。
P1口:
8位、准双向I/O口。
P2口:
8位、准双向I/O口。
当使用片外存储器(ROM及RAM)时,输出高8位地址。
可以驱动4个LSTTL负载。
P3口:
8位、准双向I/O口,具有内部上拉电路,提供各种替代功能。
P3.0——RXD串行口输入口,P3.1——TXD串行口输出口,P3.2——
外部中断0输入,P3.3——
外部中断1输入,P3.4——T0定时器/计数器0的外部输入,P3.5——T1定时器/计数器1的外部输入,P3.6——
低电平有效,输出,片外存储器写选通,P3.7——
低电平有效,输出,片外存储器读选通。
RST:
复位输入信号,高电平有效。
在振荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位。
/VCC:
片外程序存储器访问允许信号,低电平有效。
高电平时选择片内程序存储器,低电平时程序存储器全部在片外而不管片内是否有程序存储器。
ALE/PROG:
地址锁存允许信号,输出。
ALE以1/6的振荡频率固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。
复位电路设计
对于复位电路部分,AT89C51技术资料给出,当振荡器工作时,RST引脚出现两个机器周期以上的高电平将使单片机复位。
复位是单片机的初始化操作,当由于程序运行出错或操作错误使系统处于死锁状态时,为了摆脱困境,可以按复位键以重新启动,所以复位电路的设计很有必要。
复位操作有上电自动复位、按键电平复位和外部脉冲复位三种方式,本设计选用按键电平复位方式。
图2.4复位电路图
如图2.4所示,10μF的电容C3与270Ω的电阻并联后再与一个10KΩ的电阻串联,电容的正极端接到电源的正极,电容的另一端接至引脚RST。
设计中选用的石英晶体大小为11.0952MHz,但复位键按下后,电容和电阻选用的参数值能够保证给复位端RST提供大于2个机器周期的高电平复位信号[10]。
时钟电路设计
对于晶振部分,AT89S51单片机中有一个用于构成内部振荡器的高增益反相放大器,引脚19对应的XTAL1和18对应的XTAL2分别是该放大器的输入端和输出端。
图2.5时钟电路图
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
如图2.5所示,石英晶体及电容C1和C2接在放大器的反馈回路中构成并联谐振电路。
石英晶体的两端分别接到引脚XTAL1和引脚XTAL2,同时石英晶体的两端分别接一个电容C1和C2,电容的另一端接地。
对于外接电容C1和C2的大小虽然没有十分严格的要求,但电容容量的大小还是会对振荡频率的高低、振荡器工作的稳定性、起振的难易程度和温度稳定性带来一定的影响。
根据技术资料的推荐,使用石英晶体推荐电容容量为30pF±10pF,使用陶瓷谐振器推荐电容容量为40pF±10pF。
因为电路中接的是石英晶体,所以设计中接的两个电容C1和C2的容量都为33pF。
CPU最小系统图
图2.6最小系统图
第3章酒精浓度监测仪输入输出接口电路设计
酒精浓度监测仪传感器的选择
本设计中的酒精气体传感器采用河南汉威电子有限公司的MQ-3型,它属于MQ系列气敏元件的一种。
如图3.1所示:
图3.1MQ-3实物图
特点:
检测范围为10ppm~2000ppm;灵敏度高,输出信号为伏特级;响应速度快,小于10秒;功耗小于0.75W,尺寸:
D17*H10。
图3.2MQ-3灵敏度特性曲线
MQ-3型气敏传感器的敏感部分是由金属氧化物(二氧化锡)的N型半导体微晶烧结层构成。
当其表面吸附有被测气体酒精分子时,表面导电电子比例就会发生变化,从而其表面电阻会随着被测气体浓度的变化而变化。
由于这种变化是可逆的,所以能重复使用。
MQ-3的灵敏度特性曲线如图3所示。
图3.3MQ-3检测电路
检测电路如图4所示,当电源开关S断开时,传感器加热电流为零,实测A,B之间电阻大于20MΩ。
S接通,则f,f之间电流由开始时155mA降至153mA而稳定。
加热开始几秒钟后A,B之间电阻迅速下降至10KΩ以下,然后又逐渐上升至120KΩ以上后并保持着。
此时如果将酒精溶液样品靠近MQ-3传感器,我们立即可以看到数字万用表显示值马上由原来大于120KΩ降至10KΩ以下。
移开小瓶过1分钟左右后,A,B之间电阻恢复至大于120KΩ。
这种反应可以重复试验,但要注意使空气恢复到洁净状态。
经实验的反复检测,MQ-3传感器可以正常工作使用,对不同浓度的酒精溶液有不同的变化,响应时间和恢复时间都正常,可以开始作信号采样模块电路的设计。
酒精浓度监测仪检测接口电路设计
A/D转换器选择
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图3.4所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。
因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。
输入输出与TTL兼容。
图3.4ADC0809内部结构图
ADC0809芯片有28条引脚,采用双列直插式封装,如图3.5所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路。
如表1所示。
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动信号,输入,高电平有效。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
接地端。
图3.5ADC0809芯片
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
当检测到酒精气味时,气体传感器的A-B间电阻变小,则ADC0809的模拟输入端IN0的电压变大。
采用查询方式对输入模拟信号进行A/D转换,然后将数据通过三位八段数码管显示。
ADC0809芯片内部没有时钟脉冲源,可以用单片机提供的地址锁存控制输入信号ALE经D触发器二分频后,作为ADC0809的时钟输入。
ALE端信号的频率是单片机时钟频率的1/6。
单片机的时钟频率是11.0952MHz,则ALE端输出信号的频率为1.8492MHz,再二分频后为0.9246Hz,符合ADC0809对时钟频率的要求。
由于ADC0809具有三态输出数据琐存器,其8位数据输出端可以直接与数据总线相连。
地址选通端ADDA,ADDB,ADDC分别与单片机地址总线的低三位A0,A1,A2相连,用于选通IN0-IN7中的某一通道。
由于ALE和START连在一起,ADC0809在锁存通道地址的同时启动A/D转换。
在读取A/D转换结果时,OE产生的正脉冲信号用于打开三态输出锁存器。
ADC0809的EOC信号与单片机的P3.3相连,作为A/D转换是否结束的状态信号供单片机查询。
表3.1ADC0809通道地址
ADDCADDBADDA
选通通道
000
IN0
001
IN1
010
IN2
011
IN3
100
IN4
101
IN5
110
IN6
111
IN7
ADC0809与AT89S51单片机的接口电路如图10所示。
单片机引脚P3.6与P2.7进过或非门后于模数转换芯片的ALE端和START端子用导线相连接,用于对模数转换芯片写入数据的写信号。
单片机的RD端P3.7与P2.7进过或非门后于模数转换芯片的OE端子用导线相连接,作为单片机读取模数转换数据的读信号。
单片机引脚P3.3与模数转换芯片的EOC端经过或非门后的输出端用导线相连接,用于单片机对模数转换是否结束的查询,模数转换结束后可以查询到P3.3为高电平,为单片机读取数据作准备。
单片机的ALE端口接到D触发器的时钟信号输入端CK,D触发器的反相输出端与触发信号输入端用导线相连,D触发器的清零和复位端为低电平有效,分别接高电平,D触发器的正向输出端与模数转换芯片的CLK端子用导线相连接,为模数转换芯片提供正常的时钟信号。
把模数转换芯片的A2﹑A1﹑A0端分别用导线连接到地址锁存器的低三位,用于选择模数转换的通道。
模数转换芯片的IN0端子用导线与信号采样部分的负载电阻端相连,作为要模数转换的输入端。
单片机引脚P0.0-P0.7连接到模数转换芯片的数据输出端D0﹑D1﹑D2﹑D3﹑D4﹑D5﹑D6﹑D7端,用于读取模数转换后的数据。
地址地址锁存芯片74LS373的输入端低三位分别与单片机引脚P0.0-P0.2连接,用于锁存选择模数转换通道的地址。
模拟量检测接口电路图
模拟量检测借口电路如图3.6所示
图3.6ADC0809与单片机AT89S51接口电路
酒精浓度监测仪输出接口电路设计
发光二极管集成驱动芯片LM3914的管脚图如图3.7所示。
其内部的缓冲放大器最大限度的提高了该集成电路的输入电阻(5脚),电压输入信号经过缓冲器(增益为零)同时送到10个电压比较器的异相(-)输入端。
10个电压比较器的同相输入(+)端分别接到10个等值电阻(1KΩ)串联回路的10个分压端。
因为与串联回路相接的内部参考电压为1.2V,所以相邻分压端之间的电压差为1.2V/10=0.12V。
为了驱动LED1发光,集成电路
LM3914的1脚输出应该为低电平,因此要求电压比较器异相(-)端的输入电压应大于0.12V。
同理,要使LED2发光,异相端输入电压应大于0.12*2=0.24V;要使LED10发光,异相端输入电压应大于0.12*10=1.2V。
LM3914的9脚为点,条方式选择端,当9脚与11脚相接为点状显示;当9脚与3脚相接,则为条状显示。
本系统采用条状显示方式,即将引脚9和引脚3都接到电源的正极。
图3.7LM3914管脚图
如图3.8所示,LM3914的3和9引脚接电源正极,使发光二极管成柱状显示,7和8引脚接一个2K的电阻,控制发光二极管的亮度,5引脚为采样信号的输入端,10到18引脚和1引脚分别接发光二极管的负极端,4和2引脚与发光二极管的正极间接一个10μF的电容,作为发光二极管的虚电源,驱动要反光的二极管点亮。
当检测到酒精气味时,气敏传感器的A-B间电阻变小,LM3914的5端电位升高,通过比较放大,驱动发光二极管依次发光,从而区分出酒精含量的高低,直观的看出所测的酒精浓度达到了哪个水平值,起到报警的作用。
输入灵敏度可以通过负载电阻的调节来实现,即对地电阻调小时灵敏度下降;反之,灵敏度增加。
改变7脚与8脚之间电阻的阻值可以调节发光二极管的显示亮度,当阻值增加亮度减弱,反之加强。
发光二极管一般是砷化镓半导体二极管,在发放光二极管两端加上正向电压,则发光二极管发光。
数码管是由若干发光二极管组合而成的,有共阴极和共阳极两种结构形。
8段共阴数码管由a﹑b﹑c﹑d﹑e﹑f﹑g、dg这8个发光二极管组成。
把8个发光二极管的阴极连接在一起构成共阴极端,接进电路时,共阴极端接地,给要发光显示的二极管的阳极端接高电平可使该发光二极管导通点亮。
如图13所示。
用单片机驱动数码管有静态显示和动态显示,静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就可以驱动数码管显示数据,直到下一次显示数据需要更新时再传送一次新的数据就可以了。
静态显示数据稳定,占用CPU时间少。
动态显示需要时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。
图3.8发光二极管显示
这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
设计选用3个单位8段共阴数码管来显示输出的数据,因为电路硬件相对较简单,所以选择静态显示方法。
选用3个移位寄存器74LS164驱动数码管发光点亮。
电路连接如图3.9所示。
移位寄存器在电路中一是驱动数码管点亮,二是对输入的串行数据并行输出,起到串并转换的作用。
移位寄存器74LS164串行数据输入端与前一位的并行输出最高位相连,第一位移位寄存器的数据输入端与单片机的数据输出端P1.7连接。
单片机引脚P1.6用于给移位寄存器提供移位的时钟脉冲,该引脚与三个移位寄存器的时钟输入端CLK相连。
因为每位数据串行输出先输出的是低位,所以数码管引脚a、b、c、d、e、f、g、dg应顺序与对应位的移位寄存器并行输出端的Q7、Q6、Q5、Q4、Q3、Q2、Q1、Q0连接。
图3.9数码管显示电路
第4章酒精浓度监测仪软件设计
软件实现功能综述
根据总体设计方案,酒精浓度检测系统包括主程序、模数转换子程序、显示报警子程序。
图4.1主程序流程图
主程序主要用来进行初始化,设置口地址和控制字,并对检测结果进行核对和控制,模数转换子程序用来读取酒精浓度检测电路的输入数据进行分析显示。
显示报警子程序,利用芯片进行译码显示,转为BCD码后输出。
流程图设计
主程序流程图设计
当检测到酒精气味时,气体传感器MQ-3两个电极端A-B间电阻将变小,对应与气体传感器负载电阻的分压将变大。
因为ADC0809的模拟输入端IN0与负载电阻的一端用导线连在了一起。
所以单片机在启动测试模数转换芯片之前要选择通道0,写入模数转换芯片,并将用作查询的单片机引脚P3.3置位,然后启动对通道IN0端输入的采集电压信号作模数转换,等待转换的结束。
利用单片机丰富的I/O口可以采用查询方式来检测模数转换是否结束,当单片机引脚P3.3为1时转换未结束等待,当查询到P3.3为0时表示模数转换已经结束,可以开始读取数据了。
开始
启动ADC0809通道,并延时100μs
换完?
读出A/D转换结果
结果存入内存单元
返回
Y
N
图4.2模拟量检测流程图
单片机通过I/O口与模数转换芯片的数据输出口相连读取转换后的数据。
读取后的数据送到数据存储器单元中,经过单片机作相应的处理,即要将该电压值转换为酒精浓值,然后处理后的数据转换成三位十进制BCD码用数码管显示。
模拟量检测流程图设计
A/D转换子程序流程图如下图3-2所示。
ADC0809初始化后,把0通道输入的0-5V的模拟信号转换为对应的数字量OOH-FFH,然后将对应数值存储到内存单元,程序框图如图4.2。
酒精浓度监测仪显示流程图设计
图4.3显示电路软件流程图
从读取到的电压值得到酒精浓度值后,还要把该值转换为3位10进制BCD码,存储到特定的存储单元以供数码管显示数值。
数码管显示选用的是静态显示的方法,要在每次显示数据时把要显示的3个位按顺序串行送到数码管集成驱动电路74LS164并行输出,以同时驱动3个数码管同时点亮。
程序流程图如图4.3所示。
第5章系统设计与分析
系统原理
当检测到酒精气味时,气体传感器MQ-3两个电极端A-B间电阻将变小,对应与气体传感器负载电阻的分压将变大。
因为ADC0809的模拟输入端IN0与负载电阻的一端用导线连在了一起。
所以单片机在启动测试模数转换芯片之前要选择通道0,写入模数转换芯片,并将用作查询的单片机引脚P3.3置位,然后启动对通道IN0端输入的采集电压信号作模数转换,等待转换的结束。
利用单片机丰富的I/O口可以采用查询方式来检测模数转换是否结束,当单片机引脚P3.3为1时转换未结束等待,当查询到P3.3为0时表示模数转换已经结束,可以开始读取数据了。
单片机通过I/O口与模数转换芯片的数据输出口相连读取转换后的数据。
读取后的数据送到数据存储器单元中,经过单片机作相应的处理,即要将该电压值转换为酒精浓值,然后处理后的数据转换成三位十进制BCD码用数码管显示如图5.1所示。
图5.1系统原理图
第6章课程设计总结
单片机技术基础是实用性很强的一门课程。
本次单片机技术课程设计,让我们有机会将课堂上所学的理论知识运用到实际中。
并通过对知识的综合利用,进行必要的分析、比较,从而进一步验证了所学的理论知识。
同时,本次课程设计也为我们以后的学习打下了良好的基础,还让我们知道了最重要的是心态,在你拿到题目时会觉得困难,但是只要有信心,就肯能能完成的。
通过本次单片机技术课程设计,我们不仅加深了对课本专业知识的理解,同时增强了自己的自学能力。
因为平时上课时只知道被动的学习理论知识,在这个过程中也不是一蹴而就的,我也遇到了各种困难。
但是通过查阅资料、和同学讨论,我及时的发现自己的错误并纠正了。
这也是本次单片机课程设计的一大收获,使我们的实践动手能力有了进一步的提高,同时也增强了我们对以后学习的信心。
课程设计开始,思绪全无,举步维艰。
对于理论知识学习不够扎实的我深感“书到用时方恨少”,于是重拾教材与实验手册,对知识进行了系统而全面的梳理,而且领悟诸多平时学习难以理解的知识,对于知识的理解更深了一层。
课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在这里我感谢所有给予我帮助的老师和同学,在我遇到困难的时候是他们耐心的帮助我。
我会在以后的学习和生活中发扬不怕苦的精神,努力学习。
参考文献
[1]司士辉.生物传感器[M].化学工业出版社,2003.
[2]吴桂秀.传感器应用制作入门[M].浙江科学技术出版社,2004.
[3]彭军.传感器与检测技术[M].西安电子科技大学出版社,2003.
[4]陈杰,黄鸿.传感器与检测技术[M].北京:
高等教育出版社,2003.
[5]吴桂秀.传感器应用制作入门[M].浙江科学技术出版社,2004.
[6]张锡富.传感器[M].北京:
机械工业出版社,2002.
[7]郁有文.传感器原理及工程应用[M].西安:
西安电子科技大学出版社,2003.
[8]楼然苗,李光飞.51系列单片机设计实例[M].北京航空航天大学出版社,2003.
[9]朱定华,戴汝平.单片微机原理与应用[M].清华大学出版社,2003.
[10]胡乾斌,李光斌,李玲.单片微型计算机原理与应用[M].华中科技大学出版社,2002.
[11]胡汉才.单片机原理与借口技术[M].清华大学出版社,20