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

相关推荐
南岸的水2 小时前
BMS国标充电解析
单片机·嵌入式硬件·mcu
清风6666662 小时前
基于单片机的可调数控电源设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
sramdram2 小时前
低功耗国产蓝牙芯片,蓝牙MCU方案
单片机·嵌入式硬件·mcu·蓝牙mcu·蓝牙方案
yuan199972 小时前
CMS8S5880 电子锁程序(51单片机)
单片机·嵌入式硬件·51单片机
振南的单片机世界3 小时前
启动流程:上电先取栈顶和复位向量,再进main
arm开发·stm32·嵌入式硬件
fanged3 小时前
设备树学习2--一个设备
嵌入式硬件
数智工坊3 小时前
【ROS 2 全栈入门指南三】:Action、参数与Launch文件全链路指南
android·stm32·嵌入式硬件·学习·机器人
Inhand陈工3 小时前
映翰通IG502实战:通过RS232采集交通信号灯数据,实现自动短信告警
网络·嵌入式硬件·物联网·网络安全·边缘计算·信息与通信·信号处理
不脱发的程序猿4 小时前
我把360里真正用得到的功能拆出来,做个轻量工具
stm32·单片机·嵌入式硬件
踏着七彩祥云的小丑4 小时前
嵌入式测试学习第 31 天:兼容性测试:版本兼容、外设兼容、硬件版本兼容
单片机·嵌入式硬件·学习