微型计算机技术课程实验报告—酒精浓度检测器_第1页
微型计算机技术课程实验报告—酒精浓度检测器_第2页
微型计算机技术课程实验报告—酒精浓度检测器_第3页
微型计算机技术课程实验报告—酒精浓度检测器_第4页
微型计算机技术课程实验报告—酒精浓度检测器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课课 程程 设设 计计 报报 告告设计名称:设计名称: 酒精浓度检测器酒精浓度检测器 系系 (部部): 学生姓名:学生姓名: 班班 级:级: 学学 号:号: 成成 绩:绩: 指导教师:指导教师: 开课时间:开课时间: 学年学年 学期学期2目录目录1需求分析.42设计原理.43实验原理.53.1 硬件设计.53.1.1 传感器的选择.53.1.2 a/d 转换电路.63.1.3 89c51 单片机系统.93.1.4 led 显示电路.133.1.5 键盘电路.143.1.6 报警电路.153.2 软件设计.153.2.1 主程序框图.153.2.2 数据采集子程序程序框图.163.2.3 报警

2、子程序程序框图.164汇编程序.175设计总结.246参考文献.253一设计题目一设计题目酒精浓度检测器二主要内容二主要内容使用 mq-303a 酒精传感器,adc0809 模数转换器,仪表放大器 ad620, at89s51 芯片,led 七字段数码管设计一个检测酒精浓度的装置,酒精浓度使用 led 七字段数码管动态显示,并在酒精浓度超过一定检测范围时能够发出报警信息。三具体要求三具体要求设计的酒精浓度测试仪应具有如下特点:(1)数据采集系统以单片机为控制核心,外围电路带有led显示以及键盘响应电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程。(2)

3、系统具有低功耗、小型化、高性价比等特点。(3)从便携式的角度出发,系统成功使用了数码管显示器以及小键盘。由单片机系统控制键盘和led显示来实现人机交互操作,界面友好。(4)软件设计简单易懂。四进度安排四进度安排本次课程设计共 1.5 周,7 天的时间。第 1 天 查阅课程设计所需元器件的相关资料。第 23 天 熟悉所选元器件的工作原理以及相关功能。第 45 天 根据实验要求使用 protel dxp 2004 绘出逻辑电路。第 6 天 编写汇编程序,并验证、修改、完善。第 7 天 课程设计答辩,整理课程设计报告打印上交。五成绩评定五成绩评定 4正文正文1 1需求分析需求分析近年来,我国越来越多

4、的人有了自己的私家车,而酒后驾车造成的交通事故也频繁发生。为此,我国将酒驾列入刑法范围内,所以需要设计一智能仪器能够检测驾驶员体内酒精含量。本课程设计研究的是一种以气敏传感器和单片机 a/d 转换器为主,检测驾驶员呼出气体的酒精浓度,并具有声光报警功能的空气酒精浓度监测仪。其可检测出空气环境中酒精浓度值,并可根据不同的环境设定不同的阈值,对超过的阈值进行声光报警来提示危害。本课题分为两部分:硬件设计部分和软件设计部分。硬件部分为利用 mq3气敏传感器测量空气中酒精浓度,并转换为电压信号,经 a/d 转换器转换成数字信号后传给单片机系统,由单片机及其相应外围电路进行信号的处理,显示酒精浓度值以及

5、超阈值声光报警。程序采用模块化设计思想,各个子程序的功能相对独立,便于调试和修改。而硬件电路又大体可分为单片机小系统电路、a/d 转换电路、声光报警电路、led 显示电路,按键电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍。2 2设计原理设计原理设计时,考虑酒精浓度是由传感器把非电量转换为电量,传感器输出的是0-5伏的电压值且电压值稳定,外部干扰小等。因此,可以直接把传感器输出电压值经过a/d转换器转换得到数据送入单片机进行处理。此外,还需接人led显示,4*4键盘,报警电路等。其总体框图如图1所示。被测环境气敏传感器a/d 转换电路单片机声光报警电路led 显示键盘图1 基本工作

6、原理图53 3实验原理实验原理3.13.1 硬件设计硬件设计3.1.13.1.1 传感器的选择传感器的选择本系统直接测量的是呼气中的酒精浓度,再转换为血液中的酒精含量浓度,故采用气敏传感器。考虑到周围空气中的气体成分可能影响传感器测量的准确性,所以传感器只能对酒精气体敏感,对其他气体不敏感,故选用 mq3 型气敏传感器。其有很高的灵敏度、良好的选择性、长期的使用寿命和可靠的稳定性。mq3 型气敏传感器由微型 al2o3,陶瓷管和 sno2 敏感层、测量电极和加热器构成的敏感元件固定在塑料或不锈钢的腔体内,加热器为气敏元件的工作提供了必要的工作条件。传感器的标准回路有两部分组成。其一为加热回路,

