APP下载

基于STC89C51单片机酒精浓度报警系统

2022-01-22刘杨张健黄建芬赵元镜

电子测试 2021年24期
关键词:液晶显示气敏框图

刘杨,张健,黄建芬,赵元镜

(攀枝花学院智能制造学院,四川攀枝花,617000 )

0 引言

酒驾是一个全球都急待解决的问题,随着体内酒精浓度每增加0.05g/dl,驾驶风险就会呈剧烈增加[1]。酒后驾驶发生交通事故的概率是非酒后驾驶的1.72倍[2]。《中华人民共和国道路交通安全法》第九十一条规定,BAC在20~80mg/100ml之间为酒驾,醉驾是BAC值超过80mg/100ml[3],我国对酒驾案件相关的嫌疑人都予刑事拘留绝不容情[4]。

如今的酒检仪最常见的原理是电化学-燃料电池型,以形成一个微小电压的电信号,然后在数字显示仪器上显示出酒精气体的浓度值。目前国内已有各种防酒驾系统电子产品[5,6],但由于结构复杂、价格较贵且制造难度大从而未得到大量的普及;基于以上原因,设计了一项基于STC89C51单片机、MQ-3酒精气敏传感器和液晶显示模块为主的结构简单的、耗能低的价格便宜的酒精浓度报警装置,使驾驶员能够及时的自我检测从而提高安全意识。

1 系统总体设计

由于STC89C51单片机具有运算速度快、耗能小和超强抗干扰能力[7]所以采用该单片机作为主控芯片,通过LCD1602进行实时显示信息,采用半导体气敏传感器MQ-3对酒精气压的检测,并通过电路将酒精浓度引起的MQ-3内阻变化转变成电压变化后由ADC0832进行采集,系统能够根据采集到的酒精浓度信息于限值进行对比,如果超过限制系统会发出对应的警示,限值可由按键进行设置并具有掉电存储的功能。其总体框图如图1所示。

图1 方案总体框图

2 硬件设计

2.1 单片机最小系统设计

单片机最小系统是能使单片机正常工作的最小硬件电路,它包括电源电路,晶振电路,复位电路和程序存储器选择电路[8]。单片机最小系统设计如图2所示。

图2 单片机最小系统电路图

2.2 液晶显示模块设计

显示仪器采用的是LCD1602液晶显示模块,它是通过PCB 把LCD控制器,驱动器,RAM,ROM和液晶显示面板连接在一体的,单片机只需向LCD模块写入相应的命令和数据就可以显示需要的内容。只需将LCD1602液晶显示模块的引脚口D0-D7连接到STC89C51单片机的P0上以方便进行数据的传输;而V0口接一个可调电位器,当调节电位器位置改变时接入V0的电压也随之变化进行显示的清晰度也随之变化,在实际时采用电位器而不采用固定阻值的电阻,就是为了能够方便调节在不同电压的场合下使用。

2.3 模数转换模块设计

A/D转换模块ADC0832是一种8位分辨率双通道转换芯片,其最高分辨可达256级,适用范围广泛,ADC0832能把酒精传感器产生的模拟量信号转换成CPU能够识别的数字量信号[9];且存在的误差极小,转换速度较高(250Khz时转换时间32μs)单电源供电,功率低(15mw),稳定性强。

一般情况下ADC0832与单片机的连接应CS、CLK、DO、DI相同。CLK引脚提供ADC0832的工作时钟, DO引脚将转换后的数字信号送入单片机内进行处理, DI引脚主要实现ADC0832电压采样输入通道的选择[10],但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时将DO和DI 并联在一根数据线上使用以节省单片机IO口的使用。

2.4 MQ-3气敏酒精传感器模块设计

MQ-3气敏传感器的工作原理是利用气敏半导体材料同气体接触后,会发生还原反应同时释放出大量的热量,造成半导体电阻发生变化,可以检测的范围0.04-4mg/L[11],利用这一特性将酒精的浓度变化转化为传感器表面电阻RS两级间的电位差的变化,再通过与其串联的负载电阻RL上的有效电压VRL获得的,二者的关系式为:RS/RL=(VC-VR)/VRS,其中VC为有效电压。传感器的输出电压与被测环境的酒精浓度存在着一个近视线性的关系,在正常不含酒精时传感器器的输出电压大约在1V左右,当传感器检测到酒精气体时,电压每升高0.1V,近视被测气体浓度增加20PPM也即是2mg/100ml。

2.5 其他模块设计

蜂鸣器模块设计:蜂鸣器选用的是电磁式有源蜂鸣器,当I/O口输出低电平时,三极管导通,蜂鸣器鸣叫;当I/O口输出高电平时,三极管截止,蜂鸣器停止鸣叫。

独立键盘模块设计:键盘实际上是一组开关的集合,当键按下时,两根导线接通;释放时,两根导线不通。

3 软件设计

3.1 主程序设计

程序的主函数是C语言进行编程,其目的是在单片机上电后先对LCD显示模块进行初始化,判断MQ-3酒精传感器是否加热完成,对酒精检测范围的重置,检测结果信息的反馈;以达到对酒精浓度检测功能的实现。设计的主程序图框图如图3所示。

图3 主程序图框图

3.2 LCD1602显示子程序设计

1602液晶是字符型液晶,它的内部自带字符库ROM,要使LCD1602液晶显示模块显示字符,要对其控制器进行初始化设置,还必须对有、无光标,光标的移动方向,光标是否闪烁及字符的移动的方向进行设置;在单片机控制LCD1602液晶显示模块显示字符时,只需要将待显示的字符的ASCII码写入内部的显示数据RAM,内部控制电路就可将字符在显示器上显示出来,且在写显示程序的时候,先写命令,再设定字符显示,最后写数据,在每写一次命令或数据都需要判断液晶是否忙。

3.3 ADC0832采集子程序设计

确定一个初始化信号,然后选择需要采集的通道(单通道0、单通道1、双通道0、双通道1其中之一),选择完通道后单片机发送下降沿开始读数据,数据是一位位的串行传输并且高位在前,低位在后,直到将八位数据都采集完毕后将采集到的数据返回。ADC0832采集子程序设计框图如图4所示。

图4 ADC0832采集子程序设计框图

3.4 报警子程序设计

程序执行的前提的条件是得先通过键盘确定好报警阈值,并且把信息转换为BCD码存放在50H-52H的3个储存单元中。传感器采集的信息经过A/D转换后得到的测量值存储在40H-42H的3个单元中并进行十进制的转换,再通过与阈值进行一一对应比较,若小于阈值则程序继续进行;若大于阈值则STC89C51单片机的P1口清零并报警装置运行。报警子系统程序框图如图5所示。

图5 报警子系统程序框图

4 实验测试

实验环境:海拔1418m,气压843hPa,湿度 58%,气温 19℃。

实验是以日用酒为待测源,使其挥发经过MQ-3传感器收集到数据。经实验结果表明:仪器在使用之前需预热约60s,检测的酒精浓度范围10-1000ppm,检查范围为 15~25cm,灵敏度 Rin air/Rin typical gas≥ 5,响应时间约7s,回复时间约21s,所以该仪器对酒精有很高的灵敏度和良好的选择性,快速的相应恢复性和可靠性。

对酒精浓度检测显示结果的实物图如图6所示。

图6 酒精检测仪显示结果

5 结论

设计了以STC89C51单片机为程序控制主体,MQ-3气敏传感器采集信息,LCD1602液晶显示模块输出信息的酒精浓度检测仪。经测试结果表明:在确定好需要检测的酒精浓度范围值后,仪器能及时的、准确的、智能化的分析,并进行声光报警。检测仪的各个子程序互不干扰,方便程序的修改,硬件部分体积小,耗能低,智能化程度高,具有较好实际应用价值。

猜你喜欢

液晶显示气敏框图
基于气敏传感器阵列特征优化的储粮害虫赤拟谷盗检测
水热法合成WO3纳米片及其甲苯气敏性能研究
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
基于TRIZ理论液晶显示模块开发板的创新设计
电路图2017年凯迪拉克XT5
气敏传感器的研究进展
算法框图的补全
122×32 点阵液晶显示汉字原理实验
基于图表法构建《万有引力定律与航天》知识网络
不同形貌纳米CoWO4的水热法制备及气敏性能