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

📄 keyboard.c

📁 用GCC编写ATMEG128应用软件源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
					if(SET_2_GTZJ_Parameter_2>300){SET_2_GTZJ_Parameter_2=110;}
					break;
				}
				case 5:
				{
				    SET_2_GTZJ_Parameter_3+=10;
					if(SET_2_GTZJ_Parameter_3>300){SET_2_GTZJ_Parameter_3=110;}
					break;
				}
				default:
				{
				    break;
				}
			}
		    break;
		}
		default:
		{
			break;
		}
	}
}

/*********************************************************************************************/
//函数名称:K4_key()
//函数功能:K4键输入处理函数
//调用关系:被key_Input_Processing()函数调用
//返 回 值:无
/*********************************************************************************************/
void K4_key(void)
{
    switch(Operation_Menu)
	{
	    case 10://设置系统日期
		{
			switch(Select_Bit)
			{
			    case 0:
				{
				    if(SET_Year_Variable<2000){SET_Year_Variable=2099;}
					else{SET_Year_Variable--;}
					TIMER_Week=WeekComputer(SET_Year_Variable,SET_Month_Variable,SET_Date_Variable);
					break;
				}
				case 1:
				{
				    if(SET_Month_Variable<1){SET_Month_Variable=12;}
					else{SET_Month_Variable--;}
					TIMER_Week=WeekComputer(SET_Year_Variable,SET_Month_Variable,SET_Date_Variable);
					break;
				}
				case 2:
				{
				    Date_Sub();
					break;
				}
				default:
				{
				    break;
				}
			}
			break;
		}
		case 11://设置系统时间
		{
			switch(Select_Bit)
			{
			    case 0:
				{
				    if(SET_HH_Variable<=0){SET_HH_Variable=23;}
					else{SET_HH_Variable--;}
					break;
				}
				case 1:
				{
				    if(SET_MM_Variable<=0){SET_MM_Variable=59;}
					else{SET_MM_Variable--;}
					break;
				}
				case 2:
				{
					if(SET_SS_Variable<=0){SET_SS_Variable=59;}
					else{SET_SS_Variable--;}
					break;
				}
				default:
				{
				    break;
				}
			}
			break;
		}
		case 12://设置本机地址参数显示
		{
			if(Password_Cn<10){SET_Addr_Variable--;}
			break;
		}
		case 13://密码输入-1操作
		{
		    switch(Select_Bit)
			{
				case 0:
				{
				    if(Password_Number[0]<=0){Password_Number[0]=9;}
					else{Password_Number[0]--;}
					break;
				}
				case 1:
				{
				    if(Password_Number[1]<=0){Password_Number[1]=9;}
					else{Password_Number[1]--;}
					break;
				}
				case 2:
				{
				    if(Password_Number[2]<=0){Password_Number[2]=9;}
					else{Password_Number[2]--;}
					break;
				}
				case 3:
				{
				    if(Password_Number[3]<=0){Password_Number[3]=9;}
					else{Password_Number[3]--;}
					break;
				}
				case 4:
				{
				    if(Password_Number[4]<=0){Password_Number[4]=9;}
					else{Password_Number[4]--;}
					break;
				}
				case 5:
				{
				    if(Password_Number[5]<=0){Password_Number[5]=9;}
					else{Password_Number[5]--;}
					break;
				}
				default:
				{
				    break;
				}
			}
		    break;
		}
		case 14://缸套参数-10操作
		{
		    switch(Select_Bit)
			{
				case 0:
				{
				    if(SET_1_GTZJ_Parameter_1<=110){SET_1_GTZJ_Parameter_1=300;}
					else{SET_1_GTZJ_Parameter_1-=10;}
					break;
				}
				case 1:
				{
				    if(SET_1_GTZJ_Parameter_2<=110){SET_1_GTZJ_Parameter_2=300;}
					else{SET_1_GTZJ_Parameter_2-=10;}
					break;
				}
				case 2:
				{
				    if(SET_1_GTZJ_Parameter_3<=110){SET_1_GTZJ_Parameter_3=300;}
					else{SET_1_GTZJ_Parameter_3-=10;}
					break;
				}
				case 3:
				{
				    if(SET_2_GTZJ_Parameter_1<=110){SET_2_GTZJ_Parameter_1=300;}
					else{SET_2_GTZJ_Parameter_1-=10;}
					break;
				}
				case 4:
				{
				    if(SET_2_GTZJ_Parameter_2<=110){SET_2_GTZJ_Parameter_2=300;}
					else{SET_2_GTZJ_Parameter_2-=10;}
					break;
				}
				case 5:
				{
				    if(SET_2_GTZJ_Parameter_3<=110){SET_2_GTZJ_Parameter_3=300;}
					else{SET_2_GTZJ_Parameter_3-=10;}
					break;
				}
				default:
				{
				    break;
				}
			}
		    break;
		}
		default:
		{
			break;
		}
	}
}

