酒精浓度测试仪的设计与制作

上传人:仙*** 文档编号:67050286 上传时间:2022-03-30 格式:DOC 页数:34 大小:70KB
收藏 版权申诉 举报 下载
酒精浓度测试仪的设计与制作_第1页
第1页 / 共34页
酒精浓度测试仪的设计与制作_第2页
第2页 / 共34页
酒精浓度测试仪的设计与制作_第3页
第3页 / 共34页
资源描述:

《酒精浓度测试仪的设计与制作》由会员分享,可在线阅读,更多相关《酒精浓度测试仪的设计与制作(34页珍藏版)》请在装配图网上搜索。

1、酒精浓度测试仪的设计与制作 本科毕业论文 酒精浓度测试仪的设计与制作 二 级 学 院物理与机械工程学院专 业通信工程年 级2009 级学 号0910618041学 生 姓 名秦学峰指 导 教 师林萍职 称硕士完 成 时 间72013 年04月30 日 独 创 性 声 明 本人郑重声明:所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。 签名: 年月日 授权声明 本人完全理解贺州学院有关保留、使用本科生毕业论文

2、(设计)的规定,即:学院有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权贺州学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。本人论文(设计)中有原创性数据需要保密的部分为:无。 签 名: 年月日 指导教师签名: 年月日目 录摘 要I绪 论11 硬件设计11.1STC89S52单片机11.2 MQ-3酒精传感器11.3 ADC0832芯片11.4 LCD1602液晶11.5 报警电路12软件设计12.1 编译语言的选择12.2 主程序模块12.3 A/D转换模块

3、12.4 按键输入模块12.5 液晶显示输出模块13 调试和结果14 心得体会1参考文献1附录 1Abstract1致 谢1酒精浓度测试仪的设计与制作作 者 秦学峰指导教师 林萍摘 要:本论文主要是设计一种用于公共场所具有检测和报警功能的酒精浓度测试仪。成品可用于交警对汽车驾驶者测试与监督,也可以用于司机驾车前的自我检测。本设计方案基于STC89S52单片机,MQ-3酒精浓度传感器。系统将传感器输出的420mA的标准信号通过以ADO832为核心的A/D转换电路转换为8位的数字信号,经过单片机处理,最后由LCD1602液晶显示器显示酒精浓度值以及实现报警功能。论文中清楚地描述了数据采集子代码、数

4、据处理过程以及数据显示子程序和报警电路的设计方法和过程。系统对于测试点超出额定的酒精浓度时,发光二极管报警提示测试人员,同时操作人员可以通过按键对上限酒精浓度的设定和调节。关键词:酒精浓度传感器;单片机;1602液晶 绪 论检测仪向更迅速快捷更方便携带等发展。传统的机械测试仪和酒精计一般的灵敏度和准确度比较低或难操作,同时单片机做的系统既有类似于计算机的基本部件,又不同于计算机。它有体积小,实时快速对外部事件做出反应,作出逻辑判断与推理后实现被控对象的参数调整与控制等优点,所以基于单片机的酒浓度测试仪的开发还是具有一定现实意义的。根据WHO数据,全球2003年的人均纯酒精消费量为6.2L,其中

5、欧洲地区人均达11.9L,美洲地区人均为8.7L。俄罗斯及其周边的东欧国家酒精消费量最高,其次为欧洲其他国家。在人均国民生产总值(GDP)低于7000美元的低收入国家,酒精消费量与人均GDP相关,GDP越高酒精消费量越高。而随着我国近年来高速发展的经济水平和居民生活水平,酒精消费量亦呈直线上升趋势,随之而来的是因为饮酒而造成的一系列社会问题。例如酒后驾驶造成的交通意外。当酒精在人体血液内达到一定浓度时,麻痹神经,造成大脑反应迟缓,肢体不受控制等症状。人对外界的反应能力及控制能力就会下降,处理紧急情况的能力也随之下降。对于酒后驾车者而言,其血液中酒精含量越高,发生撞车的几率越大。而根据世界卫组织

