ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:1.83MB ,
资源ID:27538156      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27538156.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(酒精浓度测试仪的设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

酒精浓度测试仪的设计.docx

1、酒精浓度测试仪的设计酒精浓度测试仪的设计摘 要:本研究设计的酒精浓度测试仪是一款实用性强、安全可靠的气体乙醇浓度检测工具,采用高精度MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC12C5A16AD对检测信号进行A/D转换和处理,最后通过液晶屏显示输出。本研究设计的酒精浓度测试仪还具有醉酒阈值设定功能,可以根据法律法规或用户需要设定修改醉酒阈值,并进行保存。关键词:单片机 A/D转换和处理 醉酒阈值 MQ-3乙醇气体传感器Alcohol concentration test instrument Abstract:This study design alc

2、ohol tester is a new practical, safe and reliable gas ethanol concentration testing tool, Adopting high precision MQ - 3 ethanol gas sensors to detect the concentration of ethanol in the air, the use of macro crystal company high performance low cost STC12C5A16AD microcontroller to detection signal

3、A/D conversion and processing, finally through the LCD screen display output. This study design alcohol tester also has drunk threshold setting function, can according to laws and regulations or the user need to set modify drunk threshold, and save.Keywords:Scm A/D conversion and processing Drunk th

4、reshold MQ - 3 ethanol gas sensor第一章 绪论 11.1本课题的研究的背景以及现实意义 11.2关于本课题的简介 21.3课题论述总体结构安排 2第二章 硬件设计 32.1设计框图 32.2乙醇信号检测及调理电路 32.3单片机电路 62.4显示电路 82.5阈值存储 92.6供电及程序下载电路 10第三章 Protel硬件开发软件 113.1 Protel软件组成 113.2 PCB板设计 12第四章 软件编程 154.1软件流程图 154.2主程序 15第五章 酒精浓度测试仪的安装与调试 235.1酒精浓度测试仪的注意事项 235.1.1 手工焊接的基本概述

5、 235.1.2 元件清单 235.2 酒精浓度测试仪的实物调试 245.2.1 USB转串口驱动安装 245.2.2下载程序 245.2.3调试说明 26设计总结 28致 谢 29参考文献 30附录 31第一章 绪论1.1本课题的研究的背景以及现实意义自刑法修正案(八)和修改后的道路交通安全法正式实施,“醉酒驾驶”正式入刑。不仅交警部门,而且很多车主都期盼能够有便携仪器方便地测量气体酒精浓度,为安全驾驶提供保障,有效减少重大交通事故的发生。2000年以来,随着中国经济的高速发展,人民生活水平的迅速提高,中国逐渐步入“汽车社会”,酒后驾驶行为所造成事故越来越多,对社会的影响也越来越大,酒精正在

6、成为越来越凶残的“马路杀手”。据有关资料统计,全世界每年因车祸丧生的人数就超过60万人,留下永久性伤残者在400万以上,一般受伤者则不计其数。在许多国家,车祸已成为第一位意外死亡原因。此外,由交通事故造成的经济损失也相当惊人。据事故调查统计,大约50%60%的车祸与饮酒有关。中国公安部在2009年8月,在全国各地加强查处酒后驾驶的力度,以减少由酒后驾驶造成的恶性交通事故。要查处就涉及到检测人体内的酒精含量和使用设备来进行检测的问题。 图1-1 毕业设计设计产品1.2关于本课题的简介本研究设计的酒精浓度测试仪是一款实用性强、安全可靠的气体乙醇浓度检测工具,采用高精度MQ-3乙醇气体传感器对空气中

7、的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC12C5A16AD对检测信号进行A/D转换和处理,最后通过液晶屏显示输出。本研究设计的酒精浓度测试仪还具有醉酒阈值设定功能,可以根据法律法规或用户需要设定修改醉酒阈值,并进行保存。酒精浓度测试仪如图1所示,由MQ-3乙醇气体传感器、STC12C5A16AD(或STC12C5A32AD)单片机、EEPROM存储电路、液晶屏和键盘组成。检测原理:当具有N型导电性的氧化物暴露在大气中时,会由于氧气的吸附而减少其内部的电子数量而使其电阻增大。其后如果大气中存在某种特定的还原性气体,它将与吸附的氧气反应,从而使氧化物内的电子数增加,导致氧化物电阻减

8、小。半导体氧化物传感器就是通过该阻值的变化来分析气体浓度。从理论上说,要判断是否是酒后驾驶,最简单可行的方法是现场检测驾驶人员呼气中的酒精含量。大量的统计研究结果表明,如果被测者深吸气后以中等力度呼气达三秒钟以上,这时呼出的气就是从肺部深处出来的气体,呼气中的酒精含量与血液中的酒精含量。 根据国家质量监督检验检疫局发布的车辆驾驶人员血液、呼气酒精含量阈值与检验(GB195222004)中规定,该规定指出,饮酒驾车是指车辆驾驶人员血液中的酒精含量大于或者等于20mg/100ml,小于80mg/100ml的驾驶行为。醉酒驾车是指车辆驾驶人员血液中的酒精含量大于或者等于80mg/100ml的驾驶行为

9、。1.3课题论述总体结构安排第一章叙述了酒精浓度测试仪背景以及简介第二章硬件设计。第三章主要讨论应用Protel硬件开发软件第四章软件设计第五章为酒精浓度测试仪安装与调试。第六章为总结和展望,总结本课题设计的总体思路,产品的功能以及对于产品功能升级等进行情景展望。第二章 硬件设计2.1设计框图本研究设计的酒精浓度测试仪框图如图1所示。MQ-3乙醇气体传感器输出信号经信号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经AD转换,与设定的醉酒阈值进行比较,并显示或报警。图1 酒精浓度测试仪方框图2.2乙醇信号检测及调理电路MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其

10、他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测。其技术特点为:对乙醇蒸汽有很高的灵敏度和良好的选择性快速的响应恢复特性长期的寿命和可靠的稳定性简单的驱动回路主要技术指标:MQ-3乙醇气体传感器灵敏度曲线如图2所示,其传感原理为气敏电阻的输出阻值随乙醇气体等浓度变化而变化。图2 MQ-3乙醇气体传感器灵敏度曲线Q-3乙醇气体传感器管脚与测试电路如图3所示。 (a) 管脚图 (b) 测试电路图3 MQ-3乙醇气体传感器管脚及测试电路MQ-3乙醇气体传感器及其调理电路原理如图4所示。其外形如图5所示。经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。 图4 传感器

11、及调理模块原理图 图5 MQ-3传感器模块外形图该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。具有信号输出指示。双路信号输出(模拟量输出及TTL电平输出)TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机) 模拟量输出05V电压,浓度越高电压越高。2.3单片机电路本设计选用宏晶公司高性能单片机STC12C5A16AD,其管脚如图6所示。图6 STC12C2052AD单片机管脚图该芯片为52内核8位单片机,内部集成了10位多路A/D转换模块,适用于常用检测电路。由STC12C5A16AD组成的单片机系统原理图如图7所示。图中AOUT为MQ-3传感器模块输出的检测电

