周鸿雁
(大庆师范学院物理与电气信息工程学院,黑龙江大庆163712)
基于STC单片机的便携式酒精浓度检测仪的设计
周鸿雁
(大庆师范学院物理与电气信息工程学院,黑龙江大庆163712)
以STC单片机和MQ-3酒精传感器为核心,设计了一款智能化的便携式酒精浓度检测仪。该检测仪具有酒精浓度LCD显示和浓度值超限报警功能。可以根据不同环境的需要设置不同的浓度值报警限值,若检测酒精浓度值大于所设定的浓度值即进行报警提示。该检测仪具有硬件电路简单,体积小,有高灵敏度、工作性能好、低功耗、低成本等诸多优点,可应用于对酒驾者进行初步验证的场合。
酒精浓度检测;MQ-3传感器;STC单片机
随着改革开放的深入,我国经济发展的速度也越来越快,人们的生活质量也得到了明显的提高。随之而来的改变就是越来越多的私家车涌现,各式各样的汽车成为人们的首选代步工具。由此伴随而来的是越来越多的交通事故,尤其是因为酒后驾车所引发的交通事故,这不仅给自己和他人的生命财产带来威胁,同样也给社会和国家造成了严重的经济损失。为了避免酒后驾驶给人们的生命造成威胁,帮助交警和驾驶员简便快捷地检测出饮酒者体内的酒精含量,一种便携并能快速检测驾驶员体内酒精浓度的检测仪器应时而生。便携式酒精浓度检测仪不需要通过抽血化验,直接通过检测驾驶员呼出的气体来测量其血液内的酒精浓度,从而初步判断驾驶者是否酒驾或醉驾。
检测仪采用酒精浓度检测分析驾驶员呼出的气体,将气体中的酒精浓度转换为模拟电信号,然后再将该模拟信号传递给A/D转换电路,经过模数转换转换后,把转换后所生成的数字信号传给单片机。单片机对所转换后的数字信号进行分析及处理,最后将处理所得到的结果通过LCD液晶屏显示出来。此外,根据手动设置的酒精浓度上限值与实际接收到的酒精浓度值进行比较,如果驾驶员呼出的酒精气体浓度超过了预先设定的浓度上限值,那么红色的报警灯就会亮起来,以提示超过规定的酒精浓度。
检测仪的硬件部分主要包括酒精浓度传感器、模数转换器、单片机系统、液晶显示模块、按键电路、存储电路和声光报警电路组成,其结构框图如图1所示。
本文选用STC12C5A60S2/AD/PWM系列单片机。该单片机是宏晶科技生产的单时钟/机器周期的单片机,具有高速度、低耗能、超强抗干扰特点。这一系列的单片机在指令代码上完全兼容传统的8051单片机,同时处理速度要比传统的单片机快8~12倍,其中更具操作性的是拥有2路PWM和8路高速10位A/D转换模块,可应用于很多要求较高的场合[1]。STC12C5A60S2系列单片机包含中央处理器、程序存储器、数据存储器、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片内R/C振荡器和外部晶体振荡电路等模块。STC12C5A60S2系列单片机内部具有适用于很多场合的功能模块,令操作更加的便捷。
该酒精浓度检测仪的数据采集模块是采用MQ-3气敏传感器实现的。MQ-3气敏传感器可以更快速的吸附空气中的酒精成分,同时更好的选择性使MQ-3成为检测酒精浓度的首选。该气敏传感器的工作原理非常简单,当传感器检测到空气中的酒精成分后,其阻值会发生变化,这种变化是随着酒精浓度的变化而变化的,并且呈线性变化的关系。
2.2.1 MQ-3气敏传感器的结构
MQ-3气敏传感器由微型AL2O3陶瓷管、SnO2敏感层,测量电极和加热器构成的敏感元件组成,这些气敏元件固定在由特殊材料制作成的腔管内。封装好的MQ-3酒精传感器总共有6只管脚,其中有4支是用来进行酒精气体浓度信号采集,另外2只引脚用来提供加热电流[2]。
2.2.2 MQ-3传感器的工作原理
酒精传感器接收到酒驾者呼出气体中的酒精气体信号,于是将该酒精信号转换为电压信号,而该电压信号会从酒精传感器的第4引脚直接输出,通过第4引脚将该电压信号模拟量送到单片机中的A/D转换模块,电路如图 2 所示[3]。
STC12C5A60S2系列单片内部自带A/D转换电路。A/D转换接口在P1口,共有8路10位高速A/D转换器,速度可达到250KHz。8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。STC12C5A60S2系列单片机ADC的结构如图3所示。
图3 STC12C5A60S2系列单片机ADC的结构图
STC12C5A60S2系列单片机ADC由多路选择开关、比较器、逐次比较寄存器、10位DAC、转换结果寄存器以及ADC_CONTR构成。
STC12C5A60S2系列单片机的ADC是逐次比较型ADC。逐次比较型ADC由一个比较器和D/A转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。
A/D转换结束后,最终的转换结果保存到ADC转换结果寄存器ADC_RES和ADC_RESL,同时,置位ADC控制寄存器ADC_CONTR中的A/D转换结束标志位ADC_FLAG,以供程序查询或发出中断申请。模拟通道的选择控制由ADC控制寄存器ADC_CONTR中的CHS2-CHS0确定。ADC的转换速度由ADC控制寄存器中的SPEED1和SPEED0确定。在使用ADC之前,应先给ADC上电,也就是置位ADC控制寄存器中的 ADC_POWER 位[4]。
为了在不同的情况和场合,该酒精检测仪都可以准确的检测出酒精浓度,由此可以将传统的酒精检测仪稍加改进。这里就增加了一个可以手动设置酒精浓度上限值的按键模块,增加了此模块后,该检测仪就可以在不同的场合或不同的条件下使用,并且测量准确。在这里只要将按键作为外部中断源来手动设置酒精浓度上限值,就可以满足设计要求,同时,还可以节省不必要的硬件资源。按键电路如图4所示。
图4 按键电路
在该设计中增加一个手动设置浓度上限值的功能,可以使该检测仪适用于更多的场合,达到更多的要求。又能与检出的酒精浓度值进行比较,增强了直观性。于此选用了AT24C04作为存储器件,用单片机的P2.6、P2.7口模拟I2C与其通信,从而完成数据的读写操作。
AT24C04是ATMEL公司生产的4K bit E2PROM芯片,该芯片采用总线设计,主要性能指标与AT24C02类似。
AT24C04外部存储电路如图5所示。A0为空引脚,A1,A2口为器件地址设定口,通过A1,A2口来设定AT24C04的器件地址。WP口接低电平时,可以对整个AT24C04器件的512个字节进行读写操作。当WP口接高电平后,器件的前256个地址的数据被保护,只能读,不可写入,后256个字节数据可进行读写操作。
若要使检测到的酒精浓度值得到显示,可以有两种选择。一种是用数码管显示,一种是LCD液晶显示。为了追求显示效果,这里选择了采用LCD显示,即采用LCD1602液晶显示模块。这种液晶可以同时显示16*02个字符。1602液晶也叫1602字符型液晶,这种液晶的功能单一,只是用来显示数字、字母和符号的点阵型液晶模块。当前大家所用到的液晶都是在HD44780液晶芯片控制的基础之上的,控制原理是完全相同的,因此大部分字符型液晶都可以用HD44780来进行操作和控制。检测仪的浓度显示电路如图6所示。
A/D转换的启动需要依靠下降沿才能触发,在START置低位后延时一段时间(约10ms),转换才正式开始。在转换的过程中,输入时钟所能接收的区间为10KHZ~1280KHZ,而要使酒精检测仪能够进入正常的工作状态,则在该设计中应该选用500KHZ。通过模数转换后得到的数字量,即采用MQ-3酒精传感器检测到环境中的酒精含量,又通过转换而产生电压值,再通过单片机的程序处理,将检测到的酒精浓度值显示在屏幕上。
图5 AT24C04外部存储电路
图6 输出显示电路
在初始化后,系统的检测器将检测到酒精浓度,同一时间A/D转换器也在进行模数转换,系统仍然在检测是否有外部中断响应,当按下按钮时,按钮的数目将用来调整在显示器中显示的酒精浓度值,而且该浓度值将立即被存储在外部存储单元(AT24C04)中,与检测到的酒精浓度进行比较,在同一时间,完成下一个报警。
酒精浓度检测仪的软件程序主要使用C语言编写,采用了模块化、结构化的程序设计方法。这其中主要包括了主程序、中断程序等程序。当给检测仪上电时,检测仪首先进行程序初始化、系统自检,然后进入等待外界酒精信号输入的状态,A/D转换和LCD显示酒精浓度值的三个状态。最后通过比较输入的酒精浓度值和预先设置的酒精浓度上限值判断是否执行超标报警。手动设置酒精浓度上限值,被测酒精浓度值显示等操作都属于中断子程序的内容,程序的绝大部分时间用于数据处理上,而STC12C5A单片机处理一次数据的时间约为6us,故整体的平均功耗很低[5]。
设计了一款智能化的便携式酒精浓度检测仪,以STC12C5A单片机和MQ-3酒精传感器为核心,具有报警和LCD显示功能。此检测仪具有高灵敏度、工作性能好、低功耗、低成本等诸多优点。选用STC12C5A单片机作为控制核心,其内部自带模数转换电路,可以通过软件编程更改P1.0~P1.7口的功能,作为A/D转换接口或者普通I/O接口,不需要外接A/D转换电路,使该设计的外围电路更加的简单。同时该设计可以手动设置酒精浓度上限值,使检测仪应用于更多的场合,给使用者带来更大的方便。
[1]何利民.STC系列单片机应用系统设计[M].北京:航空航天大学出版社,2003.
[2]单成祥.传感器的理论与设计基础及其应用[M].北京:国防工业出版社,2005.
[3]方吉高,黄炳醒.高选择性酒精传感器[J].硅谷,2004,10(2):41.
[4]蓝和慧.全国大学生电子设计竞赛单片机应用技能[M].北京:电子工业出版社,2003.
[5]汤竞南,沈国琴.单片机C语言开发与实例[M].北京:人民邮电出版社,2004.
周鸿雁(1963-),男,黑龙江大庆人,大庆师范学院物理与电气信息工程学院副教授,从事单片机应用方面的研究。
TP368.2
A
2095-0063(2013)06-0022-04
2012-09-07