6、的事故调查,大约50%69%的交通事故与酒后驾驶有关,酒后驾驶已经被列为车祸致死的主要原因。在中国,每年由于酒后驾车引发的交通事故达数万起,其危害触目惊心,已成为交通事故的第一大“杀手”。为了实现对人权的尊重,对生命的关爱,使更多人的生命权、健康权及幸福美满的家庭能得到更好的保护,需要设计一智能仪器能够检测驾驶员体内酒精含量。因此我选择了酒精浓度测试仪的设计为毕业设计的题目。这种仪器可以准确的测出喝酒者酒后血液中的酒精浓度,从而可以采取相关措施,提前预防交通事故或者灾难的发生,从而极大地保护了人民的生命和财产的安全。受20世纪信息技术的快速发展的影响,传感技术逐渐走向成熟,在生活生产中的得到了

7、广泛的应用。由于传感器在各个领域都有着举足轻重的作用,因此,高精度,高可靠性,微型化,微功耗无源化和智能数字化成为其发展方向。为检查醉驾, 警察常常使用一种便携式的酒精呼吸检测仪, 通过检测驾驶者呼出的气体判断驾驶者是否饮酒。而目前使用的酒精呼吸检测仪只能初步显示驾驶员是否饮酒, 有醉驾嫌疑的驾驶员还需要接受血检, 以确定其体内酒精含量是否超标。为简化其流程,英国内政部已推出一种超级酒精呼吸检测仪, 能根据体温、呼吸频率等情况, 当场判断出驾驶者体内的酒精含量。由此可见,高精度,高可靠性与微型化是酒精浓度检测仪的主要发展方向。至今为止,对气体中酒精含量进行检测的设备有燃料电池型(电化学)、半导

8、体型、红外线型、气体色谱分析型和比色型五种类型。但由于价格和使用方便的原因,目前(截止2013年1月)常用的只有燃料电池型(电化学型)和半导体型两种。与半导体型相比,燃料电池型呼气酒精测试仪具有稳定性好,精度高,抗干扰性好的优点。但是由于燃料电池酒精传感器的结构要求非常精密,制造难度相当大,目前(2013年)只有美国、英国、德国,中国等少数几个国家能够生产,加上材料成本高,因此价格相当昂贵,是半导体酒精传感器的几十倍。由于经费、设备和时间等因素限制,所以这次设计与制作的酒精浓度测试仪是以单片机为主控制器,扩展必要的外部电路,设计制作成的测试仪器。实现对酒精浓度数据的采集,最大酒精浓度的设置,酒

9、精浓度大小的比较,报警和显示酒精浓度数据等功能。系统包括单片机控制模块,液晶显示屏显示模块,数据采集模块,报警模块,复位电路等模块。单片机控制系统的工作过程,主要由51单片机、液晶显示屏、按键、LED指示灯组成,外部硬件电路有驱动芯片等。 1 硬件设计由于本次设计需要用到单片机,来完成对酒精浓度的检测,分析了网上的相似课题,有很多是用酒精浓度传感器MQ-3来完成酒精浓度检测系统的设计。鉴于本次时间限制,本次设计中采用的是STC89S52单片机来控制整个电路,电路中采用的是LCD1602来显示测试所得的实时数据,用MQ-3感应器来采集数据。A/D芯片选择AD0832,主要是这块芯片的性能优良,时

10、序操作简单,能很好的解决本次设计中对实时数据转换的要求。系统结构如下: 图1 系统结构框图 构成该系统的主要元件和电路有: STC89S52单片机 单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发

11、展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。STC89S52单片机为系统的核心,它是一款低功耗,价格便宜,高速,可靠,有一定抗静电,抗干扰,功能较强的单片机。STC89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内振荡器及时钟电路。同时STC89S52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工

12、作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本。STC单片机有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求1。STC89S52芯片图 图STC89S52引脚图STC89S52单片机部分引脚功能说明?Vcc:电源电压。?GND:接地。?P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。?P1口:P1是一个带内部上拉

13、电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。?P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱(吸收或输出电流)4个TTL逻辑门电路。?P3口:P3口时一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。?RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。?ALE :当访问外部程序存储器或数据存储器时,ALE 地址锁存允许 输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用

14、于定时目的。?PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当89S52单片机由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在次期间,当访问外部数据存储器,将跳过两次 信号。? EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFH), 端必须保持低电平(接地)。?XTAL1:振荡器反相放大器及内部时钟发生器的输入端。?XTAL2:振荡器反相放大器的输出端2。1.2 MQ-3酒精传感器MQ-3酒精传感器对乙醇蒸气有较高的灵敏度,但响应和恢复需要一定的时间。另外,MQ-3酒精传感器简单的驱动回路和可靠的稳定