7、其二为信号输出回路,它可以准确反映传感器表面电阻值的变化。传感器的表面电阻rs 的变化,是通过与其串联的负载电阻 rl 上的有效电压信号 vrl 输出面获得的。负载电阻 rl 可调为 05-200k。加热电压 uh 为 5v。上述这些参数使得传感器输出电压为 0-5v。mq3 型气敏传感器的结构和外形、标准回路如图 2 和 3所示。为了使测量的精度达到最高,误差最小,需要找到合适的温度,一般在测量前需将传感器预热 5 分钟。图2 mq3 结构和外形6图3 mq3 结构图3.1.23.1.2 a/da/d 转换电路转换电路在单片机应用系统中,被测量对象的有关变化量,如温度、压力、流量、速度等非电

8、物理量,须经传感器转换成连续变化的模拟电信号(电压或电流),这些模拟电信号必须转换成数字量后才能在单片机中用软件进行处理。实现模拟量转换成数字量的器件称为 a/d 转换器(adc)。a/d 转换器大致分有三类:一是双积分 a/d 转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近型 a/d 转换器,精度、速度、价格适中;三是-a/d 转换器。该设计中选用的是 adc0809 属第二类,是 8 位 a/d 转换器。0809 具有 8 路模拟信号输入端口,地址线(23-25 脚)可决定那一路模拟信号进行 a/d 转换。22 脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6

9、 脚为测试控制,当输入一个 2s 的高电平脉冲时,就开始 a/d 转换。7 引脚为 a/d 转换结束标志,当 a/d 转换结束时,7 脚输出高电平。9 脚为 a/d 转换数据输出允许端,当 oe 脚为高电平时,a/d 转换数据输出。10 脚为 0809 的时钟输入端。1)adc0809 的引脚及功能逐次比较型 a/d 转换器在精度、速度、和价格上都适中,是最常用的 a/d转换器件。芯片采用的是 adc0809,以下介绍 adc0809 的引脚及功能。芯片如图 4 所示。7 图 4 adc0809 的引脚adc0809 是一种逐次比较式 8 路模拟输入、8 位数字量输出的 a/d 转换器。由图可

10、见,adc0809 共有 28 个引脚,采用双列直插式封装。主要引脚功能如下: in0-in7 是 8 路模拟信号输入端。 d0-d7 是 8 位数字量输入端。 a、b、c 与 ale 控制 8 路模拟通道的切换,a、b、c 分别与 3 根地址线或数据线相连,3 位编码对应 8 个通道地址端口。需要注意的是:adc0809 虽然有 8 路模拟通道可以同时输入 8 路模拟信号,但每个瞬间只能换 1 路,共用一个 a/d 转换器进行转换,各路之间的切换由软件改变 c、a、b 引脚上的代码来实现。地址锁存与译码电路完成对 a、b、c 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三

11、态输出锁存器存放、输出,因此可以直接与系统数据总线相连,图 5 为通道选择表。8图 5 通道选择表 oe、start、clk 为控制信号端,oe 为输出允许端,start 为启动信号输入端,clk 为时钟信号输入端。 vr(+)和 vr(-)为参考电压输入端。2)adc0809 的结构及转换原理adc0809 的结构框图如图 6。adc0809 采用逐次比较的方法完成 a/d 转换的,由单一的+5v 电源供电。片内有锁存功能的 8 路选 1 的模拟开关,由 c、b、a引脚的功能来决定所选的通道。0809 完成一次转换需 100s 左右,输出具有ttl 三态锁存缓冲器,可直接连接到 mcs-51

12、 的数据总线上。通过适当的外接电路,0809 可对 0-5v 的模拟信号进行转换。9start clkoevr(+) vr()vccgndeocd0.d7三态输出锁存器8 位a/d转换器地址锁存与密码cbaale8 路模拟量开 关in7.in0图 6 adc0809 的结构框图3)adc0809 连线图adc0809 与单片机的连线图如图 7:10图 7 adc0809 的连线图3.1.33.1.3 89c5189c51 单片机系统单片机系统单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(cpu),随机存取数据存储器(ram)

