毕业设计(论文)基于单片机的防酒驾系统设计_第1页
毕业设计(论文)基于单片机的防酒驾系统设计_第2页
毕业设计(论文)基于单片机的防酒驾系统设计_第3页
毕业设计(论文)基于单片机的防酒驾系统设计_第4页
毕业设计(论文)基于单片机的防酒驾系统设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、LANZHOU UNIVERSITY OF TECHNOLOGY毕业设计题 目 基于单片机的防酒驾系统设计 学生姓名 学 号 专业班级 通信工程(1)班 指导教师 学 院 计算机与通信学院 答辩日期 2016年6月15日 基于单片机的防酒驾系统设计Design of drunken driving system based on single chip xxxxxx12xxxxxx摘要近些年来随着人们生活水平的提高,越来越多的汽车出现在人们的这生活中,这大大方便了人们的生活,但是同时也带来了交通事故频发等交通问题,其中酒后驾驶占很大的比例,严重威胁着人类生命安全。为了能够有效的防止酒后驾驶造成

2、的危害,研究一种防酒驾系统系统是非常必要的,从而能够强制性防止酒后驾车,降低交通事故的发生率。本课题的研究对象基于单片机的防酒驾系统就是在这中背景下提出来的。该系统具有移植性好、操作简单、响应速度快、成本低等优点,适合经济型家用小型车辆使用。本次设计主要阐述了基于单片机的防酒驾系统的设计与实现。在学习和借鉴国内外防酒驾系统研发的基础上,将系统设计成能通过高灵敏度的呼气式酒精传感器检测司机的酒精摄入量,当司机体内酒精浓度超标时,控制系统会自动切断汽车启动系统,使汽车无法正常启动。系统可显示司机摄入的酒精浓度,并具有实时监测和光电、语音报警功能。关键词:酒精检测;模数转换;单片机ABSTRACTA

3、s in recent years, drunk driving frequently occurred, which seriously threaten humans life. In order to be able to effectively prevent the damage for drunken driving, studies a system against drunk driving system is very necessary, which can be mandatory to prevent drunk driving. This topic research

4、 object-against drunk driving system based on single chip microcomputer is proposed in this background. The system has good portability, simple operation, fast response speed, and low cost, suitable for affordable home small vehicle use.This design mainly elaborated against drunk driving system base

5、d on single chip design and implementation. In learning and reference to prevent drunk driving system research and development at home and abroad, on the basis of the system designed to pass the sensors detect alcohol intake. When the driver excess alcohol concentration in the body, the control syst

6、em will automatically cut off the start-up system, make the car cant start properly. Concentration of alcohol intake system can display driver, and has real-time monitoring and alarm function. Keywords:alcohol detection;analog-digital conversion; SCM目录 TOC o 1-3 h z u HYPERLINK l _Toc759 第1章 绪论 PAGE

7、REF _Toc759 1 HYPERLINK l _Toc13207 1.1研究背景 PAGEREF _Toc13207 1 HYPERLINK l _Toc4635 1.2国内外研究现状 PAGEREF _Toc4635 1 HYPERLINK l _Toc16983 1.3本设计主要内容 PAGEREF _Toc16983 3 HYPERLINK l _Toc14203 第2章 系统的总体设计 PAGEREF _Toc14203 4 HYPERLINK l _Toc19195 PAGEREF _Toc19195 4 HYPERLINK l _Toc27235 2.2方案设计 PAGERE

8、F _Toc27235 4 HYPERLINK l _Toc9825 2.3器件选择 PAGEREF _Toc9825 5 HYPERLINK l _Toc27643 2.3.1 酒精传感器 PAGEREF _Toc27643 5 HYPERLINK l _Toc5603 2.3.2 单片机 PAGEREF _Toc5603 6 HYPERLINK l _Toc12725 2.3.3 模数转换芯片 PAGEREF _Toc12725 9 HYPERLINK l _Toc13451 2.3.4 1602液晶显示屏 PAGEREF _Toc13451 10 HYPERLINK l _Toc86 第

9、3章 硬件电路设计 PAGEREF _Toc86 11 HYPERLINK l _Toc23169 3.1单片机最小系统 PAGEREF _Toc23169 11 HYPERLINK l _Toc9228 3.2酒精浓度采集电路 PAGEREF _Toc9228 12 HYPERLINK l _Toc19771 3.3显示电路 PAGEREF _Toc19771 12 HYPERLINK l _Toc22125 3.4报警电路 PAGEREF _Toc22125 13 HYPERLINK l _Toc10758 3.5继电器控制电路 PAGEREF _Toc10758 13 HYPERLINK