15、性是相比较于其他型号传感器的优点。MQ-3酒精传感器可用于机动车驾驶人员及其他严禁酒后作业人员的现场检测,也可用于其他场所乙醇蒸气浓度的检测。MQ-3酒精传感器有6只针状管脚,其中4个管脚(两个A和两个B)用于信号读取,两个H脚用于提供加热电流。1.2.1 MQ-3酒精传感器 图3 酒精传感器管脚示意图1.2.2 MQ-3酒精传感器外围电路 图4 MQ-3酒精传感器外围电路原理图当感应器上电后,由于周围空气没有乙醇蒸汽,感应器里的感应材料不导电,传回 ADC0832芯片CH0的模拟电流为0,当感应器周围有乙醇蒸汽时,感应器里的感应材料按一定规律导电,这些模拟电流经过MQ-3的6脚传回ADC08

16、32芯片CH0进行A/D转换。1.3 ADC0832芯片ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择3。 1.3.1 ADC0832芯片管脚 图5 模数转换芯片ADC0832管脚图1.3.2 ADC0832芯片管脚功能说明:? CS_ 片选使能,低电平芯片使能。? CH0 模

17、拟输入通道0,或作为IN+/-使用。? CH1 模拟输入通道1,或作为IN+/-使用。? GND 芯片参考0 电位(地)。? DI 数据信号输入,选择通道控制。? DO 数据信号输出,转换数据输出。? CLK 芯片时钟输入。? Vcc/REF 电源输入及参考电压输入(复用)。通常情况下ADC0832与有4个管脚与单片机相连,分别是CS,CLK,DO,DI。但由于DO端与DI端在通信时并未同时有效,所以电路设计时可以将DO端和DI端并联在一根线上使用。当ADC0832未工作时CS输入端应为高电平,此时芯片禁止运行,DO,DI和CLK的电平可以处于任意状态。当CS端保持低电平时,ADC0832进行

18、转换工作,CLK输入时钟脉冲信号,DI输入通道选择信号,在第一个时钟脉冲下降之前DI必须是高电平,表示启始信号,在第2,3脉冲下降之前DI端应输入两位数据用于通道的选择,当第3个脉冲下降之后DI端电平输入失去作用。这里采用CHO单通道模式,即在第一个和第二个CLK脉冲下降后分别在DO输入1,0两个电平。 1.3.3 ADC0832芯片外围电路 图6 ADC0832芯片外围电路如上图所示,AOUT接从MQ-3传回的模拟电流,经ADC083芯片内部,同时在控制芯片内的代码(详见附录)控制下,通过改变TXD和T0的电平状态,从RXD端获取8位数字电流送回STC89S52控制芯片。1.4 LCD160

19、2液晶LCD1602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用161,162,202和402行等的液晶显示模块,模块组件内部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成4。1.4.1 液晶显示屏引脚 图7 液晶显示屏引脚示意图 1.4.2 LCD1602液晶引脚功能:第 1 脚:VSS 为地电源。第 2 脚:VDD 接 5V 正电源。第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、

20、低电平时选择指令寄存器。第5脚:RW 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW 为高电平时可以读忙信号,当 RS 为高电平 RW 为低电平时可以写入数据。第6脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行令。第 714 脚:D0D7 为 8 位双向数据线5。1.4.3 LCD1602液晶指令表1 液晶显示器指令指令RSR/WD7D6D5D4D3D2D1D0清显示0000000001光标返回000000001*置输入模式00000001I/DS显示开/关控制0000001DCB光

21、标或字符移位000001S/CR/L*置功能00001DLNF*置字符发生储存器地址0001字符发生储存器地址 AGG 置数据储存器地址001显示数据储存器地址 ADD 读忙标志或地址01BF计数器地址(AC)写数到CGRAM或DDRAM10要写的书从CGRAM或DDRAM读数11读出的数据1.4.4 1602液晶显示器外围电路 图8 1602液晶显示器外围电路 如上图所示,1602的1脚和6脚都接地,2脚和15脚都接电源714脚连接到STC89S52控制芯片的P0口上,4、5、6脚分别连接到STC89S52控制芯片的P2.4、P2.5、P2.6脚上。1.5 报警电路本毕业设计采用发光二极管来

22、做报警器件。发光二极管简称为LED它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或的二极管6。发光二极管的反向击穿电压约5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。图8 发光二极管外围电路

23、原理图发光二极管正极直接接电源,负极通过电阻R3连接到控制芯片的P2.0脚,其功能是当系统检测到酒精浓度低于设定值时,STC89S52芯片P2.0脚输出一个持续的高电平,发光二极管熄灭,无报警信号。当系统检测到酒精浓度高于设定值后,STC89S52芯片P2.0脚输出一个持续的低电平点亮发光二极管,产生报警信号。1.6 振荡器振荡器有多种,比如555定时器、对称式多谐振荡器,非对称式多谐振荡器、环行振荡器等。但在许多应用场合下都对多谐振荡器的震荡频率稳定性有严格的要求,例如,在多谐振荡器作为数字钟的脉冲源使用时,它的频率稳定性直接影响着计时准确性。在这种情况下,前面所讲的几种多谐振荡器电路难以满

24、足要求,因为在这些多谐振荡器中振荡频率主要取决于门路电路输入电压在充、放电过程中达到转换电平所需的时间,所以频率稳定性不可能很高。AT89S52单片机允许的振荡晶体可在1.224MHz之间选择,一般11.0592MHz。电容C1、C2的取值对振动频率输出的稳定性、大小及振荡电路起振速度有一定的影响,可在20100pF之间选择,典型值为30pF。在本次设计采用频率稳定性相对、外围电路相对简单的石英晶体多谐振荡器和无极性电容,具体数值如下,这样产生的振荡周期大约1us,大大的方便时钟计数。 图9 石英晶振外围电路连接示意图软件设计2.1 编译语言的选择在单片机的开发过程中,高级语言逐渐被引入进来。

25、汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言、Java语言等。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高;Java语言更适合做手机软件、网页小游戏和安全性要求较高的安防软件。C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着不懂芯片内部结构的程序员也能高效快速的编写程序。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植。经C语言和汇编语言的优缺点比较,本系统采用C语言来编写代码。软件编写的主体思路是将系统按功能模块化划分,然后根据模块要实现的功能编写每个子程序,最后通过主程序调用

26、外部子程序来实现本次设计的各项要求。2.2 主程序模块主程序的功能:与硬件相结合实现酒精浓度测试系统的各个功能。主要是检测与显示,读按键值,门限调整与报警,检测数据显示功能子函数的调用。 图10 主程序流程程序从宏定义int、char型变量开始,定义K0、K1、K2、K3分别为系统开始测试按键、酒精浓度上限值设定按键、上限加按键、上限减按键和定义P2.0口为光线报警口,然后定义要在液晶上显示的字符串,接着声明整个系统要用到的函数,随后进入主程序设定初始酒精上限浓度,初始化LCD1602,延时3S以便于系统正常运行,之后用相应函数显示要显示的字符和数字,最后进入按键检测状态。2.3 A/D转换模

27、块 1 模数转换模块的主要功能就是将MQ-3传回的模拟电压信号转化为单片机能够处理的数字信号,并传送给STC89S52单片机中。 图11 ADC0832转换的流程定义芯片各个管脚拉低CS端电平,拉高CLK的电平启动A/D转换芯片,执行两个空指令后拉低CLK形成第一个,重复CLK信号的电平拉高拉低,在第2、3个CLK下降沿前分别DI等于“1”、“0”选通A/D转换芯片的CH0通道,并在第3个CLK下降沿后DI等于1,使控制命令结束,紧跟着两个for语句接收数据,接收完后对比两个接收到的数据,完全正确就通过return函数返回数据。2.4 按键输入模块 1 按键是实现人机对话的一个控制按钮,通过按

28、键的操作,对系统进行发送操作指令,经单片机内部储存的代码处理后,然后在LCD1602液晶上显示。 N Y NYY 图12 按键查询式的流程图进入按键检测程序后运行一个控指令进行延时,如果没有按键按下,则一直循环控指令循环同时检测是否按键按下,如果有按键按下,则跳到所按按键对应的程序,执行完该按键的程序后立即跳出if语句回到while循环语句继续进行死循环。2.5 液晶显示输出模块LCD1602模块在本系统中主要起着开界面日期和英文姓名,学号显示,和采集回来酒精浓度的显示。 图13 液晶显示流程图液晶显示D0到D7口接P0.0到 P0.7,单独使用一个口,为了方便代码的编写和降低电平间的干扰,由

