酒精检测仪设计.docx

上传人:b****5 文档编号:30010429 上传时间:2023-08-04 格式:DOCX 页数:19 大小:448.07KB
下载 相关 举报
酒精检测仪设计.docx_第1页
第1页 / 共19页
酒精检测仪设计.docx_第2页
第2页 / 共19页
酒精检测仪设计.docx_第3页
第3页 / 共19页
酒精检测仪设计.docx_第4页
第4页 / 共19页
酒精检测仪设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

酒精检测仪设计.docx

《酒精检测仪设计.docx》由会员分享,可在线阅读,更多相关《酒精检测仪设计.docx(19页珍藏版)》请在冰豆网上搜索。

酒精检测仪设计.docx

酒精检测仪设计

 

毕业设计

酒精浓度测试仪的设计

 

学院

移动通信与软件学院

年级

2012级1班

专业

通信

学号

5

学生姓名

匡胜东

指导老师

郑运刚

2014

毕业设计诚信承诺书

题目

酒精浓度测试仪的设计

学生姓名

匡胜东

学号

5

专业

通信技术

班级

2012级1班

学生承诺

我承诺在毕业设计活动中,遵守学校有关规定,恪守学术规范,本人毕业设计内容除特别注明和引用外,均为本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的情况,如果有违规行为和毕业设计抄袭率达到30%以上,我愿意承担一切责任,接受学校的处理。

学生(签名):

年月日

指导教师承诺

我承诺在毕业设计活动中,遵守学校有关规定,恪守学术规范,经过本人核查,该生毕业设计内容除特别注明和引用外,均为本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的现象。

指导教师(签名):

年月日

摘要

2000年以来,随着中国经济的高速发展,人民生活水平的迅速提高,中国逐渐步入“汽车社会”。

此外,因为交通事故造成的经济损失也相当惊人。

在全国各地加强查处酒后驾驶的力度,以减少由酒后驾驶造成的恶性交通事故。

要查处就涉及到检测人体内的酒精含量和使用设备来进行检测问题。

本文以单片机设计了一个酒精浓度测试仪系统,本论文大体分为两个部分:

硬件部分和软件部分。

硬件部分利用MQ3酒精浓度传感器输出信号通过A/D转换电路调理后,经由单片机进行数据处理,最后由LED显示酒精浓度值。

软件部分用C语言进行编程,程序采用模块化设计思想。

该测试仪器在于简洁的硬件结构、高效的软件设计和较高的性价不,从而让驾车的人知道自己该在什么情况下可以开车,这是一个在现代生活很实用。

关键字:

酒驾;单片机;MQ3传感器;A/D转换器;LED

 

第一章绪论1

第二章酒精浓度测试仪总体方案设计2

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

2.2酒精浓度测试仪设计方案2

第三章硬件设计4

3.1传感器的选择4

3.2A/D转换电路5

3.389C51单片机系统6

3.4LED显示电路7

第四章软件设计9

4.1系统的主程序设计9

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

第五章测试结果及结论11

结论12

致谢13

参考文献14

附录16

附录1原理图16

附录2原程序17

第一章绪论

近年来,我国越来越多的人有了自己的私家车,而酒后驾车造成的交通事故也频繁发生。

世界卫生组织的事故调查显示,大约50%-60%的交通事故与酒后驾驶有关,酒后驾驶已经被列为车祸致死的只要原因。

在中国,每年由于酒后驾车引发的交通事故达数万起;而造成死亡的事故中50%以上都与酒后驾车有关,酒后驾车的危害触目惊心,已经成为交通事故的第一大“杀手”。

喝酒时酒精的刺激使人兴奋,在不知不觉中就会喝多,当酒精在人体血液内达到一定浓度时,麻痹神经,造成大脑反应迟缓,肢体不受控制等症状。

人对外界的反应能力及控制能力就会下降,处理紧急情况的能力也随之下降。

对于酒后驾车者而言,其血液中酒精含量越高,发生撞车的几率越大。

为此,我国将酒驾列入刑法范围内,所以需要设计一智能仪器能够检测驾驶员体内酒精含量。

本课程设计研究的是一种以气敏传感器和单片机A/D转换器为主,检测驾驶员呼出气体的酒精浓度。

其可检测出空气环境中酒精浓度值。

本课题分为两部分:

硬件设计部分和软件设计部分。

硬件部分为利用MQ3气敏传感器测量空气中酒精浓度,并转换为电压信号,经A/D转换器转换成数字信号后传给单片机系统,由单片机及其相应外围电路进行信号的处理,显示酒精浓度值。

程序采用模块化设计思想,各个子程序的功能相对独立,便于调试和修改。

而硬件电路又大体可分为单片机小系统电路、A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍。

 

第二章酒精浓度测试仪总体方案设计

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

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

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

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

(3)从便携式的角度出发,系统成功使用了数码管显示器以及小键盘。

由单片机系统控制键盘和LED显示来实现人机交互操作,界面友好。

2.2酒精浓度测试仪设计方案