10、 l _Toc10592 3.6系统总电路 PAGEREF _Toc10592 14 HYPERLINK l _Toc9680 第4章 软件程序设计 PAGEREF _Toc9680 16 HYPERLINK l _Toc17971 4.1编程语言的介绍 PAGEREF _Toc17971 16 HYPERLINK l _Toc21607 4.2程序设计思路 PAGEREF _Toc21607 16 HYPERLINK l _Toc2662 4.3程序设计 PAGEREF _Toc2662 17 HYPERLINK l _Toc31366 4.4程序编译 PAGEREF _Toc31366 2

11、1 HYPERLINK l _Toc6147 第5章 仿真与测试 PAGEREF _Toc6147 23 HYPERLINK l _Toc18785 5.1仿真软件简介 PAGEREF _Toc18785 23 HYPERLINK l _Toc23926 5.2系统仿真 PAGEREF _Toc23926 24 HYPERLINK l _Toc6041 5.3系统测试 PAGEREF _Toc6041 25 HYPERLINK l _Toc31031 第6章 总结与展望 PAGEREF _Toc31031 27 HYPERLINK l _Toc2747 6.1总结 PAGEREF _Toc27

12、47 27 HYPERLINK l _Toc16332 6.2展望 PAGEREF _Toc16332 27 HYPERLINK l _Toc32174 参考文献 PAGEREF _Toc32174 28 HYPERLINK l _Toc7926 附录I源程序 PAGEREF _Toc7926 29 HYPERLINK l _Toc5067 附录II外文文献翻译 PAGEREF _Toc5067 36 HYPERLINK l _Toc12020 致谢 PAGEREF _Toc12020 61第1章 绪论近年来随着经济的发展,人们的生活水平的提高,越来越多的私家车出现在人们的生活,这也导致了交通

13、事故的频繁发生,这给人们的生活和生命安全带来了很大的影响,这其中酒后驾驶就占据很大的比例。据来自某国际组织的一项统计数据表明:每33分钟就会有一人死于和酒驾有关的交通事故1。尽管有大多数人认为酒后驾车所造成的的交通事故永远不会发生在自己的身上,但是根据专家的统计结果显示:在每个人的一生中卷入和酒驾有关的交通事故的可能性高达30%。显然,饮酒与开车是多么可怕的致命结合,正是由于酒驾这个“罪魁祸首”使得悲剧接连上演,让幸福家庭支离破碎,处在痛苦懊悔中。在中国,发生的交通事故每死三个人,就有一个是酒后驾驶。交通部的统计数据显示,近几年来我国因酒后驾车所导致的交通事故平均每年就有25万多例,造成约5万

14、人死亡,直接经济损失近13亿元,虽然我国现行法律规定对酒后驾车造成重大伤亡事故的肇事者,追究其刑事责任,但是对没有造成重大伤亡事故的酒驾者的惩罚比较低 。这种轻微的处罚根本不足以引起驾驶员的重视,因此酒后驾车者还是很多。酒精在人体血液内达到一定浓度时,人对外界的反应能力和控制能力就会下降,遇到处理紧急情况时,就会导致事故发生2。驾驶员血液中酒精浓度越高,发生撞车意外的风险也会越高。根据来自4538位新浪网友的调查显示,有81.29%的被调查者同意酒后驾驶属于违法行为,但在被问及是否有过酒后驾驶行为时,仅有20.63%的被调查者从未有过酒后驾车的行为。在被问及酒后驾驶人员存在何种心理时,有39.

15、84%的被调查者认为酒后驾驶人员过高的相信自己的驾驶技术,27.35%的被调查者认为酒后驾驶人员的安全意识不强。另外,有18.97%的被调查者认为酒后驾驶人员存在侥幸心理。近年来,国内外酒后驾驶引发的重大伤亡事故呈愈演愈烈之势。除了严格执法外,推行预防酒驾的新技术,也是减少和杜绝酒驾的有力手段。在这种情况下,研究预防酒后驾车的新技术显得尤为重要。所以设计一种防止酒后驾驶的智能闭锁系统是非常有必要的,当检测到驾驶员体内的酒精浓度超标时,可以驾驶员不要酒驾,并且强制性禁止汽车启动,来达到防止酒后驾驶的目的。针对司机酒后驾驶事故频繁发生的现象,国外最早开始研发针对酒后驾驶的酒精测试仪。1957 年1

16、月23日,瑞典世界上第一台酒驾呼吸检测仪在1957 年1月23日首次投入使用,它可以进行当场直接测试。它能检测出司机呼出气体中的酒精浓度,并将这一结果显示于仪器的显示屏上。交警很据这判断该司机是否属于酒后驾驶。目前,英国、瑞典、澳大利亚、法国、荷兰、新西兰、西班牙、比利时、等欧洲国家,普遍采用的办法是在交通事故现场,交警随身携带呼气式酒精测试仪,对司机呼出气体中的酒精含量进行快速检测,根据检测结果判断是否属于酒后驾驶。为了能够协助驾驶员主动测试是否酒后驾驶,国外许多国家先后研究了用于汽车上的不同酒后测试办法。意大利科学家开发了一种名为“天使”的新型车载酒精探测仪。当司机呼出的气体中酒精浓度超标

