基于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左右,用可调电阻其他就是电阻分压的原理得到的电压,而我们直接用的是电阻也是可以得到正常显示的电压的。

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值