为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

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

2017-09-02 44页 doc 280KB 49阅读

用户头像

is_037433

暂无简介

举报
基于单片机的酒精浓度测试仪摘 要 由于经济的快速发展,人们的生活水平越来越高,私家车也越来越多,酒后驾车行为所造成事故也就越来越普遍,对社会的安定和经济发展也造成了很大的影响,酒精正在成为越来越凶残的“马路杀手”。为此,我国将酒驾列入了刑法范围内,那么就需要设计一个智能仪器能够检测驾驶员体内酒精含量。 本课题设计的是一种以酒精浓度传感器、单片机和A/D转换器为主的,检测驾驶员呼出气体的酒精浓度的,而且还带有声光报警功能的酒精浓度检测仪。这种检测仪不仅可以检测出空气环境中酒精浓度值,还可以由不同的环境来设定不同的阈值,当空气中酒精浓度超过设定的阈值时...
基于单片机的酒精浓度测试仪
摘 要 由于经济的快速发展,人们的生活水平越来越高,私家车也越来越多,酒后驾车行为所造成事故也就越来越普遍,对社会的安定和经济发展也造成了很大的影响,酒精正在成为越来越凶残的“马路杀手”。为此,我国将酒驾列入了刑法范围内,那么就需要设计一个智能仪器能够检测驾驶员体内酒精含量。 本课题设计的是一种以酒精浓度传感器、单片机和A/D转换器为主的,检测驾驶员呼出气体的酒精浓度的,而且还带有声光报警功能的酒精浓度检测仪。这种检测仪不仅可以检测出空气环境中酒精浓度值,还可以由不同的环境来设定不同的阈值,当空气中酒精浓度超过设定的阈值时进行声光报警。我的这个毕业设计分主要为两部分:硬件设计部分和软件设计部分。硬件设计部分是利用MQ3气敏传感器先测量空气中的酒精浓度,然后转换为电压信号,再通过A/D转换器转换成数字信号后再传给单片机系统,最后由单片机系统和相应外围电路进行信号处理,并由LCD显示酒精浓度值并且对超过的阈值进行报警。软件设计部分的程序采用的是模块化设计思想,各个子程序的功能相对独立,便于调试和修改。电路可分为单片机小系统电路、A/D转换电路、声光报警电路、LCD显示电路,按键电路。各部分电路的设计及原理图将会在硬件电路设计部分作出详细的介绍。 关键词 酒精浓 度传感器(MQ3),A/D转换器,软件设计,硬件设计 攀枝花学院本科毕业设计(论文) ABSTRACT ABSTRACT Due to the rapid development of economy, people's standard of living is higher and higher, more and more private cars, the accident caused by drunken driving behavior are increasingly common, social stability and economic development also caused great influence, alcohol is becoming increasingly violent "road killer".To this end, China will drunk driving into the scope of criminal law, you will need to design a intelligent instrument can detect driver's alcohol content in the body. This topic design is A kind of to alcohol concentration sensor and single chip microcomputer A/D converter, A driver exhaled gas alcohol concentration, alcohol concentration monitor with sound and light alarm is and air. it can detect the alcohol density in the air environment, also can according to the different environment set different threshold, the threshold value of more than audible and visual alarm.This topic is divided into two parts: hardware design and software design part. the hardware part is using MQ3 gas sensors measure the alcohol concentration in the air, and converted into voltage signal, after A/D converter converted into A digital signal to the SCM system, by single-chip microcomputer and its corresponding peripheral circuit for signal processing, display the alcohol density and ultra audible and visible alarm threshold. program adopts modular design thought, function of each subroutine is relatively independent, easy to debug and modify. The hardware circuit can be divided into the singlechip processor system circuit, A/D conversion circuit, sound and light alarm circuit, LED display circuit, key circuit. The principle diagram of the circuit design of each part and will be in the hardware circuit design part make a detailed introduction. Keywords Alcohol concentration sensor (MQ3),A / D converter, Software design,Hardware design II 攀枝花学院本科毕业设计(论文) 目 录 目 录 要 ???????????????????????????? 1 摘 ABSTRACT ????????????????????????????????????????????????????????????????????????????????????????????????????????????? II 1 绪论 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 1.1 课题的研究背景、发展历史及意义?????????????????????????????????????????????????????????????????? 3 1.2 本课题研究的主要内容 ?????????????????????????????????????????????????????????????????????????????????? 4 2 酒精浓度测试仪的硬件设计 ????????????????????????????????????????????????????????????????????????? 5 2.1 总体设计框图 ???????????????????????????????????????????????????????????????????????????????????????????????? 5 2.2 89C51单片机 ????????????????????????????????????????????????????????????????????????????????????????????????? 5 2.2.1 89C51单片机功能简介..................................................................... 5 2.2.2 89C51单片机片内结构介绍 .................................... 6 2.2.3 89C51芯片介绍 .............................................. 7 2.2.4晶振电路和复位电路 ........................................................................ 9 2.3 MQ303A酒精传感器 ?????????????????????????????????????????????????????????????????????????????????????? 10 2.3.1 MQ303A酒精传感器简介 ................................................................. 10 2.3.2 MQ303A酒精传感器特点 ................................................................. 12 2.3.3 MQ303A酒精传感器的工作条件及环境 ............................................. 12 2.3.4 MQ303A酒精传感器使用方法 .......................................................... 13 2.4 A/D转换设计 ??????????????????????????????????????????????????????????????????????????????????????????????? 14 2.5 LCD显示电路 ??????????????????????????????????????????????????????????????????????????????????????????????? 15 2.5.1 液晶显示器的优点........................................................................ 15 2.5.2 LCD1602液晶显示 ........................................................................ 16 2.6 报警电路 ..................................................................................................... 17 3 酒精浓度测试仪的软件设计 ??????????????????????????????????????????????????????????????????????? 18 3.1 编译语言的选择 ........................................................................................... 18 3.2 主程序设计 ................................................................................................. 18 3.3 子程序设计 ................................................................................................. 19 4 PROTEUS仿真结果与分析 ???????????????????????????????????????????????????????????????????????????? 20 4.1 PROTEUS简介 ................................................................................................ 20 1 攀枝花学院本科毕业设计(论文) 目 录 4.2 仿真过程 .................................................................................................... 20 5 结论 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????? 23 参 考 文 献 ?????????????????????????????????????????????????????????????????????????????????????????????????????? 24 附录1 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 25 谢 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 36 致 2 攀枝花学院本科毕业设计(论文) 绪 论 1 绪论 1.1 课题的研究背景、发展历史及意义 19 世纪后期和20 世纪初,当人口和汽车增多时,酒后驾车问题就引起了人们的重视。第一批起草的反对酒后驾车的法律反映了早期的运输状况,当时使用的是马车、牛车以及蒸汽发动机作为运输工具,评判酒后驾车的依据是以主观评价为主。 近年来由于经济迅速的发展,人们的生活水平日夜提高,私家车也越来越多,各种应酬也是越来越多,所以酒后驾车就频频发生,受到酒精影响的司机通常会有以下这些特征:对信号灯反应速度慢;逆向行驶;驾驶时摇摆不定、突然转向、或在道路中线驾驶;乱踩刹车;转弯幅度大;无缘无故的乱停车;开车速度极慢;突然转弯或不遵守交通规则的转弯;天黑时不开前灯等。据统计,驾驶员在酒后 倍。根据日常道路交通开车,其发生交通事故的几率大约为没有饮酒情况下的16 安全违法行为和交通肇事的案例来看,机动车驾驶员酒后驾车约占38.6%;而摩托车交通肇事中,酒后驾驶的比例则高达72.3%。这给人们的生活和生命安全带来了巨大的伤害。但是人体内的酒精浓度低于一个特定值时就会不出现上述症状,从而可以避免发生危险,所以研究一个酒精测试是非常有必要和意义的事。现在世界上绝大数国家都在使用呼吸酒精测试仪对驾驶员进行现场检测来确定其体内酒精浓度的多少以确保其生命财产的安全,除此之外酒精浓度测试仪还可以测定某一特定环境下的酒精浓度,比如酒精生产车间,在车间内安装上检测仪可以避免因酒精浓度过高发生的危险。 最常见的测定BAC 的方法是通过检测呼出气体的酒精浓度,然后将这个数据换算成BAC。有人认为呼出气体酒精浓度并不能可靠地反映血液中酒精浓度水平。因此某些国家如澳大利亚、法国等除了有BAC 标准外,还明确立法规定了“呼出气体酒精浓度”(breath alcohol concentration ,BrAC) 标准。呼出气体酒精浓度测试的主要优点就是容易操作且能够马上知道BAC 结果。其他酒精浓度测试方法如体液测定,一般需要在临床机构进行,尿液检测酒精浓度和从呼出气体检测酒精浓度一样需要转化成BAC。另外需要说明的是从操作执行的角度来看,尿样本和血样本检测都不如测定呼出气体酒精浓度实际可行,因为在送交样本的过程中,样本中的酒精浓度就可能发生改变。近来出现的BAC 测定方法是通过皮肤排汗测定酒精浓度,然后转换成BAC 浓度,然而对这种方法的可靠性也有争议。 现在对气体中酒精浓度进行检测的设备有这几种基本类型,即:燃料电池型(电化学)、半导体型、红外线型、气体色谱分析型、比色型。但由于价格和使 3 攀枝花学院本科毕业设计(论文) 绪 论 用方便的原因,现在常用的一般是燃料电池型(电化学型)和半导体型两种。 酒精传感器只是燃料电池的一个部分,在全球范围内,燃料电池是正在被广泛研究的一种环保型能源,它可以直接把可燃性气体转变成电能,并且还不产生污染。燃料电池酒精传感器的电极采用的是白金这种贵金属,燃烧室里充满了一些特别的催化剂,这样就可以使燃烧室里的酒精充分地燃烧并且转变成电能,也就是会在两个电极上产生电压,该电压与燃烧室里气体的酒精浓度成正比关系。和半导体型电池相比,燃料电池型呼气酒精测试仪具有精度高,稳定性好,抗干扰性强的优点。但是也正是因为燃料型电池酒精传感器要求结构非常精密,制造难度相当大,加上材料成本高,因此价格相当昂贵。尽管现在燃料电池的市场需求有限,但发展前景值得看好。预计在2013-2017年间,由于科技技术的进步与经济效益的增加,燃料型电池的生产成本与使用成本将会下降,竞争力会提高,燃料电池的潜在市场将会逐步发展起来。现在对于便携式燃料型电池的需求虽然还比较少,但是我相信便携式燃料型电池市场必然会是未来增长最快的市场。 1.2 本课题研究的主要内容 本课题研究的是一种以MQ3酒精浓度传感器和AT89C51单片机为主的用来监测空气中的酒精浓度,并具有报警功能的酒精浓度测试仪。这种酒精浓度测试仪可以检测出空气环境中的酒精浓度值,并且根据不同的环境来设定不同的阈值,然后在检测到的酒精浓度超过设定的阈值时进行声光报警,来提示危害。而且我们还可以尝试将这种酒精浓度检测仪安装在汽车的驾驶位上,对于安装有该系统的车辆,在驾驶员刚进入车内时,汽车的启动系统处于锁死状态,汽车根本无法启动,驾驶员必须等待酒精传感器检测完成后发出的控制信号。当检测到的酒精浓度没有超过设定值时,继电器常闭触点不动作,正常指示灯亮起,驾驶员可以启动汽车正常行驶;反之指示灯如果不亮,点火电路将会断开,蜂鸣器就会报警,并会显示出当前的浓度值。 该课题的设计内容主要包括:A/D转换器程序、控制程序、超标报警、键盘检测、数据显示。该系统采用51单片机为控制的核心,实现便携式酒精浓度检测仪的基本控制功能。系统主要功能内容包括:数据处理、时间设置、开始测量、超标报警、键盘检测等。 4 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 2 酒精浓度测试仪的硬件设计 2.1 总体设计框图 在硬件设计的时候,考虑到传感器可以把酒精浓度这种非电量转换为电量,可以输出0-5V的电压值并且电压值比较稳定,外部干扰较小等特点。所以,可以直接把传感器输出的电压值经过ADC0832采集数据送入单片机内进行处理。酒精浓度检测仪的硬件电路设计主要包括:传感器测量电路、89C51单片机系统、A/D转换电路、LCD显示电路、键盘电路、声光报警电路。酒精浓度检测仪的硬件设计电路框图如图2-1。 声光报警电路 被测环气敏传感A/D转换单片机 LCD显示 境 器 电路 键盘 图2-1硬件方案总体框图 2.2 89C51单片机 2.2.1 89C51单片机功能简介 单片机是一种集成电路芯片,也被叫做微型计算机,它采用超大规模技术把具有数据处理能力(如逻辑运算、算术运算、中断处理、数据传送)的微处理器(CPU),只读程序存储器(ROM),随机存取数据存储器(RAM),输入输出电路(I/O口),可能还包括串行通信口(SCI),定时计数器,脉宽调制电路(PWM),显示驱动电路(LED或LCD驱动电路),A/D转换器和模拟多路转换器等电路集成到一个芯片上,构成一个虽小然却很完善的计算机系统。这些电路能够在软件的控制下迅速、准确、高效地完成任务。在本次设计中我们选择单片机AT89C51为控制核心,主要基于考虑AT89C51是无法解密低功耗,超低价高速,高可靠强抗静电,强抗干扰, 5 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 功能强大的单片机。 AT89C51有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含3个16位可编程定时计数器,2个外中断口,2个读写口线,2个全双工串行通信口,片内振荡器及时钟电路, 89C5X可以按照常规方法进行编程,也可以在线编程。同时89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。断电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本。 2.2.2 89C51单片机片内结构介绍 89C51单片机的片内结构如图2-2所示。它把那些控制应用必需的基本内容都集成在一个有限大小的集成电路芯片上。按它的功能划分,它由以下部件组成: (1)微处理器(CPU); 2)程序存储器(ROM/EPROM) ( (3)数据存储器(RAM); (4)4个8位并行I/O口(P0口、P1口、P2口、P3口); (5)一个串行口; (6)2个16位定时器、计数器; (7)中断系统; (8)特殊功能寄存器(SFR)。 6 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 8 8 E 程序存储器 数据存储器 P0P2TOROM/EPROM RAM 0 AC CPU L 特殊功能1 (运算器) 寄存器 (控制器) (SFR) T 定 时 中 断 A串器/计系 统 L行数 器 2 口 P1 P3 口 8 8 行 ALE EA IN 口 7 PSEN RESET … 图2-2 51单片机片内结构 . 上述功能部件都是由单片机内的一条总线连接而成的,它的基本结构仍然是 I CPU再加上外围芯片这种传统的结构模式。但是CPU对各功能部件的控制采用却 0 是特殊功能寄存器的集中控制方式。 从硬件角度来看,与MCS-51指令完全兼容的新一代AT89CXX系列机,比在那种片外加EPROM的8031单片机的抗干扰性能要强,和87C51单片机的技能相当,但是功耗却比她小。修改程序时直接就可以用+5V或+12V电源擦除,这样就更加方便、并且它的工作电压放宽到2.7V-6V,所以受电压波动的影响更小,并且4K的程序存储器已经能够完全满足单片机系统的软件要求,故此次设计中选择AT89C51单片机是比较理想的。 2.2.3 89C51芯片介绍 要想熟练掌握MCS-51单片机,首先应该了解MCS-51的引脚,并且熟悉并牢记各引脚的功能,MCS-51系列中各种型号芯片的引脚是互相兼容的。制作工艺为HMOS的MCS-51的单片机都采用40只引脚的双列直插封装方式,如图2-3所示: 7 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 P1.0Vcc P1.1P0.0 (AD0) P1.2P0.1 (AD1) P1.3P0.2 (AD2) P1.4P0.3 (AD3) P1.5P0.4 (AD4) P1.6P0.5 (AD5) P1.7P0.6 (AD6) (RXD) P3.0RSTP0.7 (AD7)ALE/PROGEA/VPP (TXD) P3.1 (INT0) P3.2PSEN (INT1) P3.3P2.7 (A15) T0 P3.4P2.6 (A14) T1 P3.5P2.5 (A13) (WR) P3.6P2.4 (A12) (RD) P3.7P2.3 (A11) XTAL1P2.2 (A10) PDIPXTAL2P2.1 (A9) GNDP2.0 (A8)图2-3 AT89C51芯片管脚图 40只引脚按其功能来分,可分为如下3类: ? 电源及时钟引脚:VCC、VSS、XTAL1、XTAL2。 ? 电源引脚接入单片机的工作电源,VCC接+5V电源,VSS接地。 ? 时钟引脚XTAL1、XTAL2外接晶体与片内的反相放大器构成了1个晶体振荡器,单片机内的始终控制信号就是由它提供的,晶体振荡器也可以外接到这2个时钟引脚上。XTAL1接外部的一个引脚,该引脚的内部是一个反相放大器的输入端,这个反相放大器构成的就是片内振荡器。在采用外接晶体振荡器的时候,这个引脚就要接地。XTAL2接的是外部晶体的另一个端口,在这个引脚的内部接到内部反相放大器的输出端。如果采用的是外部时钟振荡器,该引脚接受的是时钟振荡器的信号,也就是把该信号接到内部时钟发生器的输入端。 EA ? 控制引脚:、ALE、、RESET(RST)。这类引脚提供的是控制信号,PSEN 有的还有复用的功能。 ? RST/V引脚:RESET(RST)是复位信号的输入端,在高电平时有效。单PD 片机正在运行时,在该引脚上加持续时间大于两个机器周期(24个振荡周期)的高电平时,就能完成复位操作。在单片机工作时,此引脚应为?0.5V低电平。VPD为本引脚的第二功能,即备用电源的输入。当主电源发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,以保证片内RAM的信息不丢失,从而使单片机在复位后能正常进行。 8 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 ? ALE/ 引脚:地址锁存有效输出端。在访问片外程序存储器期间,每PROG 机器周期该信号出现两次,其下降沿用于控制锁存P0口输出的低8位地址。ALE的引脚输出的是地址锁存允许信号,当单片机通电并正常工作时,ALE的引脚就不断地输出一种正脉冲信号。如果单片机访问的是外部存储器,ALE输出信号的负跳沿就用于单片机发出的低8位地址并经外部锁存器锁存的控制信号。就算不访问外部的锁存器,ALE端仍然会输出正脉冲信号,这种频率是时钟振荡器频率的1/6。 为该引脚的第二种功能。在对片内EPROM型单片机编程写入时,PROG 此引脚作为编程脉冲输入端。 ? 引脚:程序存储器允许输出控制端。单片机在访问外部程序存储器PSEN 时,此引脚输出的脉冲负跳沿就作为读外部程序存储器的选通信号。此引脚接外部程序存储器的OE(输出允许端)。 ? /VDD引脚:功能为片内程序存储器的选择控制端。在引脚是高EAEAEA电平的时候,单片机就访问片内程序存储器,如果PC值超过0FFFH,即超出片内程序存储器的4KB地址范围时将自动地转向执行外部程序存储器内的程序。当EA引脚为低时,单片机只访问外部程序存储器,不论是否有内部程序存储器。 ? I/O口引脚:P0、P1、P2、P3,为四个8位I/O口的外部引脚。P0口、P1口、P2口、P3口是3个8位准双向的I/O口,各口线在片内均有固定的上拉电阻。当这3个准双向I/O口作输入口使用时,要向该口先写1,另外准双向口I/O口无高阻的“浮空”状态。 由于单片机具有体积小、质量轻、价格便宜、耗电少等突出特点,所以本系统采用89C51单片机。89C51内部有4KB的EPROM,128字节的RAM,所以一般都要根据所需存储容量的大小来扩展ROM和RAM。本电路接高电平,没EA有扩展片外ROM和RAM。 2.2.4晶振电路和复位电路 电路图如下: 9 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 图2-4 晶振与复位电路 2.3 MQ303A酒精传感器 2.3.1 MQ303A酒精传感器简介 气敏传感器是气体检测系统的核心,从本质上来讲气敏传感器是一种将某种气体体积分数转化成对应的电信号的转换器,一般是安装在探测头内。探测头通过气敏传感器对气体样品进行调理,通常包括干燥或者制冷处理、过滤杂质以及干扰气体、样品的抽吸,甚至是化学处理样品,以便传感器更快速地进行测量。在选择传感器的时候,一定要考虑到稳定性、灵敏度、选择性和抗腐蚀性,本系统选择的是MQ3 型酒精浓度传感器。MQ3 酒精浓度传感器是气敏传感器,其相对于其它传感器来说具有灵敏度高、使用寿命长、稳定性好这些优点。 MQ3 气敏传感器是一种固定在塑料或不锈钢腔体内的由SnO2 敏感层、微型Al2O3陶瓷管、加热器和测量电极组成的一种敏感元件。传感器的标准回路的组成有两部分:第一部分是加热回路;第二部分是信号的输出回路,该回路可以准确地反映出传感器的表面电阻Rs的变化。传感器的表面电阻值的变化,是通过和它串联的负载电阻Rl的有效电压信号VRL 输出面获得的。它们的关系可以表述为:RS/RL=(VC,VRL)/VRL,其中VC是10V的回路电压。负载电阻Rl 的可调范围为0.5,200K,加热电压Uh 是5V。上面的这些参数可以使传感器的输出电压从0到5V。MQ3 型气敏传感器的外形和结构如图2-5所示,酒精浓度与输出电压的关系如图2-6所示,MQ-3酒精传感器模块如图2-7所示。为了让测量精度能够达到最高,误差最小,就需要找到一个合适的温度,在测量前需要把传感器先预热20s。也可在正常检测 10 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 前给传感器施加5-10秒钟2.2?0.2V 的高电压,使传感器尽快稳定并进入工作状态。因为酒精传感器的信号输出阻抗较小,故而信号放大可以采用普通廉价运放LM324。在软件仿真的时候,因条件有限,所以我用的是滑动变阻器两端的电压来代替酒精传感器输出的电压。 图2-5 MQ3 的结构和外形 图2-6 酒精浓度与输出电压的关系 我的LCD显示的酒精浓度值就是根据这个函数关系式得到的,但是还有一种算法,但是经过我们的实验,这种算法没有上面的那种算法精确。 11 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 图2-7 MQ-3酒精传感器模块 2.3.2 MQ303A酒精传感器特点 MQ303A酒精传感器是一种省电模式的酒精传感器,下面我们简单介绍一下其特点。 1、高灵敏度2、快速的响应恢复3、长寿命4、低功耗5、小巧的外型。 2.3.3 MQ303A酒精传感器的工作条件及环境 MQ303A酒精传感器的工作条件算不上非常苛刻,那么我们下面就介绍一下这种传感器工作的状态以及内部数据。 表1 MQ303A运行温度 符号 参数 技术条件 备注 o oTao 使用温度 -20 C —+50 C o oTas 储存温度 -20 C —+70 C 推荐使用范围20ppm-1000ppm乙醇 RH 相对湿度 ? 95% RH 21%?1%(标准条件) 不得小于 16% (O) 氧气浓度 2氧气浓度会影响灵敏度 12 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 表2MQ303A内部电阻 符号 参数名称 技术条件 备注 R元件电阻 (4k, to 400 k,) 在 洁净空气中 s , 电阻比 (0.50 , 0.15) Rs (300 ppm酒精) / Rs (100 ppm酒精) o o标准测试条件: 温度: 20 C , 2 C V: 3.0 V , ,,1 V DC C 湿度: 65% , 5% V : 0.9 V ,,, 1 V DC H R : 可调 L 预热时间:大于48小时 表3 MQ303,内部运行环境 符参数 技术条件 备注 号 V 加热电压 0.9V ? 0.1V AC or DC H V 回路电压 ? 6 V DC C I 加热电流 120?20mA H R 加热电阻 4.5, , 0.5 , 室温 H R 负载电阻 可调 P < 10 mW LS P 加热功率 ? 140 mW H P 元件功率 ?10 mW S 2.3.4 MQ303A酒精传感器使用方法 一:给模块输入5V的直流电压(注意正负极别接反,否则容易烧毁芯片)。 二:如果选择DOUT,TTL高低电平端,输出信号可以直接接单片机IO口或者接一个NPN型三极管去驱动继电器,电位器RP在这里用于调节输出电平跳变的阀值,由下图原理图可以分析,当传感器检测到被测气体时,比较器LM393管脚2点的电压值,跟传感器检测到气体的浓度成正比,当浓度值超过电位器RP设定的阀值时,比较器2脚的点位高于3脚的点位,这个时候,比较器1脚输出低电平,LCD灯亮,R3为LCD灯限流电阻,C1为滤波电容。传感器输出低电平,反之,当没有信号的时候,传感器输出高电平,等于电源电压。 三:如果选择AOUT,模拟量输出,那样就不用管电位器了,直接将AOUT脚接AD转换的输入端或者,带有AD功能的单片机,就可以了。但是,如果是用来 13 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 做精密仪器,就需要购买市场上标准的校准仪器,不然就会存在误差,因为,输出浓度和电压关系的比值并非线性,而是趋于线性。 2.4 A/D转换设计 在单片机应用系统中,被测量对象的有关变化量,如温度、压力、流量、速度等非电物理量,必须经过传感器转换成连续变化的模拟电信号(电压或电流),这些模拟电信号必须转换成数字量后才能在单片机中用软件进行处理。实现模拟量转换成数字量的器件称为A/D转换器(ADC)。 在转换器中相对来说比较好用的要数ADC0832,因为ADC0832一种8位分辨率A/D转换芯片,它的最高分辨率可以达到256级,能够在一般条件下适应模拟量的转换要求。而它的内部电源输入和参考的电压复用,可以让芯片的模拟输入电压为0~5V,此时芯片的转换的时间只是32μS,并且它可以双数据的输出,这样就可以校验数据,以便减少数据的误差,稳定性强并且转换速度快,还通过DI 数据的输入端,简单的实现通道功能的选择。独立芯片的使能输入,没有其它外围设备,使多种器件的挂接以及处理器的控制变的更加方便、简单。 在正常的情况下,ADC0832 和单片机接口的数据线应为4条,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并且和单片机的接口还是双向的,所以在电路设计的时候可以将DI与DO在同一根数据线上并联使用。在ADC0832还没有工作时,CS输入端应该为高电平,这时禁用该芯片,CLK 和DO/DI 的电平可为任意值。如果要进行A/D转换,必须要先把CS使能端置于低电平而且保持着低电平一直到完全结束。这时芯片就开始了转换工作,DO/DI端使用DI端输入通道功能选择的数据信号,同时处理器就开始向芯片的时钟输入端CLK 输入时钟脉冲。在第一个时钟脉冲下沉之前DI端必须保持高电平的状态,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能。如图2-8所示: 14 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 图2-8 模数转换电路图 2.5 LCD显示电路 2.5.1 液晶显示器的优点 在日常生活中,我们对液晶显示器并不陌生。很多电子产品的通过器件都是用的是液晶显示模块,比如在电子表、万用表、计算器以及很多其它的家用电子产品中都会用到,它显示的一般主要为专用符号、图形和数字。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。 在单片机系统中应用晶液显示器作为输出器件有以下几个优点: 一、重量轻、体积小:液晶显示器是通过其显示屏上的电极来控制液晶分子的状态来达到显示目的,如果在重量上,与有一样显示面积的传统的显示器相比较要轻很多。 二、显示的质量高:因为液晶显示器每一个点收到信号后会一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。 三、数字式的接口:液晶显示器现在都为数字式的,与单片机的接口简单可靠, 15 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 并且操作方便。四、功耗低:相对而言,液晶显示器主要消耗的功耗在它内部的驱动IC和电极上,因而耗电量比其它显示器要少得多。 2.5.2 LCD1602液晶显示 LCD1602液晶显示模块是专门用于显示符号、数字、字母等的一种点阵式LCD,现在常用的是16×1,16×2,20×2和40×2行等的液晶显示模块,模块组件内部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成。 LCD1602液晶显示屏分为带背光的与没有带背光的这两两种,其控制器大多数是HD44780,带背光的和没有带背光的相对来说要厚,但是在应用的时候有没有带背光并没有多大差别,两者尺寸差别如图2-11所示: 图2-9 LCD1602尺寸图 1602液晶显示屏采用标准的16脚接口,其中各接口的功能如下表(2-4)所示: 表2-4 LCD1602的16管脚功能 引脚号 引脚名 电平 输入/输出 引脚说明 1 VSS 电源地 2 VDD 电源正极(+5V) 3 VL 液晶显示偏压信号 数据/命令选择端,0:输入指令,1: 4 RS 0/1 输入 输入数据 读/写选择端,0:向LCD写入指令或数 5 R/W 0/1 输入 据,1:从LCD读取信息 16 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的硬件设计 使能信号,1时读取信息,1?0(下降6 E 1?0 输入 沿)执行指令 7 D0 0/1 输入/输出 数据总线(最低位) 8 D1 0/1 输入/输出 数据总线 9 D2 0/1 输入/输出 数据总线 10 D3 0/1 输入/输出 数据总线 11 D4 0/1 输入/输出 数据总线 12 D5 0/1 输入/输出 数据总线 13 D6 0/1 输入/输出 数据总线 14 D7 0/1 输入/输出 数据总线(最高位) 15 BLA +VCC LCD背光电源正极 16 BLK 接地 LCD背光电源负极 2.6 报警电路 报警电路图2-10: 图2-10 报警电路 17 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的软件设计 3 酒精浓度测试仪的软件设计 3.1 编译语言的选择 对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。程序编写语言比较常见的有C语言、汇编语言。汇编语言的可控性较高级语言来说更具优越性,汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。 C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等这些优点,并且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,所以本系统采用C语言编写方法。 3.2 主程序设计 主程序实现的功能:与硬件相结合实现便携式酒精浓度检测仪的各个功能。主要是检测与显示,数据存储,功能子函数的调用。 主程序流程图如下图3-1所示: 图3-1 主程序框图 18 攀枝花学院本科毕业设计(论文) 酒精浓度测试仪的软件设计 3.3 子程序设计 A/D转换子程序流程图如下图3-2所示。ADC0832初始化后,把0通道输入的0-5V的模拟信号转换为对应的数字量OOH-FFH,然后将对应数值存储到内存单元。程序框图如图3-2: 开始 启动ADC0832通道,并延时 N 转换完, Y 读出A/D转换结果 结果存入内存单元 返回 图3-2 数据采集子程序框图 19 攀枝花学院本科毕业设计(论文) PROTEUS仿真结果与分析 4 PROTEUS仿真结果与分析 4.1 Proteus简介 这次毕业设计的仿真使用的是Proteus仿真软件,Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。这种软件不仅具备其它那些EDA工具软件具有的仿真功能,而且还能仿真单片机和外围器件,是现在最好的单片机及外围器件的仿真软件。目前国内的推广虽然刚刚起步,但是已经受到许多单片机爱好者、致力于单片机开发应用的科技工作者和从事单片机教学的教师的青睐。Proteus已经成为世界上很著名的EDA工具(仿真软件),不管是原理图的布图、代码的调试、单片机与外围电路的协同仿真还是一键切换到PCB设计,都真正的实现了从概念到产品的完整设计。它是世界上现在唯一一种将PCB设计软件、电路仿真软件以及虚拟模型仿真软件三合一的设计平台,它的处理器模型支持8051、 PIC10/12/16/18/24/30/DsPIC33、ARM、AVR和MSP430等,2010年又增HC11、 加了DSP系列以及Cortex处理器,并持续增加其他系列的处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 4.2 仿真过程 设定报警的阀值为0.60mg/L,当检测出空气中的酒精浓度为0.56mg/L时,空气中酒精浓度小于设定的阀值,系统不报警,蜂鸣器不发出声音。仿真结果如图4-1所示: 20 攀枝花学院本科毕业设计(论文) PROTEUS仿真结果与分析 图4-1 21 攀枝花学院本科毕业设计(论文) PROTEUS仿真结果与分析 设定报警的阀值为0.55mg/L,检测出空气中酒精浓度0.56mg/L时,空气中酒精浓度大于设定的阀值,系统开始报警,并且蜂鸣器发出声音。仿真结果如图4-2所示: 图4-2 22 攀枝花学院本科毕业设计(论文) 结 论 5 结论 随着经济的发展,私家车越来越多,人们的应酬也越来越多,这对公共交通安全级构成了很大的威胁,所以对酒精浓度的检测在生产、生活等各个方面都有着重要的影响。人们在工业生产和日常生活中,对酒精浓度检测仪的要求,主要是保证检测仪能够快速、准确地测量出气体的酒精浓度并对超过设定的阀值进行报警。 此次毕业设计的名字是基于单片机的酒精浓度测试仪,是一种基于AT89C51单片机的控制系统,采用MQ303A酒精传感器,它的输出信号可直接与单片机相连接,保证了信号采集的准确性;采用A/D转换器和LCD显示电路,控制精度高,且编写程序简单方便,经过实验验证,此系统结构简单、体积较小,检测迅速,具有一定的实用性。 23 攀枝花学院本科毕业设计(论文) 参考文献 参 考 文 献 [1] 邱关源.电路(第四版)[M].北京:高等教育出版社,2006.9. [2] 康华光.电子技术基础模拟部分(第五版)[M].北京: 高等教育出版社,2008.1. [3] 李朝青.单片机原理及接口技术(简明修订版)[M].北京:北京航空航天大学出版社,1998. [4] 丁元杰.单片微机原理及应用(第三版)[M]北京:机械工业出版社,2005.7. [5] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005. [6] 李维提,郭强.《液晶显示应用技术》 北京:电子工业出版社,2000. [7] 吕俊芳, 钱政, 袁梅.传感器接口与检测仪器电路[M].北京:国防工业出版社,2009. [8] 兰吉昌(单片机C51完全学习手册[M].北京:化学工业出版社,2009. [9] 雷伏容,张小林,崔浩.51单片机常用模块设计查询手册[M].北京:清华大学出版社,2010. .一种输入传行数据的LCD模块的应用[J].安徽机电学院,2000-08. [10] 王鸣 [11] 方吉高,黄炳醒.高选择性酒精传感器[J].硅谷,2004-02. [12] 夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社,2001. [13] 王祁.智能仪器设计基础.北京:机械工业出版社,2009. [14] 夏路易等.电路原理图与电路板设计教程.北京:北京希望电子出版社,2002. [15] 何立民(单片机高级教程(第1版)北京:北京航空航天大学出版社,2001. [16] 郁有文.传感器原理及应用[M].西安:西安电子科技大学出版社,2001. [17] 王幸之.AT89系列单片机原理与接口技术,2004. [18] 岳睿 .呼吸式酒精传感器的研究进展[ J ].化学传感器,2006(3). [19] 刘丰年.气体传感器测试系统[ D ].吉林:哈尔滨理工大学,2003. [20] 何希才.传感器技术与应用[ M ].北京:北京航空航天大学出版社,2005. [21] 何希才.传感器及其应用.北京:国防工业出版社,2001. [22] 何立民.单片机高级教程应用与设计[ M ]. 北京:北京航空航天大学出版,2000. 24 攀枝花学院本科毕业设计(论文) 附录1 附录1 #include #include #include #define uint unsigned int #define uchar unsigned char /*******************************定义全局变量 ********************************/ //unsigned char dat=0x00 ; //AD值 unsigned char count = 0x00; //定时器计数 unsigned char channel; //通道变量 //ADC0832的引脚 sbit ADCS =P1^2; //ADC0832 chip seclect sbit ADDI =P1^1; //ADC0832 k in sbit ADDO =P1^1; //ADC0832 k out sbit ADCLK =P1^0; //ADC0832 clock signal unsigned char dispbuf[3]; uint temp; uint alc;//酒精浓度 uchar dat; //获取ADC转换回来的值 uchar *aa="M=T.TTmg/L"; uchar *cc="alarm"; uchar *dd=" "; uint sheding=60; uchar bb[16]={'A','l','c','o','h','o','l','=',' ','.',' ',' ','m','g','/','L'}; sbit RS = P2^0; //定义端口 sbit RW = P2^1; sbit EN = P2^2; 25 攀枝花学院本科毕业设计(论文) 附录1 sbit beep=P3^7; sbit k1=P1^3;//+键 sbit k2=P1^4;//-键 #define RS_CLR RS=0 #define RS_SET RS=1 #define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0 #define EN_SET EN=1 void DelayUs2x(unsigned char t); void DelayMs(unsigned char t); void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s); void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data); void init(); void write_com(unsigned char com); void write_data(unsigned char date); void DelayUs2x(unsigned char t) { while(--t); } void DelayMs(unsigned char t) { while(t--) { //大致延时1mS DelayUs2x(245); DelayUs2x(245); 26 攀枝花学院本科毕业设计(论文) 附录1 } } /*********************************lcd1602各子函数 **************************************/ void write_com(unsigned char com) //写命令 { RS_CLR; RW_CLR; P0=com; DelayMs(5); EN_SET; DelayMs(5); EN_CLR; } void write_data(unsigned char date) //写一个字符 { RS_SET; RW_CLR; P0=date; DelayMs(5); EN_SET; DelayMs(5); EN_CLR; } void initlcd() //初始化 { write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); } 27 攀枝花学院本科毕业设计(论文) 附录1 /*------------------------------------------------ 写入字符串函数 ------------------------------------------------*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { if (y == 0) { write_com(0x80 + x); } else { write_com(0xC0 + x); } while (*s) { write_data( *s); s ++; } } /*------------------------------------------------ 写入字符函数 ------------------------------------------------*/ void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) { write_com(0x80 + x); } else { write_com(0xC0 + x); } write_data(Data); 28 攀枝花学院本科毕业设计(论文) 附录1 } /***************************************************************** *********** 函数功能:AD转换子程序 入口参数:CH 出口参数:dat ****************************************************************** **********/ //采集并返回 unsigned char Adc0832(unsigned char channel) //AD转换,返回结果 { uchar i=0; uchar j; uchar dat=0; uchar ndat=0; if(channel==0)channel=2; if(channel==1)channel=3; ADDI=1; _nop_(); _nop_(); ADCS=0;//拉低CS端 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿1 29 攀枝花学院本科毕业设计(论文) 附录1 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 ADDI=channel&0x1; _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿2 _nop_(); _nop_(); ADCLK=1;//拉高CLK端 ADDI=(channel>>1)&0x1; _nop_(); _nop_(); ADCLK=0;//拉低CLK端,形成下降沿3 ADDI=1;//控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i<8;i++) { dat|=ADDO;//收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); dat<<=1; if(i==7)dat|=ADDO; } for(i=0;i<8;i++) { j=0; j=j|ADDO;//收数据 30 攀枝花学院本科毕业设计(论文) 附录1 ADCLK=1; _nop_(); _nop_(); ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); j=j<<7; ndat=ndat|j; if(i<7)ndat>>=1; } ADCS=1;//拉低CS端 ADCLK=0;//拉低CLK端 ADDO=1;//拉高数据端,回到初始状态 dat<<=8; dat|=ndat; return(dat); //return ad k } /***************************************************************** *********** 函数功能:定时器中断延时程序 这一段的作用时隔一段时间抽样一次 否侧 显示的最后一位会不稳定 入口参数: 出口参数: ****************************************************************** **********/ void timer0(void) interrupt 1 31 攀枝花学院本科毕业设计(论文) 附录1 { TMOD = 0x01; TH0 = 0x00; TL0 = 0x00; IE = 0x82; TR0 = 01; count++; if (count == 0x0A) { count = 0x00; dat= Adc0832(channel); } } /*void format_data(uint dat) { uint change_dat=dat; uchar ptr[3]; change_dat=(change_dat<<8)+(change_dat<<7)+(change_dat<<6)+(change_dat<<5)+ (change_dat<<4)+(change_dat<<2);//乘500 change_dat=change_dat>>8;//除以256 ptr[0]=change_dat/100; //得到个位数字 ptr[1]=(change_dat-(100*ptr[0]))/10; //得到十分位数字 ptr[2]=change_dat-(100*ptr[0])-(10*ptr[1]); //得到百分位数字 }*/ void keyscan() { if(!k1) 32 攀枝花学院本科毕业设计(论文) 附录1 { DelayMs(5); if(!k1) { while(!k1); sheding+=5; LCD_Write_Char(2,1,sheding/100+'0'); LCD_Write_Char(4,1,sheding%100/10+'0'); LCD_Write_Char(5,1,sheding%10+'0'); } } if(!k2) { DelayMs(5); if(!k2) { while(!k2); sheding-=5; LCD_Write_Char(2,1,sheding/100+'0'); LCD_Write_Char(4,1,sheding%100/10+'0'); LCD_Write_Char(5,1,sheding%10+'0'); } } } /**************************************** 函数功能:主程序 入口参数: 出口参数: 33 攀枝花学院本科毕业设计(论文) 附录1 ****************************************/ void main(void) { uchar i; P2=0xff; //端口初始化 P0=0xff; P3=0xff; channel=0x00; //channel=0 TMOD = 0x01; TH0 = 0x00; TL0 = 0x00; IE = 0x82; TR0 = 01; initlcd(); LCD_Write_String(0,0,bb); LCD_Write_String(0,1,aa); //LCD_Write_String(11,1,cc); LCD_Write_Char(2,1,sheding/100+'0'); LCD_Write_Char(4,1,sheding%100/10+'0'); LCD_Write_Char(5,1,sheding%10+'0'); while(1) { temp=dat*1.0/255*500; //电压值转换,5V做为参考电压,分成256份。 if(temp<187) { alc=100*(temp-8)/895; } else { alc=100*(temp-133)/272; } 34 攀枝花学院本科毕业设计(论文) 附录1 dispbuf[0]=alc%10+'0'; //个位 dispbuf[1]=alc/10%10+'0'; //十位 dispbuf[2]=alc/100%10+'0'; //百位 //dispbuf[0]=temp%10+'0'; //个位 //dispbuf[1]=temp/10%10+'0'; //十位 //dispbuf[2]=temp/100%10+'0'; //百位 LCD_Write_Char(8,0,dispbuf[2]); LCD_Write_Char(10,0,dispbuf[1]); LCD_Write_Char(11,0,dispbuf[0]); keyscan(); if(alc>sheding) { //beep=0; for(i=0;i<10;i--) { beep=0; DelayMs(1); beep=1; } LCD_Write_String(11,1,cc); } else { LCD_Write_String(11,1,dd); } } } 35 攀枝花学院本科毕业设计(论文) 致 谢 致 谢 经过这段时间的努力,终于完成了这次毕业设计。这是我第一次基于单片机独立设计一个东西,这对于我来说是很有挑战性的。 本次毕业设计能够顺利的完成首先要感谢我的指导教师-刘衍平老师,从设计初的设计内容的选择到最终论文的定稿,刘老师都给予了我很大的帮助,并且在设计过程中对我的设计思路和方法及论文以及软件的使用和使用中遇到的问题都耐心的指导,特别值得一提的是刘老师在指导我们完成之后,还继续用自己买的元器件指导我们完成硬件的焊接,在焊接的过程中我们遇到了很多的问题,刘老师都给予我们耐心的讲解和检查,直到我们完成为止。通过这次设计使我懂得了理论与实际相结合是很重要的,仅仅只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。也让我学到了很多课本上没有的东西,扩展了自己的视野,增强了自己的动手能力,清醒的认识到自己的不足,培养了小心谨慎的作风,使自己对课题设计了解进一步加深。 毕业不是结束,而是学习之路的另一个开端;在这个即将离开校园的时候,我要感谢辛勤培育我的老师和母校,是你们让我学习到了更深层次的专业知识和技能,让我知道了知识的无穷魅力,更让我学会了怎样做人。在这里我渡过了我人生中最精彩、最重要的四年大学生活,更与同学和老师们结下了深厚的友谊,我会把它作为我最珍贵的回忆好好珍惜。 在今后的工作中,我一定会将自己所学的知识和技能应用到实际工作中,理论联系实际,更好的服务于社会、报答恩师、回报母校。最后,我衷心的祝愿母校的明天会更加美好~ 36
/
本文档为【基于单片机的酒精浓度测试仪】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索