12、压信号,送入ADC7端口进行处理,DOUT为传感器模块输出的数字电平信号,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。图7 单片机系统原理图 图7中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”按键。L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。2.4显示电路 显示部分采用SMC 1602液晶屏进行数据显示,其主要技术参数为:表1 液晶屏技术指标接口信号说明如表2所示。与单片机接口电路如图8所示。其中J2的3脚为背光引脚,R9和R10电阻用于调节背光亮度。J2的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,J2的714引

13、脚为数据引脚。图8 LCD与单片机接口电路2.5阈值存储醉酒阈值存储在EEPROM芯片AT24C04中,并可以通过 “增加”、“减少”按键调节并保存。AT24C04是IIC接口的EEPROM芯片,可以用于掉电不易失数据的存储。其电路如图9所示。图中A0、A1和A2为芯片的地址引脚,一般接地即可。SCL和SDA为AT24C04和单片机IIC通信的时钟线和数据线。图9 EEPROM存储电路2.6供电及程序下载电路本设计采用USB接口供电,电源电压5V。同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。其电路原理如图10所示。图10 供电及程序下载电路第三章 Protel硬件开

14、发软件3.1 Protel软件组成Protel软件主要由电路原理图设计模块、印制电路板设计模块(PCB设计模块)、电路信号仿真模块和PLD逻辑器件设计模块等组成,各模块具有强大的功能,可以很好的实现电路设计与分析。(1) 原理图设计模块(Schematic模块)电路原理图是表示电气产品或电路工作原理的重要技术文件,电路原理图主要由代表各种电子器件的图形符号、线路和结点组成。图4.1所示为一张电路原理图。该原理图是由Schematic模块设计完成的。Schematic模块具有如下功能:丰富而灵活的编辑功能、在线库编辑及完善的库管理功能、强大的设计自动化功能、支持层次化设计功能等。 (2) 印制电

15、路板设计模块(PCB设计模块)印制电路板(PCB)制板图是由电路原理图到制作电路板的桥梁。设计了电路原理图后,需要根据原理图生设计成印制电路板的制板图,然后在根据制板图制作具体的电路板。印制电路板设计模块具有如下主要功能和特点:可完成复杂印制电路板(PCB)的设计;方便而又灵活的编辑功能;强大的设计自动化功能;在线式库编辑及完善的库管理;完备的输出系统等。(3) 电路信号仿真模块电路信号仿真模块是一个功能强大的数字/模拟混合信号电路仿真器,能提供连续的模拟信号和离散的数字信号仿真。它运行在Protel的EDA/Client集成环境下,与Protel Advanced Schematic原理图输

