⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settimer.c

📁 STM32实现定时加热
💻 C
字号:
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"		
#include "delay.h"	
#include "led.h" 
#include "key.h"
#include "exti.h"
#include "timer.h"
#include "lcd.h"	   
#include "rtc.h"
#include "wkup.h"
#include "remote.h"
#include "ds18b20.h"
#include "switch.h"
#include "settimer.h"
#include "temperature.h"
//功能:设置时间
//通过红外按键设置 年 月 日 时 分 秒
//设置了良好的人际对话界面

void set_timer1()
{	 
     u8 key;
	 int sum;// 暂时存放数据
	 LCD_Clear(WHITE); 
	 Remote_Rdy=0;//防止干扰
	 while(1)
	 {
		 LCD_ShowString(30,8,"Input your choice(1-6)");
		 LCD_ShowString(2,28,"1,revise year");
		 LCD_ShowString(2,48,"2,revise month");
		 LCD_ShowString(2,68,"3,revise date");
		 LCD_ShowString(2,88,"4,revise hour");
		 LCD_ShowString(2,108,"5,revise min");
		 LCD_ShowString(2,128,"6,revise sec");	 
		if(Remote_Rdy)
		{
				 key=Remote_Process();
				 if(key==104) 	//1	  第一种方法
				 {	 LCD_Fill(0,148,240,320,WHITE);
				 	LCD_ShowString(60,148,"Input year(1970-2099)");
					 Remote_Rdy=0;
				    get_remote(4);
					sum=set_timer_temp[0]*1000+set_timer_temp[1]*100+set_timer_temp[2]*10+set_timer_temp[3];
					LCD_ShowNum(60,168,sum,4,16);
				//	LCD_ShowString(60,188,"please sure!(ALIENK)");
				 // 	if(judge())	
				//	{   
					  if(RTC_Set((u16)sum,timer.w_month,timer.w_date,timer.hour,timer.min,timer.sec)==0) 
					  {
					   LCD_ShowString(60,188,"finish year!");
					   LCD_ShowString(120,28,"Now:");
					   LCD_ShowNum(160,28,sum,4,16);
					  	delay_1s(2);
					//	break;
					  }
					else 
					 {
					    LCD_ShowString(60,188, "ERROR!exit year !");
					  	delay_1s(2);
					//	break;
					 }	 
			//		}  
		    // else 
		    //		{
			//		 LCD_ShowString(60,208,"exit year!"); 
			//		 delay_1s(2);
				//	 break;
			//		 }		
	        	 }
				 else if(key==152) 	  //2这是第二种方法
				 {
				 	LCD_Fill(0,148,240,320,WHITE);
				 	LCD_ShowString(60,148,"Input month(01-12)");
					Remote_Rdy=0;
				    get_remote(2);
					sum=set_timer_temp[0]*10+set_timer_temp[1];
					LCD_ShowNum(60,168,sum,2,16);
				//	LCD_ShowString(60,188,"please sure!(ALIENK)");
				//	if(judge())	
				//	{	
					if(sum<0||sum>12)	 {LCD_ShowString(60,188,"ERROR!exit month!");delay_1s(2);/*break;*/}
					RTC_Set(timer.w_year,(u8)sum,timer.w_date,timer.hour,timer.min,timer.sec);
					LCD_ShowString(60,188,"finish month!");
					LCD_ShowString(120,48,"Now:");
					 LCD_ShowNum(160,48,sum,2,16);
					delay_1s(2);
				//	break;
				//	}
					//	else 
				//	{
				//	 LCD_ShowString(60,208,"exit month!"); 
				//	 delay_1s(2);
				//	 break;
				//	 }
				 }
				 else if(key==176) 	 //3
				 {	   
				   LCD_Fill(0,148,240,320,WHITE);
				 	LCD_ShowString(60,148,"Input date!(01-31)");  
					Remote_Rdy=0;
				    get_remote(2);
					sum=set_timer_temp[0]*10+set_timer_temp[1];
					LCD_ShowNum(60,168,sum,2,16);	
				//	LCD_ShowString(60,188,"please sure!(ALIENK)");
				//	if(judge())
				//	{
					       if(0<sum&&sum<32)		  //这里有点问题无正常识别特殊月份
							{
							RTC_Set(timer.w_year,timer.w_month,(u8)sum,timer.hour,timer.min,timer.sec);
							LCD_ShowString(60,188,"finish date!");
						  LCD_ShowString(120,68,"Now:");
				     	   LCD_ShowNum(160,68,sum,2,16);
							delay_1s(2);
						//	break;
							}
								else 
							 {
							    LCD_ShowString(60,188, "ERROR! exit date!");
							  	delay_1s(2);
						//		break;
							 }
				//	}
				//	 else 
				//	{
				//	 LCD_ShowString(60,208,"exit date!"); 
				//	 delay_1s(3);
				//	 break;
				//	 }
				 }
				   	 else if(key==48) //4
				 {
				    LCD_Fill(0,148,240,320,WHITE);
				 	LCD_ShowString(60,148,"Input hour!(00-24)");
					Remote_Rdy=0;
				    get_remote(2);
					sum=set_timer_temp[0]*10+set_timer_temp[1];
					LCD_ShowNum(60,168,sum,2,16);
				//	LCD_ShowString(60,188,"please sure!(ALIENK)");
				//	if(judge())
				//	{
					if(0<=sum&&sum<25)  //  if(0<=sum<25)这样设置系统会认为是或的关系而不是与的关系
						{
						RTC_Set(timer.w_year,timer.w_month,timer.w_date,(u8)sum,timer.min,timer.sec);
						LCD_ShowString(60,188,"finish hour!");
						LCD_ShowString(120,88,"Now:");
				     	 LCD_ShowNum(160,88,sum,2,16);
						delay_1s(2);
					//	break;
						}
						 else 
						 {
							LCD_ShowString(60,188, "ERROR! exit hour!");
							delay_1s(2);
						//    break;
						 }
				//	}
				 //   else 
				//	{
				//	 LCD_ShowString(60,208,"exit hour!"); 
				//	 delay_1s(2);
				//	 break;
				  //  }
				 }
				   if(key==24) 	  //5
				 {
				    LCD_Fill(0,148,240,320,WHITE);
				 	LCD_ShowString(60,148,"Input min!(00-59)");
					Remote_Rdy=0;
				    get_remote(2);
					sum=set_timer_temp[0]*10+set_timer_temp[1];
					LCD_ShowNum(60,168,sum,2,16);
					//LCD_ShowString(60,188,"please sure!(ALIENK)");
					//if(judge())
				//	{	
			        if(	0<=sum&&sum<60)
					   {	   
					        RTC_Set(timer.w_year,timer.w_month,timer.w_date,timer.hour,(u8)sum,timer.sec);
							LCD_ShowString(60,188,"finish min!");
							LCD_ShowString(120,108,"Now:");
				     	   LCD_ShowNum(160,108,sum,2,16);
							delay_1s(2);
						//	break;
				    	}
					else 
						 {
							LCD_ShowString(60,188, "ERROR! exit min!");
							delay_1s(2);
						 //   break;
					     }

				//	}
				//	  else 
				//	{
					// LCD_ShowString(60,208,"exit min!"); 
				//	 delay_1s(2);
				//	 break;
				   // }
				 }
		
				   	  else if(key==122)  //6
				 {
				    LCD_Fill(0,148,240,320,WHITE);
				 	LCD_ShowString(60,148,"Input sec!(00-59)");
					Remote_Rdy=0;
				    get_remote(2);
					sum=set_timer_temp[0]*10+set_timer_temp[1];
					LCD_ShowNum(60,168,sum,2,16);
				//	LCD_ShowString(60,188,"please sure!(ALIENK)");
				//	if(judge())	
				//	{
					    if(0<=sum&&sum<60)
						{
						RTC_Set(timer.w_year,timer.w_month,timer.w_date,timer.hour,timer.min,(u8)sum);
						LCD_ShowString(60,188,"finish sec!");
						LCD_ShowString(120,128,"Now:");
				        LCD_ShowNum(160,128,sum,2,16);
						delay_1s(2);
					//	break;
						}
						else 
					   {
							    LCD_ShowString(60,188, "ERROR! exit sec!");
							  	delay_1s(2);
						//		break;
				       	}

				//	}
					 //	  else 
				//	{
				//	 LCD_ShowString(60,208,"exit sec!"); 
				//	 delay_1s(2);
				//	 break;
				  //  }
				 }
				 else  if(key==82)
				 {
					 LCD_Fill(0,148,240,320,WHITE);
				 	 LCD_ShowString(60,148,"exit operation!");
					// LCD_ShowString(60,168,"operation again ?");
					 LCD_ShowString(60,168,"ALIENK(yes) else(no)");
					 if(judge()==1) { LCD_Clear(WHITE); break;}
					 LCD_Clear(WHITE);
				 }	 
		}  
	}
}                             	   	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -