单片机的防酒驾系统设计
*51今日免费论文网|www.jxszl.com +Q: @351916072@
51 MQ-3 A/D Conversion LCD1602 一、 绪 论(一) 酒精检测仪的背景汽车的发明和使用已经有很长久的历史了,汽车工业的迅速发展也使得汽车慢慢成为人们的交通工具。近些年来,我国经济快速发展,改革开放取得的成果有目共睹,人民的生活水平有了极大的提高,交通工具由以前的自行车慢慢转变为汽车的交通工具。经济的发展也使得私家车走进每家每户,私家车的大量增加也大大增加了交通事故的发生。发生交通事故的原因可能会有许多,但是酒后驾车诱发的交通事故不在少数。由于我国酒文化从古至今几千年,在饭局上喝酒是难免的,有些人认为自己喝了酒,还能继续开车,还能对路况做出正确的判断。这种想法完全是错误的,喝酒之后,酒精会影响大脑的反应,使人的反应变得迟钝,会判断失误,做出错误的操作,可能会引发交通事故。为了减少由酒后驾车导致的交通事故的发生,酒精浓度检测仪的研究就显得十分有意义。酒精检测仪不仅可以应用在检测驾驶员的酒精浓度,还可以应用在食品加工、酿酒等行业,可以用来提高生产效率和生产的安全性。以前用来检测气体中酒精浓度的传感器有大概有五种,其中常用的只有燃料电池型和半导体型两种。(二) 酒精检测仪的现状与趋势伴随着科技的飞速发展,常用的气体检测传感器在技术上有了很大的进步,各个领域的气体传感器都在逐渐被新产品所替代。现在常用的酒精检测传感器都是可替代吹管,酒精浓度的检测从原来的机械检测或酒精计到如今的用气体传感器和微型处理器构成的酒精检测仪有了很大的突破,不仅很大程度上提高了检测的准确度,是检测变得简单,符合人们的要求。现在市场流通的酒精浓度检测仪要么是检测灵敏度不高但价格低,要么是检测灵敏度高但价格高。它们都有一个共同的特点就是只是对结果简单的进行判断做出报警,很难准确的读出酒精浓度。从而可以显示酒精浓度数值的检测仪器应该得到普及,读取准确数值。也要考虑到其他气体可能会对检测产生的影响,所以对传感器的抗干扰能力有了很高的要求。目前常用的传感器只能检测气体浓度或检测液体浓度,以后发展的目标应该一个检测仪能同时检测酒精在不同状态下的浓度。(三) 本课题主要工作本课题主要研究基于单片机的酒精浓度检测仪,以单片机为系统控制核心。系统的硬件部分和软件部分是主要研究内容。硬件部分的设计主要基于单片机、 A/D转换器、LCD1602液晶、MQ3酒精浓度传感器。使用气敏传感器检测气体中的酒精浓度,并将其转换为电压信号,通过A/D转换后传送给给单片机系统,由单片机进行信号的处理,通过其外围电路将酒精浓度值显示在LCD上,若超过阈值发出报警;软件部分主要是对各个子程序的编程,对每个子程序进行模块编写,主要包括采集数据子系统、处理数据过程、键盘检测及显示数据子系统和报警电路的设计方法和过程。同时还要考虑酒精传感器的测量误差和环境等检测因素。二、 硬件设计(一) 整体设计本课题主要研究基于单片机酒精浓度检测仪的设计,可以实现对不同浓度的的酒精含量做出不同的反应。酒精检测的主要仪器就是酒精含量检测传感器,通过酒精传感器对当前空气的气体中的酒精含量进行检测。传感器检测到的信号是模拟信号,需要通过转换器将模拟信号变为数字信号。把数字信号传送给单片机,由单片机进行数组处理。其它功能模块不断的自我刷新,检测单片机及外部异常信号,根据信号做出相应的处理。单片机作为系统的控制核心,需要具备流畅的输入输出通道和及时控制能力,检测过程中有多种信号需要传输,就要系统有完善的中断和处理系统。单片机是整个系统的控制核心,与之相连的有显示模块和键盘电路等,显示模块用来显示检测到的酒精浓度,需要通过软件编程,显示检测的气体浓度。按键电路可以改变系统的阈值,把检测到酒精浓度跟设定的阈值作比较,如果超过设定的阈值,就会触发报警器,发出报警,提醒工作人员。通过改变阈值也可以使检测仪在不同的环境下工作,满足更多的需求。系统框图如图1所示图1 系统硬件框图(二) 单元电路设计使用气敏传感器检测气体中的酒精浓度,并将其转换为电压信号,通过A/D转换后传送给给单片机系统,由单片机进行信号的处理,通过其外围电路将酒精浓度值显示在LCD上,若超过阈值发出报警达到检测酒精检测的目的。下面我对于硬件部分进行具体的描述。1. 单片机及其最小系统我的设计使用的是STC89C51单片机为整个系统的主控芯片,其工作原理是通过单片机的最小系统来驱动单片机工作,酒精传感器采集当前的酒精含量,经过AD转换器输出数字信号给单片机。检测当前的酒精含量,超出警报值的时候可以进行报警。本设计的核心是单片机。下面我简单的介绍本设计使用的51单片机。AT89C51是51系列单片机,是最新一代的高速、低功耗、超强滋扰的单片机,其采用传统的冯诺依曼构架,指令代码向下兼容,拥有12时钟/机器周期和6时钟/机器周期给予用户任意选择,整个单片机拥有一个双工串口,四个外部中断和三个定是器构成的模块。其内部拥有8K的ROM(只读存储器)和250字节的RAM(随机存储器)供用户使用。单片机引脚图如图2所示图2 单片机引脚图单片机最小系统由晶振电路、复位电路以及电源电路组成的单片机的最小系统。晶振电路是由两个电容和晶振组成的电路模块警惕震荡器在电路理论中等效成一个电容和一个电阻并联再串联一个电容的二端网络,由于两个频率较近所以晶振也苦役等效为一个电源。所以只要晶振的两端并联上符合的电容,它就会构成并联谐振点路。改并联谐振电路加到一个负反馈电路中就可以组成正弦波振荡电路,由于晶振相当于为电感的频率范围很窄,所以振荡器的变化不大。晶振振荡电路实际上是一个反相放大器,是单片机的运行速度的提供者,主要的职能就是起振,就是当一个频率给单片机使其能够正常的工作。通俗的来讲就像人的心脏一样,给人体一个脉搏然后各个器官都根据这个脉搏来工作是一个原理。复位电路是由开关电解电容和电阻组成的电路,系统上电以后进入复位状态,让单片机内部的程序指针指向程序运行部分。因为系统在通电的那一瞬间,电容在充电,此时的复位脚相当于接的是高电平,等到电源平稳后,电容会发挥的隔直阻交的功能,此时的复位脚通过电阻接地所以处于低电平的状态下,这样就相当于在复位脚的地方输入一个高电平的脉冲起到了复位的作用。单片机复位电路就就像电脑的重启功能一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮,内部的程序自动从头开始执行。具体电路如图3所示图3 单片机最小系统2. 酒精含量采集模块 本设计使用了酒精传感器MQ-3作为当前酒精含量的检测模块,MQ-3是一种双信号输出的传感器,对乙醇蒸汽具有很高的灵敏度。此时的酒精传感器类比为电阻一样,当酒精的含量越高传感器的电阻值越小。电路中的分压电阻R8与传感器串联,当酒精含量升高时候输出电压变大,传出当前的电压模拟量。R7为保护电阻。酒精含量检测电路如图4所示图 4 酒精含量采集模块3. AD 转换模块 酒精传感传输过来的电压模拟量传输给ADC0809模数转换进行数模转换。传感器的电压信号从芯片的26口进入芯片,给5V电压再由单片机对0口给出时钟信号芯片开始工作,输出的数字信号通过输出口D传输给单片机。图5所示 图5 AD转换模块4. 液晶显示模块 本设计采用的是1602液晶显示屏作为显示模块,显示当前酒精含量以及他的报警值。+5v供电,其中R5 R6电阻起到分压的作用,用来调节进行显示屏的辉度调节。单片机的P0.0口到P0.7分别于显示屏的7到15脚进行连接进行数据的传输,达到显示相应数值的目的。液晶模块如图2.2.5 图4 液晶模块5. 报警模块 本设计当温度超过报警值的时候,蜂鸣器报警红灯闪烁,当浓度没有超过警报值的时候,绿灯闪亮。其中R4 R2 为两个分压电阻,因为绿灯的驱动电流大所以他的分压电阻要小一些,通过单片机给的低电平触动那个灯点亮。蜂鸣器外接5V电压,采用了PNP型的三极管,低电平有效当单片机输送给它低电平的时候三极管导通蜂鸣器工作。其中FR1位限流电阻。报警电路如图5所示 图5 报警模块6. 电源模块 本设计的电源采用的USB接口供电,通过一个自锁开关,当开元打开的时候给模块供电,使得电路工作。电源模块如图6所示图6 电源模块7.按键模块本设计一共有三个调节按钮,低电平有效,当开关打开的时候电路接地输入低电平给单片机,执行相关的程序。其中S1为设置键用来设置温度的报警值,S2,S3分别为加键和减键,用来增加或减少温度报警值的设置值。按键模块如图7所示图7 按键模块三、 软件设计(一)主程序本文选用的单片机是STC89C51,其常用的编程语言是C语言,C语言应用较为广泛,也比较符合我们的思考习惯,而且兼容性强,可适应的处理器较多。C语言编程具备良好的模块化,容易理解,便于修改。程序的编写是按功能把系统按模块化划分,根据每个模块的功能编写其各自的子程序。编写的方式都选用查询的方式编程。酒精检测系统正常运行的时候,首先是对主程序及各个子程序进行初始化,初始化完成之后,由单片机驱动液晶显示屏的显示界面;单片机要对酒精传感器的预热做出判断,若传感器预热没有达到要求温度,则继续对传感器进行预热操作,使传感器能正常的工作;之后进入循环程序,第一步是对数据采集子程序进行初始化,启动A/D转换器芯片,通过它将模拟信号变为数字信号传输给单片机,将其转化为酒精浓度值,第二步将酒精浓度值在显示屏上显示,显示屏上的浓度随测量变变化,第三部检测按键是否按下,如果有按键按下则设定浓度最大上限值,第四步对酒精浓度进行判断,若超过上限值就发出报警提示。如此循环对酒精浓度反复测量。主程序流程图如图8所示图8 主程序流程图(二) A/D转换子程序A/D转换主要是讲传感器检测的模拟信号传变为数字信号,传输给单片机进行数字处理。 A/D转换采用的ADC0809,它有8个输入端口和8个输出端口,输入接口与传感器输出端口相连接,输出端口D0.1~D0.7分别于与单片机的P1.0~P1.7相连接。ADC0809有28个引脚,OE为输出控制端,在正常工作时必须接高电平,芯片才能传换输出,CLK为控制时钟端口,控制A/D转换的速率,EOC为控制信号结束端口,接高电平工作。ADC0809进行初始化,然后0-5V的模拟信号由0通道输入,把它转化为相应的数字信号,然后把转换数值存储到内存单元。在选择转换速率时,选择的低度转换则需等待100μs,等时间到对A/D模块是否转换完成进行判断,如果完成数字信号的转化,把转换结果返回主程序进行处理;如果没有完成转化,继续等待。如图9所示图9 AD转换子程序(三) 液晶显示子程序液晶显示屏主要显示汉字以及各个控制变化酒精浓度的显示,采用直接访问的寻址方式。首先对LCD1602进行初始化,等待传感器的预热,然后显示数值。程序流程图如图10所示 图10 液晶显示屏(四) 按键子程序按键电路主要是设定系统酒精浓度的上限值,共有三个按键跟酒精传感器一起组合使用,分别是模式选择键,数值加1键,数值减1键;执行按键子程序时,首先是对P2.6外接按键判断,如果检测按键按下则进入阈值设置模式;再通过判断P2.7外接按键是否按下,如果按下酒精上限阈值加1;再通过判断P3.7外接按键是否按下,如果按下酒精上限阈值减1。若没有外接按键都没有按下,则直接返回主程序。程序流程图如图11所示 图11 按键子程序四、 系统调试(一) 电路仿真Proteus ISIS能满足我们对单片机提出的仿真系统的标准;可以模拟电路仿真,数字电路,等系统仿真功能,软件中很多种类的虚拟仪器和元器件;支持多种单片机类型的仿真,有大量的存储器和外围芯片。打开proteus7仿真软件,在软件库里找出要用到的元器件,拖到绘图页面,按照一定合理的位置排放,将各个元器件按之间的电气关系连接起来,绘制出原理图。在proteus7仿真软件里绘制原理图,系统上电最开始运行的状态是,滑动变位器处于阻值最大处,液晶显示屏上显示测量浓度为0,设定的测量阈值为30,同时绿灯亮并每隔一秒闪一次。整体仿真图如图12所示图12 仿真图通过改变滑动电位器的阻值来模拟检测到的酒精浓度,现在设置的上限阈值是30,我们减小滑动电位器的阻值,发现显示屏上测量数值在变大,当超过设定的阈值,红色发光二极管导通,每隔一秒闪一次,同时蜂鸣器导通,提示报警。达到超出酒精含量进行报警的设计目的。如图13所示图13 仿真图(二) BOM表根据原理图将元件清单列出来,元件清单如表1所示;表1(三) PCB图根据系统整体电路图,按照绘图规则及简单方便的准则画出PCB走线图。如图14所示图14 PCB图(四) 实物图根据电路原理图进行实物的焊接,根据焊接从低到高的焊接要求注意的对元器件进行焊接,注意不要出现虚焊等情况。最终实物图如图15所示图15 实物图(五)硬件调试对于系统可能出现的问题进行解决,避免出现不必要的错误。主要问题有(1)上电以后绿色信号指示灯不亮,解决二极管不亮大多都是引脚电路问题,猜测是电路问题首先用万用表对二极管引脚进行检测,通过检测发现绿色二极管的引脚焊接错误,误把相邻两个引脚焊错了,导致二极管没有电压通过。用导线,正确焊机,使故障消除。(2)烧入程序后,LED显示屏不显示解决显示屏不显示时,最大的原因就是电路问题,先用万用表对电路进行检测,检查焊点是否存在漏焊,虚焊,或者元件故障的现象。如果检查完之后没有发现问题,就要检查编写的程序是否有错误,对程序仔细检查并修改。(六) 软件调试硬件检查无误后,将程序烧写到单片机中,进行信号灯软件的调式。软件调试是一个复杂的过程。这是综合性的调试,不仅仅要考虑到软件问题,同时也要考虑到硬件连接问题,这是对专业知识和耐心的考验。在调试过程中遇到的很多问题(1)液晶显示屏显示内容不正确解决方案由于硬件电路焊接正确,问题存在于软件程序编写。问题可能是对显示屏某个端口定义有误,对单片机控制显示屏的I/O口进行一一排查,发现程序中有一个显示屏的I/O定义重复。重新按照程序的端口定义I/O口,显示屏就能正常显示。通过反复多次调试和分析,可以加深对电路的原理及系统功能的认识,同时也能提高自主队电路系统的设计和分析能力。在软件编程方面也有很大的收获,对编程语言运用更加灵活,编程能力得以提高。同时对所学的知识得到很大的提高与巩固。此设计为半成品设计,有待改进。结 论我这次设计的是利用型号为STC89C51的单片机的酒精浓度检测仪,其中通过酒精传感器(MQ-3)检测气体中酒精的浓度,通过A/D转换(ADC0809)将模拟信号转换为数字信号,传输给单片机进行数据处理,经过单片机的之后把数值传输给液晶显示屏上显示,如果测量数值超过设定的阈值,则导通蜂鸣器,提示报警。按键电路可以设置不同的报警阈值。对于自己的这个设计,也存在着不足之处的,比如这次设计的酒精检测仪精度不高,受环境的影响因素比较大。希望以后可以改进,让功能更齐全一点。系统主要能实现的功能如下能够检测当前空气含量的酒精含量能够对于高出警戒值进行报警 3.能够通过液晶显示屏显示当前的数值致 谢在这将近3个月的毕业设计过程中,我顺利完成了自己的毕业设计。首先诚挚的感谢我的指导老师蒋爱如老师。她在忙碌的教学工作中挤出时间来审查修改我的论文。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深的感染激励着我。在这次的设计过程中,自己也遇到了一些问题,比如在制作电路板之前,需要绘制出它的原理图,因为自己的知识掌握不是很全面和扎实,所以在完成毕业设计的时间里,大部分时间是一边做一边查阅资料,而在焊接电路板的时候,自己不是很细心,经常会将元器件焊接的位置搞错,导致无法完形成完整的回路。浪费了好几块电路板。但是一次又一次的失败,并不是白费的,失败中总结犯的细小的错误,在完成毕业设计的时间里,慢慢改进。写作毕业论文是一次再系统的学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始。从论文选题到搜索资料,从写稿到反复修改,期间经历了喜悦,聒噪和彷徨,在写作的过程中心情亦是如此复杂。如今,随着这篇毕业论文的最终成稿,自己还有一点小小的成就感。 书到用时方恨少,在这篇论文的写作过程中,我深感自己的专业水平还有所欠缺。在今后的生活和工作中,我会铭记老师们的教诲,继续努力,不懈追求,活出更好的自己。参考文献[1]陈权昌,李兴富.单片机原理及应用[M].广州:华南理工大学出版社,2007.8[2]李庆亮.C语言程序设计实用教程[M].北京:机械工业出版社,2010.3[3]杨志忠.数字电子技术[M].北京:高等教育出版社,2008.12.[4]及力.Protel 99 SE原理图与PCB设计教程[M].北京:电子工业出版社,2009.8.[5]徐江海.单片机实用教程[M].北京:机械工业出版社,2012.12[6]胡宴如.模拟电子技术[M].北京:高等教育出版社,2011.6[7] 刘宁.单片机多功能时钟的设计[M].浙江:浙江海洋学院,2009. [8] 汪文,陈林.单片机原理及应用[M].湖北:华中科技大学出版社,2013.[9] 康华光.电子技术基础数字部分[M].北京:高等教育出版社,2011.附录A系统原理图附录B源程序
目录
一、 绪 论 1
(一) 酒精检测仪的背景 1
(二) 酒精检测仪的现状与趋势 1
(三) 本课题主要工作 1
二、 硬件设计 3
(一) 整体设计 3
(二) 单元电路设计 4
三、 软件设计 10
(一)主程序 10
(二) A/D转换子程序 11
(三) 液晶显示子程序 12
(四) 按键子程序 13
四、 系统调试 15
(一) 电路仿真 15
(二) BOM表 16
(三) PCB图 18
(四) 实物图 18
(五)硬件调试 19
(六) 软件调试 19
结 论 21
致 谢 22
参考文献 23
原文链接:http://www.jxszl.com/dzxx/txgc/52294.html