17、时,探测仪会发出蜂鸣声警告。如果司机不停车,探测仪将通过车载电脑自动发出指令,迫使汽车无法启动或逐渐停止行驶。美国新墨西哥州也开发出一种皮肤接触式酒精测试仪,可向司机的脉搏发射光束,通过反射光来分析司机胳膊下血管中血液里的酒精含量是否超标。日本和美国的 制造技术人员利用类似“天使”检测仪的方法,分别开发出可以预防酒后驾车的新型 。这种 安装了一块小型酒精传感器,它能将传感器与 的数据发送系统连接在一起。一旦驾驶员酒驾, 内的酒精传感器就能十分敏感地检测到驾驶员呼出气体中的酒精含量。这种 主要用于帮助公交车和出租车公司判断司机是否可以安全开车。俄罗斯彼得堡一家激光公司的专家发明了激光酒精检测仪,

18、可对司机是否饮过酒进行远距离探测,用以对付那些和警方不配合的司机。检测仪发射一束专门的激光,可通过挡风玻璃对车内空气进行检测,如车内的空气中酒精含量超过百万分之一,仪器就会根据反馈信号报警3。在中国,近年来,我国也开始逐步采用科技手段防止酒后驾驶。青岛盛源达电子科技最新研究开发、投入生产的“汽车酒后控驾防盗器”是国内新型高新技术。具有酒后报警控制驾驶和高级防盗双重功能,该技术已申请国家专利。酒后控驾防盗器是一款汽车专用酒后安全驾驶的检测和预防设备,同时具有高级防盗功能。在车辆上安装酒后控驾防盗器之后,驾驶人员在车辆启动前需要进行吹气检测,当呼出的气体中酒精浓度高于国家交通部门制定的标准时,能及

19、时断开点火电路和发出报警声,并用延时装置使驾驶人员能有机会休息以便醒酒,能有效地防止酒后驾车,该设备不受同车饮酒人员的影响。若从机动车上取下设备,即使有钥匙汽车也无法发动,为汽车增加了一层安全保险,从而实现了防盗功能。本产品采用呼出气体酒精含量测试仪是专用于测试人体呼出气体中酒精含量的仪器。本机敏感元件采用兆度电子先进的纳米半导体热线型酒精传感器,具有极好的灵敏度和出色的重复性,测试程序由人工智能设计的微电脑控制。目前,国家交通技术领域正在开发研究驾驶行为监控预警技术和装备,研究内容:驾驶状态及车辆运行状态与环境实时检测技术,异常驾驶状态实时识别技术,驾驶意图、行为预测及违规操作判别技术,危险

20、驾驶行为的预警方法与技术,驾驶行为监控预警系统集成技术。研究目的:通过研发异常驾驶状态、违规操作、不良驾驶习惯等检测预警系统与装置,形成驾驶人行为的实时监控技术,为有效减少道路交通事故提供技术支撑,从而开发适用于驾驶行为监控系统原型样机,并将通过实车实验验证。本次设计主要阐述了基于单片机的防酒驾系统的设计与实现。在学习和借鉴国内外防酒驾系统研发的基础上,将系统设计成能通过高灵敏都的呼气时酒精传感器检测司机的酒精摄入量,当司机体内酒精浓度超标时,控制系统会自动切断汽车启动系统,使汽车无法正常启动。系统可显示司机摄入的酒精浓度,并具有实时监测和光电、语音报警功能。主要包括硬件部分和软件部分以及系统

21、仿真和测试:硬件部分:通过MQ-3酒精传感器检测出驾驶员体内的酒精浓度,输出的电信号通过模/数转换送到单片机,然后单片机和外围的电路将控制处理该信号,最后用显示LED显示模块显示出浓度值,酒精超标之后报警电路中的蜂鸣器鸣叫和发光二极管变亮报警,并且控制继电器的动作,防止汽车启动。软件部分:主要工作是确定各个模块的工作内容,然后编写各个模块的应用程序,程序采用模块化设计,让每个模块可以独立工作,这方便于以后修改、调试程序。酒精浓度超标的区间数值是人为操作得到的,应用数学原理并且近似线性化处理每个区间的转换关系,最后通过软件编程来控制输出结果。仿真测试:根据设计的内容,在protues仿真软件上面

22、进行仿真,仿真结果和设计结果相符合,并且在制作的实物上面进行测试,测试结果和设计相符。第2章 系统的总体设计设计要求基于单片机的防酒驾系统,将系统设计成能通过高灵敏度的呼气时酒精传感器检测司机的酒精摄入量,当司机体内酒精浓度超标时,控制系统会自动切断汽车启动系统,使汽车无法正常启动。系统可显示司机摄入的酒精浓度,并具有实时监测和光电、语音报警功能。本文主要有以下要求:(1)设计防酒驾智能闭锁系统以及控制系统中各功能模块; (2)学习51单片机的开发过程,设计控制系统的硬件电路:酒精传感器的采集电路、51单片机的接口电路、报警电路、酒精浓度显示电路、继电器控制电路等;(3)软件编程:软件实现的功

