酒精浓度检测测验仪STCCAAD设计方案报告_第1页
酒精浓度检测测验仪STCCAAD设计方案报告_第2页
酒精浓度检测测验仪STCCAAD设计方案报告_第3页
酒精浓度检测测验仪STCCAAD设计方案报告_第4页
酒精浓度检测测验仪STCCAAD设计方案报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、酒精浓度测试仪设计报告一、 设 计意义自刑法修正案 (八) 和修改后的道路交通安全法正式实施,“醉酒驾 驶”正式入刑。 不仅交警部门, 而且很多车主都期盼能够有便携仪器方便地测量 气体酒精浓度,为安全驾驶提供保障,有效减少重大交通事故的发生。 矚慫润厲钐 瘗睞枥庑赖。本研究设计的酒精浓度测试仪是一款实用性强、 安全可靠的气体乙醇浓度检 测工具,采用高精度 MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用 宏晶公司高性能低成本单片机 STC12C5A16A对D检测信号进行 A/D 转换和处理, 最后通过液晶屏显示输出。 本研究设计的酒精浓度测试仪还具有醉酒阈值设定功 能,可以根据法律法规或

2、用户需要设定修改醉酒阈值,并进行保存。 聞創沟燴鐺險爱 氇谴净。、 硬 件设计1、设计框图本研究设计的酒精浓度测试仪框图如图 1 所示。 MQ-3 乙醇气体传感器输出 信号经信号调理电路处理, 输出随乙醇浓度变化的电压信号, 该电压信号送入单 片机系统,经 AD 转换,与设定的醉酒阈值进行比较,并显示或报警。 残骛楼諍锩 瀨濟溆塹籟。MQ-3 传感器模块图 1 酒精浓度测试仪方框图2、乙醇信号检测及调理电路MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人 员的现场检测,也用于其他场所乙醇蒸汽的检测。其技术特点为: 酽锕极額閉镇桧猪 訣锥。对乙醇蒸汽有很高的灵敏度和良好的选择

3、性 快速的响应恢复特性 长期的寿命和可靠的稳定性 简单的驱动回路MQ-3乙醇气体传感器灵敏度曲线如图 2 所示,其传感原理为气敏电阻的输 出阻值随乙醇气体等浓度变化而变化。 彈贸摄尔霁毙攬砖卤庑。图 2 MQ-3 乙醇气体传感器灵敏度曲线MQ-3乙醇气体传感器管脚与测试电路如图 3 所示。(a) 管脚图 (b) 测试电路图 3 MQ-3 乙醇气体传感器管脚及测试电路MQ-3 乙醇气体传感器及其调理电路原理如图 4 所示。其外形如图 5 所示。 经过调理,检测信号由电阻值转变成电压值, 便于后续电路进行 A/D 转换和处理 謀荞抟箧飆鐸怼类蒋薔。图 4 传感器及调理模块原理图图 5 MQ-3 传

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

5、AOUT 为 MQ-3传感器模块输出的检测电压信号,送入 ADC7端口进行处理, DOUT为传 感器模块输出的数字电平信号,该信号可以根据乙醇气体浓度直接输出报警信 号,报警阈值通过模块上的电位器进行调节。 厦礴恳蹒骈時盡继價骚。图 7 单片机系统原理图图 7 中,按键 K2和 K3为醉酒阈值调整键,其中 K2为“增加”, K3 为“减 小”按键。 L2和 L3为报警指示灯,分别可以进行酒后和醉酒两级报警。 茕桢广鳓 鯡选块网羈泪。4、显示电路显示部分采用 SMC 1602液晶屏进行数据显示,其主要技术参数为:表 1 液晶屏技术指标接口信号说明如表 2 所示。表 2 液晶屏接口信号说明与单片机

