酒精浓度测试仪(STC12C5A16AD)设计报告_第1页
酒精浓度测试仪(STC12C5A16AD)设计报告_第2页
酒精浓度测试仪(STC12C5A16AD)设计报告_第3页
酒精浓度测试仪(STC12C5A16AD)设计报告_第4页
酒精浓度测试仪(STC12C5A16AD)设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

酒精浓度测试仪设计报告、设计意义自《刑法修正案(八)》和修改后的《道路交通安全法》正式实施,“醉酒驾驶”正式入刑。不仅交警部门,而且很多车主都期盼能够有便携仪器方便地测量气体酒精浓度,为安全驾驶提供保障,有效减少重大交通事故的发生。本研究设计的酒精浓度测试仪是一款实用性强、安全可靠的气体乙醇浓度检测工具,采用高精度MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC12C5A16AD对检测信号进行A/D转换和处理,最后通过液晶屏显示输出。本研究设计的酒精浓度测试仪还具有醉酒阈值设定功能,可以根据法律法规或用户需要设定修改醉酒阈值,并进行保存。二、硬件设计1、设计框图本研究设计的酒精浓度测试仪框图如图1所示。MQ-3乙醇气体传感器输出信号经信号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经AD转换,与设定的醉酒阈值进行比较,并显示或报警。图1酒精浓度测试仪方框图2、乙醇信号检测及调理电路MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测。其技术特点为:•对乙醇蒸汽有很高的灵敏度和良好的选择性•快速的响应恢复特性长期的寿命和可靠的稳定性简单的驱动回路MQ-3乙醇气体传感器灵敏度曲线如图2所示,其传感原理为气敏电阻的输出阻值随乙醇气体等浓度变化而变化。10Jin10L图2MQ-310Jin10L图2MQ-3乙醇气体传感器灵敏度曲线—♦—ALcoho1—E—senzitiehCH4——Hexatie—L?G—•—0MQ-3乙醇气体传感器管脚与测试电路如图3所示。(a)管脚图(b)(a)管脚图图3MQ-3乙醇气体传感器管脚及测试电路MQ-3乙醇气体传感器及其调理电路原理如图4所示。其外形如图5所示。

经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。图4传感器及调理模块原理图HUU7吨kO—图4传感器及调理模块原理图HUU7吨kO—矮5V电源正极L-e—TTL高低电平输出端F——模拟削压輪出眾S—接电源负极TTL输出灵敏度调节图5MQ-3传感器模块外形图该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。具有信号输出指示。双路信号输出(模拟量输出及TTL电平输出)TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机)模拟量输出0〜5V电压,浓度越高电压越高。3、单片机电路本设计选用宏晶公司高性能单片机STC12C5A16AD,其管脚如图6所示。2CLKaUIlADC&'Pl.O2CLKaUIlADC&'Pl.OIZZ40ADCI/P11—RzdX/ECLADCmQ二TxD2.CPPO.ADC3/Pl.3二SS.CFFI..ADC4-F1.4I—MO^ADCSyPl二PDIP4恵J5皿C1ADXP16二;7SGL&ADC7/P1.7^JP4.方RSI匚833932INT必D旧.0匚二1011T£&'P3.1:—1130INT屈2|—1229lNri/P3.3[—ClJCCUIWmT™P34二1J281427CLKOUTl/TNr/TljT3.5=1526WE/F%二25昴P3JC~172J5UAL2I_1S23XTAL1=1?22GndC—2021ZZVcc_IPOO二IP0.1STC12C5A16AD一IPD4—IP0.5二IPQ.6]P0.7二IKK_LVH,Pt.6u'RST2二IALEP+.j—INA-T4.斗—im.Aij二IP2.&-A14二IP25..ABIP2.4..A12_IP13jA11Z^P2.2/A10二IP2.1/A91F2.D/A3图6STC12C2052AD单片机管脚图该芯片为52内核8位单片机,内部集成了10位多路A/D转换模块,适用于常用检测电路。由STC12C5A16AD组成的单片机系统原理图如图7所示。图中AOUT为MQ-3传感器模块输出的检测电压信号,送入ADC7端口进行处理,DOUT为传感器模块输出的数字电平信号,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。

