config.c

来自「240128液晶底层驱动以及键盘操作编写菜单」· C语言 代码 · 共 946 行 · 第 1/4 页

C
946
字号
			 else
			 {
		       if(k16==11)///向上翻//
		        {			      
			      LCD_Clear_Text();//////清除文本层显示数据////
		          Disp_interface_4(array1);////
		          Cursor_configure(11,32,0x20,0x20,0x6f);//光标配置//
                  g1=0;g2=0;k18=0;
				  k19=0;k20=0;k4=22;				 
			    }
               else
			    {				  
				    if(k16==44)///向前翻//回到第一层主菜单界面/////
			          {
					    LCD_Clear_Text();//////清除文本层显示数据////
						Disp_interface_1();////按下确定键才进入第一层主菜单界面//
						flag1=1;////当再有确定键按下时保证不会进入第一层主菜单界面/////
					    flag_start=1;
			            flag2=0;flag3=0;
                        g1=0;g2=0;
                        k19=0;k20=0;k4=0;k18=0;
                        ///数组array1[8]//array2[32]应该清0/////
                        array1[0]=4;array1[1]=122;array1[2]=1;array1[3]=0;array1[4]=1;array1[5]=40;array1[6]=1;array1[7]=4;
                        array2[0]=20;  array2[1]=5;array2[2]=0; array2[3]=0; array2[4]=3; array2[5]=2; array2[6]=20; array2[7]=40;       
				       	array2[8]=25;  array2[9]=0;array2[10]=0;array2[11]=0;array2[12]=3;array2[13]=2;array2[14]=20;array2[15]=40;       
				       	array2[16]=20;array2[17]=5;array2[18]=0;array2[19]=0;array2[20]=3;array2[21]=2;array2[22]=20;array2[23]=40;       
				       	array2[24]=27;array2[25]=0;array2[26]=0;array2[27]=0;array2[28]=3;array2[29]=2;array2[30]=20;array2[31]=40;
					  }				    
		            else {k18=72;}//按其它键无效// 
		        } 
			  
			 }		    
		   }