/*********************************************************************************************/
//函数名称:K5_key()
//函数功能:K5键输入处理函数
//调用关系:被key_Input_Processing()函数调用
//返 回 值:无
/*********************************************************************************************/
void K5_key(void)
{
	switch(MenuNumber)
	{
	    case 1:  //设置系统日期
		{
		    if(Operation_Menu!=10)
			{
			    Operation_Menu=10;
				ClearScreen();
			    Master_Menu(Operation_Menu);
			}
			else
			{
			    Date_Rewrite();
			    MenuNumber=0;
	            Operation_Menu=0;
	            JK_Pic_OK=0;
			}
			break;
		}
		case 2:  //设置系统时间
		{
		    if(Operation_Menu!=11)
			{
			    Operation_Menu=11;
			    ClearScreen();
				Master_Menu(Operation_Menu);
			}
			else
			{
			    Timer_Rewrite();
				MenuNumber=0;
	            Operation_Menu=0;
	            JK_Pic_OK=0;
			}
			break;
		}
		case 3:  //设置本机地址参数显示
		{
		    if(Password_OK==1)	   //密码验证通过
			{
			    Password_Cn=0;                  //密码计数器清零
				wdt_reset();//喂狗,以免退出复位
				eeprom_busy_wait();
			    eeprom_write_byte (&Password_EEPROM,Password_Cn); // 写 Password_EEPROM
				wdt_reset();//喂狗,以免退出复位
				eeprom_busy_wait();
				Password_Cn=eeprom_read_byte(&Password_EEPROM);   //密码计数器
					
				if(Operation_Menu!=12)
			    {
			        Operation_Menu=12;
			        ClearScreen();
					wdt_reset();//喂狗,以免退出复位
				    eeprom_busy_wait();
	                SET_Addr_Variable=eeprom_read_byte(&ADDR);  //读地址码
				    Master_Menu(Operation_Menu);     
			    }
			    else
			    {
				    MenuNumber=0;
					wdt_reset();//喂狗,以免退出复位
				    eeprom_busy_wait();
			        eeprom_write_byte (&ADDR,SET_Addr_Variable); // 写 SET_Addr_Variable
				    eeprom_busy_wait();
	                AddrNuber=eeprom_read_byte(&ADDR);
	                Operation_Menu=0;
	                JK_Pic_OK=0;
					Password_OK=0;
			    }
			}
			else
			{
				if(Operation_Menu!=13)
			    {
			        Operation_Menu=13;
					ClearScreen();
					wdt_reset();//喂狗,以免退出复位
				    eeprom_busy_wait();
	                SET_Addr_Variable=eeprom_read_byte(&ADDR);  //读地址码
				    Master_Menu(Operation_Menu);     
			    }
				else
				{
	                Password_Judge();//密码判断函数
		            if(Password_OK==0)	   //密码验证失败
		            {
		                ClearScreen();
						wdt_reset();//喂狗,以免退出复位
			            Password_ERR_Disp(80,12,1,1);  //密码错误!!!
						
						Password_Cn++;                  //密码计数器
						wdt_reset();//喂狗,以免退出复位
						eeprom_busy_wait();
			            eeprom_write_byte (&Password_EEPROM,Password_Cn); // 写 Password_EEPROM
						wdt_reset();//喂狗,以免退出复位
						eeprom_busy_wait();
						Password_Cn=eeprom_read_byte(&Password_EEPROM);   //密码计数器
						
				        Master_Menu(Operation_Menu); 
						MenuNumber=0;                   //返回监控界面
			            Operation_Menu=0;
	                    JK_Pic_OK=0;
			            Password_OK=0;
						_delay_ms(20);_delay_ms(20);_delay_ms(20);
						_delay_ms(20);_delay_ms(20);_delay_ms(20);
		            }
				}
				Master_Menu(Operation_Menu); 
			}
			break;
		}
		case 4:  //设置缸套直径
		{
            if(Operation_Menu!=14)
			{
			    Operation_Menu=14;
			    ClearScreen();
				
				Master_Menu(Operation_Menu);
			}
			else
			{
			    GTZJ_Rewrite();   //缸套直径参数改写函数
				MenuNumber=0;
	            Operation_Menu=0;
	            JK_Pic_OK=0;
			}
			break;
		}
		case 5:  //退出
		{
		    MenuNumber=0;
	        JK_Pic_OK=0;
			break;
		}
		case 6:   //非菜单下,清累计流量确认操作!
		{
		    ClearScreen();    //清屏
			MenuNumber=0;     //返回监控界面
			Operation_Menu=0;
	        JK_Pic_OK=0;
            CLEAR_Key=1;      //置位标志
			break;
		}
		default:   //非法操作
		{
		    break;
		}
	}
}

