基于单片机酒精浓度测试毕业论文_第1页
基于单片机酒精浓度测试毕业论文_第2页
基于单片机酒精浓度测试毕业论文_第3页
基于单片机酒精浓度测试毕业论文_第4页
基于单片机酒精浓度测试毕业论文_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGEPAGEIV福建泉州仰恩学院毕设设计(论文)PAGE1摘要2000年以来,随着中国经济的高速发展,人民生活水平的迅速提高,中国逐渐步入“汽车社会”,酒后驾车行为所造成事故越来越多,对社会的影响也越来越大,酒精正在成为越来越凶残的“马路杀手”。据有关资料统计,全世界每年因车祸丧生的人数就超过60万人,留下永久性伤残者在400万以上,一般受伤者则不计其数。在许多国家,车祸已成为第一位意外死亡原因。此外,因为交通事故造成的经济损失也相当惊人。据事故调查统计,大约50%—60%的车祸与饮酒有关。中国公安部门在2009年8月,在全国各地加强查处酒后驾驶的力度,以减少由酒后驾驶造成的恶性交通事故。要查处就涉及到检测人体内的酒精含量和使用设备来进行检测的问题。本文研究设计了一种用于公共场所具有检测及超限报警功能的酒精浓度智能测试仪。其设计方案基于89C51单片机,MQ3酒精浓度传感器。系统将传感器输出的4~20mA的标准信号通过以AD0832为核心的A/D转换电路调理后,经由单片机进行数据处理,最后由LCD显示酒精浓度值。文中详细介绍了数据采集子系统、数据处理过程以及数据显示子系统和报警电路的设计方法和过程。系统对于采样地点超出规定的酒精浓度时二极管报警电路提醒监测人员。同时,操作人员对于具体报警点的上限值可以通过单片机编程进行设置。关键词:酒精浓度传感器(MQ3);STC89C52MCU;A/D转换器

AbstractSince2000,withChina'srapideconomicdevelopmentandtherapidincreasepeople'slivingstandard,Chinahasgraduallysteppedinto"carsociety",drinkdrivingaccidentcausedbymoreandmoreimpactonsocietyisalsogrowing,Alcoholisbecomingmoreandmorebrutal"killers."Accordingtostatistics,theworldwidenumberofpeoplekilledinroadaccidentseveryyearonmorethan60millionpeople,leftwithpermanentdisabilityof400millionormore,usuallytheinjuredwerenumerous.Inmanycountries,trafficaccidentshavebecomethefirstcauseofaccidentaldeaths.Inaddition,theeconomiclossescausedbytheaccidentisquiteamazing.Accidentinvestigation,accordingtostatistics,about50%-60%ofcaraccidentsandalcohol-related.China’sMinistryofPublicSecurityinAugust2009,aroundthecountrytostrengtheneffortstoinvestigateanddealwithdrinkdriving,toreducethedrinkdrivingaccidentcausedbythevicious.Toinvestigatethehumanbodyinvolvingthedetectionofalcoholanduseofequipmenttodetectproblems.Inthispaper,designapublicplaceforthedetectionandlimitalarmfunctionswithanalcoholconcentrationofintelligenttester.Thisdesign,basedonSTC89C51microcontrollerandMQ3alcoholconcentrationsensor.Systemsensoroutput4~20mAstandardsignalthroughAD0832coreA/Dconvertercircuit,afterconditioning,dataprocessingbytheMCU,thefinalalcoholconcentrationvaluefromtheLCDdisplay.Thispaperdescribesthedataacquisitionsubsystem,dataprocessinganddatadisplaysubsystemandalarmcircuitdesignmethodsandprocesses.Systemrequirementsforthesamplingsitesexceedingthealcoholconcentrationdiodereminderalarmcircuitmonitors.Meanwhile,theoperatorspecificalarmpointfortheupperlimitsetbyMCUprogramming.AlcoholtesterwillbringadrivingsignalpriortoasafeKeywords:Alcoholconcentrationsensor(MQ3);STC85C52MUC;A/Dconverter