///////////////////////处理向上和向下翻滚的功能结束/////////////////////////////////////////////////////////////////////   	                                         	         	            
		 }//////////if(g2==0)结束///处理第2界面结束//
		else   {process_1_4();}////g2=1的情况/////////	 	 
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void process_1_4(void)////被调用的前提是: 有键按下并且flag_start=1;flag1=1;flag2=1;flag3=1;flag4=0;k4==22;k19!=0;g1=1;k20!=0;g2=1//////
{/////////////处于界面Disp_interface_6(array3);//////////////////////////////////////////////////////////////////
////////////前提: 已经进入到第3个界面Disp_interface_6(uint *ptr)//////////开始处理向上翻滚的功能/////////////////////////////
		   if(k21==0)
			 { 
			    k16=Operate_Model();
				if(k16==11)///向上翻//
				  {                      
			          LCD_Clear_Text();//////清除文本层显示数据////
	                  Disp_interface_5(array2);////
	                  Cursor_configure(5,64,0x20,0x20,0x6f);//光标配置//
                      g2=0;k20=0;k18=0;
                      return;				   				   	     
				  }
                else
		          {				  
				     if(k16==44)///向前翻//回到第一层主菜单界面/////
			          {
					    LCD_Clear_Text();//////清除文本层显示数据////
						Disp_interface_1();////按下确定键才进入第一层主菜单界面//
			            flag2=0;flag3=0;
                        g1=0;g2=0;k18=0;
                        k19=0;k20=0;k21=0;k4=0;
                        ///数组array1[8]//array2[32]应该清0/////
                        array1[0]=4;array1[1]=122;array1[2]=1;array1[3]=0;array1[4]=1;array1[5]=40;array1[6]=1;array1[7]=4;
                        array2[0]=20;  array2[1]=5;array2[2]=0; array2[3]=0; array2[4]=3; array2[5]=2; array2[6]=20; array2[7]=40;       
				       	array2[8]=25;  array2[9]=0;array2[10]=0;array2[11]=0;array2[12]=3;array2[13]=2;array2[14]=20;array2[15]=40;       
				       	array2[16]=20;array2[17]=5;array2[18]=0;array2[19]=0;array2[20]=3;array2[21]=2;array2[22]=20;array2[23]=40;       
				       	array2[24]=27;array2[25]=0;array2[26]=0;array2[27]=0;array2[28]=3;array2[29]=2;array2[30]=20;array2[31]=40;
						return;
					  }				    
	                 else {k21++; k18=0;return;}
	              }				     
			  }
         	else  {process_1_5();}////k21!=0;的情况//						  
}	 	 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void process_1_5(void)////被调用的前提是: 有键按下并且flag_start=1;flag1=1;flag2=1;flag3=1;flag4=0;k4==22;k19!=0;g1=1;k20!=0;g2=1;k21!=0;//////
{/////////////处于界面Disp_interface_6(array3);//////////////////////////////////////////////////////////////////
//////////////////处理第3个界面输入参数数据/////////////////////////////////////////////////////////////////////////////////
//////输入数据应该是连续的操作数字键一直到数据输入完毕//中间操作任何非数字键表示对液晶屏对应位置数据的默认///////////////
///////对1个完整的2位和3位参数数据的输入//要么连续2位或3位操作数字键完成//要么连续2位或3位操作非数字键完成/////////
///////禁止操作部分数字键和操作部分非数字键来完成1个完整的2位和3位参数数据的输入、否则会造成输入数据错误//////////////////////
   k18++;
   if((k18==1)||(k18==2)||(k18==3))     array3[0]=Disp_inputdata_3(5,48,10,48,array3[0]);///连续执行3次///
   if((k18==4)||(k18==5))               array3[1]=Disp_inputdata_2(10,48,12,48,array3[1]);
   if((k18==6)||(k18==7))               array3[2]=Disp_inputdata_2(12,48,14,48,array3[2]);
   if((k18==8)||(k18==9))               array3[3]=Disp_inputdata_2(14,48,18,48,array3[3]);
   if((k18==10)||(k18==11))             array3[4]=Disp_inputdata_2(18,48,20,48,array3[4]);
   if((k18==12)||(k18==13))             array3[5]=Disp_inputdata_2(20,48,22,48,array3[5]);
   if((k18==14)||(k18==15))             array3[6]=Disp_inputdata_2(22,48,25,48,array3[6]);
   if((k18==16)||(k18==17)||(k18==18))  array3[7]=Disp_inputdata_3(25,48,5,64,array3[7]);///
///////////////////////////////////////////////////////////////////////////////////////////////////
   if((k18==19)||(k18==20)||(k18==21))   array3[8]=Disp_inputdata_3(5,64,10,64,array3[8]);
   if((k18==22)||(k18==23))              array3[9]=Disp_inputdata_2(10,64,12,64,array3[9]);
   if((k18==24)||(k18==25))              array3[10]=Disp_inputdata_2(12,64,14,64,array3[10]);
   if((k18==26)||(k18==27))              array3[11]=Disp_inputdata_2(14,64,18,64,array3[11]);
   if((k18==28)||(k18==29))              array3[12]=Disp_inputdata_2(18,64,20,64,array3[12]);
   if((k18==30)||(k18==31))              array3[13]=Disp_inputdata_2(20,64,22,64,array3[13]);
   if((k18==32)||(k18==33))              array3[14]=Disp_inputdata_2(22,64,25,64,array3[14]);
   if((k18==34)||(k18==35)||(k18==36))   array3[15]=Disp_inputdata_3(25,64,5,80,array3[15]);///
///////////////////////////////////////////////////////////////////////////////////////////////////
   if((k18==37)||(k18==38)||(k18==39))   array3[16]=Disp_inputdata_3(5,80,10,80,array3[16]);
   if((k18==40)||(k18==41))              array3[17]=Disp_inputdata_2(10,80,12,80,array3[17]);
   if((k18==42)||(k18==43))              array3[18]=Disp_inputdata_2(12,80,14,80,array3[18]);
   if((k18==44)||(k18==45))              array3[19]=Disp_inputdata_2(14,80,18,80,array3[19]);
   if((k18==46)||(k18==47))              array3[20]=Disp_inputdata_2(18,80,20,80,array3[20]);
   if((k18==48)||(k18==49))              array3[21]=Disp_inputdata_2(20,80,22,80,array3[21]);
   if((k18==50)||(k18==51))              array3[22]=Disp_inputdata_2(22,80,25,80,array3[22]);
   if((k18==52)||(k18==53)||(k18==54))   array3[23]=Disp_inputdata_3(25,80,5,96,array3[23]);//////
///////////////////////////////////////////////////////////////////////////////////////////////////
   if((k18==55)||(k18==56)||(k18==57))   array3[24]=Disp_inputdata_3(5,96,10,96,array3[24]);
   if((k18==58)||(k18==59))              array3[25]=Disp_inputdata_2(10,96,12,96,array3[25]);
   if((k18==60)||(k18==61))              array3[26]=Disp_inputdata_2(12,96,14,96,array3[26]);
   if((k18==62)||(k18==63))              array3[27]=Disp_inputdata_2(14,96,18,96,array3[27]);
   if((k18==64)||(k18==65))              array3[28]=Disp_inputdata_2(18,96,20,96,array3[28]);
   if((k18==66)||(k18==67))              array3[29]=Disp_inputdata_2(20,96,22,96,array3[29]);
   if((k18==68)||(k18==69))              array3[30]=Disp_inputdata_2(22,96,25,96,array3[30]);
   if((k18==70)||(k18==71)||(k18==72))  {array3[31]=Disp_inputdata_3(25,96,27,96,array3[31]);///连续执行3次///
                                         Cursor_configure(5,64,0x20,0x20,0x69);}//光标不显示//
/////////////////////////////////处理第3个界面输入参数数据结束////////////////////////////////////////////////////////
/////////////////////下面开始处理向上和向前翻滚、确定的功能//////////////////////////////////////////////////////////////////
  if(k18==73)////提供两种选择/////向下翻/////向上翻//  
   {
     k16=Operate_Model();
     if(k16==88)///确定并返回到主菜单///
	  {
	   //g3=1;k17=1;////g3=1;k17=1;是备用////
       LCD_Clear_Text();//////清除文本层显示数据////
       Disp_interface_2();
       LCD_Write_word(2,16,"    %",0);////
       LCD_Write_word(2,32,"==> 2)  现行控制方案状况%",0);
       LCD_Disp_Frame_S();
       flag_start=1;flag1=1;flag2=1;flag3=1;       
	   k4=55; 
       k18=0;g1=0;g2=0;
       k19=0;k20=0;k21=0;
	  }
     else
	  {
	     if(k16==11)///向上翻//
           {		     
		     LCD_Clear_Text();//////清除文本层显示数据////
             Disp_interface_5(array2);//确定//
             Cursor_configure(5,64,0x20,0x20,0x6f);//光标配置//
             g1=1;g2=0; k18=0;
             k20=0;k21=0;
		   }
         else
	       {				  
		     if(k16==44)///向前翻//回到第一层主菜单界面/////
	          {
			    LCD_Clear_Text();//////清除文本层显示数据////
				Disp_interface_1();////按下确定键才进入第一层主菜单界面//
				flag1=1;////当再有确定键按下时保证不会进入第一层主菜单界面/////
			    flag_start=1;
	            flag2=0;flag3=0;
                g1=0;g2=0;k18=0;
                k19=0;k20=0;k21=0;
                ///数组array1[8]//array2[32]应该清0/////
                array1[0]=4;array1[1]=122;array1[2]=1;array1[3]=0;array1[4]=1;array1[5]=40;array1[6]=1;array1[7]=4;
                array2[0]=20;  array2[1]=5;array2[2]=0; array2[3]=0; array2[4]=3; array2[5]=2; array2[6]=20; array2[7]=40;       
		       	array2[8]=25;  array2[9]=0;array2[10]=0;array2[11]=0;array2[12]=3;array2[13]=2;array2[14]=20;array2[15]=40;       
		       	array2[16]=20;array2[17]=5;array2[18]=0;array2[19]=0;array2[20]=3;array2[21]=2;array2[22]=20;array2[23]=40;       
		       	array2[24]=27;array2[25]=0;array2[26]=0;array2[27]=0;array2[28]=3;array2[29]=2;array2[30]=20;array2[31]=40;
                array3[0]=0;  array3[1]=0; array3[2]=0;array3[3]=0; array3[4]=0; array3[5]=0; array3[6]=0; array3[7]=0;       
		        array3[8]=0;  array3[9]=0;array3[10]=0;array3[11]=0;array3[12]=0;array3[13]=0;array3[14]=0;array3[15]=0;       
		        array3[16]=0;array3[17]=0;array3[18]=0;array3[19]=0;array3[20]=0;array3[21]=0;array3[22]=0;array3[23]=0;       
		        array3[24]=0;array3[25]=0;array3[26]=0;array3[27]=0;array3[28]=0;array3[29]=0;array3[30]=0;array3[31]=0;  
			  }				    
             else {k18=72;}//按其它键无效////// else {k20++;return;}
           }			    
	   }
   }////if(k18==73)结束//
/////////////////处理向上和向前翻滚、确定的功能/结束///////////////////////////////////////////////////////////////////////////////////// 	
}


