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

📄 key.c

📁 基于MST-G240128点阵液晶的 状态机机制 人机界面四级滚屏菜单 源代码 ,带时间片机制模拟操作系统
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "LZK.h"
//////////////////////////////////////////////////////////////////////////
void Key(void)
{
  
  
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
  if(MenuKeyEvt)//menue
  {
	  HI_Bell=1;
	  HI_RunLED=0;
	  LCD_BLED=1;
	  DmsNum=0;
	  PressKeyEvt=1;

		if(seek==4&&hunt>71&&(EN_ch1<5||EN_ch2<5))
		{
			temp=temp+1;
			if(temp==5)
			   temp=1;
			switch(temp)
			{
			case 1:if(EN_ch1>4)
			       temp=2;
					 break;
			case 2:if(EN_ch2>4)
			       temp=3;
					 break;
			case 3:if(EN_ch1>4)
			       temp=4;
					 break;
			case 4:if(EN_ch2>4)
			       temp=1;
					 break;
         default:break;
			}
			LCD_WaveData(temp,1);
		}
     else
     {
        LCD_ClearAll();
        Menue(0);
        LCD_CAstr(8,2,">",0,0);
        hunt=1;

		  if(seek == 11 ||seek == 12)
		  {
			  Stc_to_CFlash();
			  Flash_64K_Write(0xFA02,CFlash,100,0);
		  }
		  else if(seek == 3 || seek == 4 || seek == 7)
		  {
			  Dyn_to_Flash();
			  Flash_128_Write(0,Flash,128,0);
		  }
     }

     MenuKeyEvt=0;
  }
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////  
//////////////////////////////////////////////////////////////////////////////// 
  if(EnterKeyEvt)//enter
  {
     HI_Bell=1;
	  LCD_BLED=1;
	  DmsNum=0;
	  PressKeyEvt=1;

     if(seek==0)   
     {
	    LCD_ClearAll();
        switch(hunt)
		{
		case 1:if(Star_EN==0)
		       {Menue(1);hunt=10;LCD_CAstr(8,2,">",0,0);}
			   else
			   {Menue(10);hunt=10;}
			   break;
		case 2:Menue(2);
		       hunt=10;
			   LCD_CAstr(8,2,">",0,0);
			   break;
	    case 3:Menue(3);
		       hunt=10;
			   LCD_CAstr(8,2,">",0,0);
			   break;
		case 4:Menue(4);
		       hunt=10;
			   LCD_CAstr(8,2,">",0,0);
			   break;
		case 5:Menue(5);
		       hunt=10;
			   break;
		case 6:Menue(6);
		       hunt=10;
			   break;
		case 7:Menue(7);
		       hunt=10;
				 LCD_CAstr(8,2,">",0,0);
			   break;
		default:break;
	    }
     }
     ///////////////////////
     else if(seek==1)
     {
		LCD_ClearAll();
        Menue(8);
		for(temp=0;temp<6;temp++)
		CH1[temp]=0;
	    switch(hunt)
		{
		case 10:page=1;
		        break;
		case 20:page=2;
		        break;
		default:break;
		}
		hunt=1;
     }
	 ///////////////////////
     else if(seek==2)
     {
	    switch(hunt)
        {
        case 10:temp=EM_ModeCMD;
			    break;
        case 20:temp=EM_VoltCMD;
			    break;
        case 30:temp=EM_CurrCMD;
			    break;
        case 40:temp=EM_AnglCMD;
			    break;
        case 50:temp=EM_PwrFactCMD;
			    break;
        case 60:temp=EM_NulPwrCMD;
                break;
		case 11:EM_ModeCMD=temp;
			    break;
		case 21:EM_VoltCMD=temp;
			    break;
		case 31:EM_CurrCMD=temp;
			    break;
		case 41:EM_AnglCMD=temp;
			    break;
		case 51:EM_PwrFactCMD=temp;
			    break;
        case 61:EM_NulPwrCMD=temp;
                break;
		default:break;
		}
		if(hunt%10==0)
		{
        LCD_Seek2(temp,1);
		hunt=hunt+1;
		}
		else
		{
		LCD_Seek2(temp,0);
		hunt=hunt-1;
        }
    }
	////////////////////////
    else if(seek==3)
    {
       switch(hunt)
       {
       case 10:temp=EM_arkadress;
               LCD_Seek3(temp,1);
	           hunt=11;
			   break;
	   case 11:EM_arkadress=temp;
	           LCD_Seek3(temp,0);
			   hunt=10;
			   break;

       case 20:temp=EM_conadress;
               LCD_Seek3(temp,1);
	           hunt=21;
			   break;
	   case 21:EM_conadress=temp;
	           LCD_Seek3(temp,0);
			   hunt=20;
			   break;

       case 30:temp=EM_baud232;
               LCD_Seek3(temp,1);
			   hunt=31;
			   break;
	   case 31:EM_baud232=temp;
	           LCD_Seek3(temp,0);
			   hunt=30;
			   break;

       case 40:temp=EM_baud485;
               LCD_Seek3(temp,1);
			   hunt=41;
			   break;
	   case 41:EM_baud485=temp;
	           LCD_Seek3(temp,0);
			   hunt=40;
			   break;

       case 50:temp=EM_BackUp;
	           LCD_Seek3(temp,1);
               hunt=51;
               break;
	   case 51:EM_BackUp=temp;
	           LCD_Seek3(temp,0);
               hunt=50;
			   break;

	   case 60:LCD_CAstr(152,12,"切换忠...",1,0);
	           EM_DmSwitch=1;
	           hunt=61;
	           break;
	   case 61:if( RTU_MaOrSlave==0 )
		       {LCD_CAstr(152,12,"主机     ",0,0);EM_DmSwitch=0;}
		       else if( RTU_MaOrSlave==1 )
		       {LCD_CAstr(152,12,"从机     ",0,0);EM_DmSwitch=0;}
	           hunt=60;
	           break;
       default:break;
       }
    }
	else if(seek==4)
	{
		switch(hunt)
		{
		case 10:
				temp=EN_RecMode;
				LCD_Seek4(temp,1);
				hunt=11;
				break;
		case 11:
				EN_RecMode=temp;
				LCD_Seek4(temp,0);
				hunt=10;
				break;
        case 20:
		        temp=EN_ManualRec;
				LCD_Seek4(temp,1);
				hunt=21;
				break;
        case 21:
		        EN_ManualRec=temp;
				LCD_Seek4(temp,0);
				hunt=20;
				break;
        case 30:
		        temp=EN_StartRec;
				LCD_Seek4(temp,1);
				hunt=31;
				break;
        case 31:
		        EN_StartRec=temp;
				LCD_Seek4(temp,0);
				hunt=30;
				break;
        case 40:
		        temp=EN_ErrorRec;
				LCD_Seek4(temp,1);
				hunt=41;
				break;
        case 41:
		        EN_ErrorRec=temp;
				LCD_Seek4(temp,0);
				hunt=40;
				break;
		case 50:
				temp=EN_ch1;
				LCD_Seek4(temp,1);
				hunt=51;
				break;
		case 51:
				EN_ch1=temp;
				LCD_Seek4(temp,0);
				hunt=50;
				break;
		case 60:
				temp=EN_ch2;
				LCD_Seek4(temp,1);
				hunt=61;
				break;
		case 61:
				EN_ch2=temp;
				LCD_Seek4(temp,0);
				hunt=60;
				break;
		case 70:
				temp=EN_SowType;
				LCD_Seek4(temp,1);
				hunt=71;
				break;
		case 71:
				EN_SowType=temp;
				LCD_ClearAll();
				LCD_Coordinate();
				hunt=72;
				break;
		case 72:
				hunt=73;
				LCD_Seek4(EM_speed,0);
				break;
		case 73:
				hunt=72;
				LCD_Seek4(0,0);
				break;
		default:break;
		}
	}
	else if(seek==5)
	{
	   LCD_ClearAll();
	   Menue(0);
	   hunt=5;
       LCD_CAstr(8,10,">",0,0);
	}
	else if(seek==6)
	{
	   LCD_ClearAll();
	   Menue(0);
	   hunt=6;
       LCD_CAstr(8,12,">",0,0);
	}
    else if(seek==7)
    {
      switch(hunt)
		{
		case 10:
					RTC8563_Read();
					CH1[0]=RTCData[6];
					CH1[1]=RTCData[5];
					CH1[2]=RTCData[3];
					CH1[3]=RTCData[2];
					CH1[4]=RTCData[1];
					CH1[5]=RTCData[0];
					hunt=11;
               LCD_Seek7(0,1);
					break;
      case 11:
		case 12:
		case 13:
		case 14:
		case 15:
		case 16:
					RTCData[6]=CH1[0];
					RTCData[5]=CH1[1];
					RTCData[3]=CH1[2];
					RTCData[2]=CH1[3];
					RTCData[1]=CH1[4];
					RTCData[0]=CH1[5];
					RTC8563_Write();
					hunt=10;
					LCD_Seek7(0,0);
					break;
		case 20:
		         temp=StartTemper;
					LCD_Seek7(temp,1);
					hunt=21;
					break;
		case 21:
		         StartTemper=temp;
					LCD_Seek7(temp,0);
               hunt=20;
					break;
		case 30:
		         temp=CloseTemper;
					LCD_Seek7(temp,1);
					hunt=31;
					break;
		case 31:
		         CloseTemper=temp;
					LCD_Seek7(temp,0);
					hunt=30;
					break;
		case 40:
		         temp=AlarmTemper;
					LCD_Seek7(temp,1);
					hunt=41;
					break;
		case 41:
		         AlarmTemper=temp;
					LCD_Seek7(temp,0);
					hunt=40;
					break;
		default:break;
		}
    }
	else if(seek==8)
	{
       //加一句调读Flash
	   switch(page)   
	   {
	   case 1:if(CH1[0]==S1_Key1&&CH1[1]==S1_Key2&&CH1[2]==S1_Key3&&CH1[3]==S1_Key4&&CH1[4]==S1_Key5&&CH1[5]==S1_Key6)
              {LCD_ClearAll();Menue(11);hunt=10;page=1;LCD_CAstr(8,2,">",0,0);}
	          else
	          {LCD_ClearAll();Menue(9);hunt=1;LCD_CAstr(128,8,"Yes",1,0);}
			  break;
	   case 2:if(CH1[0]==S2_Key1&&CH1[1]==S2_Key2&&CH1[2]==S2_Key3&&CH1[3]==S2_Key4&&CH1[4]==S2_Key5&&CH1[5]==S2_Key6)
              {LCD_ClearAll();Menue(12);hunt=10;page=1;LCD_CAstr(8,2,">",0,0);}
	          else
	          {LCD_ClearAll();Menue(9);hunt=1;LCD_CAstr(128,8,"Yes",1,0);}
			  break;
	   default:break;
	   }
	
	   for(temp=0;temp<6;temp++)
	   CH1[temp]=0;
	}
	else if(seek==9)
	{
	   if(hunt==1)
	   {LCD_ClearAll();Menue(8);hunt=1;}
	   else if(hunt==2)
	   {
	      LCD_ClearAll();
	      Menue(1);
	      switch(page)
	      {
	      case 1:hunt=10;
			     LCD_CAstr(8,2,">",0,0);
			     break;
	      case 2:hunt=20;
			     LCD_CAstr(8,4,">",0,0);
			     break;
	      default:break;
	      }
	   }
	}
	else if(seek==10)
	{
	   LCD_ClearAll();
	   Menue(0);
	   hunt=1;
	   LCD_CAstr(8,2,">",0,0);
	}
	else if(seek==11)
    {
	    switch(page)
		{
		case 1:switch(hunt)
		       {
			   case 10:temp=EM_NomalPhaDiffCMD;
			              break;
			   case 20:temp=EM_FulVoltPhaDiffCMD;
			              break;
			   case 30:temp=AsyncTimOutCMD;
			              break;
			   case 40:temp=EM_TimCMD;
			              break;
			   case 50:temp=EM_VoltScaleCMD;
			              break;
			   case 60:temp=EM_CurrScaleCMD;
			              break;   
			   case 11:EM_NomalPhaDiffCMD=temp;
			              break;
			   case 21:EM_FulVoltPhaDiffCMD=temp;
					      break;
               case 31:AsyncTimOutCMD=temp;
			              break;
			   case 41:EM_TimCMD=temp;
					      break;
			   case 51:EM_VoltScaleCMD=temp;
					      break;
			   case 61:EM_CurrScaleCMD=temp;
					      break;
			   default:break;
			   }
		       if(hunt%10==0)
		       {LCD_Seek11(temp,1);hunt=hunt+1;}
			   else
			   {LCD_Seek11(temp,0);hunt=hunt-1;}
   
			   break;
		case 2:switch(hunt)
		       {
			   case 10:temp=EM_VoltMaxCMD;
			           break;
			   case 20:temp=EM_VoltMinCMD;
			           break;
			   case 30:temp=EM_CurrMaxCMD;
			           break;
			   case 40:temp=EM_CurrMinCMD;
			           break;
			   case 50:temp=EM_AnglMaxCMD;
			           break;
			   case 60:temp=EM_AnglMinCMD;
			           break;
			   case 11:EM_VoltMaxCMD=temp;
			           break;
			   case 21:EM_VoltMinCMD=temp;
					   break;
               case 31:EM_CurrMaxCMD=temp;
			           break;
			   case 41:EM_CurrMinCMD=temp;
					   break;
			   case 51:EM_AnglMaxCMD=temp;
					   break;
			   case 61:EM_AnglMinCMD=temp;
					   break;
			   default:break;
			   }
			   if(hunt%10==0)
			   {LCD_Seek11(temp,1);hunt=hunt+1;}
			   else
			   {LCD_Seek11(temp,0);hunt=hunt-1;}
			   break;
		case 3:switch(hunt)
		       {
			   case 10:temp=EM_PwrFactMaxCMD;
			           break;
			   case 20:temp=EM_PwrFactMinCMD;
			           break;
			   case 30:temp=EM_NulPwrMaxCMD;
			           break;
			   case 40:temp=EM_NulPwrMinCMD;
			           break;
		       case 50:temp=TransFormSubVoltCMD;
		               break;
		       case 60:temp=EM_TimCntEnCMD;
		               break;   
		       case 11:EM_PwrFactMaxCMD=temp;
			           break;
		       case 21:EM_PwrFactMinCMD=temp;
				       break;
               case 31:EM_NulPwrMaxCMD=temp;
		               break;
		       case 41:EM_NulPwrMinCMD=temp;
				       break;
		       case 51:TransFormSubVoltCMD=temp;
				       break;
		       case 61:EM_TimCntEnCMD=temp;
				       break;
		       default:break;
			   }
			   if(hunt%10==0)  
               {LCD_Seek11(temp,1);hunt=hunt+1;}
			   else
			   {LCD_Seek11(temp,0);hunt=hunt-1;}
			   break;
		case 4:if(hunt<60)
		       {
                  
                  switch(hunt)
		          {
			      case 10:temp=EM_ENH_ModeCMD;
			              break;
			      case 20:temp=EM_ENH_VoltCMD;
			              break;
			      case 30:temp=EM_ENH_CurrCMD;
			              break;
			      case 40:temp=EM_ENH_AnglCMD;
			              break;
			      case 50:temp=EM_ENH_TimeCMD;
			              break;
			      case 11:EM_ENH_ModeCMD=temp;
			              break;
			      case 21:EM_ENH_VoltCMD=temp;
					      break;
                  case 31:EM_ENH_CurrCMD=temp;
			              break;
			      case 41:EM_ENH_AnglCMD=temp;
					      break;

⌨️ 快捷键说明

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