设计时,考虑酒精浓度是由传感器把非电量转换为电量,传感器输出的是0-5伏的电压值且电压值稳定,外部干扰小等。

因此,可以直接把传感器输出电压值经过A/D转换器转换得到数据送入单片机进行处理。

此外,还需接人LED数码管显示电路等。

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

 

图2-1基本工作原理图

酒精浓度测试仪包括以下几个模块:

1、被测环境:

在喝酒的情况下,喝酒的人所呼出的气。

2、气敏传感器:

用于呼气中酒精浓度检测,检测到酒精为电信号,将电信号出入A/D转换器中。

3、A/D转换器:

接收气敏传感器中输入的电信号,将电信号转换成模拟信号,最后将电信号输入单片机中进行信号处理。

4、单片机:

单片机处理模拟转换器中输入的电信号,将处理过后的酒精浓度送入LED中显示。

5、LED显示:

将单片机处理过后的酒精浓度电信号送入LED内显示。

 

第三章硬件设计

3.1传感器的选择

本系统直接测量的是呼气中的酒精浓度,再转换为血液中的酒精含量浓度,故采用气敏传感器。

考虑到周围空气中的气体成分可能影响传感器测量的准确性,所以传感器只能对酒精气体敏感,对其他气体不敏感,故选用MQ3型气敏传感器。

其有很高的灵敏度、良好的选择性、长期的使用寿命和可靠的稳定性。

MQ3型气敏传感器由微型Al2O3,陶瓷管和SnO2敏感层、测量电极和加热器构成的敏感元件固定在塑料或不锈钢的腔体内,加热器为气敏元件的工作提供了必要的工作条件。

传感器的标准回路有两部分组成。

其一为加热回路,其二为信号输出回路,它可以准确反映传感器表面电阻值的变化。

传感器的表面电阻RS的变化,是通过与其串联的负载电阻RL上的有效电压信号VRL输出面获得的。

负载电阻RL可调为0.5-200K。

加热电压Uh为5v。

上述这些参数使得传感器输出电压为0-5V。

MQ3型气敏传感器的结构和外形、标准回路、传感器阻值变化率与酒精浓度、外界温度的关系。

为了使测量的精度达到最高,误差最小,需要找到合适的温度,一般在测量前需将传感器预热5分钟。

MQ3电路图如图3-1所示

图3-1MQ3电路图

3.2A/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的时钟输入端。

ADC0809与单片机的连线图如图3-2所示

图3-2ADC0809的连线图

3.389C51单片机系统

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

这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。

从硬件角度来看,与MCS-52指令完全兼容的新一代89CXX系列机,比在片外加EPROM才能相当的8031单片机抗干扰性能强,与87C52单片机技能相当,但功耗小。

程序修改直接用+5V或+12V电源擦除,更显方便、而且其工作电压放宽至2.7V-6V,因而受电压波动的影响更小,而且4K的程序存储器完全能满足单片机系统的软件要求,故89C52单片机是构造本检测系统的更理想的选择。

87C52单片机图如图3-3所示

图3-387C52单片机图

3.4LED显示电路

LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

数码管分为动态显示和静态显示驱动两种,静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个STC89C52的I/O端口才32个呢:

),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

本设计利用三极管驱动数码管,用4.7k电阻起到限流作用,使得数码管亮度适中。

数码管显示电路图如图3-4所示

图3-4数码管显示电路

第四章软件设计

4.1系统的主程序设计

主程序是系统的转换程序,在程序运行的过程中必须先经过初始化,包括中断程序,以及各个端口的初始化工作。

系统在初始化完成后就进入酒精浓度测量程序,实时的测量当前的酒精浓度并通过显示电路在数码管上显示。

根据硬件设计完成对酒精浓度的测试。

系统软件流程图如图4-1所示

 

 

图4-1软件流程图

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

A/D转换子程序流程图如下图4-2所示。

ADC0809初始化后,把0通道输入的0-5V的模拟信号转换为对应的数字量,然后将对应数值存储到内存单元。

 

图4-2数据采集子程序框图

 

第五章测试结果

调试过程中首先要检测的就是硬件电路的设计原理是否正确、能否达到预期效果以及实现方法是否简便等等;其次在焊接好难有线电路之后,认真检查电路的焊接情况。

这次采用的是分块调试的方法,酒精探测电路,控制电路以及单片机控制电路进行调试。

在对每个模块的进行调试过程中又采用了由局部到整体,由简单到复杂的调试方法,最后再将各个模块总和成一个整体。

调试过程:

(1)插上电源。

(2)打开开关将显示调为零。

(3)将酒精放到传敏器旁,检测酒精浓度。

在调试过程中遇到的问题有:

(1)由于在焊电路之前没有认真的查看89C51的管脚,使得管脚的顺序全部焊错了,最后只好重新买器件重焊;

(2)酒精值一直显示很高,经过查阅资料和换元件测试发现,酒精传感器初次使用得通电几小时以上才可以正常使用,要做老化试验。

(3)在解码程序的编写过程中,随着理解的深入也作了相应的修改。

 

