基于51单片机的甲醛浓度检测仪

一.硬件方案

本设计以51单片机作为控制核心,甲醛模组传感器作为检测信号源,实现在甲醛浓度超过一定值的时候控制扬声器提示。本课题以C51系列的STC89c52RC为控制核心,甲醛模组传感器模块检测信息,设置系统键盘模块,警报电路,液晶显示,组成甲醛检测仪系统总成综合实现所有功能。
电路主要由51单片机甲醛浓度报警器采用51单片机+ZE08-CH2O甲醛浓度传感器+LCD1602液晶显示+LED灯+按键+蜂鸣器设计而成;

二.设计功能

(1)采用ZE08-CH2O检测当前甲醛浓度值并实时显示;
(2)通过按键可设置报警最小浓度。当实际测出的甲醛浓度大于设定的浓度时就会使得蜂鸣器、LED灯报警;
(3)LED灯显示正常工作状态和报警状态;
(4)LCD1602液晶显示所测的距离已经设置的报警阈值,简单明了;
(5)按键说明:增加键,减少键。

三.设计原理图

(1)Protues仿真图如下:
在这里插入图片描述
(2)PCB图如下:
在这里插入图片描述

四.软件设计

主程序源码

void main()
{
	uchar h,l;
	LCD1602_cls();	  //LCD 1602   调用初始化程序
	TMOD=0x21;	//配置定时
	TH0=0x4c;		//50ms  定时赋值
	TL0=0x00;
	ET0=1;
	TR0=1;
	TH1=0xfd;		//串口波特率定时初始
	TL1=0xfd;
	SCON=0x50;	//只发送
	EA=1;		//打开定时总中断
	ES=1;		//打开串口中断				
	TR1=1;
	h=byte_read(0x2000);
	l=byte_read(0x2001);   //读取保存的数据
	ch2o_H=h*256+l;
	if(ch2o_H>700)
	ch2o_H=80;
	while(1)
	{
		show();		 //显示函数
		key();		 //按键处理程序
		proc();		 //超限处理程序
	}
}


void UART_1() interrupt 1 
{
	TH0=0x4c;
	TL0=0x00;
	ms++;
	if(ms%2==0)   //长按按键计数处理
	{
		if(sec>1)
		{
			if(!key_1)	//设置按键长按处理
			{
				if(ch2o_H<700)ch2o_H++;
			}
			if(!key_2)
			{
				if(ch2o_H>0) ch2o_H--;
			}
		}
	}
	if(ms%10==0)
	{
		if(beep1==1)	//蜂鸣器报警处理
		{
			beep=!beep;
		}else
		{
			beep=1;
		}
	}
	if(ms>19)	   //1s 定时
	{
		ms=0;
		sec++;
		
	}
} 

资料链接:https://pan.baidu.com/s/1bWlJl4bsa4o7KzT_fZIfNg?pwd=4am7

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值