16、入程序协同工作,作为Advanced Schematic的扩展,为用户提供了一个完整的从设计到验证仿真设计环境。在Protel中进行仿真,只需从仿真用元器件库中放置所需的元器件,连接好原理图,加上激励源,然后单击防真按钮即可自动开始。3.2 PCB板设计(1) 定元件的封装 打开网络表(可以利用一些编辑器辅助编辑),将所有封装浏览一遍,确保所有元件的封装都正确无误并且元件库中包含所有元件的封装,网络表中所有信息全部大写,一面载入出问题,或PCB BOM不连续。 标准元件全部采用公司统一元件库中的封装。 元件库中不存在的封装,应自己建立元器件库。(2) 建立PCB板框 根据PCB结构图,或相应的

17、模板建立PCB文件,包括安装孔、禁布区等相关信息。 尺寸标注。在钻孔层中应标明PCB的精确结构,且不可以形成封闭尺寸标注。(3) 载入网络表 载入网表并排除所有载入问题,具体请看PROTEL技术大全。其他软件载入问题有很多相似之处,可以借鉴。 如果使用PROTEL,网表须载入两次以上(没有任何提示信息)才可以确认载入无误。(4) 布局 首先要确定参考点。一般参考点都设置在左边和底边的边框线的交点(或延长线的交点)上或印制板的插件的第一个焊盘。 一但参考点确定以后,元件布局、布线均以此参考点为准。布局推荐使用25MIL网格。 根据要求先将所有有定位要求的元件固定并锁定。 布局的基本原则 A. 遵

18、循先难后易、先大后小的原则。B. 布局可以参考硬件工程师提供的原理图和大致的布局,根据信号流向规律放置主要原器件。C. 总的连线尽可能的短,关键信号线最短。D. 强信号、弱信号、高电压信号和弱电压信号要完全分开。E. 高频元件间隔要充分。F. 模拟信号、数字信号分开。 相同结构电路部分应尽可能采取对称布局。 按照均匀分布、重心平衡、版面美观的标准来优化布局。(5) PCB设计遵循的规则 地线回路规则:图11 地线回路规则环路最小规则,即信号线与其回路构成的环面积要尽可能小,环面积要尽可能小,环面积越小,对外的辐射越少,接收外界的干扰也越小。针对这一规则,在地平面分割时,要考虑到地平面与重要信号

19、走线的分布,防止由于地平面开槽等带来的问题;在双层板设计中,在为电源留下足够空间的情况下,应该将留下的部分用参考地填充,且增加一些必要的过孔,将双面信号有效连接起来,对一些关键信号尽量采用地线隔离,对一些频率较高的设计,需特别考虑其地平面信号回路问题,建议采用多层板为宜。 窜扰控制窜扰(CrossTalk)是指PCB上不同网络之间因较长的平行布线引起的相互干扰,主要是由于平行线间的分布电容和分布电感的作用。克服窜扰的主要措施是:A.加大平行布线的间距,遵循3W规则。B.在平行线间插入接地的隔离线。C.减少布线层与地平面的距离 屏蔽保护图12 屏蔽保护对应地线回路规则,实际上也是为了尽量减小信号

20、的回路面积,多用于一些比较重要的信号,如时钟信号,同步信号;对一些特别重要,频率特别高的信号,应该考虑采用铜轴电缆屏蔽结构设计,即将所布的线上下左右用地线隔离,而且还要考虑好如何有效的让屏蔽地与实际地平面有效结合。 走线方向控制规则相邻层的走线方向成正交结构,避免将不同的信号线在相邻层走成同一方向,以减少不必要的层间窜扰;当由于板结构限制(如某些背板)难以避免出现该情况,特别是信号速率较高时,应考虑用地平面隔离各布线层,用地信号线隔离各信号线。 电源与地线层的完整性规则对于导通孔密集的区域,要注意避免孔在电源和地层的挖空区域相互连接,形成对平面层的分割,从而破坏平面层的完整性,并进而导致信号在

21、地层 的回路面积增大。第四章 软件编程4.1软件流程图本设计软件主程序流程图如图13所示。图13 主程序流程图4.2主程序 下面介绍main.c主程序编写,其他程序略(1) 头文件和一些宏定义#include STC12c5A.h#include 1602.h#include 2402.h#define uchar unsigned char#define uint unsigned int(2) 常量、变量定义和函数声明/声明常量#define ALCH 80 /醉驾标准80mg/L/K_MG_MV和K_ZERO为传感器校准系数,要根据每个MQ-3模块校准#define K_MG_MV 16