目录摘要 IAbstract II引言 1第一章绪论 21.1酒精浓度检测仪开发背景 21.2酒精浓度检测仪的发展 21.3酒精浓度检测仪设计内容 2第二章方案器件简介 32.1MCU选择的简介 32.2数模转换器的简介 PAGEREF_Toc311582926\h52.3液晶显示器的简介 7第三章总体方案设计 73.1STC89C52单片机 83.2ADC0832数模转换 83.3LCD1602液晶显示 9第四章硬件设计 104.1最小系统的实现 104.2数据采集设计 124.3A/D转换设计 134.4LCD1602液晶显示设计 134.5报警设计 15第五章软件设计 165.1编译语言的选择 165.2主程序模块 165.3A/D转换模块 175.4按键输入模块 175.6液晶显示输出模块 18第六章系统调试 196.1系统硬件调试 196.1.1元器件的焊接 PAGEREF_Toc311582946\h196.1.2电路测试 206.2系统软件调试 206.3系统整体调试 20第七章结束语 21致谢 22参考文献 23附录 PAGEREF_Toc311582953\h24附录一硬件设计原理图和PCB图 24附录二检测程序 25仰恩大学毕业设计(论文)PAGE54福建泉州仰恩学院毕设设计(论文)引言随着中国经济的高速发展,人民生活水平的迅速提高,中国逐渐步入“汽车社会”,酒后驾驶行为所造成事故越来越多,对社会的影响也越来越大,酒精正在成为越来越凶残的“马路杀手”。越来越多的交通事故在我们的身边发生,让人心痛,经济的发展,每个人都希望人的安全意识也该发展。此外,由交通事故造成的经济损失也相当惊人。据事故调查统计,超过半数的车祸与饮酒有关。在全国各地加强查处酒后驾驶的力度,以减少由酒后驾驶造成的恶性交通事故。要查处就涉及到检测人体内的酒精含量和使用设备来进行检测的问题。本文研究设计了一种用于公共场所具有检测及超限报警功能的酒精浓度智能测试仪。其设计方案基于89C52单片机,MQ3酒精浓度传感器。系统将传感器输出信号通过A/D转换电路调理后,经由单片机进行数据处理,最后由LCD显示酒精浓度值。从而让驾车的人知道自己该在什么情况下可以开车,这是一个在现代生活很实用,很负责的一个设计,给社会带来福音。第一章绪论1.1酒精浓度检测仪开发背景酒精的重要作用,是逐渐使得脑部及神经系统反应迟钝——这也是许多人喜欢适量饮酒的主要原因。喝一、两杯酒对人有镇定或松弛的作用。即使是少量的酒精,也没有刺激振奋的作用,这跟许多人的想法正好相反。然而,酒精有时会造成抑制力明显减弱,这会导致创造力的出现,或者是有时候会导致实际的侵略攻击性行为。根据WHO数据,全球2003年的人均纯酒精消费量为6.2L,其中欧洲地区人均达11.9L,美洲地区人均为8.7L。俄罗斯及其周边的东欧国家酒精消费量最高,其次为欧洲其他国家。在人均国民生产总值(GDP)低于7000美元的低收入国家,酒精消费量与人均GDP相关,GDP越高酒精消费量越高。受到酒精影响的司机通常会有如下特征:对信号灯反应慢;逆向行驶;摇摆不定、突然转向、飘忽不定或在道路中线驾驶;乱踩刹车;转弯幅度大;蛇形;没有原因就停车;开车速度极慢;突然转弯或违法转弯;天黑时不开前灯。据统计,驾驶员酒后开车,其发生交通事故的比率为没有饮酒情况下的16倍。由日常道路交通安全违法行为和交通肇事案例来看,机动车驾驶员酒后驾车约占38.6%;而摩托车交通肇事中,酒后驾驶的比例则高达72.3%。酒后驾驶让人付出了惨痛的代价,为了避免类似事故的发生,酒精浓度检测仪随之产生。1.2酒精浓度检测仪的发展以对气体中酒精含量进行检测的设备有五种基本类型,即:燃料电池型(电化学)、半导体型、红外线型、气体色谱分析型、比色型。但由于价格和使用方便的原因,目前(截止2009年8月)常用的只有燃料电池型(电化学型)和半导体型两种。燃料电池是当前全世界都在广泛研究的环保型能源,它可以直接把可燃气体转变成电能,而不产生污染,酒精传感器只是燃料电池的一个分支。燃料电池酒精传感器采用贵金属白金作为电极,在燃烧室内充满特种催化剂,使进入燃烧室内的酒精充分燃烧转变为电能,也就是在两个电极上产生电压,电能消耗在外接负载上,此电压与进入燃烧室内气体的酒精浓度成正比。与半导体型相比,燃料电池型呼气酒精测试仪具有稳定性好,精度高,抗干扰性好的优点。但是由于燃料电池酒精传感器的结构要求非常精密,制造难度相当大,目前(2009年)只有美国、英国、德国等少数几个国家能够生产,加上材料成本高,因此价格相当昂贵,是半导体酒精传感器的几十倍。1.3酒精浓度检测仪设计内容本论文主要完成酒精浓度检测仪软件设计,设计内容包括:A/D转换器程序、控制程序、超标报警、键盘检测、数据显示等。本系统采用单片机为控制核心,以实现便携式酒精浓度检测仪的基本控制功能。系统主要功能内容包括:数据处理、时间设置、开始测量、超标报警、键盘检测本系统设计采用功能模块化的设计思想,本论文内容分为以下几个章节:设计器件简介和选择;硬件的设计;软件设计和系统调试。第二章方案器件简介硬件设计部分主要包括:MCU、A/D、时钟芯片、LCD、外围扩展数据RAM等芯片的选择,以下做一些器件的比较。2.1MCU选择的简介本系统采用单片机为控制核心。单片机/MCU主要有51基本型和52增强型,而相比之下52型比51型功能更为强大,ROM和RAM存储空间更大,52还兼容51指令系统。基于本系统设计内容的需要,综合考虑后,我们选择单片机STC89C52为控制核心;主要基于考虑STC89C52是无法解密低功耗,超低价高速,高可靠强抗静电,强抗干扰,功能强大的单片机。STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内振荡器及时钟电路,89C5X可以按照常规方法进行编程,也可以在线编程。同时STC89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本。STC单片机有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。STC89C52单片机单片机引脚功能(如图2.1):•Vcc:电源电压•GND:地图2.1单片机引脚图•P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问器件激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。•P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表2-1。Flash编程和程序校验期间,P1接收低8位地址。表2-1为P1.0和P1.1的第二功能表2-1P1.0和P1.1的第二功能•P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,同时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOV@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOV@RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。•P3口:P3口时一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入‘1’时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口作为一般的I/O口线外,更重要的用途是它的第二功能,如表2-2所示:此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。•RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。•ALE/:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。表2-2P3口第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2QUOTE(外中断0)P3.3QUOTE(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6QUOTE(外部数据存储器写选通)P3.7QUOTE(外部数据存储器读选通)对Flash存储器编程器件,改引脚还用于输入编程脉冲(QUOTE)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位复位,可禁止ALE操作。该位置复位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。•QUOTE:程序储存允许(QUOTE)输出是外部程序存储器的读选通信号,当89C5X单片机由外部程序存储器取指令(或数据)时,每个机器周期两次QUOTE有效,即输出两个脉冲。在次期间,当访问外部数据存储器,将跳过两次信号。•/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFH),端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存端状态。如端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。•XTAL1:振荡器反相放大器及内部时钟发生器的输入端。•XTAL2:振荡器反相放大器的输出端。2.2数模转换器的简介实现A/D转换的基本方法很多,有计数法、逐次逼近法、双斜积分法和并行转换法。由于逐次逼近式A/D转换具有速度,分辨率高等优点,而且采用这种方法的ADC芯片成本低,所以我们采用逐次逼近式A/D转换器。逐次逼近型ADC包括1个比较器、一个模数转换器、1个逐次逼近寄存器(SAR)和1个逻辑控制单元。逐次逼近型是将采样信号和已知电压不断进行比较,一个时钟周期完成1位转换,依次类推,转换完成后,输出二进制数。这类型ADC的分辨率和采样速率是相互牵制的。优点是分辨率低于12位时,价格较低,采样速率也很好。ADC0832模数转换器具有8位分辨率、双通道A/D转换、输入输出电平与TTL/CMOS相兼容、5V电源供电时输入电压在0~5V之间、工作频率为250KHZ、转换时间为32微秒、一般功耗仅为15MW等优点,适合本系统的应用,所以我们采用ADC0832为模数转换器件。ADC0832具有以下特点:•8位分辨率;•双通道A/D转换;•输入输出电平与TTL/CMOS相兼容;•5V电源供电时输入电压在0~5V之间;•工作频率为250KHZ,转换时间为32μS;•一般功耗仅为15mW;•8P、14P—DIP(双列直插)、PICC多种封装;•商用级芯片温宽为0度to+70度,工业级芯片温宽为−40度to+85度;芯片接口说明:•CS_片选使能,低电平芯片使能。•CH0模拟输入通道0,或作为IN+/-使用。•CH1模拟输入通道1,或作为IN+/-使用。•GND芯片参考0电位(地)。•DI数据信号输入,选择通道控制。•DO数据信号输出,转换数据输出。•CLK芯片时钟输入。•Vcc/REF电源输入及参考电压输入(复用)。ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。主要特点:DC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近,ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能:IN0~IN7:8路模拟量输入端。•8位数字量输出端。•ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路•ALE:地址锁存允许信号,输入,高电平有效。•START:A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。•EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。•OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。•CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。•REF(+)、REF(-):基准电压。•Vcc:电源,单一+5V。•GND:地。2.3液晶显示器的简介带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块;基本特性:低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点•内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)•内置128个16×8点阵字符,2MHZ时钟频率•显示方式:STN、半透、正显,驱动方式:1/32DUTY,1/5BIAS•视角方向:6点,背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10•通讯方式:串行、并口可选,内置DC-DC转换电路,无需外加负压•无需片选信号,简化软件设计,工作温度:0度-+55度,存储温度:-20度-+60度。LCD1602字符型液晶显示器其用法:•单5V电源电压,低功耗、长寿命、高可靠性•内置192种字符(160个5×7点阵字符和32个5×10点阵字符)•具有64个字节的自定义字符RAM,可自定义8个5×8点阵字符或4个5×11点阵字符•显示方式:STN、半透、正显•驱动方式:1/16并口,1/5串口•背光方式:底部LED•通讯方式:4位或8位并口可选•标准的接口特征:适配MC51和M6800系统MPU的操作时序LCD1602液晶显示屏的主要技术参数如下表所示:(表2-3)表2-3LCD1602液晶主要参数显示容量16×2个字符芯片工作电压4.5~5.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95×4.35(mm)第三章总体方案设计在这次的整体设计中主要涉及下面几个方面(如图3.1):图3.1整体方案结构图下面介绍各个模块使用的器件:3.1STC89C52单片机STC89C52是的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器(PEROM)和256Kbytes的随机存取数据存储器,器件采用高密度,非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器和FLASH存储单元,功能强大,STC89C52单片机适合于许多较为复杂控制应用场合。主要性能参数:•8K字节可重擦写FLASH闪存存储器•1000次写/擦循环•时钟频率:0Hz—24MHz•三级加密存储器•256字节内部RAM•32个可编程I/O口线•3个16位定时/计数器•6个中断源•可编程串行UART通道•低功耗的空闲和掉电模式•片内振荡器和时钟电路3.2ADC0832数模转换ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。3.3LCD1602液晶显示LCD1602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16×1,16×2,20×2和40×2行等的液晶显示模块,模块组件内部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成。LCD1602液晶显示屏外形尺寸LCD1602液晶显示屏分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图3.2所示:图3.2LCD1602尺寸图1602液晶显示屏采用标准的16脚接口,其中各接口的功能如下表(2-4)所示:表2-4LCD1602的16管脚功能引脚号引脚名电平输入/输出引脚说明1VSS电源地2VDD电源正极(+5V)3VL液晶显示偏压信号4RS0/1输入数据/命令选择端,0:输入指令,1:输入数据5R/W0/1输入读/写选择端,0:向LCD写入指令或数据,1:从LCD读取信息6E1→0输入使能信号,1时读取信息,1→0(下降沿)执行指令7D00/1输入/输出数据总线(最低位)8D10/1输入/输出数据总线9D20/1输入/输出数据总线10D30/1输入/输出数据总线11D40/1输入/输出数据总线12D50/1输入/输出数据总线13D60/1输入/输出数据总线14D70/1输入/输出数据总线(最高位)15BLA+VCCLCD背光电源正极16BLK接地LCD背光电源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会使屏幕显示不清晰,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写选择端,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。第四章硬件设计4.1最小系统的实现在本次设计中我们采用STC89C51来实现一个单片机系统能运行起来的需求最小的系统,电路图见图4.1图4.1单片机最小系统图上图由晶振电路和复位电路,STC89C51芯片组成,构成最小的单片机系统,下面详细介绍其中的两个电路。晶振电路单片机工作的过程中各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序,单片机的时钟信号用来为单片机芯片内部各种微操作提供时间基准,89c52的时钟产生方式有两种,一种是内部时钟方式,一种是外部时钟方式。内部时钟方式即在单片机的外部接一个晶振电路与单片机里面的振荡器组合作用产生时钟脉冲信号,外部时钟方式是把外部已有的时钟信号引入到单片机内,此方式常用于多片89C52单片机同时工作,以便于各单片机的同步,一般要求外部信号高电平的持续时间大于20ns.且为频率低于12MHz的方波。对于CHMOS工艺的单片机,外部时钟要由XTAL1端引入,而XTAL2端应悬空。本系统中为了尽量降低功耗的原则,采用了内部时钟方式。电路图见图4.2:图4.2晶振电路图在89C52单片机的内部有一个震荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振)就构成了自激振荡器并在单片机内部产生时钟脉冲信号,图中电容器C1和C2稳定频率和快速起振,电容值在5—30pF,典型值是22pF,晶振CYS选择的是12MHz。复位电路单片机开始工作的时候,必须处于一种确定的状态,否则,不知哪是第一条程序和如何开始运行程序。端口线电平和输入输出状态不确定可能使外围设备误动作,导致严重事故的发生;内部一些控制寄存器(专用寄存器)内容不确定可能导致定时器溢出、程序尚未开始就要中断及串口乱传向外设发送数据……..因此,任何单片机在开始工作前,都必须进行一次复位过程,使单片机处于一种确定的状态。当在89C52单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。实际应用中,复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有效的复位,上电复位,要求接通电源后,单片机自动实现复位操作。常用的上电复位,上电瞬间RST引脚获得高电平,随着电容C1的充电,RST引脚的高电平将逐渐下降。本设计中复位电路采用的是开关复位电路,开关S9未按下是上电复位电路,上电复位电路在上电的瞬间,由于电容上的电压不能突变,电容处于充电(导通)状态,故RST脚的电压与VCC相同。随着电容的充电,RST脚上的电压才慢慢下降。选择合理的充电常数,就能保证在开关按下时是RST端有两个机器周期以上的高电平从而使STC89C52内部复位。开关按下时是按键手动复位电路,RST端通过电阻与VCC电源接通,通过电阻的分压就可以实现单片机的复位。电路图见图4.3:图4.3复位电路图RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。该电路典型的电阻和电容参数为:晶振为12MHz时,C1为10uF:R4为数据采集设计(1)从传感器过来的电压信号,必须放大,滤波,采集,转换才能被MCU识别和处理。由于假若每一路都设置放大、滤波等器件,那么成本会很大,所以信号的采集一般用多路模拟通路进行选择。然而选择多路模拟开关时必须考虑以下的几个因素:通道数量、切换速度、开关电阻和器件的封装形式。总之数据采集与硬件的选择有很大的关系。(2)传感器的选择酒精浓度传感器由MQ3传感器组成。MQ3传感器/MQ3模块详细介绍如下表4-1:(3)测量电路测量电路由酒精浓度传感器MQ3,ADC0832组成。酒精传感MQ3经AD0832与STC89C52单片机相连,在显示器上显示出酒精的浓度值,当超过国家规定的标准时报警。表4-1传感器参数表名称MQ3传感器A.标准工作条件符号参数名称技术条件备注Vc回路电压≤15VACorDCVH加热电压5.0V±0.2VACorDCRL负载电阻可调

