文档库 最新最全的文档下载
当前位置:文档库 › 基于单片机酒精浓度测试仪设计毕业设计

基于单片机酒精浓度测试仪设计毕业设计

防灾科技学院

毕业设计

题目基于单片机酒精浓度测试仪设计

学生姓名骆成曦学号105032211

系别防灾仪器系专业测控技术与仪器班级1050322

开题时间2013年12月20日答辩时间2014年6月6 日指导教师刘淑聪职称讲师

基于单片机酒精浓度测试仪设计

作者骆成曦

指导教师刘淑聪

摘要本文设计一种可以检测酒精浓度并在超过一定浓度阈值时进行声光报警提示的酒精浓度

测试仪。系统采用酒精浓度传感器MQ3,把检测到的酒精浓度转换为电信号,经A/D转换器转换成数字信号在传给单片机,最后单片机进行相应处理,LCD液晶可以显示酒精浓度,当超过设定值时系统可以进行声光报警。

关键词:89C51单片机;MQ3浓度酒精传感器;ADC0908;LCD1602液晶;

Based on single chip microcomputer alcohol tester design

Author Luo chengxi

Teacher Liu Shucong

Abstract:

This paper studies can detect alcohol concentration and sound and light alarm prompt more than the threshold. Mainly adopts MQ3, alcohol concentration sensor to detect the alcohol concentration can be converted into electrical signals, after A/D converter is converted into digital signals to single chip microcomputer, the corresponding single-chip processing, LCD liquid crystal display (LCD) and alcohol concentration exceeds the set value of sound and light alarm. In this paper, we introduce the sensor, converter, MCU, LCD monitor, when alarm circuit and the principle of use.

Keywords:89 c51; MQ3 alcohol concentration sensor; ADC0908 converter; LCD1602 LCD; The hardware and software design.

目录

第一章绪论 (5)

第二章酒精测试仪总体设计 (5)

2.1 酒精浓度检测仪设计要求 (5)

2.2 酒精浓度检测仪设计方案 (5)

第三章硬件设计 (6)

3.1 传感器的选择 (6)

3.2 A/D转换电路 (7)

3.3 89C51单片机系统 (11)

3.4 LCD1602液晶 (15)

3.5键盘电路 (18)

3.6报警电路 (19)

第四章软件设计 (21)

4.1 Keil与Protel99SE介绍 (21)

4.2 主程序框图 (22)

4.3 数据采集子程序程序框图 (23)

第五章测试结果及结论 (24)

5.1 调试 (24)

5.2 结论 (25)

致谢 (26)

参考文献 (27)

附录 (27)

第一章绪论

随着国家的发展,我们的国家有车的人可以说与日俱增,而酒驾酿成的交通事故经常出现。因此,国家很重视酒驾问题并严惩,所以设计可检测驾驶员口腔酒精浓度的智能仪器是很有必要的。本课程研究的是用气体传感器检测,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-1 MQ3 结构和外形

被测 环境

气敏 传感器

A/D 转换电路

单片机 声光报警电路

液晶显示

键盘

防灾科技学院毕业设计

A 1F 2A

3

B

4

F 5B 6RL 3MQ-2

+5

GND

R8

470

GND I N

R75.1

C4

104

图3-2 MQ3 原理图

图3-3 乙醇浓度与传感器阻值变化率的关系

3.2 A/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-4 ADC0809的引脚

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-6 ADC0809的结构框图

ADC0809连线图 如图3-7:

In31In53In64In75START 6EOC 7D38OE

9CLOCK 10Vcc 11Vref+12GND 13D114

D2

15

Vref-16D017D418D519D721ALE 22ADDC 23ADDB 24ADDA 25In026In127In42D620In228ADC0809

ADC1ADC0809

+5

GND

D0

D 1

D 2

GND

D3D4D5D6D7ST ST EOC

OE CLK

IN

图3-7 ADC0809的连线图

START CLK

OE

V R (+) V R (-)

V CC GND

EOC

D0 . . . D7

三态输出锁存器

8位A/D 转换器

地址锁存与密码

C B A ALE

8 路模

拟量开 关

IN7 …. IN0

3.3 89C51单片机系统

单片机是一种有计算机属性也被说成微型计算机的集成芯片,并且用户自己通过编程来控制实现其功能。实现的方式主要输入输出高低电平到引脚触发,然后就可以实现引脚连接处的电路。单片机的应用很广泛,可用于自动化,智能仪器,消费类电子产品,通信,武器装备等。

单片机片内结构

单片上集中那些具有特殊功能的器件,如图3-8。主要组成结构: ⑴ 2个16位定时器、计数器。 ⑵ 一个串行口。 ⑶ 中断系统。 ⑷ 数据存储器(RAM)。 ⑸ 控制器(CPU )。 ⑹ 特殊功能寄存器(SFR )。 ⑺ 程序存储器(ROM/EPROM )。 ⑻ 4个I/O 口(P0、P1、P2、P3)。

图3-8 51单片机片内结构

PSEN

8

8

X T A L 1 CPU

(运算器) (控制器)

数据存储器

RAM

P0

P2

程序存储器 ROM/EPROM

P1

串 行 口