+5V+5V+职单片机系统Cl4-jjl10uF沁总SCL2402SEVi24DOUT~5AOUTSRXD 10TXDR5lk11!k1510K口、+5V+5V+职单片机系统Cl4-jjl10uF沁总SCL2402SEVi24DOUT~5AOUTSRXD 10TXDR5lk11!k1510K口、U1STC12CI5A16AD锁—■—HH+| oo i?NDC2比P1.0/ADC0P1.1/ADC1P1.2iADC-^P1.3/ADC3'P1.4/ADC4P1.5JADC5:P1.6/AD0t5.piMdc?'RXD/P3.0TXD/P3.1INTCL?3^INT1/P3.3T0/P3:4世疡RD/P3-.7-P0.0/AD0P0.17AD1PCI.雜D2PO.3AD3P0.4/AD4P0.5/AD5P0^/AD6F0.7/AD7ALF^TRC^PSENP2-.7/A15'P2^/A14P2融13P2.4/A12P2.3/A11P2.2/A10P2.HA9P2.0/AS39POOCDC5ll.b5?2MC3gnd|3^]~7cipF图7单片机系统原理图图7中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”按键。L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。4、显示电路显示部分采用SMC1602液晶屏进行数据显示,其主要技术参数为:表1液晶屏技术指标显示容量:显示容量:芯片工作电压;工作电就;模块最佳工作电正字符尺寸:15X2个字符4.5—55V2.ftnA(5.OV)5.OV2.95X4箱(WXH)mni接口信号说明如表2所示。表2液晶屏接口信号说明

编号符号引脚说明编号符号引脚说明1VSS电源地9D2DataI/O2VDD电源正极10D3DataI/O3VL液晶显示偏压倍号11MDataI/O4RS数据/■命鲁选择鐸(H几)12D5DataI/O5读/写选择端(H/L)13D6Data1/O6E.使能倍号1斗D7DataI/O7DODataI/O丨50LA背光源正极8DIData1/016BLK背光源命极与单片机接口电路如图8所示。其中J2的3脚为背光引脚,R9和R10电阻用于调节背光亮度。J2的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,J2的7—14引脚为数据引脚。图8LCD与单片机接口电路5、阈值存储醉酒阈值存储在EEPROM芯片AT24C04中,并可以通过“增加”、“减少”按键调节并保存。AT24C04是IIC接口的EEPROM芯片,可以用于掉电不易失数据的存储。其电路如图9所示。图中AO、A1和A2为芯片的地址引脚,一般接地即可。SCL和SDA为AT24C04和单片机IIC通信的时钟线和数据线。