RH加热电阻31Ω±3Ω室温PH加热功耗≤900mW

B.环境条件符号参数名称技术条件备注Tao使用温度-10℃-50℃

Tas储存温度-20℃-70℃RH相对湿度小于95%RHO2氧气浓度21%(标准条件)氧气浓度会影响灵敏度特性最小值大于2%C.灵敏特性符号参数名称技术参数备注Rs敏感体电阻1MΩ-8MΩ(200ppmalcohol)适用范围:10-1000ppmAlcoholα(200/100)alcohol

浓度斜率≤0.6标准工作条件温度:20℃±2℃Vc:5.0V±0.1V相对湿度:65%±5%Vh:5.0V±0.1V预热时间不少于24小时4.3A/D转换设计正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能.如图4.4:图4.4模数转换电路图4.4LCD1602液晶显示设计LCD1602液晶显示模块与计算机的接口电路有两种方式。它与单片机的接口方法分为直接访问方式和间接控制方式。直接访问方式是把液晶模块作为存储器或I/O设备直接接在单片机的总线上,单片机以访问存储器或I/O设备的方式操作液晶显示模块的工作。间接控制方式则不使用单片机的数据系统,而是利用它的I/0口来实现与显示模块的联系。即将液晶显示模块的数据线与单片机的P0口连接作为数据总线,另外三根时序控制信号线通常利用单片机的P2口中未被使用的I/O口来控制。这种访问方式不占用存储器空间,它的接口电路与时序无关,其时序完全靠软件编程实现。本系统采用间接控制方式:以下为液晶显示电路接线原理图见图4.8:图4.8液晶电路图在单片机系统中应用液晶显示器作为输出器件有以下几个有点:显示质量高:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口:液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻:液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻的多。功耗低:相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其他显示器要少的多。在主电路图中接在P0口处有一个排阻RP1,由于P0口没有内接上拉电阻,为了为P0口外接线路有确定的高电平,所以要接上排阻RP1,使用的是10K的排阻,以确保有P0口有稳定的电平。电路连接图见图4.9:LCD按其显示方式通常可以分为断式、点字符式、点阵式等。还有黑白、多灰度、彩色显示等。液晶显示原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样就可以显示出图形。针对于本系统要显示汉字,字母,数字等,以及其在一个界面同时要显示的字数,本系统要以图形的形式显示各运行结果,我们最终选择LCD1602型号的LCD。⑵字符显示:字符显示比较复杂,一个字符由16x8点阵组成,即要找到和显示屏是某几个位置对应的RAM区的字节,再使不同的位置为‘1’其他的为‘0’;为‘1’的点亮,为‘0’的不亮,这样就显示出一个字符。图4.9上拉电阻电路图4.5报警设计在单片机应用系统中,一般的工作状态可以通过指示灯或数码显示来指示,供操作人员参考,了解系统的工作状况。但对于某些紧急状态,比如系统检测到的错误状态等,为了使操作人员不至于忽视,及时采取措施,往往还需要有某种更能引人注意,提起警觉的报警信号。这种报警信号通常有三种类型:一是闪光报警,因为闪动的指示灯更能提醒人们注意;二是鸣音报警,发出特定的音响,作用于人的听觉器官,易于引起和加强警觉;三是语音报警,不仅能起到报警作用,还能直接给出警报种类的信息。其中,前两种报警装置因硬件结构简单,软件编程方便,常常在单片机应用系统中使用;而语音报警虽然警报信息较直接,但硬件成本高,结构较复杂,软件量也增加。闪光报警实现单频音报警的接口电路比较简单,只要当值高于警报值的时候给一个低电频就能驱动二极管发光,简单易懂。以下为报警电路接线图见图4.10:图4.10报警电路图这一章比较具体的说明了系统硬件设计的内容,通过模块化的设计思想,把一个复杂的单片机系统按照功能划分成一个个单独的电路模型,分别进行设计,最后在集成到一起。这种方法对于设计复杂的单片机系统很有效。大大提高系统设计的效率与质量。由于我主要负责的是硬件设计,所以只是简单的介绍硬件方面的内容。第五章软件设计5.1编译语言的选择对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。软件编写的主体思路是将系统按功能模块化划分,然后根据模块要实现的功能写各个子程序。整个软件程序的编写采用查询式方式编写的。5.2主程序模块主程序实现的功能:与硬件相结合实现便携式酒精浓度检测仪的各个功能。主要是检测与显示,时间调整与显示,数据存储。功能子函数的调用。见图5.1初始化时钟初始化时钟初始化LCD屏显示开机画面显示时间显示主菜单初始化CPU开始读键图5.1主程序流程图5.3A/D转换模块⑴模数转换模块的主要功能就是将经放大器放大的模拟电压信号转化为MCU能够处理的数字信号,并传送给MCU。⑵ADC0832转换的流程图见下图5.2图5.2数转换流程图A/D芯片的数据CS口,连接51单片机的P3.1口,CLK接P3.2,D1和D0接P3.3口。工作时序如下所示:ADC0832有8只引脚,CH0和CH1为模拟输入端,CS为片选引脚,只有CS置低才能对ADC0832进行配置和启动转换。CLK为ADC0832的时钟输入端。CS在整个转换过程中都必须为低,当CS为低时,在数据输入端DI(数据输入端)加一个高电平,接着在CLK上加一个时钟,DI上的逻辑1就会使ADC0832的DI脱离高阻态,然后通道配置数据伴随着时钟通过DI端移入多路器,当最后一位数据移入多路器时,,DI变为高阻态,在这以前DO(数据输出端)都为高阻态。在经过一个时钟,DO脱离高阻态,从而启动转换。接着从处理器接收时钟信号,每经过一个时钟,转换后的数据就会从高位到低位依次从DO移出,经过8个时钟后,数据又以从低位到高位的形式从DO移出(也是每个时钟移一位)。当最后一位数据移出时转换完成。当CS从低变为高时,ADC0832内部所有寄存器清零。如想要进行下一次转换,CS必须做一个从高到低的跳变,后跟着地此配置数据重复上面的过程。5.4按键输入模块⑴按键时显现人机对话的一个控制按钮,通过按键的操作,对系统进行发送操作指令,后经与MCU串行通信,然后在液晶上显示。⑵按键查询式的流程图见下图(图5.3): 图5.3按键查询式的流程图按键的四个键分别接P1.0,P1.1,P1.2,P1.3,由于P1口具有上拉电阻,所以不在需要加上拉电阻进行电压的放大。5.6液晶显示输出模块LCD模块在本系统中主要起着开界面汉字显示,以及各控制效果的显示。采用直接访问方式。液晶显示的操作流程图见下图5.6:图5.6液晶显示的操作流程图液晶显示D0到D7口接P0.0到P0.7,单独使用一个口,为了避免数据的干扰,由于P0口没有上拉电阻,所以需要一个排阻进行电压的扩大.LCD1602的读写工作时序图如图5.7和图5.8所示:图5.7LCD1602读操作时序当处于读状态时,RS处于低脉冲,R/W为高脉冲,E为高脉冲,D0~D7=状态字当处于读数据时,RS为高脉冲,R/W为高脉冲,E为高脉冲,D0~D7=数据。图5.8LCD1602写操作时序当处于写指令时,RS为低脉冲,R/W为低脉冲,D0~D7=指令码,E=高脉当处于写数据时,RS为高脉冲,R/W为低脉冲,E为高脉冲,D0~D7=数据.第六章系统调试6.1系统硬件调试6.1.1元器件的焊接焊接前应对整个电路板进行检查。首先,用万用表对印制的电路板线路进行检查,该过程是在焊接元器件之前的必要工作,主要是检查印制的电路板线路是否有断路的情况,如果检查没有问题,则可以对元器件进行焊接。焊接前对电阻、电容的量值要进行测量、筛选,选择与电路中参数值一致的元器件,在选择芯片时,要注意芯片与设计要求的型号、规格和安装是否一致。在焊接时,应将印制的电路板认真对照原理图,查看元器件的引脚焊接是否正确。6.1.2电路测试电路板焊接完成后,需要对每个元器件的引脚逐个进行检查,一方面是检查有没有引脚虚焊或与其他信号线短路,另一方面是对器件引脚功能的再检查,查看设计是否正确。检查电路焊接没有问题后,则可以进行上电测试。上电测试是调试的关键部分,按照系统方案设计的模块化思想,应该分模块测试系统。首先还是应该测试电源部分,系统上电以后,测试各个电源端口和器件的电源部分是否工作正常,同时应注意系统中有无器件过热情况,如果有的话,可能是相应的器件损坏或电路中有短路,需要认真检查之后再加电。如果没有问题,则可以进行功能的检测。由于系统硬件较复杂,硬件电路装配、焊接完成后,可能不能正常工作。为了方便调试,采用分块调试的方法。在通电前,一定要检查电源电压的幅值和极性,否则很容易造成芯片的损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~5.5V之间属正常范围。6.2系统软件调试硬件调试完成以后,软件调试就非常重要。系统软件调试时也要分模块来进行调试,这样才能使进程有条不紊的进行下去,而不至于出现混乱。首先,检查LCD1602液晶显示屏。LCD1602显示屏上电后,检查是否可以正常显示,第一行显示英文字符,第二行显示时间,此时,按下按键即可对时间进行调整。其次,调试存储模块。检查存储模块是否能够读写信息,当存入一个数据的时候,从LCD1602中,读出来,看是否与之前存入的数据一致,而可认为存储模块正常工作。再次,调试单片机与数模转换模块,在LCD模块调试成功之后,就可以调试数模转换模块,在模拟的测试一个电压,若LCD1602能够正常显示记录的数据,则调试成功。最后调试传感模块,根据传感器的要求,输入一个9V高电压和一个5V电压,则传感能通过AD的转换,在LCD1602显示正常的电压,则调试成功,之后进行程序的运算,使LCD实现酒精浓度数值6.3系统整体调试在软件和硬件的分别调试成功后,然后进行程序的捎入单片机中,进行整块系统的调试,提供9V的电压,使单片机和传感器,和各个元件都能正常工作后,要对传感的最大值和最小值的调试,最小值调试,即把传感器裸露在空气中,环境为无酒精环境,调节滑动变阻器,使LCD1602显示为0,进行多次断电,最终没有数据变化,数值为零,即对传感器的最小值调试成功;传感器的最大值为5V即相对应的浓度为1000PPM,在目前条件找不到如此浓度的酒精,进而,对一般数值的酒精浓度调试,就是在三个相同的容器下,倒入不同量的酒精,然后进行稀释,然后进行测量,在大致的估计得浓度下,看是否有很大偏差,没有就说明,整体调试成功。第七章结束语目前,随着人们的生活水平的提高,私家车的数量也越来越多,从而引发的交通是事故也急剧增加,其中大部分是由于酒后驾车。所以设计具有民用价值的便携式酒精浓度检测仪的研制受到了人们的高度重视。设计能够满足生活需要,携带方便的便携式酒精浓度检测仪迫在眉睫。针对目前的现状,该系统设计遵守体积小,质量轻,性价比高的原则。便携式酒精浓度检测仪的设计主要分为硬件设计和软件设计。根据设计前对该系统所要实现功能的要求,综合考虑我们采用STC89C52单片机为控制核心。软件是用C语言相编写的,具有很好的编写语言的优点,具有很好的可控性、模块化和移植性。编写的思路就是模块化的思想,将系统的各个功能进行划分,然后对各个模块进行设计。本系统的主要模块为传感检测、A/D转换、液晶显示和时钟设置。软件与硬件相结合的演示的大体流程是:主页面显示4个子菜单功能按键的4个控制进入子菜单有确认和取消按确认实现相应功能(按取消则返回)。由于所学知识的限制,本系统实现的功能不是很健全,但在设计该系统的过程中,让我学会了系统设计的方法,和养成了系统思考的思维方式。首先要了解系统所要实现的功能;其次根据功能去选择相应的硬件资源;再次将一个大的系统进行模块化划分,然后逐一去攻破。最后把所有模块进行优化整合,便得到了一个完整的系统。基于这样的思路,完成了便携式酒精浓度检测仪的基本设计。同时由于本设计是采用在proteus上进行仿真,在keil软件上进行编程,最后二者联调,实现设计任务,但在仿真是无法实现酒精浓度的测试,因此本设计采用滑动变阻器模拟传感器检测酒精浓度时输出的模拟信号,经AD0832转换输入单片机,从而从液晶显示上显示出来。通过对本次毕业设计,我学习了很多在大学遗漏的知识,让我在以后的工作中,更加的得心应手。这不仅仅是一次简单的毕业考察,而是对我们四年大学所学得知识的总结。