13、,只读程序存储器(rom),输入输出电路(i/o 口),可能还包括定时计数器,串行通信口(sci),显示驱动电路(lcd 或 led 驱动电路),脉宽调制电路(pwm),模拟多路转换器及 a/d 转换器等电路集成到一块单块芯片上,构成一个虽小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。单片机片内结构:1151 单片机的片内结构如图 8 所示。它把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。按功能划分,它有如下功能部件组成: 微处理器(cpu) 。 数据存储器(ram)。 程序存储器(rom/eprom) 。 4 个 8

14、 位并行 i/o 口(p0 口、p1 口、p2 口、p3 口) 。 一个串行口。 2 个 16 位定时器、计数器。 2 个 16 位定时器、计数器。 中断系统。 特殊功能寄存器(sfr) 。 图 8 51 单片机片内结构从硬件角度来看,与 mcs-51 指令完全兼容的新一代 at89cxx 系列机,比在片外加 eprom 才能相当的 8031 单片机抗干扰性能强,与 87c51 单片机技能相当,但功耗小。程序修改直接用+5v 或+12v 电源擦除,更显方便、而且其工作电压放宽至 2.7v-6v,因而受电压波动的影响更小,而且 4k 的程序存储器完全能满足单片机系统的软件要求,故 at89c51

15、 单片机是构造本检测系统的更理想的选择。所以本次设计选用的是以 8051 为核心单元 atmel 公司的低耗 at89s51 单片12机。at89s51 芯片有 40 条引脚,采用双列直插式封装,如图 9 所示。下面说明各引脚功能。 图 9 at89s51 芯片管脚vcc:运行和程序校验时接电源正端。gnd:接地。xtal1:输入到单片机内部振荡器的反相放大器。xtal2:反相放大器的输出,输入到内部时钟发生器。p0 口:8 位漏极开路的。使用片外存储器时,作低八位地址和数据分时复用,能驱动 8 个 lsttl 上拉电阻。p1 口:8 位、准双向 i/o 口。p2 口:8 位、准双向 i/o

16、口。当使用片外存储器(rom 及 ram)时,输出高 8 位地址。可以驱动 4 个 lsttl 负载。p3 口:8 位、准双向 i/o 口,具有内部上拉电路,提供各种替代功能。p3.0rxd 串行口输入口,p3.1txd 串行口输出口,p3.2外部中断 0 输int0入,p3.3外部中断 1 输入,p3.4t0 定时器/计数器 0 的外部输入,int1p3.5t1 定时器/计数器 1 的外部输入,p3.6低电平有效,输出,片wr外存储器写选通,p3.7低电平有效,输出,片外存储器读选通。rdrst:复位输入信号,高电平有效。在振荡器工作时,在 rst 上作用两个机器周期以上的高电平,将器件复位

17、。13/vcc:片外程序存储器访问允许信号,低电平有效。高电平时选择片内程序ea存储器,低电平时程序存储器全部在片外而不管片内是否有程序存储器。ale/prog:地址锁存允许信号,输出。ale 以 1/6 的振荡频率固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。单片机最小系统的设计包括电源,晶振和复位电路三个部分。这是使单片机正常工作的必要外围电路部分。针对不同型号的单片机在最小系统设计上会有一些差别。对于选用的 at89s51 单片机,根据美国 atmel 公司提供的技术资料,可以对它的最小系统作恰当的设计,如图 10 所示。对于电源部分,技术资料中性能参数里给出的标准工作电压是4.

18、05.5v。因此,单片机的引脚 40 对应的 vcc 接到+5v 电源的正极,引脚 10对应的 gnd 接到+5v 电源的接地端,为 at89s51 单片机提供正常的工作电压。对于晶振部分,at89s51 单片机中有一个用于构成内部振荡器的高增益反相放大器,引脚 19 对应的 xtal1 和 18 对应的 xtal2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。对于复位电路部分,at89s51 技术资料给出,当振荡器工作时,rst 引脚出现两个机器周期以上的高电平将使单片机复位。复位是单片机的初始化操作,当由于程序运行出错或操作错误使系

19、统处于死锁状态时,为了摆脱困境,可以按复位键以重新启动,所以复位电路的设计很有必要。复位操作有上电自动复位、按键电平复位和外部脉冲复位三种方式,本设计选用按键电平复位方式。14图 10 at89s51 单片机最小系统设计电路3.1.43.1.4 ledled 显示电路显示电路led 显示有静态显示和动态显示两种显示方式。本设计使用并行输入硬件译码静态显示电路,静态显示电路中,各位可独立显示,只要在该位的段码线上保持段码电平,该位就能保持相应的显示字符。电路中采用了锁存译码器mc14495 将 p1 口低 4 位输出的 bcd 码译成七段字型码,利用 p1 口高四位做为各锁存译码器的所存信号,实