/*********************************************************************************************/
//函数名称:K6_key()
//函数功能:K6键输入处理函数
//调用关系:被key_Input_Processing()函数调用
//返 回 值:无
/*********************************************************************************************/
void K6_key(void)
{
    MenuNumber=0;
	Operation_Menu=0;
	JK_Pic_OK=0;
	Password_OK=0;//密码验证默认是失败,未通过,为下一次做准备
}

/*********************************************************************************************/
//函数名称:Date_Rewrite(void)
//函数功能:日期改写函数
//调用关系:被key_5_Processing()函数调用
//返 回 值:无
/*********************************************************************************************/
void Date_Rewrite(void)
{
	SetDate(
	       ((SET_Date_Variable%10)+((SET_Date_Variable/10)<<4)),	//设置日
	       ((SET_Month_Variable%10)+((SET_Month_Variable/10)<<4)),	//设置月
		   (((uchar)(SET_Year_Variable-2000)%10)+(((uchar)(SET_Year_Variable-2000)/10)<<4))	//设置年
			);
	
	TIMER_Week=WeekComputer(SET_Year_Variable,SET_Month_Variable,SET_Date_Variable);			
}

/********************************************************************************************/
//函数名称:Timer_Rewrite(void)
//函数功能:时间改写函数
//调用关系:被key_5_Processing()函数调用
//返 回 值:无
/********************************************************************************************/
void Timer_Rewrite(void)
{
	SetTime(
	       ((SET_SS_Variable%10)+((SET_SS_Variable/10)<<4)),   //设置秒
		   ((SET_MM_Variable%10)+((SET_MM_Variable/10)<<4)),   //设置分
		   ((SET_HH_Variable%10)+((SET_HH_Variable/10)<<4))	   //设置时
		   );
}

/********************************************************************************************/
//函数名称:Timer_Rewrite(void)
//函数功能:缸套直径参数改写函数
//调用关系:被key_5_Processing()函数调用
//返 回 值:无
/********************************************************************************************/
void GTZJ_Rewrite(void)
{
    wdt_reset();//喂狗,以免退出复位
	
	eeprom_busy_wait();
	eeprom_write_word (&GTZJ_1_1_EEPROM,SET_1_GTZJ_Parameter_1); // 写1#泵缸套参数1
	
	eeprom_busy_wait();
	eeprom_write_word (&GTZJ_1_2_EEPROM,SET_1_GTZJ_Parameter_2); // 写1#泵缸套参数2
	
	eeprom_busy_wait();
	eeprom_write_word (&GTZJ_1_3_EEPROM,SET_1_GTZJ_Parameter_3); // 写1#泵缸套参数3
	
	eeprom_busy_wait();
	eeprom_write_word (&GTZJ_2_1_EEPROM,SET_2_GTZJ_Parameter_1); // 写2#泵缸套参数1
	
	eeprom_busy_wait();
	eeprom_write_word (&GTZJ_2_2_EEPROM,SET_2_GTZJ_Parameter_2); // 写2#泵缸套参数2
	
	eeprom_busy_wait();
	eeprom_write_word (&GTZJ_2_3_EEPROM,SET_2_GTZJ_Parameter_3); // 写2#泵缸套参数3
	
	eeprom_busy_wait();
	SET_1_GTZJ_Parameter_1=eeprom_read_word(&GTZJ_1_1_EEPROM);  //更新1#泵缸套参数1
	
	eeprom_busy_wait();
	SET_1_GTZJ_Parameter_2=eeprom_read_word(&GTZJ_1_2_EEPROM);  //更新1#泵缸套参数2
	
	eeprom_busy_wait();
	SET_1_GTZJ_Parameter_3=eeprom_read_word(&GTZJ_1_3_EEPROM);  //更新1#泵缸套参数3
	
	eeprom_busy_wait();
	SET_2_GTZJ_Parameter_1=eeprom_read_word(&GTZJ_2_1_EEPROM);  //更新2#泵缸套参数1
	
	eeprom_busy_wait();
	SET_2_GTZJ_Parameter_2=eeprom_read_word(&GTZJ_2_2_EEPROM);  //更新2#泵缸套参数2
	
	eeprom_busy_wait();
	SET_2_GTZJ_Parameter_3=eeprom_read_word(&GTZJ_2_3_EEPROM);  //更新2#泵缸套参数3
}

⌨️ 快捷键说明

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