基于51单片机智能有毒气体检测仪设计(煤气酒精co)(转发分享)

Posted Mr song song

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于51单片机智能有毒气体检测仪设计(煤气酒精co)(转发分享)相关的知识,希望对你有一定的参考价值。

本设计由STC89C52单片机电路+LCD1602液晶显示电路+MQ-2甲烷传感器模块电路+MQ-3酒精传感器模块电路+MQ-9 CO传感器电路+A/D采样PCF8591电路+蜂鸣器报警电路+LED指示灯电路+按键电路+蓝牙模块电路+电源电路组成。

1、LCD1602液晶实时显示当前的甲烷浓度、酒精浓度和CO浓度。

2、如果甲烷浓度或酒精浓度或CO浓度超过设定的阈值,则蜂鸣器报警,否则蜂鸣器不报警。

3、如果甲烷浓度超过设定的阈值,则红灯亮,否则红灯灭。

4、如果酒精浓度超过设定的阈值,则绿灯亮,否则绿灯灭。

5、如果甲CO浓度超过设定的阈值,则黄灯亮,否则黄灯灭。

6、可以通过按键设置煤气浓度、酒精浓度和CO浓度的阈值。

7、通过蓝牙模块将液晶显示的数据实时上传到手机蓝牙APP。

电路图

程序代码

#include <include.h>

sbit LED_Y = P1^7;	//绿灯
sbit LED_G = P1^6;	//黄灯
sbit LED_R = P1^5;	//红灯

sbit buzer = P1^4;	 //蜂鸣器

char dis0[17];			   //打印数组初始化
char dis1[17];			   //打印数组初始化
unsigned long time_20ms=0;		   //定时器计数
unsigned char safeNong_jiawan = 80;	//甲烷浓度
unsigned char safeNong_jiujing = 80;	//酒精浓度
unsigned char safeNong_co = 80;	//CO浓度

unsigned char  readAdc = 0; //adc读取标志
unsigned char rekey = 0; //防止按键重复按下
unsigned char setFlag = 0;
void Init_Timer0(void);

long jiawanNongDu = 0; //甲烷浓度
long jiujingNongDu = 0; //酒精浓度
long coNongDu = 0; //CO浓度

void main (void)
     
	unsigned char midvolt;

	Init_Timer0();        //定时器0初始化
	InitUART(9600);
	             
	
	while (1)         //主循环
	
		if(readAdc == 1)
																	  
			midvolt=ReadADC(0);				//读取AD检测到的 光敏地值 
			midvolt=ReadADC(1);				//读取AD检测到的 光敏地值
			
								  //1ppm=1mg/kg=1mg/L=1×10-6 常用来表示气体浓度,或者溶液浓度
							  //1ppm=1mg/kg=1mg/L=1×10-6 常用来表示气体浓度,或者溶液浓度。       

			if((jiawanNongDu>safeNong_jiawan)||(jiujingNongDu>safeNong_jiujing)||(coNongDu>safeNong_co))//黄色范围
			
				if(jiawanNongDu > safeNong_jiawa

编辑

737 基于51单片机智能有毒气体检测仪设计(煤气、酒精、co)

文章转自电设屋,完整资料百度网盘下载地址www.aiesst.cn/share.html

常见问题:

P0 口需不需要加上拉电阻问题

P0口做数据总线用是不需要加上拉电阻,这个书上面有写的,就是8个IO口同时控制输出,比如P0口接1602液晶、12864液晶、数码管的8段段选等等都不需要加上拉电阻,如果做单个的IO口用就要加上拉电阻,仿真里P0口必需要加上拉电阻,这个是仿真和实际的差别。

数码管采用的是什么扫描方式?

一位数码管的设计就是采用静态扫描的方式,因为一位数码管是8个段选1个位选,如果采用动态,那就是得用9个IO口,而且程序也比较麻烦,如果选用静态那么位选接电源或地(共阳接电源,共阴接地),段选接IO口,就可以控制显示了,这样只用8个IO口就ok,而且程序比较简单。多位一体的数码管只能用动态扫描的方式,因为硬件本身就将每个位的段都接到一起了,所以只能动态控制了。

蜂鸣器或继电器的驱动三极管为什么选用pnp型的(9012、8550),而不是npn型的(9013、8050)?

因为单片机刚一上电的时候所有的IO口会有一个短暂的高电平。如果选用npn型的,即使程序上将IO口拉低,蜂鸣器或继电器也会响一小下或吸合一下,为了避免这种情况发生,就选用pnp型的。因为我们想控制蜂鸣器或继电器工作单片机的IO口要低电平,这样就避免了,因为我们不可能刚一通电就让蜂鸣器响或继电器吸合。避免了不必要的麻烦。

液晶三脚接的电阻是而不是可调电阻?

经过查阅资料得知(买液晶时给的资料),液晶3脚是灰度调节引脚,灰度正常时是0.5~1V左右,用可调电阻其他就是电阻分压的原理得到的电压,而我们直接用的是电阻也是可以得到正常显示的电压的。

以上是关于基于51单片机智能有毒气体检测仪设计(煤气酒精co)(转发分享)的主要内容,如果未能解决你的问题,请参考以下文章

基于51单片机的呼出有毒气体(煤气酒精co)检测仪设计

基于51单片机的呼出有毒气体(煤气酒精co)检测仪设计

转发-基于51单片机的呼出有毒气体(煤气酒精co)检测仪设计

转发-基于51单片机的呼出有毒气体(煤气酒精co)检测仪设计

基于单片机热电偶智能体温检测系统设计-基于单片机一氧化碳CO有毒气体采集报警系统设计-基于单片机热电偶智能体温检测系统设计(仿真,原理图,报告)资料转发分享

基于51单片机的公交车安全智能检测系统基于51单片机的金属探测仪控制设计基于单片机的智能电子密码锁系统设计基于51单片机酒精浓度检测仪设计资料转发分享