51单片机论文第五篇:对小巧、灵活的51单片机酒精浓度监测系统的研究
摘要:设计了一种借助MQ-3酒精传感器,以STC89C52单片机为核心控制处理器,LCD液晶显示并带有声光报警功能的酒精浓度检测系统。针对酒精浓度监测系统的整体设计以及硬件、软件的设计情况等进行研究和演示,最终实现酒精浓度的自动监测和报警功能,具有一定的使用和参考价值。
关键词: 51单片机;传感器;酒精检测;声光报警;
Abstract:An alcohol monitoring system based on MQ-3 alcohol sensor,STC89C52 MCU as the core control processor,LCD display and acoustic-optic alarm function was designed.The paper studies the design of alcohol monitoring system,which includes hardware and software modules,and finally realizes the automatic monitoring and alarm function of alcohol concentration.
0 引言
气态酒精与空气可形成爆炸性混合物,遇明火、高热能引起爆炸燃烧。酒精在生产过程必须防止酒精泄漏,一旦发生泄漏,需要及时发现泄漏点或泄漏区域。这就需要酒精监测系统,以便实时监测生产区域的酒精气体浓度。
针对这一问题,本文设计了小巧、灵活的51单片机酒精浓度监测系统。本系统,由C语言实现软件功能,硬件主控模块为51单片机最小系统。借助酒精传感器,液晶屏显示当前浓度,设置酒精浓度检测阈值,超过阈值启动声光报警,以适用于不同的工作环境。
图1 单片机最小系统
1 酒精监测系统的总体结构设计
该酒精监测系统主要的功能模块有:51单片机最小系统、LCD液晶显示模块、MQ-3酒精传感器模块、AD模数转换模块、声光报警模块、按键模块等。
MQ-3半导体酒精传感器对酒精气体具有良好的灵敏度,可检测多种浓度酒精气体,使用寿命长,应用成本低。本设计选择MQ-3半导体型酒精传感器,当传感器监测到空气中酒精浓度时,通过单片机的模数转换模块进行转换运算,在显示器上显示当前酒精浓度值。若当前酒精浓度超过所设阈值,声光报警功能启动,蜂鸣器报警,指示灯闪烁。
独立按键可以灵活调节酒精浓度报警阈值,实现人机交互,使该监测系统适应不同的场所。
2 酒精监测系统主要硬件电路的设计
2.1 单片机主控模块的设计
本文选用STC89C51单片机作为系统的主控芯片,控制该酒精检测系统的整体运行。STC89C51单片机的优点为功耗低、八位CMOS微处理器性能高,片内具有8k在线编程Flash存储器,采用MCS-51内核,指令完全兼容MCS-51,具有开发简单、可在线编程下载、成本低等优点。
最小系统主要由STC89C51单片机、晶振电路、复位电路构成。电源主要采用5V直流电,以及220V通用电源接口,方便用户选择,晶振电路为12M石英晶振,并联两个电容,可以起到频率微调作用。复位电路有上电自动复位和开关复位两种复位方式。
2.2 A /D模数转换器的设计
该数字系统直接进行处理和控制的信息为数字信号,需要模数转换装置,将传感器浓度监测的电信号转为数字信号。本文选用的是 ADC0832 模数转换器,其输入输出电平与TTL/CMOS相兼容,5V电源供电时输入电压在0~5V之间,具有体积小,兼容性强,性价比高等特点。
2.3 传感器设备的选用
气体传感器大致可分为半导体型气体传感器和电化学型气体传感器。半导体型气体传感器以其灵敏度高、响应速度快、体积小、重量轻、便于集成化、智能化,能使检测转换一体化的优点,被广泛使用。故本设计选用MQ-3半导体型酒精气体传感器。
图2 MQ-3酒精检测模块
在单片机中常用的液晶显示屏通常有两种,一种是LCD1602液晶显示器,一种是LCD12864液晶显示器。LCD12864可以显示8×4行16×16点阵的汉字,也可完成图形显示;LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块,而酒精监测浓度显示只是简单的字符数字,故本文选用LCD1602液晶显示器。
2.4 声光报警电路的设计
本系统的声光报警电路为PNP型S8550三极管驱动。由于单片机刚上电时,所有的IO口会处于短暂的高电平状态。如果采用NPN型三极管,高电平时三极管导通,蜂鸣器鸣叫报警,会产生干扰。选用PNP型三极管,仅低电平时三极管导通,声光报警电路工作,蜂鸣器报警,指示灯闪烁;高电平时三极管截止,声光报警无现象,对监测结果无影响。
2.5 独立按键的设计
本设计中通过几个独立按键进行人机交互。按键一端连接单片机的I/O口,一端连接电源地,初始状态默认为高电平。按键按下I/O口的电平被拉低,单片机只需循环检测I/O口出现低电平即可判断按键状态。
图3 LCD1602模块
三个按键的功能分别为:
按键一:按下后进入设置模式,可以连续按选择所需要设置的参数,显示屏上会有对应的提示。
按键二:在设置模式下,对应设置的参数加一。
按键三:在设置模式下,对应设置的参数减一。
3 检测算法设计与仿真分析
3.1 算法设计思想
在线酒精浓度监测系统的算法思路为:
(1)程序初始化,酒精传感器预热。
(2)监测浓度,酒精传感器监测当前工作环境下空气中的酒精浓度值。
(3)信号转换,A/D模数转换模块将监测到的浓度信息转换为数字信号,传输至单片机主控系统分析处理。
(4)液晶显示,在LCD1602液晶屏上显示当前酒精浓度信息。
(5)声光报警,超过所设酒精浓度阈值,声光报警模块工作。
(6)退出结束。
算法流程图如图4所示。
主要变量定义如下:
/**********灯、蜂鸣器、按键引脚定义***********/
sbit led=P1^7;//LED灯(红)
sbit buzz=P2^3;//蜂鸣器
sbit key_set=P1^0;//设置键
sbit key_on=P1^3;//加值键
sbit key_off=P1^6;//减值键
/*************全局变量定义*******************/
#define K_MG_MV 2 //电压每升高0.01V,酒精浓度上升2ppm
#define IN_V 500 //电源电压放大100倍。5V*100=500
long ALValue;//存储实际浓度值
uchar K_ZERO;//MQ-3零值
uint jiujia_up,zuijia_up;//存储酒驾、醉驾阀值
uint set_f;//设置选择标记,=0非设置,=1设置酒驾阀值,=2设置醉驾阀值
uchar num;//计数变量
图4 算法流程图
3.2 实验仿真
接下来开始对酒精监测系统进行演示分析。
MQ-3 酒精传感器预热30s后,监测当前环境酒精浓度。AD模块把检测到的酒精浓度值转换为电压信号,经过 STC89C52单片机处理,在液晶显示屏上显示当前浓度。该酒精监测系统可以通过调节变阻器电路电阻值大小改变所设阈值,若检测值大于设定值时,报警电路发出报警。
本次演示所设阈值下限为70mg/L,上限浓度为120mg/L,运行结果示例如图5、图6。
图5 酒精传感器预热
图6 超过阈值上限,声光报警启动
4 小结
本系统用于空气中酒精浓度的监测,分为硬件电路和软件控制两部分。经过模拟演示,该酒精系统能够实现超出阈值自动报警功能,且误差不超过0.05%,性能良好,成本低,具有一定的实用价值。
参考文献
[1]董燕丽,刘攀,赵晓艳酒精浓度测试仪的设计[J].电子测试, 2019(14):23-24.
[2]王红梅.基于嵌入式的酒精罐群泄漏报警系统研究[J].科技创新导报, 2017,14(01):107-108.
[3]崔奇, 张金花,勃,陈永明基于STC89C51单片机的车载酒精含量自检系统设计[J].农业装备与车辆工程, 2019,57(12):44-46.