《于基单片机的酒精浓度检测系统---本科毕业设计.doc》由会员分享,可在线阅读,更多相关《于基单片机的酒精浓度检测系统---本科毕业设计.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要随着经济的快速发展,私家车数量增长迅速,但酒后驾驶、醉酒驾驶导致的交通事故比例在不断增加,给人民的生命财产造成巨大的损失。为了预防和减少交通事故的发生,设计了一种基于单片机的酒精浓度检测系统,本设计采用MQ-3气敏传感器采集气体相关数据,经过酒精浓度传感器模块进行调制和数据转化处理,最后将数据传送给单片机进行A/D转换和执行相应的功能。具有液晶实时显示气体中酒精浓度,通过按键进行阀值设定,超过设定的阀值会发光报警等功能。关键词:单片机;酒精浓度检测系统;气敏传感器AbstractWiththerapideconomicdevelopment,thenumberofprivatecarsis
2、growingrapidly,buttheproportionoftrafficaccidentsofdrunkdriving,drunkdrivingcauseisincreasing,causinghugelossestothelivesandpropertyofthepeople.Inordertopreventandreducetheoccurrenceoftrafficaccidents,designedakindofalcoholconcentrationdetectionsystembasedonsinglechip,usingtherelevantdataofMQ-3gasse
3、nsorscollectgasinthisdesign,modulationanddataconversiontreatmentafteralcoholconcentrationsensormodule,thedataistransmittedtotheMCUA/Dconversionandexecutesthecorrespondingfunction.Aliquidcrystaldisplaythealcoholconcentrationinair,forthresholdsetbythekey,morethanthesetthresholdvaluewillbeluminousalarm
4、function.Keywords:singlechipmicrocomputer;alcoholconcentrationdetectionsystem;gassensor目录第一章 前言11.1 概述12.1总体方案设计22.2单片机系统总体设计22.3芯片简介32.3.1 STC12C5A16AD单片机32.3.2 MQ-3酒精传感器52.3.3 EEPROM-24C02阀值存储芯片92.3.4 LCD1602显示模块12第三章 硬件电路设计163.1 主程序/CPU模块163.2 AT24C02阀值存储模块163.3 MQ-3传感器调理电路173.4 LCD液晶显示模块183.5按键单
5、元设计18第四章 系统软件设计194.1主程序设计194.2 LCD1602显示程序设计204.3 24C02阀值存储程序设计204.4系统调试20总结21致谢22参考文献23附录24第一章 前言1.1 概述随着经济的高速发展,更多的人拥有私家车,而且近几年的增长率在不断提高,酒后驾车造成的交通事故也频繁发生,占据交通事故的很大比重。在中国,每年由于酒后驾车引发的交通事故达数万起,其危害触目惊心,已成为交通事故的第一大“杀手”。饮酒后酒精在人体血液内达到一定浓度时,会产生麻痹神经、大脑反应迟缓、肢体不受控制等症状。人对外界的反应能力及控制能力都会下降,处理紧急情况的能力也随之下降。对于酒后驾车
6、者而言,其血液中酒精含量越高,发生交通事故的几率越大。酒后驾车发生事故的机率高达27%随着摄入酒精量的增加,选择反应错误率显著增加,当血液中酒精含量由0.5增至1,发生车祸的可能性便增加5倍,如果增至1.5,可能性再增加6倍机动车驾驶人员“酒后驾车” 及“醉酒驾车”极易发生道路交通事故, 严重危害了道路交通安全和人民生命财产安全根据世界卫组织的事故调查,大约50%69%的交通事故与酒后驾驶有关,酒后驾驶已经被列为车祸致死的主要原因。人饮酒后, 酒精通过消化系统被人体吸收, 经过血液循环, 约有90%的酒精通过肺部呼气排出, 因此测量呼气中的酒精含量, 就可判断其醉酒程度开车司机只要将嘴对着传感
7、头使劲吹气,仪器就能发上显示出酒精浓度的高低,从而判断该司机是否酒后驾车,避免事故的发生最理想的办法是将酒精检测系统应用在机动车内,司机一进入车内检测仪就检测司机的酒精含量,如果超出允许值,机动车系统控制引擎无法启动,这样就可从根本上解决酒后驾车问题为了实现对人权的尊重,对生命的关爱,使更多人的生命权、健康权及幸福美满的家庭能得到更好的保护,需要设计一种智能的酒精检测系统能够检测驾驶员体内酒精含量。本论文研究的是一种以气敏传感器和单片机为主,监测酒精浓度,并具有显示和报警功能的基于单片机的酒精检测系统。酒精检测系统在生产生活中也有重要的应用,比如,在一些环境要求严格的生产车间,用这种酒精浓度探
8、测仪,可随时检测车间内的酒精气体浓度,当酒精气体浓度高于允许限定值时,发出警报、提醒,有着相当的前景和意义。第二章 总体方案设计2.1总体方案设计本设计研究的是一种以MQ-3型气敏传感器和STC12C5A16AD单片机为主,并具有灯光报警及LCD1602来实时显示数据功能的酒精浓度检测系统。其可检测出空气环境中酒精浓度值,并需要根据不同环境不同驾驶员的水平设置不同的阈值,对超过的阈值进行灯光报警,来提示危害。所以需要增设键盘控制模块实现人机交互功能,超过阈值进入灯光报警功能。如下框图2-1STC12C5A16AD单片机MQ-3气敏传感器信号调制独立按键液晶显示器模块报警提示图2-1 系统结构框
9、图2.2单片机系统总体设计当启动该系统时,气敏传感器检测到酒精气体信号,然后对气敏传感器的输出信号进行调制,最后经过STC12C5A16AD单片机内部的A/D转换部分进行模数转换。单片机对转换后的数字信号进行相应的处理,将数据通过液晶显示出来,酒精浓度超过设定的阀值也会发出灯光报警提示。各个单元进行模块化设计,以单片机为核心进行整合使整个系统达到预期的结果。2.3芯片简介本设计采用了STC12C5A16AD单片机、MQ-3酒精传感器、AT24C02、LCD1602等芯片.2.3.1 STC12C5A16AD单片机STC12C5A16AD是宏晶科技生产的新一代8051单片机,包含有中央处理器(C
10、PU)、程序存储器(FLASH)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片内R/C振荡器和外部晶振振荡等模块,几乎包含了数据采集和控制中所需的所有单元模块。STC12C5A16AD单片机相比传统C51功能更加强大,有些特殊功能寄存器被扩展为专用的特殊寄存器。其引脚图和内部结构如图2-3所示:图2-3 STC12C5A16AD引脚排列图STC12C5A16AD的具体功能特性如下:1、高速:1 个时钟/ 机器周期,增强型8051 内核,速度比普通8051 快812 倍2、宽电压:5.53.3V,2.23.6V(STC12
11、LE5A60S2 系列)3、 增加第二复位功能脚(高可靠复位,可调整复位门槛电压,频率12MHz 时,无需此功能)4、增加外部掉电检测电路,可在掉电时,及时将数据保存进EEPROM,正常工作时无需操作EEPROM低功耗设计:空闲模式,(可由任意一个中断唤醒)5、低功耗设计:掉电模式(可由外部中断唤醒),可支持下降沿/ 上升沿和远程唤醒6、工作频率:035MHz,相当于普通8051:0420MHz7、时钟:外部晶体或内部RC 振荡器可选,在ISP 下载编程用户程序时设置8、 8/16/20/32/40/48/52/56/60/62K 字节片内Flash 程序存储器,擦写次数10 万次以上9、 1
12、280 字节片内RAM 数据存储器10、芯片内EEPROM 功能,擦写次数10 万次以上11、 ISP / IAP,在系统可编程/ 在应用可编程,无需编程器/ 仿真器12、 8 通道,10 位高速ADC,速度可达25 万次/ 秒,2 路PWM 还可当2 路D/A 使用13、 2 通道捕获/ 比较单元(PWM/PCA/CCP),也可用来再实现2 个定时器或2 个外部中断(支持上升沿/ 下降沿中断)14、 4 个16 位定时器,兼容普通8051 的定时器T0/T1,2 路PCA 实现2 个定时器15、可编程时钟输出功能,T0 在P3.4 输出时钟,T1 在P3.5 输出时钟,BRT 在P1.0 输
13、出时钟16、硬件看门狗(W D T )17、高速SPI 串行通信端口18、全双工异步串行口(UART),兼容普通8051 的串口19、先进的指令集结构,兼容普通8051 指令集,有硬件乘法/ 除法指令20、通用I/O 口(36/40/44 个),复位后为: 准双向口/ 弱上拉(普通8051 传统I/O 口)可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏21、每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过100mASTC12C5A16AD的引脚说明:单片机采用40引脚的双列直插封装方式。图3-2为引脚排列图,40条引脚说明如下:1)主电源引脚Vss和
14、Vcc2)外接晶振引脚XTAL1和XTAL23)控制或与其它电源复用引脚RST,ALE和NA4)输入/输出引脚P0.0P0.7,P1.0P1.7,P2.0P2.7,P3.0P3.7(1)P0口(P0.0P0.7)是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。(2)P1口(P1.0P1.7)是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。(3)P2口(P2.0P2.7)是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,
15、它接收高8位地址。(4)P3口(P3.0P3.7)是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。2.3.2 MQ-3酒精传感器半导体酒精传感器MQ-3所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在酒精蒸汽时,传感器的电导率随空气中酒精气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-3气体传感器对酒精的灵敏度高,可以抵抗汽油、烟雾、水蒸气的干扰。这种传感器可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器。其主要用于机动
16、车驾驶人员及其他严禁酒后作业人员的现场检测;也用于其他场所乙醇蒸汽的检测。MQ-3传感器模块具有的特点:1. 具有信号输出指示2. 双路信号输出(模拟量输出及TTL电平输出)3. 模拟量输出0-5V电压,浓度越高电压越高4. 对乙醇蒸汽具有良好的选择性和很高的灵敏度5. 具有长期的使用寿命和可靠的稳定性6. 快速的响应恢复特性 MQ-3的性能参数1)MQ-3标准工作条件表表2-3 MQ-3标准工作条件表符号参数名称技术条件备注 Vc 回路电压15VAC or DC VH加热电压5.0V0.2VAC or DC RL负载电阻可调 RH加热电阻313室温 PH加热功耗900mW2) MQ-3工作环
17、境环境条件表表2-4 MQ-3工作环境环境条件表符号参数名称技术条件备注 Tao使用温度-10-50 Tas储存温度-20-70 RH相对湿度小于95%RH O2氧气浓度21%(标准条件)氧气浓度会影响灵敏度特性最小值大于23) MQ-3灵敏度特性表表2-5 MQ-3灵敏度特性表符号参数名称技术参数备注Rs敏感体电阻1M 8M(200ppm alcohol )适用范围:101000ppm Alcohol(200/100)alcohol浓度斜率0.6标准工作条件温度: 202 Vc:5.0V0.1V相对湿度: 65%5% Vh: 5.0V0.1V预热时间不少于24小时表2-6 MQ-3气敏元件的
18、组成材料表 部件材料1气体敏感层二氧化锡2电极金(Au)3测量电极引线铂(Pt)4加热器镍铬合金(Ni-Cr)5陶瓷管三氧化二铝6防爆网100目双层不锈钢(SUB316)7卡环镀镍铜材(Ni-Cu)8基座胶木9针状管脚镀镍铜材(Ni-Cu)MQ-3 型气敏元件对不同种类,不同浓度的气体有不同的电阻值,变化如图3-9所示。 在不同温湿度的条件下,变化如图3-10,因此在使用此类型气敏元件时,灵敏度的调整是很重要的。 图3-9 MQ-3的灵敏度特性图(温度:20、相对湿度:65%、氧气浓度:21%、RL=200k)图2-10 MQ-3型气敏元件的温湿度特性图Ro: 20,33%RH条件下,200p
19、pm的乙醇蒸汽中元件电阻。Rs: 不同温度,湿度下,200ppm的乙醇蒸汽中元件电阻。2.3.3 EEPROM-24C02阀值存储芯片 (1) 工作电压:1.8V5.5V;(2) 输入/输出引脚兼容5V;(3) 应用在内部结构:1288(1K),2568(2K),5128(4K),10248(8K),20488(16K);(4) 二线串行接口;(5) 输入引脚经施密特触发器滤波抑制噪声;(6) 双向数据传输协议;(7) 兼容400KHz(1.8V,2.5V,2.7V,3.6V);(8) 支持硬件写保护;(9) 高可靠性;(10) 读写次数:1,000,000次;(11) 数据保存:100年。A
20、T24C02是一个2K位串行CMOS EEPROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。AT24C02支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。AT
21、24C02的外部特性(引脚功能):表3-1 TLC1549引脚功能表引脚功能标号说明A0器件地址输入124C02的硬件连接的器件地址输入引脚。24C02在一个总线上最多可寻址8个2K器件,A0、A1、A2内部必须连接。24C02仅使用A1、A2作为硬件连接的器件地址输入引脚,在一个总线上最多可寻址4个4K器件,A0引脚内部未连接。这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0
22、、A1、A2 )必须连接到Vss。A12A23Vss地4接地SDA串行数据输入/输出5AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。SCL串行时钟输入6AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。在SCL输入时钟信号的上升沿将数据送入, EEPROM器件,并在时钟的下降沿将数据读出。WP写保
23、护7如果WP管脚连接到Vcc,所有的内容都被写保护只能读。当WP管脚连接到Vss 或悬空允许器件进行正常的读/写操作。Vcc电源8正电源电压 AT24C02的工作原理:表3-2 器件操作工作原理表器件操作操作说明时钟及数据传输SDA引脚通常被外围器件拉高。SDA引脚的数据应在SCL为低时变化;当数据在SCL为高时变化,将视为下文所述的一个起始或停止命令。起始命令当SCL为高,SDA由高到低的变化被视为起始命令,必须以起始命令作为任何一次读/写操作命令的开始。停止命令当SCL为高,SDA由低到高的变化被视为停止命令,在一个读操作后,停止命令会使EEPROM进入等待态低功耗模式。应答所有的地址和数
24、据字节都是以8位为一组串行输入和输出的。每收到一组8位的数据后,EEPROM都会在第9个时钟周期时返回应答信号。每当主控器件接收到一组8位的数据后,应当在第9个时钟周期向EEPROM返回一个应答信号。收到该应答信号后,EEPROM会继续输出下一组8位的数据。若此时没有得到主控器件的应答信号,EEPROM会停止读出数据,直到主控器件返回一个停止命令来结束读周期。等待模式24C02特有一个低功耗的等待模式。可以通过以下方法进入该模式:(a)上电;(b)收到停止位并且结束所有的内部操作后。器件复位在协议中断、下电或系统复位后,器件可通过以下步骤复位:(1)连续输入9个时钟;(2)在每个时钟周期中确保
25、当SCL为高时SDA也为高;(3)建立一个起始条件。AT24C02工作时总线各个时序图如下:1)写周期时序图图3-5 写周期时序图2)数据有效时序图图3-6 数据有效时序图3)起始与停止时序图图3-7 起始与停止时序图2.3.4 LCD1602显示模块1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。主要功能有:40通道点阵LCD驱动;可选择当作行驱动或列驱动;输出能产生202个LCD驱动波形输入接受控制器送出的串行数据和控制信号,偏压;通过单片机控制将所测的频率信号读书显示出来。 LCD1602显示模块技术参数:1602液晶显示屏采用标准的16脚接口,
26、其中各接口的功能如下表(2-4)所示:引脚号引脚名电平输入/输出引脚说明1VSS电源地2VDD电源正极(+5V)3VL液晶显示偏压信号4RS0/1输入数据/命令选择端,0:输入指令,1:输入数据5R/W0/1输入读/写选择端,0:向LCD写入指令或数据,1:从LCD读取信息6E10输入使能信号,1时读取信息,10(下降沿)执行指令7D00/1输入/输出数据总线(最低位)8D10/1输入/输出数据总线9D20/1输入/输出数据总线10D30/1输入/输出数据总线11D40/1输入/输出数据总线12D50/1输入/输出数据总线13D60/1输入/输出数据总线14D70/1输入/输出数据总线(最高位
27、)15BLA+VCCLCD背光电源正极16BLK接地LCD背光电源负极表2-4 LCD1602的16管脚功能第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会使屏幕显示不清晰,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写选择端,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数
28、据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极 LCD1602显示器工作原理LCD1602有11个控制指令,见表3-8。其中,DDRAM:显示数据RAM,用来寄存待显示的字符代码;CGROM:字符发生存储器;CGRAM:用户自定义的字符图形RAM。表3-8 LCD1602控制指令表指令功能清屏清DDRAM和AC值归位AC=0,光标、画面回HOME位输入方式设置设置光标、画面移动方式显示开关控制设置显示、光标及闪烁开、关光标、画面位移光标、画面移动,不影响DDRAM功能设置工作方式设置(初
29、始化指令)CGRAM地址设置设置CGRAM地址。A5A0=03FHDDRAM地址设置DDRAM地址设置读BF和AC值读忙标志BF和和地址计数器AC值写数据数据写入DDRAM或CGRAM读数据从DDRAM或CGRAM数据读出1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”,具体寄存器的选择控制表3-9有操作说明。因为LCD1602
30、识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。表3-9 LCD1602寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01忙标志以及读取位址计数(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据第三章 硬件电路设计3.1 主程序/CPU模块图3-1该主控模块主要是由STC12C5A16AD单片机组成,此模块包括系统初始化、数据的处理及各模块的的组织和管理等功能。主程序模块在系统中起着最重要的作用。3.2 AT24C02阀值存储模块醉酒阈值存储在EEPROM芯片AT24C04中,并可以通过 “增加
31、”、“减少”按键调节并保存。AT24C02是IIC接口的EEPROM芯片,可以用于掉电不易失数据的存储。其电路如图3-2所示。图中A0、A1和A2为芯片的地址引脚,一般接地即可。SCL和SDA为AT24C02和单片机IIC通信的时钟线和数据线。图3-2 EEPROM存储电路3.3 MQ-3传感器调理电路 MQ-3乙醇气体传感器及其调理电路原理如图3-3所示。经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。图3-3 传感器及调理模块原理图3.4 LCD液晶显示模块与单片机接口电路如图3-4所示。其中LCD1602的3脚为背光引脚,R7和R8电阻用于调节背光亮度。LCD1
32、602的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,LCD1602的714引脚为数据引脚。图3-4 LCD与单片机接口电路图3.5按键单元设计电路共采用了两个按键如图3-5,其功能分别是:K1为加键,K2为减键。图3-5第四章 系统软件设计4.1主程序设计主程序的设计主要是综合考虑本设计要达到的功能要求,要进行数据、定时器、A/D转换等的初始化,实时采集MQ-3酒精传感器模块输出的数据信息,并采集阀值存储模块的数据,进行的相应的处理,实现1602实时显示被测气体中的酒精浓度和报警阀值,浓度超过阀值会发光报警提示。数据初始化报警按键处理定时器初始化A/D转换初始化酒精浓度显示显示初始化进
33、入后台while循环触发A/D转换换算酒精浓度超过阀值吗?酒精浓度显示有键按下吗?是是否否4.2 LCD1602显示程序设计先对LCD1602进行引脚定义,然后进行初始化设置,最后进行数据控制,这其中包括数据指针的设置,读数据,写数据,和一些其他的设置。4.3 24C02阀值存储程序设计醉酒阈值存储在EEPROM芯片AT24C04中,并可以通过 “增加”、“减少”按键调节并保存。AT24C04是IIC接口的EEPROM芯片,可以用于掉电不易失数据的存储。首先要对I2C总线的引脚进行定义,实时发送读取字节函数。4.4系统调试调试之前:硬件焊接完成后即将开始调试,但在调试之前要对硬件各个部分进行仔
34、细的检查,用万用表进行测量,测量各连接线无连接错脚、虚焊、漏焊等,确保无短路或者断路的存在,上电后如果发现有些芯片迅速发热应立即断电重新检查。调试过程:检查过硬件之后上天发现液晶显示不亮,当时心里很失落,但经过与电路原理图进行多次比对检查发现液晶的2脚和15脚没有接高电平,焊接线后重新通电发现液晶发光了,但是此时又出现了新问题,液晶背光虽然亮了,但是没有显示任何的数据信息,此时判断是液晶的4、5、6对应的引脚即RS、R/W、E段没接线,导致数据无法显示,重新焊接后显示数据部分搞定,然后等待MQ-3传感器部分进行充分的预热,大概5到10分钟的时间。调试结果:预热完成后,我随即打开一罐啤酒喝了一口
35、,然后对准MQ-3传感器探头进行吹气,发现液晶很快显示出此时的酒精浓度数值,而且酒精浓度超过了设定的80mg/L的报警阀值,二极管随即发光报警,然后数据慢慢下降至零,然后又找了没喝酒的室友吹气检测发现酒精浓度为零,接下来对按键也进行了验证,发现加减数据正常,本设计达到了预期的效果,基本取得了成功,在此时心情很开心。总结 由于本设计使用的是以单片机作为核心的控制元件和灵敏的MQ-3气敏传感器,使本酒精浓度检测系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。但是在我们设计和调试的过程中,也发现了一些问题,譬如测得的酒精浓度的数值显示很短的时间就减小直至
36、0,不方便记录数据,气敏传感器的接收端没有封闭的装置,比如呼气管等,这样可能造成测得的酒精浓度值与实际人体酒精含量的误差偏大。参考文献1薛峰 朱晓骏主编 单片机原理及应用 北京理工大学出版社2谭浩强. 新世纪计算机基础教育丛书.C程序设计M 清华大学出版3.万福君, 潘松峰单片微机原理系统设计及应用M 合肥:中国科学技术大学出版社,20014.蓝和慧,宁武,闫晓金.全国大学生电子设计竞赛指导系列. 全国大学生 电子设计竞赛单片机应用技能精解M.电子工业出版社,20095.何立民.单片机应用技术选编M.北京:北京航空航天大学出版社,19996.求实科技.单片机典型模块设计实例导航J.北京:人民邮
37、电出版社,20047.陈小忠.单片机接口技术实用子程序M.北京:人民邮电出版社,20058. 赵晶主.电路设计与制版 Protel99 高级应用J.北京:人民邮电出版社,20009 沙占友. 集成温度传感器原理与应用. M 北京:机械工业出版社,2002, 8495.10 刘君华. 智能传感器系统. M 西安:西安电子科技大学出版社,1999,83105.11 沙占友. 智能化传感器原理与应用. M 北京:电子工业出版社,2004,99108.12 赵负图. 传感器集成电路手册M. 北京:化学工业出版社,2002,692703.13 张毅刚. MCS-51单片机原理及应用. M 哈尔滨:哈尔滨
38、工业大学出版社,2004,819414.Vizimuller, P: RF design guide-systems, circuits, and equations (ArtechHouse, Boston, MA, 1995)6R. Dye, “Visual Object-Orientated Programming,” Dr. Dobbs MacintoshJournal, Sept. 1st ( 1991). Vizimuller, P: RF design guide-systems, circuits, and equations (ArtechHouse, Boston, MA,
39、 1995)15.R. Dye, “Visual Object-Orientated Programming,” Dr. Dobbs MacintoshJournal, Sept. 1st ( 1991). 16.Yang. Y, Yi. J, Woo, Y.Y, and Kim. B: Optimum design for linearityand efficiency of microwave Doherty amplifier using a new loadmatching technique, Microw. J, 2001, 44, (12), pp. 2036附录硬件电路原理图程
40、序清单主程序部分#include STC12c5A.h#include 1602.h#include 2402.h#define uchar unsigned char#define uint unsigned int/对常量进行声明#define ALCH 80 /醉驾标准80mg/L/K_MG_MV和K_ZERO为传感器校准系数,要根据每个MQ-3模块校准#define K_MG_MV 160/66 /传感器灵敏度系数,每毫克/L对应的10毫伏数#define K_ZERO 15 /传感器零点漂移,约130mVsbit Key_Up = P36; /对按键进行引脚定义sbit Key_Do
41、wn = P37;sbit Led_Warn1 = P34; /对LED报警灯引脚进行定义sbit Led_Warn2 = P35;sbit DOUT = P14; /定义乙醇传感器TTL电平输出引脚/定义标识volatile bit FlagStartAL = 0; /开始转换标志volatile bit FlagKeyPress = 0; /有键弹起标志/对全局变量进行定义uchar Threshold; /酒精浓度上限报警值uint ALCounter; /酒精转换计时器long ALValue; /酒精测量值float ALtemp; /计算临时变量uint keyvalue, key
42、Up, keyDown; /键值char * pSave; /EEPROM存盘用指针/对函数进行声明void Data_Init();void Timer0_Init();void Port_Init();void ADC_Init();uchar GetADVal();void KeyProcess(uint );/数据初始化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位定时器初值65536-1844=63692=0xf8ccvoid Timer0_Init()ET0 = 1; /允许定时器0中断TMOD = 1; /定时器工作方式选择TL0 = 0xcc; /TH0 = 0xf8; /定时器赋予初值,大约为2毫秒中断1次TR0 = 1; /启动定时器void Timer0_ISR (void) interrupt 1 using 0 /定时器0中断TL0 = 0xcc;TH0 = 0xf8; /给定时器赋初值/每1秒钟启动一次AD