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

相关推荐
ipod7413 小时前
电子电路的元器件
单片机·嵌入式硬件
清风6666663 小时前
基于单片机的脉搏与呼吸监测报警设备设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
Hello_Embed4 小时前
嵌入式上位机开发入门(十九):Socket 状态检测与断线重连
网络·单片机·网络协议·tcp/ip·嵌入式
foundbug9994 小时前
STM32 内部温度传感器测量程序(标准库函数版)
stm32·单片机·嵌入式硬件·算法
天狼IoT4 小时前
STM32-keil+CubeMX快速开发:新建项目
stm32·单片机·嵌入式硬件
gihigo19985 小时前
量程自动切换数字电压表Proteus仿真+程序
单片机·嵌入式硬件·proteus
木燚垚5 小时前
基于STM32的智能衣柜系统设计与实现——温湿度调控+烟雾报警+远程监控
stm32·单片机·嵌入式硬件
才知道的6 小时前
stm32F407学习DAY.27 ADC
stm32·嵌入式硬件·学习
senijusene7 小时前
i.MX6ULL 裸机 ECSPI 驱动开发详解:
arm开发·驱动开发·嵌入式硬件
JaneHan_9 小时前
STM32CubeMX+HAL+Keil5 PWM呼吸灯
c语言·stm32·单片机