致谢本论文是在老师的悉心指导下完成的。毕老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。本论文从选题到完成,每一步都是在申老师的指导下完成的,倾注了毕老师大量的心血。在此,谨向毕老师表示崇高的敬意和衷心的感谢!对于系里领导的关心和实验室的老师们的辛勤,给我们提供了实验室这样一个良好的设计环境表示深深地感谢。在四年的学习期间,曾得到很多班级同学的关心和帮助,在此表示深深的感谢。没有他们的帮助和支持是没有办法完成我的毕业论文的,同窗之间的友谊永远长存。我的毕业课题是基于单片机酒精浓度测试仪的设计,是一个实际的小工程。作为一个学生,我对实际的工程设计认识不够,经验不足,难免在设计的整体框架中,有很多的细节没有考虑。我们的指导老师并没有指责,而是给予我们鼓励和很多宝贵的建议,并且悉心引导,给予我们一个比较清晰的设计思路。我们沿着这条经验之路,不断地尝试摸索,慢慢地也掌握了设计的基本流程和思考的方法。我们遇到了很多的难题,比如硬件器件的选择,功能的实现等。然而这样的问题并不是我一个能所能解决的,幸运的是有我们的指导老师的悉心指导和小组搭档的全心帮助,所以一个个看似复杂的问题便迎刃而解。最后我还要再次深深地感谢各位小组成员,正是基于申老师的悉心指点和大家的全心的帮助,我才能比较顺利地完成毕业设计。谢谢你们.

