基于51单片机的智能窗口控制系统(protues仿真+程序+论文+PPT+PCB)

基于51单片机的智能窗口控制系统(protues仿真+程序+论文+PPT+PCB)

1、设计功能

自动窗帘控制系统具有以下几个基本功能:

①、手动控制:该功能是根据用户的需求通过按键进行窗帘的开关,此功能可以使窗帘的开闭处于任何一种状态;
②、光照自动控制:系统可以根据用户设定的光照强度值通过感光器采集光照自动开光窗帘;

③、时间控制:此功能是根据用户设定的时间一次性开关窗帘,并显示当前温度。
④、温度报警系统:可以自行设置温度报警温度。
⑤、时间显示及闹钟系统:可以自行设置闹钟时间。
⑥、手动自动控制按键随时切换。

2、prostues仿真

仿真软件使用protues7.8版本

在这里插入图片描述

3、程序

main.c

void main (void)
{
	u8 key;
	cg = 1;
	c1_k = 0;
	c2_k = 0;
	speaker = 1;
	Led_Yellow = 1;

	wendu=check_wendu();		  //初始化时调用温度读取函数 防止开机85°C
	time_init();
	Init1602();			  //调用初始化显示函数
	yanwu=Adc0832(0);				//读取光照值
	tianranqi=Adc0832(1);				//读取天然气值
	wendu=check_wendu();	  //读取温度值


	
	while (1)        					//主循环
	{
		key=Key_Scan();					//按键扫描
		
		if(key==KEY_SET)
		{
			Mode++;
		}
		
		switch(Mode)						//判断模式的值
		{
			case 0:								//监控模式
			{
				times++;					   //计数
				if( times >= 500 )				//大于500,清零
				{
					times = 0;
				}
				if( times <= 300 )			   //小于300,显示光强、温度信息
				{
					if( times == 1 )
					{
						LCD_Write_String(0,0,"SET T:00   L:000");  //开机界面
						LCD_Write_String(1,0,"NOW T:00.0 L:000");  
					}
					Display_1602(yushe_wendu,yushe_yanwu,wendu,yanwu);  //显示预设温度,预设光照,温度值,光照值
					break;
				}
				else							//大于300,显示天然气信息
				{
					if( times == 301 )
					{
						LCD_Write_String(0,0,"SET yanwu:00    ");  //开机界面
						LCD_Write_String(1,0,"NOW yanwu:00.0  "); 
					}
				//	Display_1602(yushe_wendu,yushe_yanwu,wendu,yanwu);  //显示预设温度,预设光照,温度值,光照值
			    	LCD_Write_Char(0,10,yushe_tianranqi,3) ;//显示预设光照
					LCD_Write_Char(1,10,tianranqi,3) ;//显示预设光照
					write_com( 0x80+0x40+10);
					write_data( tianranqi/100+0x30);
					write_data( tianranqi%100/10+0x30);
					write_data( tianranqi%10+0x30);
					write_data( ' ');
					break;
				}
			}
			case 1://预设温度模式
			{
				SelectPosition(0,5) ;					//指定位置
	   			write_com(0x0d);							//阴影闪烁
				if(key==KEY_ADD)							//加键按下
				{
					yushe_wendu++;					    //预设温度值(阀值)加1
					if(yushe_wendu>=99)			 		//当阀值加到大于等于99时
					yushe_wendu=99;					 		//阀值固定为99
					LCD_Write_Char(0,6,yushe_wendu,2) ;//显示预设温度
				}
				if(key==KEY_MINUS)				 		//减键按下
				{
					if(yushe_wendu<=1)					//当温度上限值减小到1时
					yushe_wendu=1;          		//固定为1
					yushe_wendu--;							//预设温度值减一,最小为0
					LCD_Write_Char(0,6,yushe_wendu,2) ;//显示预设温度
				}
				break;			  								//执行后跳出switch
			}
			case 2:				//预设光照模式
			{
				SelectPosition(0,12) ;				//指定位置	
	   		    write_com(0x0d);							//打开显示 无光标 光标闪烁
				if(key==KEY_ADD)							//加键按下
				{
					if(yushe_yanwu>=255)        //当阀值加到大于等于255时
					yushe_yanwu=254;            //阀值固定为254
					yushe_yanwu++;					    //预设光照值(阀值)加1,最大为255
					LCD_Write_Char(0,13,yushe_yanwu,3) ;//显示预设光照
				}
				if(key==KEY_MINUS)						//减键按下
				{
					if(yushe_yanwu<=1)					//当光照上限值减小到1时
						yushe_yanwu=1;          	//固定为1
					yushe_yanwu--;							//预设温度值减一,最小为0	  
					LCD_Write_Char(0,13,yushe_yanwu,3) ;//显示预设光照
				}
				break;
			}
			case 3:				//预设天然气设置
			{
				if( shezhi_flag == 0 )
				{
					LCD_Write_String(0,0,"SET yanwu:      ");  //界面
					LCD_Write_String(1,0,"NOW yanwu:      "); 
					shezhi_flag = 1;
					LCD_Write_Char(0,10,yushe_tianranqi,3) ;//显示天然气设置
					LCD_Write_Char(1,10,tianranqi,3) ;//显示预设天然气设置
					write_com( 0x80+0x40+10);
					write_data( tianranqi/100+0x30);
					write_data( tianranqi%100/10+0x30);
					write_data( tianranqi%10+0x30);
					write_data( ' ');
				}
				SelectPosition(0,9) ;				//指定位置	
	   		    write_com(0x0d);							//打开显示 无光标 光标闪烁
				if(key==KEY_ADD)							//加键按下
				{
					if(yushe_tianranqi>=255)        //当阀值加到大于等于255时
					yushe_tianranqi=254;            //阀值固定为254
					yushe_tianranqi++;					    //预设天然气设置(阀值)加1,最大为255
					LCD_Write_Char(0,10,yushe_tianranqi,3) ;//显示预设天然气设置
				}
				if(key==KEY_MINUS)						//减键按下
				{
					if(yushe_tianranqi<=1)					//当天然气设置上限值减小到1时
						yushe_tianranqi=1;          	//固定为1
					yushe_tianranqi--;							//预设温度值减一,最小为0	  
					LCD_Write_Char(0,10,yushe_tianranqi,3) ;//显示预设天然气设置
				}
				break;
			}
			default	:	
			{
				write_com(0x38);//屏幕初始化
				write_com(0x0c);//打开显示 无光标 无光标闪烁
				Mode=0;			//恢复正常模式
				shezhi_flag = 0;
				times = 0;
				break;
			}
		}
		
	}

}

4、论文

在这里插入图片描述

5、资源整体

在这里插入图片描述

链接:https://pan.baidu.com/s/1tfKsM--b_sWE_ScKnVYaSw 提取码:gmff

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin的学习站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值