欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)基于89C52单片机的酒精测试仪设计.doc

    • 资源ID:4149723       资源大小:1.33MB        全文页数:41页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)基于89C52单片机的酒精测试仪设计.doc

    基于89C52的酒精测试仪设计摘 要酒后驾车问题越来越得到社会的关注,酒精浓度对工业安全生产也很重要,为此设计了酒精测试仪来检测空气中酒精浓度。AT89C52是一种可编程控制的微处理器,具有体积小,价格低,性能稳定的特点,被广泛的应用于工业自动化 、智能仪器仪表等领域。酒精传感器MQ3以其灵敏度高、性能稳定、价格便宜、体积小在酒精检测设计中被广泛使用。酒精测试仪硬件主要由89C52、酒精传感器MQ3、A/D转换器TLC549、数码管、键盘、蜂鸣器六部分组成,其中89C52是核心。软件用汇编语言进行编程,采用模块化设计思想。在该装置中,MQ3将检测到的酒精浓度值转化为电压信号,电压信号经TLC549转化为数字信号,并送入单片机,单片机对所输入数字信号分析处理,并送至数码管显示。由于不同环境对酒精浓度要求不同,这里可以通过键盘设定不同阀值,并送至数码管显示,与检测值比较。当检测值大于阀值,单片机将会控制蜂鸣器发出警报,实现了对酒精浓度的监测、显示、报警功能。Proteus7.5中仿真结果表明,该酒精测试仪可实现对空气中酒精浓度101000ppm范围的监测,精度可到到±4ppm,性能稳定,LED显示器能够对设定值和检测值实时显示,并能够实现声光报警功能。关键词:酒精测试仪,89C52,TLC549,酒精传感器MQ3Alcohol Concentration Monitor Based on 89C52ABSTRACTDrinking driving is becoming a serious social problem with more social concerns, alcohol concentration is also important in industrial production, so an alcohol detector is designed to detect the alcohol concentration in the air.89C52 is a programmable control microprocessor, with small volume, low price, stable performance characteristics, and widely applied to industrial automation, intelligent instrument, etc. Alcohol sensor MQ3 is widely used for its high sensitivity, stability, price cheap, small volume.Alcohol detector's hardware consists of STC89C52, alcohol sensor MQ3, A/D converter TLC549, LED, keyboard and buzzer. Huibian language is used to realize the software. Alcohol concentration signal is changed into voltage signal by MQ3, then the voltage signal is changed into digital signal through A/D converter. Digital signal is analyzed and processed by 89C52 and sent to display. Because different environments require different alcohol concentration, here you can set different values by the keyboard, then displayed on LED , comparing with the detecting value. When detecting value is more than setting value, 89C52 will control buzzer alarms. The device realizes the monitor, display and alarm.Simulation results in the Proteus7.5 show that alcohol detector can monitor the range101000ppm alcohol,precision to ± 4ppm and realizes real-time display,sound-light alarm function. In addition, the alcohol detector has stable performance and promising market prospect .KEY WORDS: Alcohol Concentration Monitor,89C52,TLC549,Alcohol Sensor MQ3目录前言1第1章酒精测试仪的整体结构21.1 酒精测试仪的特点21.2 硬件设计及功能方案框图2第2章 酒精测试仪的硬件结构设计及原理52.1 硬件原理52.1.1 硬件原理说明52.1.2 实践方法步骤72.2 各元器件的选取与介绍72.2.1 89C52单片机的选择72.2.2 酒精传感器MQ3的选择92.3 各模块电路工作原理122.3.1 按键电路工作原理及按键作用122.3.2 检测电路及A/D转换电路132.3.3 显示电路和报警电路142.3.4 时钟电路和复位电路15第3章 酒精测试仪软件的设计173.1 主程序流程概述173.2 键盘扫面子程序183.3A/D转换与比较子程序流程图19第4章 测试与仿真204.1 软件的调试204.2 测试仿真214.2.1仿真过程214.2.2 仿真结果21结论24谢 辞25参考文献26附 录27外文资料翻译35前言近年来,随着我国经济的高速发展,人民的生活水平迅速提高,越来越多的人有了自己的私家车,而酒后驾车造成的交通事故也频频发生。酒后驾车引起的交通事故是由于司机的过量饮酒造成人体内酒精浓度过高,麻痹神经,造成大脑反应迟缓,肢体不受控制等症状。少量饮酒并不会有上述症状,即人体内酒精浓度比较低时,而人体内酒精超过某一个值时就会引起危险。为此,需要设计一种智能仪器能够监测驾驶员体内酒精含量。目前全世界绝大多数国家都采用呼气酒精测试仪对驾驶人员进行现场检测,以确定被测量者体内酒精含量的多少,以确保驾驶员的生命财产安全。此外,空气酒精浓度监测仪还能监测某一特定环境的酒精浓度如酒精生产车间可避免发生起火、爆炸及工业场地酒精中毒等恶性事故,确保环境安全。本课题研究的是一种以气敏传感器和单片机为主,监测空气环境酒精浓度,并具有声音报警功能及LED显示功能的空气环境酒精浓度监测仪。其可监测出空气环境中酒精浓度值,并根据不同的环境设定不同的阈值,对超过的阈值进行声音报警,来提示危害。这种高智能酒精测试仪将被广泛应用于交通,工业酒精生产等部门。第1章酒精测试仪的整体结构1.1 酒精测试仪的特点半导体气敏传感器是利用气体在半导体表面的氧化还原反应和还原反应导致敏感元件阻值发生变化,也就是非电量气体的氧化和还原反应导致电阻值发生了变化,最终把分电量信号转化为电压信号输出,经过模数转换送入单片机进行处理,其中可以通过键盘设定阀值,单片机处理数据后的酒精浓度可以在LED显示并判断是否报警4。1数据采集系统以单片机为控制核心,外围电路带有LED显示以及键盘响应电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程;2系统具有低功耗 小型化 高性价比等特点;3从便携式的角度出发,系统成功使用了数码管显示器以及4×4键盘。由单片机系统控制键盘和 LED 显示来实现人机交互操作,界面友好;4软件系统采用汇编语言编写,在兼顾实时性处理的同时也能很方便地进行数据处理。1.2 硬件设计及功能方案框图 酒精传感器测试仪常用的是单片机、A/D转换芯片TLC549、酒精传感器等主要硬件构成硬件电路,软件多采用C程序来实现。由于汇编语言更直观、更容易理解,所以这里采用汇编语言实现其软件的设计。酒精传感器将测试环境中的酒精浓度信号转换为电信号,经过放大、A/D芯片转换后送入单片机处理,单片机将酒精浓度信息转换为十进制数,并通过查表获得对应的数码管显示,并送到LED数码管显示,通过4×4键盘输入设定数值,让检测到的酒精浓度值和设定值相比较,如果检测数值大于设定值就发出警报,否则,返回。本文设计的酒精浓度检测仪主要是以酒精传感器和单片机为平台设计而成的,这里给出了两个可选择方案。酒精测试仪基本工作原理框图如图1-1、图1-2所示。方案一:图1-1 酒精测试仪基本工作原理框图方案二:图1-2 酒精测试仪基本工作原理框图关于酒精传感器的芯片很多,由于身边关于MQ3酒精测试仪的设计资料较多,而TGS2620不太熟悉,还有就是酒精传感器MQ3要比传感器TGS2620价格跟为经济,有比较好的稳定性和精度,抗干扰能力也较强,这里就选择了酒精传感器MQ3,以前用过过89C52的芯片,自己对LCD的控制字不熟悉,LED现在比LCD价格要便宜,满足工程需要足够了。方案一更容易操作并且可执行性更好,各模块之间相互独立思路更为清晰,TLC549是8位串行A/D转换芯片,引脚与89C52兼容,价格更为便宜,工程上更为实用。这里选用了方案一,其中主要芯片酒精传感器MQ3、A/D转换芯片TLC549、89C52、LED数码显示管、74LS138译码器。本设计可以实现对空气中酒精浓度检测范围(101000)×10-6ppm的检测,灵敏度:Rin air/Rin typical gas5。数码管显示时候都是整数,单位默认为ppm,旁边还有四位数码管可输入设定值,进行对比,如检测值大于设定值则报警,否则返回。串行8位A/D转换芯片TLC549总失调误差最大为±0.5LSB。第2章 酒精测试仪的硬件结构设计及原理2.1 硬件原理酒精测试仪主要是用来检测酒精浓度的,它主要由酒精传感器、模数转换器、单片机、LED显示、键盘以及声音报警构成。酒精传感器将检测到的酒精浓度转化为电信号,然后将电信号传送给模数转换器,经过模数转换器转换后,把转换后得到的数字信号传给单片机,单片机将酒精浓度信息转换为十进制数,查表获得对应数码管显示代码,并送到LED数码管显示。 单片机对所输入的数字信号进行分析处理后,最后将分析处理的结果通过显示器显示出来。由于不同的环境对酒精浓度的要求也不一样,所以,可以通过键盘来设定不同环境中酒精浓度的不同阀值 如果所检测到的空气中的酒精浓度超过了所设定的阀值,那么单片机将会控制蜂鸣器发出声音报警,用来提示危害。2.1.1 硬件原理说明1图2-1中给出了酒精监测仪控制电路原理;2单片机89C52的31引脚接高电平,使用内存ROM;3C1、C2、Y1(晶振)构成振荡电路,提供时钟信号,与89C52的18、19引脚相连接;4C3、S1和R1组成复位电路,与89C52的9引脚相连接;5P3.7接三极管驱动喇叭,低电平有效;6P2口接P2.0、P2.1、P2.2接串行AD转换芯片TLC549的7、5、6引脚数字量输出端; 7 酒精传感器MQ3输出接TLC549模拟量的输入端;8 P3.0、P3.1、P3.2接74LS138的地址输入端,然后接反相器74LS14,实现地址部分译码并反相输出,接数码管的字位口,实现位选,P0口接数码管的字型口。P1口通过上拉电阻接4×4键盘。图2-1给出了酒精测试仪控制电路原理:图2-1 酒精测试仪控制电路原理图2.1.2 实践方法步骤1开发一个89C52单片机最小系统;2在P2口连接串行A/D转换芯片TLC549,实现A/D的转换;3连接酒精传感器MQ3电路,并把模拟输出信号端连接到TLC549的输入引脚AIN;4扩展一个8位数码管显示电路;5扩展一个4×4键盘电路以及报警电路;6编写程序,利用键盘设置标准酒精浓度(参照阀值),在数码管上显示测试的环境酒精浓度,并比较,如果环境的浓度超过设置的标准值,则报警提示。2.2 各元器件的选取与介绍酒精浓度检测仪主要是用来检测酒精浓度的,它主要由酒精传感器、模数转换器、单片机、LED显示、键盘以及声音报警构成。酒精传感器将检测到的酒精浓度转化为电信号,然后将电信号传送给模数转换器,经过模数转换器转换后,把转换后得到的数字信号传给单片机,单片机将酒精浓度信息转换为十进制数,查表获得对应数码管显示代码,并送到LED数码管显示。 单片机对所输入的数字信号进行分析处理后,最后将分析处理的结果通过显示器显示出来。由于不同的环境对酒精浓度的要求也不一样,所以,可以通过键盘来设定不同环境中酒精浓度的不同阀值 如果所检测到的空气中的酒精浓度超过了所设定的阀值,那么单片机将会控制蜂鸣器发出声音报警,用来提示危害。2.2.1 89C52单片机的选择89C52片内含8K BYTES的可反复擦写的只读程序存储器和256 BYTES的随机存取数据存储器,与标准MCS-51指令系统及8052 产品引脚兼容,比89C51更大内存,能适合应用于更多较为复杂控制的场合。因此,这里选取了89C52芯片作为核心控制器件1。功能引脚说明:Vcc:电源电压GND:地P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。 图2-2 89C52管脚图在FLASH由编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口:PI 是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流IIL与AT89C51不同之处是,Pl.0 和P1.1还可分别作为定时/计数器2 的外部计数输入(Pl.0/T2 )和输入(P1.1/T2EX) , FLASH编程和程序校验期间,Pl接收低8位地址。P2口:P2 是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电路。对端口P2写“l",通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL) 。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H-FFFFH ),EA端必须保持低电平(接地)。需注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL1:振荡器反相放大器的输出端。2.2.2 酒精传感器MQ3的选择气体传感器是气体检测系统的核心,通常安装在探测头内。从本质上讲,气体传感器是一种将某种气体体积分数转化成对应电信号的转换器。探测头通过气体传感器对气体样品进行调理,通常包括滤除杂质和干扰气体、干燥或制冷处理、样品抽吸,甚至对样品进行化学处理,以便化学传感器进行更快速地测量。在选择传感器的时候,一定要考虑到稳定性、灵敏度、选择性和抗腐蚀性,本系统选择 MQ3型酒精传感器11。1MQ3酒精传感器的介绍MQ3型气敏传感器由微型A12O3,陶瓷管和二氧化硅敏感层、测量电极和加热器构成的敏感元件固定在塑料或不锈钢的腔体内,加热器为气敏元件的工作提供了必要的工作条件。传感器的标砖贿赂有两部分组成。其一未加热回路,其二为信号输出回路,它可以准确反映传感器表面的电阻值变化。传感器表面电阻Rs的变化,是通过与其串联的负载电阻RL上的有效电压信号VRL输出获得的。二者之间的关系表述为:RS /RL=(UCURL )/URL,其中UC为回路电压,Vc为回路电压为10V,负载电阻RL可调为0.5-200K。负载电阻RL可调,加热电压Uh一般为5V。MQ3型气敏传感器的结构和外形如图2-3所示,标准回路如图2-4所示,传感器阻值变化率与酒精浓度、外界温度的关系如图2-5所示。为了使测量的酒精浓度最高误差最小,需要找到合适的温度,一般在测量前需将传感器预热5分钟。预热后半导体颗粒表面的吸附可导致材料载流子浓度发生相应变化,从而改变电导率,是传感器输出电压信号发生改变来相应反映浓度变化。半导体方式的MQ3究竟传感器以其灵敏度高、电路简单、使用方便、所需费用低,稳定性、好寿命长传感器等优点,可以把气体信号转换为电压信号输出得到广泛应用。图2-3 MQ3型气敏传感器的结构和外形图2-4 MQ3型传感器标准回路图 图2-5 MQ3型气敏传感器特性图2MQ3型气敏传感器技术指标使用气体:酒精(乙醇)探测范围:101000*10-6 特征气体:100*10-6灵敏度:Rin air/Rin typical gas5敏感体电阻:4004000k(空气中)响应时间:10s(70% Response)恢复时间:30s(70% Response)加热电阻:313加热电流:180mA加热电压:5V0.2V加热功率:900mW工作条件:环境温度:1065摄氏度 湿度:95%RH贮存条件:温度:2070摄氏度 湿度:70%RH3灵敏度调整MQ3 型气敏元件对不同种类,不同浓度的气体有不同的电阻值。 因此,在使用此类型气敏元件时 ,灵敏度的调整是很重要的。 建议使用 200ppm 的乙醇蒸汽校准传感器。当精确测量时,报警点的设定应考虑温湿度的影响。2.3 各模块电路工作原理本设计电路主要包括检测电路、A/D转换电路、按键电路、显示电路、报警电路、时钟电路和复位电路等。2.3.1 按键电路工作原理及按键作用4*4键盘电路如图2-6:图2-6 4*4键盘电路图4*4键盘接接89C52的P1口,键盘行线、列线按照键盘上所标注序号依次接P1.0P1.7。向P1口送入扫描子0xF0,如果有按键按下即此时P1口扫描字不等0xF0,逐行进行扫描,当扫描到按下按键所在行时候,停止扫描,通过键盘扫描子程序存下键码。 可以输入设定酒精浓度参照值(阀值),其中数字按键依次对应数值0、1、2、3、4、5、6、7、8、9对应写在键左上角。RES为复位键,按下后设定阀值清零。BACK键为退格键,如果想取消当前输入值,可按下BACK一次退后一位。QUE键为确认键,输入完数值后,确认无误,可按下QUE最终确认。余下按键均为是无效按键,按下之后不对但单片机进行任何操作7。 2.3.2 检测电路及A/D转换电路检测电路和A/D转换电路图如图2-7所示。酒精传感器MQ3的3管脚接8为串行A/D转换芯片TLC549的2引脚,将检测到的酒精浓度信号转换为电压模拟信号输入,经A/D转换位数字信号,与单片机的P2.0、P2.1、P2.2管脚相连接,送入单片机进行数据处理。实现了把浓度信号准换位数字电压信号进行处理。因为检测到的酒精浓度值最终要在数码管显示出来,现在变成了电压信号,这里需要用到标度变换,A/D转换中的浓度标度变换:图2-7 检测电路和A/D转换电路图控制系统在读入被测模拟信号并转换成数字量后,需转换成操作人员所熟悉的物理量。这种转换就是标度变换。线性标度变换为:Y=(YmaxYmin)(X-Nmin)/(NmaxNmin)+Ymin 式中,Y为参数测量值,Ymax为测量范围最大值;Ymin为测量范围最小值;Ymax为Nmax对应的A/D转换值;Nmin为对应的A/D转换值;X为测量值Y对应的A/D转换值。 本系统中,Ymin=10,Ymax=1000,Nmin=0,Nmax=255,则Y=(1000-10)(X-10)/(255-0)+0=a1X+a0,这里a1=3.8824。这样就把电压信号有还原为了浓度信号,然后分离出千位、百位、十位、个位,依次送数码管显示,最终实现了酒精传感器检测值的显示11。2.3.3 显示电路和报警电路显示电路如图2-8所示。89C52的P0口作输出接数码管,P0口作输出需加上拉电阻,数码管左边。89C52通过键盘输入存下按键码或者A/D转换出的数值经过显示程序处理,来查询对应的字型码,实现了字选。同时P3.0、P3.1、P3.2接译码器74LS138,由于这里选择的是共阳数码管,故需再接上反相器74LS14实现位选。最终实现了显示功能,左边四位是键盘输入的设定值,右边四位是酒精传感器检测到的值,两个值可以对照显示,使管理人员很方便看到检测情况。 图2-8 八位显示电路原理图报警电路如图2-9所示。报警电路由P3.7口输出接电阻R23,三极管,蜂鸣器组成。当设定值小于设定值时候,蜂鸣器发出警报。图2-9 报警电路酒精测试仪在显示电路和报警电路一起实现了酒精测试仪的声光报警。 2.3.4 时钟电路和复位电路时钟振荡器:89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷诺振器一起构成自激振荡器,振荡电路参见图。外接石英晶体(或陶瓷诺振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器不作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30PF士1OPF,而如使用陶瓷诺振器建议选择4PF士10PF 。用户也可以采用外部时钟。采用外部时钟的电路如图2-10所示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。单片机具有多种复位电路,本系统采用电平式开关复位与上电复位方式,具体电路如图2-11所示。当系统时钟频率为11.0592MHz时,=22,=200,=1K。其缺点是干扰易于串入复位端,在大多数条件下,不会造成单片机错误复位,但会引起内部某些寄存器错误复位,这时可以在RESET端加一个去耦电容6。图2-10 时钟电路图2-11 复位电路第3章 酒精测试仪软件的设计3.1 主程序流程概述图3-1 主程序流程图先制定主程序流程图,然后可分为各个子模块区分别实现其功能。最终完成检测并送数码管显示,可以看到空气中酒精浓度与设定值之间相差范围,并及时采取相关措施,与设定阀值相比较,如果大于阀值,则通过扬声器发出报警。另外89C52有复位电路,每一次检测到之后可复位,等待下次报警。操作非常简单,实用性好。先调用读取AD转换数值子程序,然后调用读取键值子程序,如果是有效按键,则送到数码管显示,之后进行设定值与检测值得比较,如果设定值小于比较直,就报警。大于设定值,返回开始继续执行检测。由于个子模块非常清楚,是软件的设计思路很清晰,更容易实现,汇编语言逻辑上很清晰,调理性好,方便易懂,错误容易检查,给以后的维护和改动带来很大方便。3.2 键盘扫面子程序图3-2 键盘扫描子程序流程图4×4键盘的工作原理接口及工作原理: 首先判别键盘中有无按键按下,键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能,使用上述方法我们得到16个键的特征编码。根据按键的特征编码,查表得到按键的顺序编码。将16个键的特征编码按顺序排成一张表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它的位置就是对应的顺序编码。 特征编码与顺序编码的对应关系:TAB(KEYTABLE): DB 0xEEH,0xEDH,0xEBH,0xE7H,0xDEH ;0,1,2,3,4, 顺序码 DB 0xDDH,0xDBH,0xD7H,0xBEH,0xBDH ;5,6,7,8,9, DB 0xBBH,0xB7H,0x7EH,0x7DH,0x7BH ;A,B,C,D,E, DB 0x77H,0xFFH ;F, 0FF为结束码3.3 A/D转换与比较子程序流程图图3-3 A/D转换与比较子程序流程图最后通过主函数调用各子函数,实现了通过酒精浓度传感器,把空气中酒精浓度转化为电信号,通过A/D转换TLC549送入单片机89C52中经过数据处理,可以实现四位数码管对空气中酒精浓度101000ppm范围的检测,另外通过键盘设置阀值在另外四位数码管显示,如果空气中检测到的酒精浓度大于设置浓度则通过蜂鸣器报警,一个完整的酒精测试仪的功能。 第4章 测试与仿真4.1 软件的调试在Keil uVision3中建新工程,按主程序流程图,分模块编写、调试,编写完成后,编译,检查有无错误,任务栏最下端,看error和alarm,然后检查错误并改正。调试是设计系统的最重要的一个环节,它的完善情况将直接决定整个设计的时间和进展情况,一个设计的好坏,不光要看你的硬件搭配是否合理,软件设计是否精确、运行是否稳定,更为重要的是调试结果是否足以让人满意。我们要对系统硬件进行功能测试,在确保一切正常的情况下,给系统导入软件程序,进行软件功能测试。在导入程序前,要先把程序放在Keil仿真软件中进行测试,逐条检验程序,去掉冗余程序,改正各种程序中存在的错误,查看仿真结果,逐步完善程序,在结果运行正确的情况下,在Proteus7.5中找到个元件连接硬件电路原理图,双击89C52芯片,在Program File栏,找到编译生成的'酒精测试仪.hex'文件导入芯片89C52。然后点击运行,逐个功能来调试实现,并对软件进行修改,调试,观察系统反应快慢,以及程序设计中出现的错误,以求系统达到最佳工作性能状态。由于刚开始键盘输入总是在数码管上无变化,还有检测的浓度也不显示。编译时与法无错误,我总是想整体上一起看哪里错了,结果好久都找不到,陈老师指导去单模块调试,先去调试键盘,再去调试显示,一点一点来。确实是这样,整体分析总查不到,可以但模块缩小范围,逐步排查,这让我最终找到键盘片选电平设置反了,最后改正。仿真时候加了反相器这样就在数码观赏成功实现显示。不仅是这个程序以后的学习工作中也是,当出现问题时,不能眉毛胡子一把抓,要划分区域,逐个排查,找到问题,再去解决,总之,这次设计受益很多。4.2 测试仿真4.2.1仿真过程 软件调试时候,发觉自己按下键盘却无数字显示在数码管上,最后检查软件错误,没找出来,实在很着急,看起来很正常啊,经曹训国同学指点,发现原来是数码管选择的是共阳数码管,编程时候是按共阴设置的,电平给围了高电平,所以毫无反应。之后换为了共阳数码管,可以显示设定值了。程序刚运行,还未输入数据就开始报警,原来蜂鸣器接的是P3.7口低电平有效的刚开始在Proteus中接线时却把它接地了,之后删除那根线,就可以正常报警了。刚开始检测范围最大只到999达不到1000,原来转换时候精度选择的不够,程序中标度转换部分ad_data=3.88*ad_data+10;之后把程序数据处理部分提高精度3.88改为了3.8824,就可以让最大检测值在数码管上显示1000了,数码管显示电路在自己按键输入和A/D转换输入下正常显示,蜂鸣器也可以报警了,最后大功告成。4.2.2 仿真结果在Proteus 7.5中进行仿真,通过酒精传感器MQ3在浓度范围101000ppm可把检测到的酒精浓度值转换为电压信号,经过单片机89C52处理恢复为浓度信号在数码管显示出来,同时还可以通过按键输入电路输入设定值与检测值对比,当检测值大于设定值时候,报警电路发出报警。图4-1给出了当设定值大于检测值时候的仿真结果,这时P3.7为高电平,不发出报警。图4-2给出了当设定值小于检测值时候的仿真结果,这是P3.7被置为低电平,蜂鸣器报警。设计实现了对酒精浓度的监测,通过酒精传感器MQ3可以对不同环境下酒精浓度的检测,把浓度信号转换为电压信号,电压信号送至了模数转换器TLC549,后经单片机分析处理,送至数码管显示。根据不同环境对酒精浓度的要求不同,通过键盘设定不同阀值,当检测值大于阀值时候,蜂鸣器发出报警,达到了设计要求。图4-1 不报警时仿真结果图4-2 报警时仿真结果 结论经过两个多月的努力奋斗,我终于完成了酒精测试仪这个课题的毕业论文设计。通过这次的毕业设计,我更加熟练掌握MQ3型气敏传感器、单片机和模数转换器的结构与工作原理,深刻地认识到课程设计是培养学生综合运用所学知识,发现问题,分析和解决实际问题,是锻炼我们学生的实践能力的重要环节,使我们能在今后的实际研究工作中更加得心应手。此次的毕业论文设计,我感慨颇多,在论文写作的过程中,从论文的选题到确定思路,从资料的搜集、提纲的拟定到内容的写作与修改,继而诸多观点的梳理,发现自己很多知识还比较欠缺,在老师、同学们的细心指导下,我的论文将画上个句号。在整个论文设计过程中,我学到了新知识,增长了见识,虽然有些模块的设计不是很理想,但在今后的日子里,我会努力、不断地充实自己,争取在所学领域有所作为。谢 辞光阴似箭,日月如梭,在洛阳理工学院三年学习时间即将过去。我将以一个新面貌,重新投入到火热的工作和事业中。在此,谨对培育我的母校、教导我的老师、帮助我的同学们致予最诚挚的谢意和敬意。 在此,我要特别感谢我的论文指导老师陈文清老师。他学识渊博,专业精通,对教育事业怀着深厚的感情;他诲人不倦,与同学们保持着良好的沟通并经常细心指导和热心的勉励。我还要感谢给予我很多关心和帮助的同学们,三年学习生活使我们结下深厚的友谊。俗话说天下没有不散之筵席,在毕业之际,我衷心地同学和朋友们在以后的人生道路上越走越宽广,也深深相信在未来的日子里我们将一路携手前行,会有很多的碰撞和交流,我们将始终记得我们曾在洛阳理工学院同窗学习,这将是我克服困难、不断前进的精神动力。最后,再一次感谢我的导师和专业老师,是你们的细心指导和关怀,使我能够顺利的完成毕业论文。在此我要向我的导师致以最衷心的感谢和深深的敬意。参考文献1 李朝青.单片机原理及接口技术.北京:北京航空航天大学出版,2006.122 钱逸秋.单片机原理与应用.北京:电子工业出版社,20023 张迎新等.单片机初级教程.北京:北京航空航天大学出版社,1999 4 卜云峰.检测技术.北京:机械工业出版社,2005.15 王俊峰等.现代传感器应用技术.北京:机械工业出版社,2006.86 常健生主编.检测与转换技术.北京:机械工业出版社,2008.47 阎石主编.数字电子技术.北京:高等教育出版社,2006.58 杨素行主编.模拟电子技术.北京:高等教育出版社,2006.59 潘新民等.微型计算机控制技术.北京:电子工业出版社,2003.110 李群芳等.单片微型计算机与接口技术.北京:电子工业出版社,200111 李维祥.单片机原理与应用.天津:天津大学出版社,200112 李丽华等.基于单片机的酒精浓度测试仪设计,科技广场,2009.313 康光华.电子技术基础4版.北京:高等教育出版社,200014 郭天祥.新概念51单片机C语言教程.北京:电子工业出版社,2009.115 李成章.基于LCD显示的空气酒精浓度监测仪的设计,电子测试,2007.12附 录参考程序ORG 0000HLJMP MAINORG 0030HMAIN: SETB P3.7 ;程序初始化 MOV R3, #04H ;输入处值次数 MOV 66H, #00H ;确认键标志位 MOV 30H, #00H ;初始显示0 MOV 31H, #00H MOV 32H, #00H MOV 33H, #10H MOV 34H, #10H MOV 35H, #00H MOV 36H, #00H MOV 36H, #00HSTART: LCALL XIANSHI ;主程序调用显示 LCALL KEY ;调用

    注意事项

    本文(毕业设计(论文)基于89C52单片机的酒精测试仪设计.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开