参考文献[1]黎小桃,刘祖明,周福明.Protel99SE入门与提高[M].北京:电子工业出版社,2009.[2]王东锋,王会良,董冠强.单片机C语言应用100例[M].北京:电子工业出版社,2009.[3]兰吉昌.单片机C51完全学习手册[M].北京:化学工业出版社,2009.[4]吕俊芳,钱政,袁梅.传感器接口与检测仪器电路[M].北京:国防工业出版社,2009.[5]赵阳.电磁兼容工程入门教程[M].北京:机械工业出版社,2009.[6]李维提,郭强.《液晶显示应用技术》北京:电子工业出版社,2000.[7]北京精电蓬远显示技术有限公司.内藏KS0108B/HD61202控制器图形液晶显示模块使用手册.[8]徐爱钧,彭爱华.《单片机高级语言C51应用程序设计》〔M〕.北京工业出版社,1999.[9]马忠梅等.《单片机的C语言应用程序设计》北京:北京航空航天大学出版社,1997.[10]华成英.童诗白.《模拟电子技术基础第三版》北京:高等教育出版社,2004.附录附录一硬件设计原理图和PCB图附录二检测程序一:主程序#include<reg52.h>#include<stdio.h>#include<LCD160

温馨提示

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

评论

0/150

提交评论