22、0/60 /传感器灵敏度系数,可以自行校准#define K_ZERO 0 /传感器零点漂移/定义按键sbit Key_Up = P36;sbit Key_Down = P37;/定义LED报警灯sbit Led_Warn1 = P34;sbit Led_Warn2 = P35;/定义乙醇传感器TTL电平输出引脚sbit DOUT = P14;/定义标识volatile bit FlagStartAL = 0; /开始转换标志volatile bit FlagKeyPress = 0; /有键弹起标志/全局变量定义uchar Threshold; /酒精浓度上限报警值uint ALCounte

23、r; /酒精转换计时器int ALValue; /酒精测量值float ALtemp; /计算临时变量uint keyvalue, keyUp, keyDown; /键值char * pSave; /EEPROM存盘用指针/函数声明void Data_Init();void Timer0_Init();void Port_Init();void ADC_Init();uchar GetADVal();void KeyProcess(uint )(3) 各子程序/数据初始化void Data_Init() ALCounter = 0; ALValue = 0; Led_Warn1 = 1; Le

24、d_Warn2 = 2; keyvalue = 0; keyUp = 1; keyDown = 1;/定时器0初始化,中断时间约2毫秒/计算:晶振11.0592MHz,定时器时钟11059200/12=921600,每毫秒922个脉冲/ 16位定时器初值65536-1844=63692=0xf8ccvoid Timer0_Init() ET0 = 1; /允许定时器0中断 TMOD = 1; /定时器工作方式选择 TL0 = 0xcc; / TH0 = 0xf8; /定时器赋予初值,大约为2毫秒中断1次 TR0 = 1; /启动定时器/定时器0中断void Timer0_ISR (void)

25、interrupt 1 using 0 TL0 = 0xcc; TH0 = 0xf8; /定时器赋予初值 /每1秒钟启动一次AD转换 ALCounter +; if (ALCounter = 500) FlagStartAL = 1; ALCounter = 0; /端口初始化void Port_Init() P1M0 = 0x80; /10000000,P1.7作为AD输入 P1M1 = 0x80; /ADC初始化void ADC_Init() uint i; P1ASF = 0x80; /设P1.7为AD输入 ADC_RES = 0; /清先前的结果 ADC_CONTR|=0x80; /P

26、OWER=1,打开ADC电源 for(i=5000;i0;i-) ; /延时 ADC_CONTR = ADC_CONTR&0xE0; /1110,0000 清ADC_FLAG,ADC_START和低3位 ADC_CONTR = ADC_CONTR&0xf8|0x07; /设置当前通道号为P1.7 for(i=2500;i0;i-) ; /延时/进行AD转换,得到当前酒精值uchar GetADVal() uint i; ADC_CONTR&=0xf7; for(i=250;i0;i-); /待输入电压稳定后开始转换 /ADC_RES = 0; ADC_CONTR |= 0x08; /ADC_S

27、tart=1, 启动转换 while(ADC_CONTR&0x10)=0); /等待转换结束ADC_FLAG=1 ADC_CONTR&=0xe7; /清ADC_FLAG和ADC_START位,停止转换 return ADC_RES;/存入设定值void Save_Setting() pSave = (char *)&Threshold; /地址低位对应低8位,高位对应高8位 wrteeprom(0, *pSave); /存醉酒阈值低8位 DELAY(300); pSave +; wrteeprom(1, *pSave); /存醉酒阈值高8位 DELAY(300);/载入设定值void Load

28、_Setting() pSave = (char *)&Threshold; *pSave+ = rdeeprom(0); *pSave = rdeeprom(1); if (Threshold=255)|(Threshold0) Threshold = 80;/按键处理程序,参数为键值,1为Up键,2为Down键void KeyProcess(uint num) switch (num) case 1: if (Threshold1) Threshold-; break; default: break; L1602_int(2,9,Threshold); Save_Setting();voi

29、d main() uint i,j; EA = 0; Data_Init(); /数据初始化 Timer0_Init(); /定时器0初始化 Port_Init(); /端口初始化 ADC_Init(); /ADC初始化 EA = 1; L1602_init(); L1602_string(1,1,Welcome to ALCT! ); L1602_string(2,1,Designed by AAA ); /延时 for (i=0;i1000;i+) for (j=0;j1000;j+) ; /清屏 L1602_string(1,1, ); L1602_string(2,1, ); L160

30、2_string(1,1,Alcohol: mg/L); L1602_string(2,1,Thresho: mg/L); /载入设定值 Load_Setting(); L1602_int(2,9,Threshold); while(1) /如果FlagStartAL标志置位,则进行AD转换 if (FlagStartAL = 1) /酒精浓度换算,50mg/L=62.5ppm,传感器灵敏度应事先校准 ALValue = 500 * GetADVal() / 256; /8位ADC,首先得到电压值,单位10毫伏 ALValue = ALValue - K_ZERO; /首先减去零点漂移,一般是130mV if (ALValue 0) ALValue = 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1