20、现稳定显示。led 使用的是共阴极 7 段数码管。数码管显示电路如图 11:15图 11 数码管显示电路3.1.53.1.5 键盘电路键盘电路键盘有两种工作方式:编码式键盘和非编码式键盘。处理方式有扫描法和线反转法。本设计采用的是非编码键盘,并利用扫描法处理按键,消抖由软件实现。键盘扫描电路图 12:16图 12 键盘电路3.1.63.1.6 报警电路报警电路报警电路图 13:图 13 报警电路3.23.2 软件设计软件设计3.2.13.2.1 主程序框图主程序框图主程序流程图如下图 14 所示。初始化lcd 显示子程序数据处理子程序键盘扫描子程序序a/d 转换子程序序大于阈值?声光报警n开始

21、y17图 14 主程序框图3.2.23.2.2 数据采集子程序程序框图数据采集子程序程序框图a/d 转换子程序流程图如下图 3-2 所示。adc0809 初始化后,把 0 通道输入的 0-5v 的模拟信号转换为对应的数字量 ooh-ffh,然后将对应数值存储到内存单元。程序框图如图 15图 15 数据采集子程序框图3.2.33.2.3 报警子程序程序框图报警子程序程序框图系统设定阈值并保存在以 50h 开始的 3 个单元,为了便于比较和显示,阈值的千位放入 50h 中,百位和十位放入 5lh,个位放人 52h 中。报警电路分为蜂鸣器报警电路和 led 发光报警电路组成。当输入端 p3.5 为低

22、电平时,有电流通过蜂鸣器,蜂鸣器发出声音报警。而当输入端为高电平时不报警。报警子程序执行之前,将报警阈值转换为压缩的 bcd 码并存放在两个存储单元中。传感器输入值 a/d 转换后,调用比较程序,经过数据处理后显示的测开始启动 adc0809 通道,并延时 100s转换完?读出 a/d 转换结果结果存入内存单元返回yn18量值与阈值比较,小于阈值则继续执行显示程序。若大于阈值则将单片机的 p3.5口清零进行声光报警。40h、4lh、42h 单元存放 a/d 转换后,并进行十进制转换后的结果。40h 和 50h 分别存放的是处理后的测量值与阈值的千位的压缩 bcd码,41h 和 51h 分别存放

23、的是处理后的测量值与阈值的百位、十位压缩的 bcd码,42h 和 52h 分别存放的是处理后的测量值与阈值的个位的压缩 bcd 码。程序首先对 40h、50h 中的值进行比较大小,如果 40h 中的值大于 50h 中的值,则进行报警。依此类推,比较 41h 和 51h,42h 和 52h。程序框图如图 16:图 16 报警子程序流程框图4 4汇编程序汇编程序系统电源线接通或者系统复位后,程序从主程序入口进入运行。因为在程开始40h 中的 bcd 码大?返回yyy报警n y nn y n y n y yy41h 中的 bcd 码大?42h 中的 bcd 码大?与阈值相等?与阈值相等?19序中每次

24、对模数转换后读取的数据,需要相应的存储空间,同时对读取的数据作适当处理后也要送到特定的存储空间存储起来,以供后面的数码管显示用。当然,在程序运行的过程当中,还要用到工作寄存器,因为工作寄存器都是临时存储数据,不需要保存作为以后处理要用到的数据,所以工作寄存器的初始化这部分可以省去。于是,对于程序的初始化程序代码可以相应写出。start:mov r7,#60hmov r0,#20hclr aloop:mov r0,ainc r0djnz r7,loop初始化程序从数据存储器地址为 20h 单元开始,到 80h 单元全部清零。即每次的初始化将上次存储的数据全部清除,用于存放当前要存储的数据。对模拟

25、电压信号的数字转换由模数转换芯片 adc0809 加单片机 at89s51 控制来完成。模拟电压的输入端接在模数转换芯片的 in0 通道,再根据单片机与模数转换芯片的连接,单片机在选择读写地址时应该为#7ff8h。因为单片机高8 位地址位的 p2.7 位与单片机的位经或非后与模数转换芯片的 start 和 alewr用导线连接。所以单片机在将地址#7ff8h 写入模数转换芯片后,一方面模数转换芯片锁存地址选择线的状态,从而选通相应的模拟通道,同时启动模数转换。模数转换需要一定的时间,这时可以开始对转换是否结束进行不断的查询。adc0809 中模数转换结束输出标志位是 eoc,转换结束时为高电平

