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

相关推荐
嵌入小生00717 小时前
硬件 --- GPIO/中断/定时器/蜂鸣器
单片机·嵌入式硬件·定时器·pwm·gpio·蜂鸣器·中断
forAllforMe17 小时前
LAN9252 从机模式寄存器的配置代码示例
stm32·单片机·嵌入式硬件
不想起床&17 小时前
51单片机
单片机·嵌入式硬件·51单片机
我在人间贩卖青春18 小时前
单片机复位源
单片机·嵌入式硬件·复位源
项目題供诗18 小时前
51单片机入门-温度传感器DS18B20(十三)
单片机·嵌入式硬件·51单片机
莎士比亚的文学花园18 小时前
硬件通信——UART串行口
单片机·嵌入式硬件
guygg8819 小时前
基于STM32的贪吃蛇游戏实现(OLED屏)
stm32·嵌入式硬件·游戏
BackCatK Chen19 小时前
STM32保姆级入门教程|第4章:GPIO输入+外部中断 实现按键控制LED(手把手全流程)
stm32·单片机·外部中断·按键控制 led·stm32cubeid·gpio 输入
悠哉悠哉愿意20 小时前
【单片机学习笔记】第十二届国赛经验复盘
笔记·单片机·嵌入式硬件·学习
rit843249920 小时前
STC8单片机模拟AD转换程序(NTC测温)
单片机·嵌入式硬件