6、接口电路如图 8所示。其中 J2的 3脚为背光引脚, R9和 R10电阻 用于调节背光亮度。 J2的 4、5、6引脚分别接液晶的 RS、E/W和 E控制引脚, J2 的 714 引脚为数据引脚。 鹅娅尽損鹌惨歷茏鴛賴。图 8 LCD 与单片机接口电路5、阈值存储醉酒阈值存储在 EEPROM芯片 AT24C04中,并可以通过“增加”、“减少” 按键调节并保存。 AT24C04是 IIC 接口的 EEPRO芯M 片,可以用于掉电不易失数 据的存储。其电路如图 9 所示。图中 A0、A1和 A2 为芯片的地址引脚,一般接地 即可。 SCL和 SDA为 AT24C04和单片机 IIC 通信的时钟线和数

7、据线。 籟丛妈羥为贍偾 蛏练淨。图 9 EEPROM 存储电路6、供电及程序下载电路本设计采用 USB接口供电,电源电压 5V。同时,USB 接口通过内含 PL2303 芯片的转换电路对单片机进行程序编写。其电路原理如图 10 所示。 預頌圣鉉儐歲龈讶 骅籴。图 10 供电及程序下载电路三、 软件编程1、软件流程图本设计软件主程序流程图如图 11 所示数据初始化图 11 主程序流程图2、主程序下面介绍 main.c 主程序编写,其他程序略(1) 头文件和一些宏定义#include STC12c5A.h#include 1602.h#include 2402.h#define uchar uns

8、igned char #define uint unsigned int(2) 常量、变量定义和函数声明 /声明常量 #define ALCH80 / 醉驾标准 80mg/LMQ-3 模块校准 可以自行校准/K_MG_MV 和 K_ZERO 为传感器校准系数,要根据每个 #define K_MG_MV 160/60/传感器灵敏度系数,#define K_ZERO 0 /传感器零点漂移 /定义按键 sbit Key_Up = P36; sbit Key_Down = P37;/定义 LED 报警灯 sbit Led_Warn1 = P34; sbit Led_Warn2 = P35;/定义乙醇传

9、感器 TTL 电平输出引脚 sbit DOUT = P14;/定义标识volatile bit FlagStartAL = 0; / 开始转换标志volatile bit FlagKeyPress =0; / 有键弹起标志/全局变量定义uchar Threshold;/酒精浓度上限报警值uint ALCounter;/酒精转换计时器int ALValue;/酒精测量值float ALtemp;/计算临时变量uint keyvalue, keyUp, keyDown; / 键值char * pSave; /EEPROM 存盘用指针/函数声明void Data_Init(); void Timer

10、0_Init();void Port_Init();void ADC_Init();uchar GetADVal();void KeyProcess(uint );(3) 各子程序/数据初始化 void Data_Init() ALCounter = 0;ALValue = 0;Led_Warn1 = 1;Led_Warn2 = 2; keyvalue = 0;keyUp = 1; keyDown = 1;/定时器 0初始化,中断时间约 2 毫秒/计算:晶振 11.0592MHz ,定时器时钟 11059200/12=921600 ,每毫秒 922个脉冲 渗釤呛俨匀谔 鱉调硯錦。/ 16 位定

11、时器初值 65536-1844=63692=0xf8ccvoid Timer0_Init()ET0 = 1;/ 允许定时器 0 中断TMOD = 1;/定时器工作方式选择TL0 = 0xcc;/TH0 = 0xf8;/ 定时器赋予初值,大约为 2 毫秒中断 1 次TR0 = 1;/启动定时器/定时器 0 中断void Timer0 ISR (void) interrupt 1 using 0TL0 = 0xcc;TH0 = 0xf8;/定时器赋予初值/每 1 秒钟启动一次 AD 转换 ALCounter +;if (ALCounter = 500)FlagStartAL = 1;ALCount

12、er = 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;/POWER=1, 打开 ADC 电源for(i=5000;i0;i-) ; / 延时ADC_CONTR = ADC_CONTR&0xE0; /1110,0000清 ADC_FLAG,ADC_START 和低 3 位铙誅卧泻噦圣骋贶頂廡。ADC_CONTR

