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

相关推荐
HQB20261 小时前
屹晶微电子 EG1130|2‑24V 输入 / 最高 28V 输出 内置 MOS 异步升压 DC‑DC|SOT23‑6|摄像头 / 车充 / 电池充电电源
嵌入式硬件·硬件工程
泛凡(Linyongui)3 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
十年磨一剑~4 小时前
Linux 内核中断处理机制与软硬件协同流程
linux·嵌入式硬件
糖糖单片机设计4 小时前
基于单片机的热水器节能控制系统
单片机·嵌入式硬件
数字新视界5 小时前
数字孪生技术赋能智能化转型与创新实践
嵌入式硬件·物联网·系统架构·机房管理·动力与环境监控系统
HQB20265 小时前
屹晶微电子 EG1195|10‑120V/10A+ 外置 MOS 异步降压控制器|ESOP‑8|电动车转换器 / 快充 / 工业电源
嵌入式硬件·硬件工程
不悔哥7 小时前
开源LineageOS:旧手机刷上开源系统
嵌入式硬件·智能手机·开源
服务器硬件项目经理7 小时前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
一次调频AGCAVC8 小时前
一次调频系统控制柜的组成及一次调频装置主机功能详述
人工智能·嵌入式硬件
金色光环8 小时前
【DSP学习】C2000_PWM中断程序_笔记
笔记·单片机·学习