///////////////////等待连续操作函数//超时间自动退出函数//////调用该函数的前提是: 必须有键按下之后的判定/////////////////
////////// wait_operation_overtime_auto_exit//等待连续操作,超时间自动退出函数
/////////////返回: 正常有连续按键操作的退出为1//没有连续按键操作而超时退出为0//////////////////////////////////////////
bit Wooae()
{
  bit flag=1;
  uint  w=0;
  while(((P07&P06&P05&P04)==1)&&(flag==1))
	{                                 	
	  w++;
      Delay(20);
	  if(w==1000)
	  {
        LCD_Clear_Graphics();//清除图形层显示数据//
        LCD_Clear_Text();//////清除文本层显示数据///////////////////////
	    flag=0;
        k2=0,k4=0,k16=0;//,k5=0,k6=0,k7=0,k8=0,k1=0,k3=0;//,k9=0;
        k18=0,k19=0,k20=0,k21=0;//,k10=0,k11=0,k12=0,k13=0,k15=0,k17=0;
        a1=0,b1=0,c1=0;//kk
        g1=0,g2=0,flag_start=0,gg=0,gf=0;//,g3=0;
        flag1=0,flag2=0,flag3=0,flag4=0;//,flag5=0,flag6=0,flag7=0,flag8=0,flag9=0;
        ///数组array1[8]//array2[32]//array3[32]应该清0/////
        array1[0]=4;array1[1]=122;array1[2]=1;array1[3]=0;array1[4]=1;array1[5]=40;array1[6]=1;array1[7]=4;
       
        array2[0]=20;  array2[1]=5;array2[2]=0; array2[3]=0; array2[4]=3; array2[5]=2; array2[6]=20; array2[7]=40;       
        array2[8]=25;  array2[9]=0;array2[10]=0;array2[11]=0;array2[12]=3;array2[13]=2;array2[14]=20;array2[15]=40;       
        array2[16]=20;array2[17]=5;array2[18]=0;array2[19]=0;array2[20]=3;array2[21]=2;array2[22]=20;array2[23]=40;       
        array2[24]=27;array2[25]=0;array2[26]=0;array2[27]=0;array2[28]=3;array2[29]=2;array2[30]=20;array2[31]=40;

        array3[0]=0;  array3[1]=0; array3[2]=0;array3[3]=0; array3[4]=0; array3[5]=0; array3[6]=0; array3[7]=0;       
        array3[8]=0;  array3[9]=0;array3[10]=0;array3[11]=0;array3[12]=0;array3[13]=0;array3[14]=0;array3[15]=0;       
        array3[16]=0;array3[17]=0;array3[18]=0;array3[19]=0;array3[20]=0;array3[21]=0;array3[22]=0;array3[23]=0;       
        array3[24]=0;array3[25]=0;array3[26]=0;array3[27]=0;array3[28]=0;array3[29]=0;array3[30]=0;array3[31]=0;
	  }	 
	}
 return(flag);
}
/////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////键盘扫描函数///////////////////////////////////////////////////////////////
uchar Get_KeyNum(void)
{
  uchar key_code,row;
  uint i=0; 
  row=0; key_code=0xff;
////////////////////////////////////////////////////////////////////////////////
///模块功能:确定有真实的键按下时,跳出循环往下走。否则一直在循环体内等待////////////////////////////////////////////////////////////////
    P0=0xf0;        /////////////正常赋值//////////////
/*    while(1)
    { 
   //  uint i=0;
   D:  while((P07&P06&P05&P04)==1);//
      key_xd_delay();////键消抖延时/////
	  if((P07&P06&P05&P04)==1)
	     {i++;
		  if(i==6000){goto D;}
		  else  continue;		 
		 }
	  else  break;
    }*/

⌨️ 快捷键说明

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