29、于P0口没有上拉电阻,所以加了一个排阻进行电压的扩大,用以。通常我们说P0口需要接上拉电阻才能正常工作,是因为其内部结构与其他三个端口存在差别,没有上拉电阻的缘故,所以如果不接上拉电阻,P0口的状态就不会得到预期的结果,或许是某个中间电压的值,而不是高电平的5V或者低电平的0V。”按钮,在输出HEX前面打钩,保存设置。单击软件左上方“编译”按钮,就可以在新建的工程里面的到一个HEX文件。把电路连接好并将调试程序代码HEX文件通过progisp软件烧写到STC89S52单片机上后,接上+5V电源开始调试。先把气体传感器探头用一个阻值为50k的定位器替代,复位单片机,观察LCD1602液晶上的显示

30、数据。用万用表测量采样点的电压值,看用万用表测得的电压值与LCD1602液晶上显示数据是否存在线性关系。因为各导线和元器件对电压电流的影响,LCD1602液晶显示的数据与万用表测得的数据存在一定的偏差,但在可接受的范围内。调节电位器,观察LCD1602液晶上数据显示的变化,同样用万用表测量电压值作比较。测量数据与LCD1602液晶上显示数据基本吻合,说明除感应器部分外其它部分连接正确。然后,再把电位器阻值从0开始逐渐调大,在每过一个0.02V电压后观察到LCD1602液晶上数字发生电话,说明LCD1602液晶显示换算正确。调试电路其他功能模块正确后,将预热足够长时间能正常工作的气体传感器MQ-

31、3感应器模块换上原来50k的电阻。准备好若干个不同浓度的酒精气体样品,检测气体传感器是否能正常工作。当把不同浓度的酒精溶液样品靠接气敏传感器时,各自对应一个不同的数据显示,说明整体电路已经完全正确。?本次设计与制作的酒精浓度检测系统,通过设计相关的硬件电路及进行相应的软件调试,最后实现了实时检测酒精浓度,并能实时在LCD1602液晶显示屏上显示的目的。设计出的硬件电路,基本符合本次毕业设计的设计要求,通过按键可以实现调整门限值,当系统检测到的酒精浓度高于设定的酒精浓度门限值时,系统会自动启动光线报警功能,并且在LCD1602液晶显示屏上显示当前酒精浓度。但有些不足:(1)由于酒精感应器不是集成

32、块,是买回感应头自己做的电路,对于电路中所用到的两个电阻具体数值不是很精确,导致感应系统在没有酒精蒸汽的空气中也显示有较小的数值在LCD1602液晶显示屏上,最后通过对代码的修改,把小于3的数字直接视为0处理,这样就不会出现上面的情况了;(2)由于酒精感应器本身硬件问题,感应和消退时间有点长。4 心得体会通过本次毕业设计,让我重新系统复习了数字电子技术基础与单片机方面的知识,收获颇丰。在做板的过程中要非常小心,因为碳粉打印机打印出来的电路可能会有某个地方断开的,这就要你在烫板后小心的拿油性笔仔细描画一下,然后腐蚀之前还要把在烫板时附着在板上的胶纸用橡皮细心的除掉。硬件调试过程是相对繁锁的,要特

33、别注意以下几点。首先,通电之后看AT89S51晶振是否起振,晶振起振后是标准的正弦波,示波器测得其频率为11.0592MHz;其次,看酒精感应器是否有数据传回;最后,硬件电路的设计既要追求实际功能的实现,也要考虑元器件的购买方便。在本次毕业设计中学到的知识,我会将它们发挥到其它的学习中去,也将会在今后的工作学习中不断的提高和完善;而在此期间发现的不足,我将努力改善,通过学习实践等方式不断提高,克服那些知识障碍,以求在今后的工作学习过程中获得更大的进步。参考文献1 张洪润等单片机应用设计200例北:北京航空航天大学出版社,20062 公茂法等单片机人机接口实例集北京:北京航空航天大学出版社,19