13、= 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 Start=1, 启动转换while(ADC_CONTR&0x10)=0); / 等待转换结束 ADC_FLAG=1ADC_CONTR&=0xe7;/ 清 ADC_FLAG 和 ADC_START 位,停止转换 擁締凤袜备訊顎轮

14、烂蔷。return ADC_RES;/存入设定值void Save_Setting()pSave = (char *)&Threshold;/地址低位对应低 8 位,高位对应高 8 位wrteeprom(0, void Load Setting()pSave = (char *)&Threshold;*pSave+ = rdeeprom(0); pSave = rdeeprom(1);if (Threshold=255)|(Threshold0) Threshold = 80; 贓熱俣阃歲匱阊邺镓騷。pSave);/存醉酒阈值低8位DELAY(300);pSave +;wrteeprom(1,

15、 *pSave);/存醉酒阈值高8位DELAY(300); /载入设定值/按键处理程序,参数为键值, 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();void main()uint i,j;EA = 0;Data_Init();/数据初始化Timer0_Init();/ 定时器 0 初始化Port_Init();/端口初始化ADC_Init();/AD

16、C 初始化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,);L1602_string(1,1,Alcohol:mg/L);L1602_string(2,1,Thresho:mg/L);/载入设定值Load_Setting();L1602_int(2,9,Threshold);while(1)/如果 Fl

17、agStartAL 标志置位,则进行 AD 转换if (FlagStartAL = 1)/酒精浓度换算, 50mg/L=62.5ppm ,传感器灵敏度应事先校准ALValue = 500 * GetADVal() / 256;/8 位 ADC ,首先得到电压值,单位 10 毫伏坛摶乡囂忏蒌鍥铃氈淚。ALValue = ALValue - K_ZERO;/首先减去零点漂移,一般是 130mV 蜡變黲癟報伥铉锚鈰赘。if (ALValue Threshold) Led_Warn1 = 0; / 超过阈值,则 Led_Warn1 灯报警。 綾镝 鯛駕櫬鹕踪韦辚糴。else Led_Warn1 = 1

18、; FlagStartAL = 0;/查询乙醇传感器 TTL 电平,该指示灯为传感器模块报警if (DOUT = 0) Led_Warn2 = 0;else Led_Warn2 = 1; /键盘查询,在弹起时响应 if (Key_Up)&(keyUp=0) FlagKeyPress = 1; keyvalue = 1;驅踬髏彦浃绥譎饴憂锦。else if (Key_Down)&(keyDown=0) FlagKeyPress = 1; keyvalue = 2; 猫虿驢绘燈鮒诛 髅貺庑。if (FlagKeyPress = 1) KeyProcess(keyvalue); FlagKeyPre

19、ss = 0;if (!Key_Up) keyUp = 0;else keyUp = 1;if (!Key_Down) keyDown = 0;else keyDown = 1; 四、 下载与调试当程序在 uVision 环境下编写完成,并编译生成 .hex 文件后,就可以下载并 进行调试了。1、USB 转串口驱动安装打开 USB 驱动文件夹下的 PL2303_Prolific_DriverInstaller_v130.exe 安装文 件,按提示安装 USB转串口驱动程序。 安装完成后,插入 USB下载线后,在开 始-控制面板-打印机和其他硬件 -设备管理器 ,在“端口”分支下有(Prolif

20、ic USB-to-Serial Comm Port(COMX) 。X 表示串口号,如果没有说明 USB 转串口驱 动没有安装,须重新安装。记住括号里的 COM 口号。 锹籁饗迳琐筆襖鸥娅薔。图 12 成功安装 USB 转串口驱动示意图2、下载程序打开 STC 单片机下载软件文件夹,点击运行 STC_ISP_V481.exe程序,出现 如下界面。图 13 下载软件正确选择 MCU 类型, COM 口(与刚才安装的 COM 号一致),最高波特率 和最低波特率都选 2400bps或者 1200bps (下载线内 PL2303 芯片所限,没办 法!),并打开正确的 .hex数据文件。 構氽頑黉碩饨荠龈话骛。点击“ Downloa

温馨提示

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

评论

0/150

提交评论