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 + -
显示快捷键?