34、974 姜志海、黄玉清、刘连鑫.单片机原理及应用,2005 先锋工作室单片机程序设计实例北京:清华大学出版社,20036 赵亮侯国锐单片机C语言编程与实例北京:人民邮电出版社,2003图15 硬件电路部分原理图 图16 控制电路PCB图 图17 检测电路PCB图 图18 酒精浓度测试仪实物图 部分程序清单主程序 main.c#include #include /*宏定义*/ #define uint unsigned int#define uchar unsigned charsbit k0 P10; /start the systemsbit k1 P11; /setup the stand

35、_valuesbit k2 P12; /the stand_value upsbit k3 P13; /the stand_value downsbit alarm P20; /the alarm port/*变量及字符串的定义*/uchar LCD_Char 0123456789ABCDEF-.;uchar LCD_string0 welcome to guet;uchar LCD_string1 102021226; uchar M_Time 2011-9-8;/ show timeuchar M_Detect Detect:; /检测 uchar M_Detect1 Alcohol:;

36、uchar M_Detect2 set_val:; /uchar M_time1 Time ; /时间/uchar M_Storage Storage ; /memory uint data_temp 0;uint flag 0; /*函数声明*/ extern void initial_lcd1602 void ; extern void Display_List_Char uchar x,uchar y,uchar *str ; /the extern have no mean ,only to explain the function is in the other fileextern

37、 void write_lcd_command uchar write_data ; /the function of write commandextern void Display_One_Char uchar x,uchar y,uchar dat ; extern void write_lcd_command uchar write_data ; extern void xs_int unsigned int shuju,bit t ; extern unsigned char ADconv void ;extern void display unsigned int shuju,bi

38、t t ;/*子函数*/ void delay_ms uint n uint i,j; /delay 10ms for i n;i 0;i- for j 1200;j 0;j- _nop_ ; /*主函数*/ void main uint set_value 200; /is mean 20.0mg/ml alcohol drive is 20.0mg/100ml 0.2mg/ml uchar data_char 0; initial_lcd1602 ; delay_ms 100 ; Display_List_Char 0,0,LCD_string0 ; /welcome delay_ms 1

39、00 ; /delay 3sDisplay_List_Char 1,0,LCD_string1 ; /welcome delay_ms 300 ; write_lcd_command 0x01 ; /clean screen Display_List_Char 0,0,M_Time ; /show time delay_ms 30 ; Display_List_Char 0,0,M_Time ; /show time delay_ms 100 ; Display_List_Char 1,0,M_Detect ; /show detect interface delay_ms 100 ; / D

40、isplay_List_Char 1,0,M_Detect ; /show detect interface/ delay_ms 300 ;while 1 _nop_ ; if k0 0|k1 0|k2 0|k3 0 if k0 0 flag 0; Display_List_Char 1,0,M_Detect1 ; /show detect interface delay_ms 50 ; data_char Adc0832 0 ; data_temp data_char; delay_ms 10 ; xs_int data_temp,1 ; delay_ms 10 ; if data_temp

41、 set_value alarm 0; else alarm 1; if k1 0 Display_List_Char 1,0,M_Detect2 ; xs_int set_value,1 ; flag 1; if k2 0&flag 1 delay_ms 10 ; if k2 0 set_value set_value+10; xs_int set_value,1 ; delay_ms 50 ; if k3 0&flag 1 delay_ms 10 ; if k3 0 set_value set_value-10; xs_int set_value,1 ; delay_ms 50 ; 显示程

42、序 LCD1602.c#include #include #define uchar unsigned char#define uint unsigned int #define LCDPORT P0 sbit RS P25;/RS数据命令选择端,高电平数据,低电平命令sbit RW P26;/RW读写选择端,高电平读操作,低电平写操作sbit EN P27;/EN使能控制端,E高电平跳变为低电平时LCD执行命令 /*LCD1602驱动程序*/ void lcd_delay uchar delaytime while delaytime delaytime-; void write_lcd_c

43、ommand uchar write_command lcd_delay 40 ;RS 0;RW 0;LCDPORT write_command;EN 1;EN 0; void write_lcd_data uchar write_data lcd_delay 40 ;RS 1;RW 0;LCDPORT write_data;EN 1;EN 0; void Display_One_Char uchar x,uchar y,uchar dat /x表示行,y表示列 switch x case 0:write_lcd_command 0x80+y ;break;case 1:write_lcd_c