结论

经过一周的努力,终于完成了智能仪器的课程设计。

这是我第一次基于单片机独立设计一个东西。

这对于我来说是很有挑战性的。

首先这是一个基于单片机的课程设计,单片机是这学期学习的课程,虽然不陌生,但是用起来还发现很多的问题。

硬件方面还好解决,弄明白就可以了,但软件方面就非常困难了,虽然以前做过这方面的实验,但那都是些简单应用。

这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

其次,就是使用到的各种元器件。

这次我使用的基本上都是已经学过的元件,但真正用起来才发现自己还差的很多,所以我又重新对所用到的器件仔仔细细,认认真真的研究了一遍从引脚,到时序,再到最后的电路整体构成。

回顾起此次单片机课程设计,我仍感慨颇多。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。

这让我学到了很多课本上没有的东西,扩展了自己的视野,增强了自己的动手能力,清醒的认识到自己的不足,培养了小心谨慎的作风,使自己对课题设计了解进一步加深。

总之,此次的课程设计使我收获颇丰,也是我上大学来难忘的一次经历。

 

致谢

这次毕业设计得到了很多人的帮助,其中**老师对我的关心和支持尤为重要,每次遇到难题,我首先想到的就是向金老师寻求帮助。

另外,他严谨的作风使我的论文即使在谨小细微处也给予了纠正,让我的论文无论是结构还是内容变得更加公整、紧凑,感谢金老师对我的悉心指导。

感谢校方给予我这样一次机会,能够独立地完成这样一个设计,作为检验这些年来学习的成果,在这个过程当中,学校给予我们各种方便,使我们在即将离校的最后一段时间里,能够更多学习一些实践应用知识,增强了我们实践操作和动手应用能力,提高了独立思考的能力。

再一次对我的母校表示感谢。

感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,正是因为有了你们的帮助,才让我不仅学到了本次课题所涉及的新知识,更让我感觉到了知识以外的东西,那就是团结的力量。

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!

最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!

 

参考文献

[1]陈权昌,李兴富.单片机原理及应用[M].广州:

华南理工大学出版社,2007.8

[2李庆亮.C语言程序设计实用教程[M].北京:

机械工业出版社,2005.3

[3]杨志忠.数字电子技术[M].北京:

高等教育出版社,2003.12.

[4]及力.Protel99SE原理图与PCB设计教程[M].北京:

电子工业出版社,2007.8.

[5]徐江海.单片机实用教程[M].北京:

机械工业出版社,2006.12

[6]胡宴如.模拟电子技术[M].北京:

高等教育出版社,2008.6

[7]刘宁.单片机多功能时钟的设计[M].浙江:

浙江海洋学院,2009.

[8]汪文,陈林.单片机原理及应用[M].湖北:

华中科技大学出版社,2007.

[9]康华光.电子技术基础数字部分[M].北京:

高等教育出版社,2008.

附录

附录1原理图

附录2原程序

//程序头函数

#include

//宏定义

#defineuintunsignedint

#defineucharunsignedchar

#defineData_ADC0809P1

//管脚声明

//ADC0809

sbitST=P3^3;

sbitEOC=P3^4;

sbitOE=P3^2;

//显示数组0-9+F

ucharData_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x3f};

sbitWei1=P2^7;

sbitWei2=P2^6;

sbitWei3=P2^5;

sbitWei4=P2^4;

//函数声明

externucharADC0809();

voidDisplay(ucharX,ucharData);

voiddelay(uintt);

//酒精含量变量

uchartemp=0;

//显示模式

ucharMode=0;

ucharp;

voidmain()

{

while

(1)

{

//正常模式

if(Mode==0)

{

//读取AD值

temp=ADC0809();

for(p=0;p<30;p++)

if(temp>FF)

{

}

//调整模式

else

{

Display(1,FF);

}

//ADC0809读取信息

ucharADC0809()

{

uchartemp_=0x00;

//初始化高阻太

OE=0;

//转化初始化

ST=0;

//开始转换

ST=1;

ST=0;

//外部中断等待AD转换结束

while(EOC==0)

temp_=Data_ADC0809;

OE=0;

returntemp_;

}

//延时

voiddelay(uintt)

{

uinti,j;

for(i=0;i

for(j=0;j<10;j++);

}

//显示X表示状态Data表示数据

voidDisplay(ucharX,ucharData)

{

P0=0xff;

//正常模式

if(X==0)

{

P0=~Data_[11];

}

//非正常

else

{

P0=~Data_[10];

}

Wei1=0;

Wei4=1;

P0=~Data_[Data/100];

Wei1=1;

Wei2=0;

P0=~Data_[Data/10%10];

Wei1=1;

Wei2=1;

Wei3=0;

Wei4=1;

delay(10);

Wei1=1;

Wei2=1;

Wei3=1;

Wei4=1;

P0=~Data_[Data%10];

Wei1=1;

Wei2=1;

Wei3=1;

Wei4=0;

delay(10);

Wei1=1;

Wei2=1;

Wei3=1;

Wei4=1;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1