基于单片机酒精浓度测试仪设计Word文件下载.docx
- 文档编号:19706770
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:32
- 大小:549.28KB
基于单片机酒精浓度测试仪设计Word文件下载.docx
《基于单片机酒精浓度测试仪设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机酒精浓度测试仪设计Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
Abstract:
Thispaperstudiescandetectalcoholconcentrationandsoundandlightalarmpromptmorethanthethreshold.MainlyadoptsMQ3,alcoholconcentrationsensortodetectthealcoholconcentrationcanbeconvertedintoelectricalsignals,afterA/Dconverterisconvertedintodigitalsignalstosinglechipmicrocomputer,thecorrespondingsingle-chipprocessing,LCDliquidcrystaldisplay(LCD)andalcoholconcentrationexceedsthesetvalueofsoundandlightalarm.Inthispaper,weintroducethesensor,converter,MCU,LCDmonitor,whenalarmcircuitandtheprincipleofuse.
Keywords:
89c51;
MQ3alcoholconcentrationsensor;
ADC0908converter;
LCD1602LCD;
Thehardwareandsoftwaredesign.
第一章绪论
随着国家的发展,我们的国家有车的人可以说与日俱增,而酒驾酿成的交通事故经常出现。
因此,国家很重视酒驾问题并严惩,所以设计可检测驾驶员口腔酒精浓度的智能仪器是很有必要的。
本课程研究的是用气体传感器检测,A/D转换信号,单片机处理的设计,可知道驾驶员呼出气体的酒精浓度,还可以进行声光报警。
这可以检测空气中酒精浓度,并可自由设定阈值,如果超过设定阈值时会发出声光报警提示。
本课题分为硬件和软件部分。
硬件部分是用酒精浓度传感器MQ3,把检测到的酒精浓度转换为电信号,经A/D转换器转换成数字信号在传给单片机,最后单片机进行相应处理,LCD液晶显示酒精浓度并超过设定值的声光报警。
程序主要是模块化设计,因为个模块化的程序都是独立的,方便调试,修改。
硬件电路主要包括单片机最小系统、声光报警电路、A/D转换电路、LCD液晶显示电路,按键电路,其原理设计将会在后面进行详细介绍。
第二章酒精测试仪总体设计
2.1酒精浓度检测仪设计要求
设计的酒精浓度测试仪特点:
(1)单片机是采集系统的重要部分,其电路周围有LCD显示电路和键盘电路,不用连接其他计算机,可以直接用于显示工作,完成数据的采集、存储、计算、分析等过程。
(2)系统具有低功耗、高稳定性、功能强、小型化、性价比高等特点。
(3)各个零件都选用方便,便于携带,小等特点,如数码管显示器,单片机最小系统,小键盘等。
主要通过操作单片机控制的键盘和LED显示,操作界面简单,方便,清晰。
(4)软件设计简单明了,模块分明,独立性强。
2.2酒精浓度检测仪设计方案
刚开始,注意到是把酒精传感器检测到的非电量转换成电量,而且传感器输出电压不到5伏,电压也稳定,扰外部干扰能力强等,所以传感器输出电压不需加稳压、放大,直接传给A/D转换器进行相应处理,处理后得到的数据再传给单片机。
除此之外,液晶显示,键盘,报警系统等也必不可少。
如图2-1所示:
图2-1系统结构图
第三章硬件设计
3.1传感器的选择
此传感器是为了检测空气中的酒精浓度,呼出的酒精浓度也是血液中所含的酒精浓度,所以选择气敏传感器。
由于空气中还有其他气体成分而影响到传感器检测的精确度,选择的传感器只针对酒精气体敏感,而对其他气体的敏感度极低,所以选MQ3气敏传感器。
其拥有灵敏度高、选择性好、使用寿命长和稳定性强等特点。
MQ3气敏传感器的组成有敏感层SnO2、微型Al2O3、陶瓷管、测量电极和加热器构成的敏感元件,而这些敏感元件固定在塑料或不锈钢的腔体内,其工作过程中加热器又起到至关重要的作用。
加热回路与输出回路构成了传感器中的标准回路。
标准回路是对传感器表面电阻的检测,能很好的影响其阻值的变化。
传感器的表面电阻RS与负载电阻RL串联,而电阻RL上的有效输出电压VRL影响电阻RS的阻值变化。
负载电阻RL阻值限制在0.5-200K。
加热电压Uh为5v。
电阻RL与电压Uh限制了传感器输出电压在0-5V之间。
MQ3气敏传感器的结构和外形如图3-1、标准回路如图3-2、传感器阻值变化率与乙醇浓度关系如图3-3。
为了提高检测时的精确度,减小误差,一般要在适宜的环境下,将传感器预热4—6分钟。
图3-1MQ3结构和外形
图3-2MQ3原理图
图3-3乙醇浓度与传感器阻值变化率的关系
3.2A/D转换电路
在接受信号时,由于单片机只能接受数字信号不能直接接受非电物理量(如温度等),传感器把这种非电物理量转换成需要的模拟电信号,而转换器就可以再次把这些模拟电信号转换成单片机能接受的数字信号。
能把模拟信号转换成数字信号的元器件叫做A/D转换器(ADC)。
A/D转换器可以归纳成三种:
第一种是双积分A/D转换器,其拥有很高的精度,稳定性好,能抵抗外界的干扰,价格也便宜,可运行的速度不快;
第二种是逐次逼近型A/D转换器,一般常用这种,因其特点都适中,而没什么大缺点;
第三种是∑-△A/D转换器,主要是针对信号的幅度。
所以采用了第二种转换器ADC0809,它是8位的。
ADC0809的模拟输入端口有8个,而引脚(23-25)的选择既是模拟信号的位置选用。
22号引脚是地址锁存控制,要对信号锁存,输入高电平即可。
6号引脚是测试控制,用于控制转换,当有适当的高电平就可进行转换,一般输入2μs。
7号引脚是转换结束标志,当检测到有高电平输出,表明转换结束。
9号引脚是转换数据输出允许端,只有高电平时,才可以进行转换数据输出。
10号引脚是ADC0809的时钟输入端,由输入传输数据的连续性决定。
ADC0809的引脚及功能
一般都选择逐次比较型A/D转换器因其各个性能,特点都适宜,没有什么有影响的缺点。
下面是ADC0809的引脚和功能,如图3-4。
图3-4ADC0809的引脚
ADC0809拥有8路模拟输入以及相对应的8路数字输出。
上图所示,ADC0809一共28个引脚,是一种双列直插式封装的转换器。
重要,常用引脚功能如下:
IN0~IN7:
8路模拟量输入端。
D0~D7:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,决定IN0~IN7哪路通。
ALE:
地址锁存允许信号,要锁存,必需先高电平触发。
START:
启动脉冲输入端,下降沿启动转换,上升沿复位。
EOC:
A/D转换结束标志,输出低电平表示转换,高电平表示结束。
OE:
数据输出允许信号,高电平触发。
只有触发OE才可以让三态门正常工作,输出转换后的数字量。
CLK:
时钟脉冲输入端。
其值必需小于640KHZ。
REF(+)、REF(-):
参考电压输入端。
稳定,抗干扰强。
Vcc:
电源输入端,一般输入5V。
GND:
接地端。
编码ADDA、ADDB、ADDC,输入高电平到ALE,打开地址锁存。
打开的模拟量输入端将输入的量发给比较器。
START输入脉冲变为下降沿时启动A/D转换,而EOC=0标志着正在正常工作转换中。
当A/D转换完成后,而EOC=1也意味转换已完成,转换完成后的数据存入锁存器,中断申请可以在此申请。
高电平触发OE,三态门触发,锁存器中的数字量就可以输出到对应的D0~D7。
最后D0~D7输出的数字量传送给单片机。
当只有A/D转换完成才可以接着传输数字量,以下是三种确定转换完成的方式。
(1)定时传送方式
A/D转换器所转换所花费的时间一般是厂家设定好的,不会变的。
例如ADC0809转换要128μs,若51单片机的晶振是6MHz,也就是其64个机器周期。
所以可以编写一个延时子程序,当开始转换时调用此子程序,设定延迟的时间超过转换时间一点,这样就可以确定转换完成,这样就可以输出转换完成的数据。
(2)查询方式
A/D转换芯片有转换结束标志位,就选用的ADC0809的EOC端。
所以只需要检测EOC输出的高低电位就可以知道转换完成没有,这样就可以输出转换完成的数据。
(3)中断方式
以EOC作为中断请求,用中断把转换完成的数据输出。
定时,查询,中断都可以选用,当都检测到转换后,编写相应程序输出数据。
而且OE触发后,转换完成的数字量传送到D0~D7,最后到达单片机并进行处理。
ADC0809有8路模拟量输入端和8位数字量输出端,但输入端只可以换1路,而引脚ADDA、ADDB、ADDC的编写对其控制,如图3-5。
图3-5通道选择表
ADC0809的结构及转换原理
ADC0809是逐次逼近型,Vcc需输入5V。
模拟量输入端有8路模拟开关,而选用是由ADDA、ADDB、ADDC的编写控制。
ADC0809转换时间是100μs,数字量输出端有三态输出锁存器,转换后的数据可直接发送到MCS-51的数据总线。
ADC0809的结构框图如图3-6。
图3-6ADC0809的结构框图
ADC0809连线图
如图3-7:
图3-7ADC0809的连线图
3.389C51单片机系统
单片机是一种有计算机属性也被说成微型计算机的集成芯片,并且用户自己通过编程来控制实现其功能。
实现的方式主要输入输出高低电平到引脚触发,然后就可以实现引脚连接处的电路。
单片机的应用很广泛,可用于自动化,智能仪器,消费类电子产品,通信,武器装备等。
单片机片内结构
单片上集中那些具有特殊功能的器件,如图3-8。
主要组成结构:
⑴2个16位定时器、计数器。
⑵一个串行口。
⑶中断系统。
⑷数据存储器(RAM)。
⑸控制器(CPU)。
⑹特殊功能寄存器(SFR)。
⑺程序存储器(ROM/EPROM)。
⑻4个I/O口(P0、P1、P2、P3)。
图3-851单片机片内结构
这些器件在单片机内连接在同一总线上,原理是控制器和单片机周边器件组成的传统结构模式。
运算器对器件的工作是通过SFR的集中控制方式。
单片机的型号选择是AT89C51。
因其与其他系列单片机相比,都具备基本功能,且性能不比其它差,而且拥有很好的抗干扰能力,消耗功率小,提供的电源电压只需5V或12V,电压比较稳定,不易受影响。
价格便宜,使用简单,操作方便,相关程序编写更易上手。
89C51芯片介绍
89C51共有40个引脚,如图3-9。
这些引脚都互相兼容,使用时注意有些引脚要加上拉电阻保护,其应用双列直插封装方式。
图3-9单片机封装引脚图
这些引脚大致可以归纳成三大类:
⑴电源和时钟引脚:
Vcc、GND、XTAL1、XTAL2。
Vcc、GND:
单片机电源引脚,不同型号所需要的电源电压也不同,一般接5V,有时也接3.3V。
XTAL1、XTAL2:
外时钟引脚,单片机内含有振荡电路,为时钟信号服务,此时XTAL1要输入,XTAL2要输出。
89C51有两种时钟方式:
弟一种是外时钟,XTAL2输入信号,XTAL2接地,因其是固定电路,很少用。
还有一种是内时钟,还要在电路中加入石英晶体和振荡电容而产生脉冲,一般常用,所以选用后者。
⑵编程控制引脚:
RST、
、ALE/
、
/Vpp。
①RST:
复位引脚,高电压触发。
要想其正常工作必需是连续输入至少2个机器周期,这时才能复位初始化。
复位还分为上电复位和按键复位。
②ALE/
:
ALE锁存端,第二功能
脉冲输入端。
现在单片机内部很完善,一般都不常用这个引脚。
③
允许输出引脚,低电平触发。
主要控制外部程序储存器的读操作,一般连接输出允许端OE.
④
/VPP:
选择控制引脚。
若
=1,就会读取片内程序存储器,若
=0,就直接访问外部(ROM),即使有内部(ROM)。
⑶I/O口:
P0、P1、P2、P3引脚,均是双向8位。
除P0没有上拉电阻,其它都有,所以P0要加上一个10KΩ的上拉电阻。
这些引脚都是独立控制,高电平触发,但要注意有些引脚的第二功能。
因89C51内部有ROM,所以
输入高电平,即使ROM只有4KB,但已满足本课题的需要,不用要再扩展ROM。
其硬件电路如图1。
晶振电路和复位电路
单片机最简电路由三个最基本的电路组成,分别是复位电路,时钟电路和电源电路。
有了这三个部分单片机就可以正常工作,缺一不可。
当然,若对最小系统加储存器,A/D等就可以进行更复杂的工作。
89C51内部含有ROM,由其组成的最小系统只需加上时钟与复位,如图3-10。
当然因电路简单,最小系统功能控制也有限。
图3-10最小系统原理图
(1)时钟电路
89C51有内时钟与外时钟,因后者电路固定,不灵活,一般都用前者。
如图3-11,有两个30PF的电容来稳频起振,晶振主要是靠石英晶体,其两侧分别连接XTAL1和XTAL2,由振荡而完成脉冲。
振荡频率一般在1.2—12MHz一般选用12MHz或6MHz。
图3-1189C51内时钟电路
(2)复位电路
需要在RST上持续输入2个周期以上高电平时复位初始化(如果一直输入高电平,复位就一直循环),其又可分为上电复位与按键复位,本课题选用按键复位,其电路如图3-12。
按键复位又分电平与脉冲,一般选用电平复位,操作简单方便,只需把RST直接连接电源即可。
图3-1289C51复位电路
(3)89C51中断
中断是为是单片机对外部或内部随机发生的事情实时处理而设置,这能提高单片机对实践的处理能力。
其定义可理解为CPU在进行某项工作的时候,发生了另一件事,CPU会接受到处理请求(中断发生),CPU就会放下现在做的事(中断响应),而去处理刚发生的事(中断服务),等处理完此事后,返回原工作继续作。
图3-13。
图3-13中断响应和处理过程
3.4LCD1602液晶
LCD1602是常用液晶,运用于仪器仪表类居多,可以表达32个字符。
因液晶显示器的结构简单,制作方便快捷,也经常出现在生活家电上,如电费计费表,智能冰箱等,它可以让使用者知道想要的数字,符号及图形。
它的原理也很简单,屏幕里的电极作用于液晶分子,从而可以显示。
其又可以划分成3种:
最简单的发光管,数码管和常用的液晶显示器。
其中最后一种功能要多些,单片机的开发运用最好的选择。
选择晶液显示器的好处:
①当向液晶显示器输入信号后,正常工作,且持续,也就是一直发光显示,不闪烁,不像其它一些是通过刷新亮点,而且看起来画质清晰,舒服。
②液晶显示器可以表达32个字符,满足大多单片机的需要,它们之间的连接也很简单,焊接时也不容易出错,接受到的信号速度也快。
③液晶显示器与其它功能相当的显示器比要精致且小。
④液晶显示器对外部电源耗电量少,因其内部有电极和驱动IC提供主要电量,从而大大的节省电量,即低功耗。
(1)引脚介绍:
1引脚:
VSS即GND,接地。
2引脚:
VDD即Vcc,电源电压,一般需要5V。
3引脚:
VL是对比度调整端,一般正常工作要输入低电平即接地,由于对比度太高,不易于显示结果,要加一个10K左右电位器来降低对比度,避免“鬼影”的出现。
也可输入高电平即接电源,此时对比度太弱,显示结果不清晰。
4引脚:
RS是寄存器的选择,输入不同,作用也不同。
若通入高电平,则表达为数据,若通入低电平,则表达为指令。
5引脚:
R/W是读写信号端。
如果输入高电平触发,则表达为读操作,如果输入低电平触发,则表达为写操作。
如果都向RS和R/W输入一个低电平,则液晶显示器就能进行写入指令也能显示地址。
如果都向RS和R/W输入一个高电平,则液晶显示器就能进行读忙信号。
如果向RS输入高电平而R/W输入低电平,则液晶显示器就能进行写入数据。
6引脚:
E是使能端。
如果它的电压发生变化(只能由高变低),则液晶显示器就可以进行执行命令。
7~14引脚:
D0~D7为液晶显示器的I/O口。
15引脚:
背光源正极。
16引脚:
背光源负极。
(2)LCD1602的内部工作
LCD1602的工作原理其实并不复杂,主要是靠点阵字符来实现显示功能,这些字符都包含在发生储存器里,并且多达160个,进而可以表达很多不同的图形,如常用数字,英文等。
这些字符都有自己相对应的固定代码,通过代码就可以把相对应的地址在液晶显示上点亮点阵字符,从而可以看到想要的显示效果。
点阵字符的输入控制是靠指令的编写,下面介绍指令作用。
指令1:
主要作用是清除显示,把液晶显示恢复到原来的样子,其指令码为01H。
指令2:
起复位作用,针对对象是光标,主要是把光标位置移到地址00H,这样就可以进行复位。
指令3:
对光标与显示移动控制。
I/D:
控制光标移动,如果输入高电平,则光标右移,如果输入低电平,则光标左移。
S:
检测屏幕显示文字控制。
如果检测到的是高电平,则代表左移或右移,如果检测到的是低电平,则代表没有动。
指令4:
显示开关模式设置。
D:
整体显示开关设置,如果检测到的是高电平,则代表是开显示,如果检测到的是低电平,则代表是关显示。
C:
开关的检测设置,主要针对对象是光标,如果检测到的是高电平,则表明有光标,如果检测到的是低电平,则表明没有光标。
B:
检测光标闪烁,如果检测到的是高电平,则表示闪烁,如果检测到的是低电平,则表示没有闪烁。
指令5:
控制光标或显示的移位设置。
S/C:
如果输入的是低电平的话,则就移动光标,如果输入的是高电平,则就移动显示的文字。
指令6:
功能设置命令
DL:
一般情况下,如果输入的是高电平,则表示为4位总线,如果输入的是低电平,则表示为8位总线(本课题选的就是这种类型,而有些则相反)。
N:
如果输入的是低电平,则代表成单行显示,如果输入的是高电平,则代表成双行显示。
F:
如果输入的是低电平,则表示选择5X7的点阵字符,如果输入的是高电平,则表示选择5x10的点阵字符(不同类型此功能不同)。
指令7:
控制RAM,并进行相应的地址设置,随意取出或存入。
指令8:
控制DDRAM,并进行相应的地址设置。
指令9:
检测是否忙信号。
BF:
这是忙的标志位,如果输入的是高电平,则代表现在忙,就不可以接受输入的命令或数据,而相反输入的是低电平,则代表现在不忙,就可以接收到输入的命令或数据,这个过程是必要的。
指令10:
表示写数据。
指令11:
表示读数据。
要使液晶显示器正常工作,必需要检测忙标志位,是否忙,不然写入的指令或数据不接受而失效。
当然值得注意的是:
要想显示正确的字符,而不会出现乱码,必需也要先输入相对应的字符地址,液晶显示器显示我们想要的字符。
如图3-14:
图3-141602内部显示地址
由图可知,LCD是16字x2行的,倘若想要读取字符地址40H,是否只需要输入40H就可以了?
答案肯定是行不通的,因为有个地址是一直输入高电压的,只要LCD液晶工作,那个地址D7就持续输入高电平,所以输入的数据要对其进行相应的计算处理,最后得出应该输入C0H,才可以得到40H的地址。
液晶初始化时,必需对显示模式进行设置,而可以不用控制光标,系统默认其自动右移。
需注意要写入指令钱,必需要检测忙标志位,不然会导致写入的指令不接受而失效。
LCD液晶主要是靠点阵字符来实现显示功能,这些字符都包含在发生储存器里,并且多达160个,进而可以表达很多不同的图形,如常用数字,英文等。
现在液晶显示器功能,结构都得到了很好的完善,应用广泛。
从液晶显示电路分析,当输入电压,其内部就会进行模式设置与控制,从而达到显示。
本课题液晶显示电路运用了灰度调节,在电压与接地处分别加上10k电阻和1k电阻,分压保护电路,灰度适中。
如图3-15:
图3-15液晶显示电路
3.5键盘电路
电路图的键盘一端连接的是地,另一端连接输出高电平的单片机,如果按下按键,连接单片机的端口就接地,变为低电平,改变信号,从而达到按键的作用。
单片机键盘可以划分为两大类,一类是独立键盘(本课题选择),另一类是矩阵式键盘。
由于原理电路复杂,编程不易,所以没有选择矩阵键盘,即使只需要几个I/O口。
独立键盘就要简单的多,易编程,容易理解,与单片机I/O端口连接呈一一对应关系,条理清晰,系统也稳定,初学者最好的选择。
独立式键盘的工作原理也不复杂,键盘一端连接的是地,另一端连接输出高电平的单片机,如果按下按键,连接单片机的端口就接地,变为低电平,改变信号,简单的说就是对I/O端高低电平的检测。
开关又可以分为自锁开关和常开开关,键盘常用常开。
当单片机正常运行时I/O变为高电平,然后一直保持,如果按下键盘,I/O端就接地,从而转成低电平,随后,放开按键,I/O端又会恢复高电平,这是由于单片机里面含有上拉电阻。
所以编写程序的时候,只需要检测I/O端电平的高低就能知道有没有按下键盘。
值得注意的是键盘有两个抖动过程,刚开始按下与刚放开的时候,放开时的抖动可以不用管,因为要检测的是按下,所以主要是针对刚按下时的抖动进行去抖。
抖动是由于刚按下时电压不稳定造成的,抖动间隙大约为10ms(89C51),属于机械抖动。
虽然抖动间隙时间看起来很短,但是运算速度很快的单片机处理时就会等待很长的时间。
去抖操作又可以通过专用去抖电路和专用去抖芯片,最好的方式是通过程序软件延时,程序简单,易于操作,不用再往单片机上加其他电路,使其复杂化。
当检测到I/O口出现低电平,立即调用延时函数,等待抖动消失,延时完成后会再次检测I/O口是否还是低电平,如果是,则表示按下按键,接着执行编写好的程序。
其电路如图3-16:
图3-16按键电路
3.6报警电路
LED显示电路
如图3-17:
图3-17LED显示电路
LED是发光二极管,生活中常见,且无处不在,它的全称是LightEmittingDiode,这个只是它的英文缩写。
它是一种半导体材料组成,从正极输入电流时才正常发光,把电能转换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 酒精 浓度 测试仪 设计