定时器/计数器

中断系统

特殊功能寄存器 (SFR )

P3

ALE

EA

X T A L 2

8

8

RESET

这些器件在单片机内连接在同一总线上,原理是控制器和单片机周边器件组成的传统结构模式。运算器对器件的工作是通过SFR的集中控制方式。

单片机的型号选择是AT89C51。因其与其他系列单片机相比,都具备基本功能,且性能不比其它差,而且拥有很好的抗干扰能力,消耗功率小,提供的电源电压只需5V 或12V,电压比较稳定,不易受影响。价格便宜,使用简单,操作方便,相关程序编写更易上手。

89C51芯片介绍

89C51共有40个引脚,如图3-9。这些引脚都互相兼容,使用时注意有些引脚要加上拉电阻保护,其应用双列直插封装方式。

P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7

RST

(TXD) P3.1 (INT0) P3.2 (INT1) P3.3 T0 P3.4 T1 P3.5 (WR) P3.6 (RD) P3.7

XTAL1

XTAL2

GND

Vcc

P0.0 (AD0)

P0.1 (AD1)

P0.2 (AD2)

P0.3 (AD3)

P0.4 (AD4)

P0.5 (AD5)

P0.6 (AD6)

P0.7 (AD7)

EA/VPP

PSEN

P2.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.0

ALE/PROG

图3-9 单片机封装引脚图

这些引脚大致可以归纳成三大类:

⑴电源和时钟引脚:Vcc、GND、XTAL1、XTAL2。

Vcc、GND:单片机电源引脚,不同型号所需要的电源电压也不同,一般接5V,有时也接3.3V。

XTAL1、XTAL2:外时钟引脚,单片机内含有振荡电路,为时钟信号服务,此时XTAL1要输入,XTAL2要输出。89C51有两种时钟方式:弟一种是外时钟,XTAL2输入信号,XTAL2接地,因其是固定电路,很少用。还有一种是内时钟,还要在电路中加入石英晶体和振荡电容而产生脉冲,一般常用,所以选用后者。

⑵ 编程控制引脚:RST 、PSEN 、ALE/ PROG 、EA /Vpp 。

① RST :复位引脚,高电压触发。要想其正常工作必需是连续输入至少2个机器周期,这时才能复位初始化。复位还分为上电复位和按键复位。

② ALE/ PROG :ALE 锁存端,第二功能PROG 脉冲输入端。现在单片机内部很完善,一般都不常用这个引脚。

③ PSEN :允许输出引脚,低电平触发。主要控制外部程序储存器的读操作,一般连接输出允许端OE.

④ EA /V PP :选择控制引脚。若EA =1,就会读取片内程序存储器,若EA =0,就直接访问外部(ROM ),即使有内部(ROM )。

⑶ I/O 口:P0、P1、P2、P3引脚,均是双向8位。除P0没有上拉电阻,其它都有,所以P0要加上一个10K Ω的上拉电阻。这些引脚都是独立控制,高电平触发,但要注意有些引脚的第二功能。

因89C51内部有ROM ,所以EA 输入高电平,即使ROM 只有4KB ,但已满足本课题的需要,不用要再扩展ROM 。其硬件电路如图1。

晶振电路和复位电路

单片机最简电路由三个最基本的电路组成,分别是复位电路,时钟电路和电源电路。有了这三个部分单片机就可以正常工作,缺一不可。当然,若对最小系统加储存器,A/D 等就可以进行更复杂的工作。

89C51内部含有ROM ,由其组成的最小系统只需加上时钟与复位,如图3-10。当然因电路简单,最小系统功能控制也有限。

图3-10最小系统原理图 (1) 时钟电路

89C51有内时钟与外时钟,因后者电路固定,不灵活,一般都用前者。如图3-11,有两个30PF 的电容来稳频起振,晶振主要是靠石英晶体,其两侧分别连接XTAL1和

时钟电路

复位电路

STC89C51单片机

I/O

XTAL2,由振荡而完成脉冲。振荡频率一般在1.2—12MHz 一般选用12MHz 或6MHz 。

Y1

11.0592MHz

C2

30pF

C3

30pF

18

19

图3-11 89C51内时钟电路

(2) 复位电路

需要在RST 上持续输入2个周期以上高电平时复位初始化(如果一直输入高电平,复位就一直循环),其又可分为上电复位与按键复位,本课题选用按键复位,其电路如图3-12。

按键复位又分电平与脉冲,一般选用电平复位,操作简单方便,只需把RST 直接连接电源即可。

R110k

C110uF

S4

VCC

9

图3-12 89C51复位电路

(3)89C51中断

中断是为是单片机对外部或内部随机发生的事情实时处理而设置,这能提高单片机对实践的处理能力。其定义可理解为CPU 在进行某项工作的时候,发生了另一件事,CPU 会接受到处理请求(中断发生),CPU 就会放下现在做的事(中断响应),而去处理刚发生的事(中断服务),等处理完此事后,返回原工作继续作。图3-13。

图3-13 中断响应和处理过程

3.4 LCD1602液晶

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是使能端。如果它的电压发生变化(只能由高变低),则液晶显示器就可以进行执行命令。

相关文档