23、能,分为酒精传感器模拟输出电压线性化处理、气体浓度显示、报警、继电器驱动子程序等;本文设计的基于单片机的防酒驾系统,采用MQ-3酒精传感器,通过传感器检测驾驶员呼出气体的酒精浓度,判断是否超过安全驾驶酒精摄入量标准,通过硬件电路处理,能够显示酒精浓度,让驾驶员能够非常清楚的看到自己饮酒过度,所以需要选择一种适合的显示仪器来显示驾驶员呼出酒精气体的浓度值,基于这种要求,本次设计选择使用LED显示模块。为了能够提醒驾驶员不要酒后驾车,本设计中需要设计一种报警系统,能够在驾驶员饮酒后驾驶时,发出警告提示。该智能防酒驾系统的最主要功能是当传感器检测到司机呼出的酒精气体浓度超标时,能够自动切断汽车启动引

24、擎,所以需要一种元器件能够自动的切断汽车启动引擎,为了能够达到这个目的,我们可以选择继电器,通过控制继电器的动作来达到控制汽车启动引擎的目的4。通过选用本方案中的元件,该基于单片机的智能防酒驾系统能够通过检测驾驶员呼出酒精气体的浓度是否超标,检测到驾驶员饮酒过度时,显示该酒精浓度值,报警提醒驾驶员,并快速切断汽车启动引擎,达到强制防酒驾的目的。基于以上的设计思路,设计的基于单片机的防酒驾系统的系统框图,如下图所示:C51单片机气体检测LED显示模块 声光报警 继电器控制图2.1 系统框图系统各结构功能:(1)气体检测模块:主要有气体传感器和LM358组成,其功能是将酒精浓度是否超标转变为方便与

25、单片机识别的高低电平信号,并且把此信号传送到单片机内部;(2)LED显示模块:检测司机体内的酒精浓度,通过数码管显示出来(3)声光报警模块:主要有蜂鸣器和LED构成,功能是检测到司机体内的酒精浓度超标时候,发声光报警信号,提醒司机危险,不要酒后驾车;(4)继电器控制模块:当检测到司机体内的酒精浓度超标时,控制继电器,切断汽车的启动引擎,防止汽车启动;(5)主控模块:即C51单片机,它的功能是通过气体检测 模块输出的高低电平,控制声光报警模块的工作状态,并且控制继电器的动作。2.3.1 酒精传感器酒精传感器的工作原理原理:对被测人呼出气体进行检测,它可以从空气中将酒精气体检测出来。并且酒精气体浓

26、度越大,检测到的信号也就越大。目前各国交通执法都使用的这种方法来检测血液酒精浓度。随着科技发展,目前酒精传感器技术已经非常的成熟,比如电化学酒精传感器、半导体酒精传感器、催化燃烧酒精传感器等。催化燃烧式酒精传感器功耗大,漂移比较多,气体选择性差,所以不便制造便携式仪器,目前已经很少使用催化燃烧式酒精传感器。电化学酒精传感器,虽然选择性好、稳定性好,功耗低,但是造价昂贵,应用成本高。大都使用在专业测试仪器上。比如,工业检测仪器、工业特殊作业场所检查仪器6。半导体酒精传感器是近些年研究人员所研制的新型酒精传感器,它的特点介于上述两者之间,有很多的优点:稳定性好、功耗小、反应速度快,并且生产成本比较

27、低,适于大量生产。因此使用半导体酒精传感器制造司机个人用酒精检测仪成为第一选择,本次设计我们选用MQ-3酒精传感器。MQ-3酒精传感器的特点:(1)工作电压:5V(2)具有信号输出指示(3)双路信号输出(模拟量输出急TTL输出)(4)TTL输出有效信号为低电平(5)模拟量输出为0-5V电压,浓度越高电压越高(6)对酒精蒸汽具有很高的灵敏度和良好地选择性(7)具有长期的使用寿命和可靠地稳定性(8)快速的响应恢复特性通过实际测试,MQ-3模拟端的输出信号和酒精浓度输出特性近似为线性关系,如图所示:35输出电压酒精浓度单位V单位mg/L图2.2 模拟端的输出信号和酒精浓度输出关系2.3.2 单片机S

28、TC12C5A60S2单片机在众多的51系列单片机中,国内STC公司的1T增强系列更具有竞争力,它不但与851指令,管脚完全兼容,并且它的片内有大容量的程序存储器,STC12C5A60S2单片机的内部就自带有高达60k FLASHROM,这种工艺的存储器用户可以用电的方式瞬擦除和改写。而且STC系列支持串口程序烧写,显然,这种单片机对开发设备的要求很低,开发时间也打打的缩短。写入单片机内的程序还可以加密,这也很好的很盗了安全保护作用。STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼

29、容传统8051,但速度快8-12倍。内部集成 HYPERLINK :/ dzsc /stock_max810.html MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合9。1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;2.工作电压:STC12C5A60S2系列工作电压:(5V单片机)STC12LE5A60S2系列工作电压:(3V单片机);3.工作频率范围:0 - 35MHz,相当于普通8051的0420MHz;4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K

30、 / 60K / 62K字节;5.片上集成1280字节RAM;6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;(在系统可编程)/IAP(在应用可编程),无需专用 HYPERLINK :/product.dzsc /product/searchfile/234.html 编程器,无需专用 HYPERLINK :/product.dzsc /product/searchfile/409.html 仿真器 可通过

31、串口()直接下载用户程序,数秒即可完成一片;8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);9.看门狗;10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地);11.外部掉电 HYPERLINK :/product.dzsc /product/searchfile/636.html 检测电路:在口有一个低压门槛比较器,5V单片机为,误差为单片机为,误差为+/-3%;12.时钟源:外部高精度晶体/时钟,内部R/Csc /product/searchfile/1050.html 振荡器(温漂为+/-5%到+/-10%以内) 1用

32、户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:单片机为:11MHz,单片机为:8MHz12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;13.共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器;个时钟输出口可由T0的溢出在输出时钟,可由T1的溢出在输出时钟;15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块 HYPERLINK

33、:/ dzsc /stock_power.html Power Down模式可由外部中断唤醒INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);16.PWM(2路)/PCA(可编程计数器阵列,2路):也可用来当2路D/A使用;也可用来再实现2个定时器;也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC

34、12系列是高速的8051,可再用定时器或PCA软件实现多串口;C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);20.工作温度范围:-40 - +85(工业级) / 0 - 75(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。STC12C5A60S2的引脚图如下图所示:2.3 单片机的引脚

35、图(1)(39-32):p0口是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转化的地址(低八位)和数据总线,在访问期间激活了内部上的上拉电阻。在EPROM编程时,它接受指令字节,而在验证程序时,它输出指令字节,验证时,要求外接上拉电阻。(2)(1-8):p1口是带内部上拉电阻八位双向I/O口。在EPROM编程和验证西西横须时,它接受低八位地址。(3)(21-28):p2口是带内部上拉电阻八位双向I/O口。在访问外部存储器时,它送出高八位地址。在EPROM编程和验证西西横须时,它接受高八位地址。(4)(10-17):p:3口是带内部上拉电阻八位双向I/O口。2.3.3 模数转换

36、芯片ADC0808S是采样分辨率为8位的,以逐次逼近原理进行模/数转换的器件。内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,实际使用时采用ADC0809进行A/D扎转换。ADC0808芯片有28根引脚,采用双列直插式封装,如下图所示:2.3 ADC0808引脚图各引脚功能如下:1-5和26-28(IN0-IN7):8路模拟量输入端;8、14、15和17-21:8路数字量输出端;22(ALE):地址锁存允许信号,输入,高电平有效;6(START):A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809

37、复位,下降沿启动A/D转换)。7(EOC):A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。12(VREF(+)和16(VREF(-):参考电压输入端11(Vcc):主电源输入端。13(GND):地。2325(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路2.3.4 1602液晶显示屏 液晶显示屏以点阵块组成,一个点阵块为一个字符位,内含主控

38、制驱动电路、字符发生器ROM、具有64个字节的自定义字符RAM、具有80个字符的RAM、标准的接口特性。1602有4位数据总线和8位数据总线两种接口。4位数据总线使用DB4-DB7接口,8位数据先处理高4位后处理低4位,分两次写入和读出。微处理单元对1602进行读写时,数据寄存器和指令寄存器暂时存储数据,数据寄存器存储写入或读出的数据,指令寄存器存储未处理单元传来的指令。地址计数器用来存储地址,进行读写操作后,地址计数器计数用读操作读出。显示数据存储器可以存储80个字符码,字符发生器有5X8和5X11点阵字符,用户可以通过用户字符发生器制作5X8点阵字符。编写显示函数程序时要先初始化1602,

39、液晶屏具体位置写入指令显示具体内容。第3章 硬件电路设计 硬件电路包括检测酒精传感器的采集电路,LED显示电路,声光报警电路以及继电器的控制电路。能让单片机运行起来的最下硬件连接就是单片机最小系统。单片机最小系统一般包括工作电源,震荡时钟电路和复位电路等几部10分。3.1.1 复位电路复位电路如图所示:图复位电路复位是单片机的初始化操作,其主要功能是把PC初始化为000H,使单片机的执行单元从000H开始执行程序。除了进入系统的正常初始化之外,当由于程序出错或者操作错误使系统处于死锁状态实物,也需要按复位键来重新启动。RST是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个震荡脉

40、冲周期(两个机器周期)以上。通常为了保证应用系统可靠地复位,复位电路应该使引脚RST保持10ms以上的高电平。只要引脚RST保持高电平,单片机就循环复位。当引脚RST由高电平变为低电平时,单片机退出复位状态,从储存程序的000H地址开始执行用户程序。复位操作有上电自动复位和按键手动复位两种方式。上电复位的过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。手动复位需要人为地在复位输入端加上高电平。一般采用的方法是在RST端和正电源Vcc之间接一个按钮,当按下电钮时,Vcc的+5V电平

41、就会直接加到RST端。即使按下按钮的动作较快,也会是按钮接通达到数十毫秒,所以保证能满足复位的时间要求。3.1.2 时钟电路时钟电路如图所示:3 .2时钟电路图时钟电路用于产生时钟信号,单片机本身是一个复杂的同步时序电路,为了保证同步工作方式的实现,单片机应设有时钟电路。在单片机芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部这两个引脚跨接晶体震荡器和微调电容,形成反馈电路,就构成了一个稳定的晶体振荡器。电路中对两个电容的要求不很严格,如使用高质的晶振,则不管频率多少,两个电容一般都选择30pF。警惕震荡频率越高,则系统时钟频率也越高,单片机的

42、运行速度也越快。下图3.3是酒精采集电路:图酒精浓度的采集电路通过MQ-3酒精传感器,把检测到的检测司机体内的酒精浓度的模拟信号传送到单片机的引脚端口,然后通过单片机内部的模/数转换转换为数字信号,在由系统进行分析处理。下图3.4是酒精浓度显示电路:显示屏的管脚1、2、3、4分别连接单片机的引脚P0.4、P0.5、P0.6、P0.7,显示屏的管脚C0、C1、C2、C3、C4、C5、C6、C7分别连接单片机的引脚P2.0、P2.1、P2.2、P2.3、P2.4、P2.5、P2.6、P2.7,酒精传感器采集到的酒精浓度通过单片机的处理在LED显示屏上显示出来。下图是声光报警电路原理图:图报警电路图

43、正常情况下,司机没有喝酒的时候,检测不到酒精浓度,单片机的引脚和为高电平,蜂鸣器和发光二极管不会工作,当司机喝酒之后,检测到其酒精浓度超标,单片机的引脚和为低电平,报警电路中的蜂鸣器会鸣叫并且发光二极管会变亮。下图是继电器的控制电路:3.6 继电器控制电路在正常情况下,司机没有喝酒的时候,检测不到酒精浓度,单片机的引脚输出为低电平,控制的继电器闭合,汽车可以正常启动,如果司机喝酒系统检测到酒精浓度超标之后,单片机的引脚控制输出为高电平,控制继电器打开,使汽车无法启动,达到强制防止酒后驾驶的目的。综上系统的总硬件电路图如下图3.7所示:图3.7 硬件电路图工作原理:司机呼出气体,通过酒精传感器传

44、送给单片机系统,并且用LED数码显示管显示出来,当检测到司机体内的酒精浓度没有超标时,引脚端和为高电平,此时单片机控制没有信号输出,声光报警电路中的蜂鸣器和发光二极管不会工作,引脚控制继电器闭合;而当检测到司机体内的酒精超标时,引脚端和为低电平,此时声光报警电路中的蜂鸣器发出鸣叫和发光二极管变亮,并且引脚控制的继电器断开,控制汽车不能正常启动。单片机的引脚控制酒精传感器采集信号的输入,控制报警电路中的发光二极管的报警,控制报警电路中的蜂鸣器的报警,控制继电器电路。第4章 软件程序设计C语言作为一种非常方便易学的编程语言而得到广泛的支持与应用,很多硬件开发都使用C语言编程,比如各种单片机、DSP

45、、ARM等。C语言作为高级语言本身不依赖于机器硬件系统,一般基本上不做修改或只做简单的修改就能将程序在不同的系统之间移植直接使用。C语言不仅提供了很多的数学函数,并且支持浮点运算,开发效率很高,可极大地节省开发时间,增加了程序的可读性和可维护性11。单片机的C语言编程与汇编ASM-51编程相比,有如下优点:(1)可以不对单片机的指令系统有任何的预习了解,就直接可以用C语言编写命令操作单片机。(2)不会像汇编语言一样,对寄存器的分配、不同存储器的寻址及数据的类型等细节完全不用涉及,由编译器自动管理。(3)程序有规范的结构,分成了不同的函数,函数之间互相之间调用,可使程序结构化。(4)库中包含标准

46、子程序,都具有较强的数据处理能力,用时直接调用,使用方便。(5)具有方便的应用模块化编程技术,可使已编好的程序移值来使用。因为此次设计关于全部时间的计算全部由单片机内部的定时器来完成,这样使得精度很高,虽然温度传感器对数据的读写要求时间精度也高,但已有很多精度高的C程序被人们广泛应用,故可直接借用已有的程序也能做到对温度的准确读取,所以设计使用C语言编程,这样既对自己来说也降低了难度,也能使设计中所用到的公式能浅显易懂的体现和实现。本次的软件程序设计涉及到了很多的程序量,我们选择采用模块化的程序设计方法,模块化的设计结构不仅会使得整个程序看起来脉络清晰,容易理解,并且还会方便于以后程序的修改以

47、及调试,很大的节省我们的工作量。软件的主程序主要包括酒精传感器采集的的输入程序、LED数码显示管的显示的程序,声光报警的程序以及继电器控制的驱动程序等。这其中,单片机的主要功能是控制继电器的动作,从而达到控制汽车电机,强制禁止汽车启动的目的,酒精的数据采集程序主要将接受到的模拟数据通过A/D转换,转换为数字信号输入到单片机中;这其中一部分送去LED数码显示管显示,另外一部分与酒精浓度超标设定值进行比较,当其超过标定值时,蜂鸣器鸣叫报警,发光二极管变亮,提醒驾驶员不要开车,同时控制继电器的动作,来控制控制电机让汽车启动引擎不能正常启动。根据上面的设计思路,主程序的流程图如下图4.1所示:上电定时

48、器初始化AD初始化300ms定时读取AD值计算酒精浓度更新显示浓度超标蜂鸣器报警LED点亮继电器动作LED关闭否是否是图4.1 程序流程图使用单片机内部AD采集酒精浓度,单片机的模拟通道0用来检测酒精浓度的模拟量,单片机首先启动AD采集,等待转换结束。当查询到转换结束标志位为1时表示转换结束,可以读取AD数据了。经过转换后的酒精浓度的数字信号与酒精浓度超标标定值进行比较,若小于超标标定值,执行继电器的动作,即驱动继电器、启动电机,然后继续对酒精传感器进行数据采集;若大于标定值,不执行继电器动作,继续对传感器信号进行采集,并通过光电报警器提醒驾驶员。读取后的数据送到数据存储器单元中,经过单片机处

49、理,将该电压值转换成酒精浓度值,用LED数码显示管显示。系统工作时,首行定时器初始化,AD初始化,即将上次存储的数据全部清除,用于存放当前要存储的数据,当时间大于或者等于300ms,进行一次AD采集,通过采集的数据计算出酒精浓度值,显示于LED数码显示管上,并将该酒精浓度值与超标酒精浓度值进行比较,如果大于或者等于设定的酒精浓度超标值,单片机引脚p3.6控制的蜂鸣器将会鸣叫报警,引脚p3.5控制的发光二极管会变亮,同时P3.7脚控制继电器动作来达到强制控制汽车启动防酒驾的目的。定时器初始化程序:void TimerInit(void) TMOD=0 x51; /T1计数 T0定时 工作方式1

50、TH1=0 x00; /计数初值 TL1=0 x00; TH0 = 0 xFC;TL0 = 0 xA9;/1ms ET0=1; TR0=1; /启动 TR1=1;AD初始化程序: uint16 ReadAdcValue(uint8 ch)ADC_CONTR |= ch|ADC_START; /选择待读取的通道_nop_(); /延时等待_nop_();_nop_();_nop_();while(!(ADC_CONTR&ADC_FLAG);/等待转换结束ADC_CONTR &= ADC_FLAG;/清除标志return (ADC_RES=300)/300ms进行一次采集 Time = 0;for

51、(i=0;i=10)/大于10mg/100ml报警LED = 0;/点亮灯BUZZER=1;DelayNms(100);BUZZER=0;DelayNms(100);RELAY=1;/继电器打开elseLED = 1;BUZZER=0;RELAY=0;/继电器关闭显示程序:void ledUpdata(uint16 disData)display0 = disData/1000;display1 = (disData%1000)/100;display2 = (disData%100)/10;display3 = disData%10;void led_display(void)static

52、uint8 led_bit = 0;LEDSEG = 0 xFF;switch (led_bit)case 0:LED0 = 1;LED1 = 0;LED2 = 0;LED3 = 0;break;case 1:LED0 = 0;LED1 = 1;LED2 = 0;LED3 = 0;break;case 2:LED0 = 0;LED1 = 0;LED2 = 1;LED3 = 0;break;case 3:LED0 = 0;LED1 = 0;LED2 = 0;LED3 = 1;break;default:break;LEDSEG = DIS_SEG7displayled_bit;/if(led_b

53、it = 2)/Point = 0;led_bit+;if(led_bit3)led_bit = 0;void Timer0_Isr() interrupt 1 using 1Time+;led_display();TH0 = 0 xFC;TL0 = 0 xA9;/1ms Keil是目前最流行的开发MCS-51系列单片机软件, Keil是目前最流行的开发MCS-51系列单片机软件,这可以从近年来各仿真机厂商对Keil的全面支持即可看出。Keil提供了一个包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等完整的开发系统,再通过一个集成开发环境(uVision)将这些组合在一起。掌握

54、这个软件的使用对于使用开发51系列单片机的爱好者是十分重要的,如果要用C语言编程,那么Keil就是必用的软件,即使不使用C语言编程而仅用汇编语言,其方便实用的集成环境、功能强大的软件仿真调试工具也会提高效率11。使用Keil软件具体步骤为:1、打开Keil软件点击“project”,选择新建文件命名时不需要添加任何后缀名,点击“确定”后选择所需要使用的单片机型号,例如本设计选择ATM STC89C52单片机后确定添加后缀命名,再新建一个文件,在此操作界面上编写程序。2、依次点击“Target1”“Source Group1”和“Add Files to GroupSource Group1”保

55、存刚才命名的文件,点击编译按钮开始编译程序,下拉框会提示错误产生的地方,双击错误处并做修改,直到无错误提示,然后准备生成HEX文件。3、依次点击“project”“Options for TargetTarget1”并设置频率为12MHZ,选择生成HEX文件选项,编译完成后该文件即可烧入单片机内。根据上述的便编译步骤过程,写好程序后,在Keil进行编译,经过数次的改正之后,程序编译无错误,建立工程,使程序编译生成HEX文件,以便在Proteus中与单片机进行系统仿真。第5章 仿真与测试仿真软件 Proteus是英国Labcenter electronics公司开发的的EDA工具软件,可以完成从

56、原理图布局设计、PCB设计、到代码调试再到单片机与外围电路的系统仿真,真正达到了从概念到产品的完整设计要求,是目前世界上唯一的将电路仿真、PCB设计和虚拟模型仿真三合一的设计平台,其支持的处理器模型有8051、PIC、HC11、AVR、8086、ARM、和MSP430,在2010年又增加了Cortex和DSP系列的处理器模型,并一直在持续增加其他系列处理器。ISIS是Proteus电路分析与实物仿真的软件,操作于Windows操作系统上,可仿真、分析(SPICE)各种的模拟器件和集成电路,该软件具有以下特点:可实现单片机仿真与SPICE电路仿真的相结合。具有模拟、数字电路仿真、单片机及其外围电

57、路系统仿真、RS232动态仿真、SPI调试器、键盘扫描、LCD系统仿真的功能;各种虚拟仪器仪表,如示波器、信号发生器、逻辑分析仪等。支持多种主流单片机的系统仿真。支持的单片机类型有:68000系列、8051系列、PIC12系列、AVR系列、PIC16系列、PIC18系列、Z80系列、HC11系列和各种外围芯片。具有软件调试的功能。在调试过程中具有全速、单步、设置断点等不同调试功能,同时也可观察各变量、寄存器等的状态,同时还支持第三方的编译调试软件,如Keil 、wave6000等软件。具备强大的原理图绘制平台。总之,该软件对单片机学习者和爱好者做系统仿真是一个很好的软件,功能极其强大。在PRO

58、TUES当中绘制好电路原理图后,把已编译的目标代码文件:*.HEX加入到硬件电路中,就可以在PROTUES电路原理图中看到模拟实物的运行工作过程。PROTUES 是单片机实践开发的先进助手。它不仅可以将许多单片机开发实例功能形象化,也可将许多单片机开发实例运行过程形象化。前者可相当逼真的得到实物演示的实验效果,后者的效果则是实物演示实验难以达到的。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。由于PROTUES提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。随着科技的发

59、展计算机仿真技术已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能茯得愈来愈广泛的应用。实现Protues与Keil C的接口步骤如下:(1) 安装Protues与 Keil C并同时安装程序;(2) 进入Protues ISIS,选择Debug|Use Remote Debug Monitor菜单选项;(3) 进入Keil C Vision3集成开发环境,创建一个新项目(Project),并为该项目选定合适的单片机型号,加入Keil C 源程序。随后,选择Proje

60、ct Options for Target菜单项,或者单击工具栏中的Options for Target按钮,在弹出的界面选择Debug选项卡,在Use的下拉列表框中选择Protues VSM Simulator,并且选中Use单选框,即在Use前面的小圆圈内出现小黑点。在单击Settings按钮,设置通信接口在Host文本框输入127.0.0.1;茹阔使用的不是同一台电脑,则需要在这里输入另一台电脑的IP地址(另一台电脑安装Protues)。在Port文本框输入8000。设置好以后单击OK按钮即可。最后将工程编译,进入调试状态,并运行。此后,便可实现Keil C 与 Protues连接调试。

温馨提示

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

评论

0/150

提交评论