44、ommand 0xc0+y ;break; write_lcd_data dat ; void Display_List_Char uchar x,uchar y,uchar *str /*switch x case 0:write_lcd_command 0x80+y ;break;case 1:write_lcd_command 0xc0+y ;break; while *str! 0 write_lcd_data *str ;str+; */while *str! 0 Display_One_Char x,y,*str ; str+; y+; if y 16 /若y等于16,进入if语句

45、 y 0;x 1; / y赋0,x与1按位异或取反 void display unsigned int shuju,bit t /显示一个数字 unsigned int huancun6 0 ;unsigned char biaozhi 0,i;if shuju 10 biaozhi 1;else if shuju 100 biaozhi 2;else if shuju 1000 biaozhi 3;else if shuju 10000 biaozhi 4;else if shuju 65535 biaozhi 5;switch biaozhi case 5:huancun5 shuju/1

46、0000; case 4:huancun4 shuju%10000/1000; case 3:huancun3 shuju%1000/100; case 2:huancun2 shuju%100/10; case 1:huancun1 shuju%10; break; default:break; for i 6;i 1;i- Display_One_Char t,15-i,0x30+huancuni-1 ; Display_One_Char t,14,* ;Display_One_Char t,15,g ; void initial_lcd1602 void /初始化LCD1602 ucha

47、r i;EN 0;for i 200;i 0;i- lcd_delay 248 ;write_lcd_command 0x38 ;/0x38命令,双行显示,显示5x7的点阵字符for i 4;i 0;i- lcd_delay 248 ;write_lcd_command 0x38 ;/再写一次0x38命令,双行显示,显示5x7的点阵字符for i 4;i 0;i- lcd_delay 248 ;write_lcd_command 0x0c ; /无光标,不闪烁for i 4;i 0;i- lcd_delay 248 ;write_lcd_command 0x06 ; /光标右移,文字不移动fo

48、r i 4;i 0;i- lcd_delay 248 ;write_lcd_command 0x01 ;/清屏for i 4;i 0;i- lcd_delay 248 ;/5 /*A/D转换程序AD0832.c*/#include #include #define uchar unsigned char#define uint unsigned int sbit ADCLK P34; /* AD时钟信号 */sbit ADCS P31; /* AD片选信号 */sbit ADD0 P30; /* 数据输入 */sbit ADDI P30; /* 数据输出 */uchar adc_result

49、0; /* AD计算结果 */ /* 读取AD输出的8bit数据 */uchar Adc0832 unsigned char channel /AD转换,返回结果 uchar i 0; uchar j; uint 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 _nop_ ; _nop_ ;

50、 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| ADD0;/收数据 ADCLK 1; _nop_ ; _nop_ ; ADCLK 0;/形成一次时钟脉冲 _nop_ ; _nop_ ; dat 1;

51、if i 7 dat| ADD0; for i 0;i 8;i+ j 0; j j|ADD0;/收数据 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端 ADD0 1;/拉高数据端,回到初始状态 dat 8; dat| ndat; return dat ; /return ad k The design and manufacture of alcohol testerMajor:Qin Xuefe

52、ngAbstract: This thesis mainly is to design a kind of used in public places, which has the function of detection and alarm alcohol tester. Finished product can be used for the traffic police for car driver testing and monitoring, can also be used for driver heads to the self test.This design scheme

53、based on STC89S52 microcontroller, MQ - 3 alcohol concentration sensor. System will be 4 20 ma standard signal of sensor output by ADO832 as the core of the A/D conversion circuit is converted into A 8 bit digital signal, through single chip processing, finally the LCD1602 LCD display shows the alco

54、hol density and realize the alarm function. The thesis clearly describes the data collection code, data processing and data display subroutine, and alarm circuit design method and process. System for the test point is beyond rated alcohol concentration, light-emitting diodes leds alarm prompt testers, operators can at the same time through the buttons on the limit of alcohol concentration to set and adjust.Keywords: Alcohol concentration sensor; Single chip microcomputer; 1602 liquid crystal display LCD 致 谢历时将近个月的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!