2<i2SCL2<I2SD^图9EEPROM2<i2SCL2<I2SD^图9EEPROM存储电路VceAOWPAl:黨LA-2SDAVss6、供电及程序下载电路本设计采用USB接口供电,电源电压5V。同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。其电路原理如图10所示。附E电源及下磁口JIH脚(RXD播H脚(RXD播UkE^<TXDj4MTXD^USFXDBtxF-PQLIV^fpowERDI1N414SRXD图10供电及程序下载电路三、软件编程1、软件流程图本设计软件主程序流程图如图11所示。

图11主程序流程图2、主程序下面介绍main.c主程序编写,其他程序略头文件和一些宏定义#include"STC12c5A.h"#include"16O2.h"#include"24O2.h"#defineucharunsignedchar#defineuintunsignedint常量、变量定义和函数声明〃声明常量#defineALCH 80 //醉驾标准80mg/L〃K_MG_MV和K_ZERO为传感器校准系数,要根据每个MQ-3模块校准#defineK_MG_MV160/60 〃传感器灵敏度系数,可以自行校准#defineK_ZERO 0 〃传感器零点漂移〃定义按键sbitKey_Up=P3A6;sbitKey_Down=卩3人7;〃定义LED报警灯sbitLed_Warn1=卩3人4;sbitLed_Warn2=卩3人5;〃定义乙醇传感器TTL电平输出引脚sbitDOUT=P1A4;〃定义标识volatilebitFlagStartAL=0;//开始转换标志volatilebitFlagKeyPress=0;//有键弹起标志〃全局变量定义ucharThreshold;〃酒精浓度上限报警值uintALCounter;〃酒精转换计时器int ALVilue;//酒精测量值floatALtemp;//计算临时变量uintkeyvalue,keyUp,keyDown;//键值char*pSave; //EEPROM存盘用指针〃函数声明voidData_Init();voidTimer0_Init();voidPort_Init();voidADC_Init();ucharGetADVal();voidKeyProcess(uint);(3)各子程序〃数据初始化voidData_Init(){ALCounter=0;ALVilue=0;Led_Warn1=1;Led_Warn2=2;keyvalue=0;keyUp=1;keyDown=1;}〃定时器0初始化,中断时间约2毫秒〃计算:晶振11.0592MHz定时器时钟11059200/12=921600,每毫秒922个脉冲// 16位定时器初值65536-1844=63692=0xf8ccvoidTimer0_Init(){ET0=1;〃允许定时器0中断TMOD=1;〃定时器工作方式选择TL0=0xcc;//TH0=0xf8;〃定时器赋予初值,大约为2毫秒中断1次TR0=1;〃启动定时器}〃定时器0中断voidTimer0_ISR(void)interrupt1using0{TL0=0xcc;TH0=0xf8; //定时器赋予初值〃每1秒钟启动一次AD转换ALCounter++;if(ALCounter>=500){FlagStartAL=1;ALCounter=0;}}〃端口初始化voidPort_Init(){P1M0=0x80; //10000000,P1.7作为AD输入P1M1=0x80; //}//ADC初始化voidADC_Init(){uinti;P1ASF=0x80; 〃设Pl.7为AD输入ADC_RES=0; 〃清先前的结果ADC_CONTRI=0x80; 〃POWER=1,打开ADC电源for(i=5000;i>0;i--);〃延时ADC_CONTR=ADC_CONTR&0xE0;//1110,0000清ADC_FLAG,ADC_START和低3位ADC_CONTR=ADC_CONTR&0xf8|0x07;〃设置当前通道号为P1.7for(i=2500;i>0;i--);〃延时}〃进行AD转换,得到当前酒精值ucharGetADVal(){uinti;ADC_CONTR&=0xf7;for(i=250;i>0;i--);〃待输入电压稳定后开始转换//ADC_RES=0;ADC_CONTRl=0x08;//ADC_Start=1,启动转换while((ADC_CONTR&0x10)==0);//等待转换结束ADC_FLAG=1ADC_CONTR&=0xe7; //清ADC_FLAG和ADC_START位,停止转换returnADC_RES;}〃存入设定值voidSave_Setting(){pSave=(char*)&Threshold; 〃地址低位对应低8位,高位对应高8位wrteeprom(0,*pSave);〃存醉酒阈值低8位DELAY(300);pSave++;wrteeprom(1,*pSave);〃存醉酒阈值咼8位DELAY(300);}〃载入设定值voidLoad_Setting(){pSave=(char*)&Threshold;*pSave++=rdeeprom(0);*pSave=rdeeprom(1);if((Threshold>=255)ll(Thresholdv0))Threshold=80;}〃按键处理程序,参数为键值,1为Up键,2为Down键voidKeyProcess(uintnum)

{case2:if(Threshold〉】)Threshold--;L1602_int(2,9,Threshold);Save_Setting();voidmain(){uinti,j;EA=0;Data_Init();〃数据初始化TimerO_Init();〃定时器0初始化Port_Init();//端口初始化ADC_Init();//ADC初始化EA=1;L1602_init();L1602_string(1,1,"WelcometoALCT!");L1602_string(2,1,"DesignedbyAAA");〃延时for(i=0;iv1000;i++)for(j=0;j<1000;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){〃如果FlagStartAL标志置位,则进行AD转换

if(FlagStartAL==1){〃酒精浓度换算,50mg/L=62.5ppm,传感器灵敏度应事先校准ALPlue=500*GetADVal()/256; 〃8位ADC,首先得到电压值,单位10毫伏ALPlue=ALValue-K_ZERO; //首先减去零点漂移,一般是130mVif(ALVilue<0)ALValue=0;ALPlue=ALVilue*K_MG_MV;〃将mV转变成mg/L,K_MG_MV系数需要校准L1602_int(1,9,ALVilue);if(ALVilue>Threshold)Led_Warn1=0;〃超过阈值,则Led_Warn1灯报警。elseLed_Warn1=1;FlagStartAL=0;}if(DOUT==0)Led_Warn2=0;if(DOUT==0)Led_Warn2=0;elseLed_Warn2=1;〃键盘查询,在弹起时响应if((Key_Up)&&(keyUp==0)){FlagKeyPress=1;keyvalue=1;}elseif((Key_Down)&&(keyDown==0)){FlagKeyPress=1;keyvalue=2;}if(FlagKeyPress==1){KeyProcess(keyvalue);FlagKeyPress=0;}if(!Key_Up)keyUp=0;elsekeyUp=1;if(!Key_Down)keyDown=0;elsekeyDown=1;}}四、下载与调试当程序在uVision环境下编写完成,并编译生成.hex文件后,就可以下载并进行调试了。1、USB转串口驱动安装打开USB驱动文件夹下的PL2303_Prolific_DriverInstaller_v130.exe安装文件,按提示安装USB转串口驱动程序。安装完成后,插入USB下载线后,在[开始]-[控制面板]-[打印机和其他硬件]-[设备管理器],在“端口”分支下有(ProlificUSB-to-SerialCommPort(COMX)。X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装。记住括号里的COM口号。

-WANGQINGYUN+二DVD/CD-ROM-WANGQINGYUN+二DVD/CD-ROM驰动器+JIDEATA/ATAPI控制器+緒IEEE1394总线主控制器+會SCSI和RAID控制器+ SecuraDigitalhost匚onttollmirE+噸处理器+4磁盘驰动器存储卷电池调制解调器端口(COM和LFT)2FrolificUSB-to-SerialCommFott(COM4)计算机监视器S-S-S-:曰 S-S-+毎苴它设备+佝人体学输入设备+®声音、视频和游戏控制器+ ,鼠标和苴它指针设备+礙通用串行总线控制

温馨提示

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

评论

0/150

提交评论