26、有效。该位通过一个反相器与单片机引脚 p3.3 相连,因为启动模数转换之前 p3.3 位被置位,所以当查询到 p3.3 位为 0 时即表示模数转换结束。最后将转换后的数据读取到单片机累加器 a 中。根据这思路可以写出模数转换的子程序代码。test:mov dptr,#7ff8h setb p3.3 movx dptr,a jb p3.3,$ movx a,dptr ret20把转换后得到的数字电压值读取到单片机后,因为,实际的电压值范围在0+5v 之间,而 adc0809 模数转换芯片对应的是 8 位精度的处理,即从00000000b 到 11111111b,所以单片机还要对它作个除#51 的

27、处理工作。而在处理过程中对于有些数据的处理,可能要碰到双字节相除的情况。为此,在第一位单字节除#51 后,接下来的小数部分位的除#51 则要作双字节的除法,这样才能保证使所有位能显示出来。如果所有位都当单字节除法来运算的话,对于有些要作双字节除法的位上的数字则无法显示,而能是显示 0。相除后对应的每一位分别送到地址为#7dh,#7eh,#7fh 的存储单元保存,以供显示或后续处理用。思路明确后,实际电压值转换部分程序可以写出来。mov b,#51div abmov 7dh,amov a,bmov b,#10mul abmov r6,amov r7,bacall div16mov 7eh,r6m

28、ov a,r2mov b,#10mul abmov r6,amov r7,bacall div16mov 7fh,r6经过处理后实际采样到的电压值对应的各个位就分别存储在#7dh,#7eh,#7fh 三个存储单元里面了。模数转换后得到的数字电压量被单片机读取后还要作一定的数据处理,其21中包括把电压值转换为与之相对应的酒精浓度值,根据总体设计思路,对电压值都近似作对应区间的线性转换。即首先,单片机要对采集到的数据在哪个区间作个判断跳转,然后再根据该区间的线性关系作转换,得到对应的酒精浓度值。根据酒精浓度与电压的线性映射关系,如表 3 所示,可以写出该部分的程序代码mov b,#100mvl a

29、bmov r6,amov r7,bmov r5,#0mov r4,#51acall div16mov 70h,r6mov 71h,r7mov a,71hjnz l5l1:mov 72h,#75clr cmov a,70hsubb a,72hjnc l2acall pp0ajmp ppl2:mov 72h,#145clr cmov a,70hsubb a,72hjnc l3acall pp1ajmp pp22l3:mov 72h,#173clr cmov a,70hsubb a,72hjnc l4acall pp2ajmp ppl4:mov 72h,#233clr cmov a,70hsubb

30、a,72hjnc l5acall pp3ajmp ppl5:mov 72h,#18clr cmov a,70hsubb a,72hjnc l6acall pp4ajmp ppl6:mov 72h,#64clr cmov a,70hsubb a,72hjnc l7acall pp5ajmp ppl7:mov 72h,#105clr c23mov a,70hsubb a,72hjnc l8acall pp6ajmp ppl8:acall pp7ajmp pp从读取到的电压值得到酒精浓度值后,还要把该值转换为 3 位 10 进制 bcd码,存储到特定的存储单元以供数码管显示数值。数码管显示选用的是静

31、态显示的方法,要在每次显示数据时把要显示的 3 个位按顺序串行送到数码管集成驱动电路 74ls164 并行输出,以同时驱动 3 个数码管同时点亮。根据 7 段数码管的字型码和移位寄存器 74ls164 的逻辑功能,将对应的共阴极字型码放在一个表格中,然后通过查表的方式找到要显示的数字送移位寄存器驱动数码管显示。单片机对每次移出的位通过 p1.7 输入到移位寄存器的数据输入端,移位寄存器的时钟脉冲通过单片机 p1.6 模拟的时钟信号提供。于是可以写出显示部分的程序代码。disp:mov dptr,#tabmov a,7fhmovc a,a+dptracall somov a,7ehmovc a,a+dptracall somov a,7dhmovc a,a+dptracall soretso:mov r7,#8so1:clr p1.6 rrc a24 mov p1.7,c setb p1.6 djnz r7,so1 ret程序当中为了显示的精确,在有些位相除时用到了双字节相除的算法。对于多字节无符号数的除法,可以依照移位相减的基本方法来进行。除法运算是按位进行的,每一位是一个循环,每个循环中要作三件事,一是被除数左移一位,二是余数减除数,最后根据是否减来置商位为 1 或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论