51单片机厨房环境参数监测(温湿度、烟雾、燃气、CO、甲醛)

目录

具体实现功能

设计介绍

资料内容

全部内容

资料获取


具体实现功能

具体功能:

(1)实时监测厨房中温度、湿度、烟雾、甲醛、一氧化碳、燃气值,并用LCD12864显示;

(2)可用按键设置每个参数的报警值,超过报警值时声光报警;

(3)烟雾、燃气、CO、甲醛超过报警值时,风扇转动换气。温湿度超过报警值时,相应继电器动作。

仿真演示视频:

51单片机厨房环境参数监测(温湿度、烟雾、燃气、CO、甲醛)

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

主函数如下:

复制代码
///////////////////////////////////////////////////
void main()//主函数
{
	uchar i=0;
	//初始化控制参数
	wen1=At24c02Read(0);
	if(wen1>99)
	{
		wen1=20;
		At24c02Write(0,wen1);
	}
	wen2=At24c02Read(1);
	if(wen2>99)
	{
		wen2=40;
		At24c02Write(1,wen2);
	}
	shidu1=At24c02Read(2);
	if(shidu1>99)
	{
		shidu1=30;
		At24c02Write(2,shidu1);
	}
	shidu2=At24c02Read(3);
	if(shidu2>99)
	{
		shidu2=80;
		At24c02Write(3,shidu2);
	}
	yan_lim=At24c02Read(4);
	if(yan_lim>99)
	{
		yan_lim=20;
		At24c02Write(4,yan_lim);
	}
	ranqi_lim=At24c02Read(5);
	if(ranqi_lim>99)
	{
		ranqi_lim=18;
		At24c02Write(5,ranqi_lim);
	}
	co_lim=At24c02Read(6);
	if(co_lim>99)
	{
		co_lim=10;
		At24c02Write(6,co_lim);
	}
	hcho_lim=At24c02Read(7);
	if(hcho_lim>99)
	{
		hcho_lim=20;
		At24c02Write(7,hcho_lim);
	}

	lcd_init();                 // 初始化
    lcd_clear(0);               // 清屏
    lcd_set_line(0);             // 设置起始行为0

	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		i=key_scan();//按键检测
		if((i>0)&&(i<7))//设置
		{
			mode=i;
		}
		if(i==8)	   //OK
			mode=0;
		if(mode==1)//温度设置
		{
			if(i==9)//温度下限设置
			{
				if(wen1<wen2)
					wen1++;
				At24c02Write(0,wen1);
			}
			if(i==10)
			{
				if(wen1>0)
					wen1--;
				At24c02Write(0,wen1);
			}
			if(i==11)//温度上限设置
			{
				if(wen2<99)
					wen2++;
				At24c02Write(1,wen2);
			}
			if(i==12)
			{
				if(wen2>wen1)
					wen2--;
				At24c02Write(1,wen2);
			}
		} 
		if(mode==2)//湿度设置
		{
			if(i==9)//湿度下限设置
			{
				if(shidu1<shidu2)
					shidu1++;
				At24c02Write(2,shidu1);
			}
			if(i==10)
			{
				if(shidu1>0)
					shidu1--;
				At24c02Write(2,shidu1);
			}
			if(i==11)//湿度上限设置
			{
				if(shidu2<99)
					shidu2++;
				At24c02Write(3,shidu2);
			}
			if(i==12)
			{
				if(shidu2>shidu1)
					shidu2--;
				At24c02Write(3,shidu2);
			}
		}
		if(mode==3)//烟雾设置
		{
			if((i==9)||(i==11))
			{
				if(yan_lim<99)
					yan_lim++;
				At24c02Write(4,yan_lim);
			}
			if((i==10)||(i==12))
			{
				if(yan_lim>0)
					yan_lim--;
				At24c02Write(4,yan_lim);
			}			
		}
		if(mode==4)//燃气设置
		{
			if((i==9)||(i==11))
			{
				if(ranqi_lim<99)
					ranqi_lim++;
				At24c02Write(5,ranqi_lim);
			}
			if((i==10)||(i==12))
			{
				if(ranqi_lim>0)
					ranqi_lim--;
				At24c02Write(5,ranqi_lim);
			}			
		} 
		if(mode==5)//CO设置
		{
			if((i==9)||(i==11))
			{
				if(co_lim<99)
					co_lim++;
				At24c02Write(6,co_lim);
			}
			if((i==10)||(i==12))
			{
				if(co_lim>0)
					co_lim--;
				At24c02Write(6,co_lim);
			}			
		} 
		if(mode==6)//甲醛设置
		{
			if((i==9)||(i==11))
			{
				if(hcho_lim<99)
					hcho_lim++;
				At24c02Write(7,hcho_lim);
			}
			if((i==10)||(i==12))
			{
				if(hcho_lim>0)
					hcho_lim--;
				At24c02Write(7,hcho_lim);
			}			
		} 
	}
}

程序运行结果如图:

全部内容

全部资料包括程序(keil5)、protues仿真(protues8.7)、设计说明、软硬件设计框图、答辩PPT、开发资料、资料使用介绍、仿真视频、程序讲解视频、仿真讲解视频、最小系统介绍视频等。

资料获取

https://docs.qq.com/doc/DT05heFBrZGREVEVW

相关推荐
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11015 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元5 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133975 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315205 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang5 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟5 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126915 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315205 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘5 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动