📄 main.c
字号:
default:break;
}
if(arrow_state2>0)
arrow_state2--;
}
break;
case downkey:
if(edit_state==1)
{
if(pre_set<=setmin)
{
pre_set=setmin;
return;
}
if(downcount<10)
pre_set=pre_set-1;
else if(downcount<20)
{
if(pre_set<10)
pre_set=setmin;
else
pre_set=pre_set-10;
}
else if(downcount<30)
{
if(pre_set<100)
pre_set=setmin;
else
pre_set=pre_set-100;
}
else
{
if(pre_set<1000)
pre_set=setmin;
else
pre_set=pre_set-1000;
}
}
else
{
switch (arrow_state2)
{
case 3:
dis_number=41;
break;
case 7:
dis_number=43;
break;
case 11:
dis_number=46;
break;
case 15:
dis_number=49;
break;
case 18:
dis_number=51;
break;
case 20:
dis_number=52;
break;
case 21:
dis_number=53;
break;
case 22:
dis_number=187;
default:break;
}
if(arrow_state2<23) //debug原来22
arrow_state2++;
}
break;
case esckey:
if(edit_state==1)
edit_state=0;
else
dis_number=33;
break;
case enterkey:
if(edit_state==1)
{
set_addh=0x00;
set_addl=0xa0+arrow_state2;
set_valueh=(unsigned char)(pre_set>>8);
set_valuel=(unsigned char)(pre_set);
WriteData();
GetData();
edit_state=0;
}
else
{
edit_state=1;
if(dis_number==187)
setmax=1;
else
setmax=maxtable[arrow_state2];
if(dis_number==52)
setmin=300;
else
setmin=0;
if(arrow_state2<19)
pre_set=union_vlaue.revalue_buf_int[arrow_state2 % 4];
else if((arrow_state2==19)||(arrow_state2==21)||(arrow_state2==22)||(arrow_state2==23))
pre_set=union_vlaue.revalue_buf_int[0];
else if(arrow_state2==20)
pre_set=union_vlaue.revalue_buf_int[1];
}
break;
default:break;
}
}
void menu_adjust_display()
{
unsigned char *p1;//要求在字库中显示的内容要连续放。
unsigned int tempre_set;
data union pre_type
{
unsigned int pre_type[1];
unsigned long int pre_type_val;
}pre_deal;
if(dis_number==187) //三相三线制
{
if(edit_state==1)
tempre_set=pre_set;
else
tempre_set= union_vlaue.revalue_buf_int[0];
}
clr_fullscreen();
if( arrow_state2<16)
{
if(arrow_state2<4)
p1=&charrIA;
if((3<arrow_state2)&&(arrow_state2<8))
p1=&charcharIa;
if((7<arrow_state2)&&(arrow_state2<12))
p1=&charUa;
if(11<arrow_state2)
p1=&charTs;
lcdwrite(2,4,12,p1);
p1=p1+12;
lcdwrite(3,4,12,p1);
p1=p1+12;
lcdwrite(0,4,12,p1);
p1=p1+12;
lcdwrite(1,4,12,p1);
if(((arrow_state2%4)==0) && ( edit_state==1) )
data_switch_display(pre_set,0,2,60,6);
else
data_switch_display(union_vlaue.revalue_buf_int[0],0,2,60,6);
if(((arrow_state2%4)==1) && ( edit_state==1) )
data_switch_display(pre_set,0,3,60,6);
else
data_switch_display(union_vlaue.revalue_buf_int[1],0,3,60,6);
if(((arrow_state2%4)==2) && ( edit_state==1) )
data_switch_display(pre_set,0,0,60,6);
else
data_switch_display(union_vlaue.revalue_buf_int[2],0,0,60,6);
if(((arrow_state2%4)==3) && ( edit_state==1) )
data_switch_display(pre_set,0,1,60,6);
else
data_switch_display(union_vlaue.revalue_buf_int[3],0,1,60,6);
if(arrow_state2>7)
data_switch_display(union_vlaue.revalue_buf_int[4],0,2,100,6);
else
data_switch_display(union_vlaue.revalue_buf_int[4],1,2,100,6);
if((arrow_state2!=12)&&(arrow_state2!=13)&&(arrow_state2!=14)&&(arrow_state2!=15))
{
if(arrow_state2>7)
data_switch_display(union_vlaue.revalue_buf_int[5],0,3,100,6);
else
data_switch_display(union_vlaue.revalue_buf_int[5],1,3,100,6);
}
if((arrow_state2!=12)&&(arrow_state2!=13)&&(arrow_state2!=14)&&(arrow_state2!=15))
{
if(arrow_state2>7)
data_switch_display(union_vlaue.revalue_buf_int[6],0,0,100,6);
else
data_switch_display(union_vlaue.revalue_buf_int[6],1,0,100,6);
}
if((arrow_state2==15)||(arrow_state2==14)||(arrow_state2==13)||(arrow_state2==12))
{
pre_deal.pre_type[0]= union_vlaue.revalue_buf_int[6];
pre_deal.pre_type[1]= union_vlaue.revalue_buf_int[5];
if(pre_deal.pre_type_val<=65535)
data_switch_display(union_vlaue.revalue_buf_int[5],0,1,100,6);
else
{
pre_deal.pre_type_val/=100;
union_vlaue.revalue_buf_int[5]= pre_deal.pre_type[1];
data_switch_display(union_vlaue.revalue_buf_int[5],1,1,100,6);
}
}
else
{
if(arrow_state2>7)
data_switch_display(union_vlaue.revalue_buf_int[7],0,1,100,6);
else
data_switch_display(union_vlaue.revalue_buf_int[7],1,1,100,6);
}
//else
// data_switch_display(union_vlaue.revalue_buf_int[7],0,1,100,6);
}//if( arrow_state2<16)
if((15<arrow_state2)&&(arrow_state2<19))
{
lcdwrite(2,4,12,&charPb);
p1=p1+12;
lcdwrite(3,4,12,&charPc);
lcdwrite_chinese(0,4,13,&dian);
lcdwrite_chinese(0,17,13,&dianya_ya); //电压信号有无
lcdwrite_chineseN(0,30,2,&xinhaoceliang);
pre_deal.pre_type[0]= union_vlaue.revalue_buf_int[4];
pre_deal.pre_type[1]= union_vlaue.revalue_buf_int[3];
if(pre_deal.pre_type_val<=65535)
data_switch_display(union_vlaue.revalue_buf_int[3],0,2,100,6);
else
{
pre_deal.pre_type_val/=100;
data_switch_display(pre_deal.pre_type[1],1,2,100,6);
}
pre_deal.pre_type[0]= union_vlaue.revalue_buf_int[4];
pre_deal.pre_type[1]= union_vlaue.revalue_buf_int[3];
if(pre_deal.pre_type_val<=65535)
data_switch_display(union_vlaue.revalue_buf_int[3],0,3,100,6);
else
{
pre_deal.pre_type_val/=100;
union_vlaue.revalue_buf_int[3]= pre_deal.pre_type[1];
data_switch_display(union_vlaue.revalue_buf_int[3],1,3,100,6);
}
if((arrow_state2==16) && ( edit_state==1) )
data_switch_display(pre_set,0,2,60,6);
else
data_switch_display(union_vlaue.revalue_buf_int[0],0,2,60,6);
if((arrow_state2==17) && ( edit_state==1) )
data_switch_display(pre_set,0,3,60,6);
else
data_switch_display(union_vlaue.revalue_buf_int[1],0,3,60,6);
if((arrow_state2==18) && ( edit_state==1) )
tempre_set=pre_set;
else
tempre_set=union_vlaue.revalue_buf_int[2];
if(tempre_set==1)
lcdwrite_chineseN(0,80,1,&you);//有
else
lcdwrite_chineseN(0,80,1,&wu);//无
}//else if(15<arrow_state2<19)
if((18<arrow_state2)&&(arrow_state2<21))
{
lcdwrite_chineseN(2,4,1,&lou);//漏
lcdwrite_chineseN(2,17,1,&dian);//电
lcdwrite_chineseN(2,30,2,&mo);// 模式
lcdwrite_chineseN(0,4,2,&huganqi);//互感
lcdwrite_chineseN(0,30,1,&qi);//器
lcdwrite_chineseN(0,43,2,&lei);// 类型
if((arrow_state2==19) && ( edit_state==1) )
tempre_set=pre_set;
else
tempre_set=union_vlaue.revalue_buf_int[0];
if(tempre_set==1)
lcdwrite_chineseN(2,80,1,&wai);//外
else
lcdwrite_chineseN(2,80,1,&nei);//内
if((arrow_state2==20) && ( edit_state==1) )
tempre_set=pre_set;
else
tempre_set=union_vlaue.revalue_buf_int[1];
switch(tempre_set)
{
case 0:
p1=&char2A;
tempre_set=12;
break;
case 1:
p1=&char5A;
tempre_set=12;
break;
case 2:
p1=&char63A;
tempre_set=22;
break;
case 3:
p1=&char25A;
tempre_set=18;
break;
case 4:
p1=&char100A;
tempre_set=24;
break;
case 5:
p1=&char250A;
tempre_set=24;
break;
case 6:
p1=&char063A;
tempre_set=28;
break;
default:
p1=&char45A;
tempre_set=18;
break;
}
lcdwrite(1,80,(char)tempre_set,p1);
}//if(18<arrow_state2<21)
if(arrow_state2==21)
{
lcdwrite_chineseN(2,4,1,&lou);//漏
lcdwrite_chineseN(2,17,1,&dian);//电
lcdwrite_chineseN(2,30,2,&huganqi);//互感
lcdwrite_chineseN(2,56,1,&qi);//器
if( edit_state==1 )
tempre_set=pre_set;
else
tempre_set = union_vlaue.revalue_buf_int[0];
data_switch_display(tempre_set,0,1,80,6);
}
if(arrow_state2==22)
{
lcdwrite_chineseN(2,4,1,&gongzuo_gong);//工
lcdwrite_chineseN(2,17,1,&zuo);//作
lcdwrite_chineseN(2,30,1,&fang);//方
lcdwrite_chineseN(2,43,1,&shi);//式
lcdwrite_chineseN(2,56,2,&xuanze_xuan);//选择
if(edit_state==1)
tempre_set=pre_set;
else
tempre_set = union_vlaue.revalue_buf_int[0];
if(tempre_set==0)
lcdwrite(1,80,30,&wll);
if(tempre_set==1)
lcdwrite(1,80,30,&wwl);
if(tempre_set==2)
lcdwrite(1,80,30,&wll1);
}
/*------------------------------debug-----------*/
if(arrow_state2==23)
{
lcdwrite_chineseN(2,4,2,&zhijie_jie);
lcdwrite_chineseN(2,30,2,&fang);
if(edit_state==1)
tempre_set=pre_set;
else
tempre_set= union_vlaue.revalue_buf_int[0];
lcdwrite_chineseN(0,58,1,&san);
lcdwrite_chineseN(0,71,1,&xiangg);
lcdwrite_chineseN(0,97,1,&xian);
if(tempre_set==0)
lcdwrite_chineseN(0,84,1,&san);
if(tempre_set==1)
lcdwrite_chineseN(0,84,1,&sansi);
}
/*------------------------------debug-----------*/
lcdwrite_arrow(Arrow2[arrow_state2],115,edit_state);
}
//----e----------
/*---------------通讯故障界面------------------*/
void ComunicationFault(void)
{
clr_fullscreen();
lcdwrite_chinese(2,32,13,&lian);
lcdwrite_chinese(2,45,13,&jie);
lcdwrite_chineseN(2,58,2,&shibai_shi);
}
/*-------------------------------------- 界面程序结束 -----------------------------------------*/
/*-------------------------------------- 液晶及键盘驱动程序开始 -------------------------------------*/
void key_check(void)
{
if(delay==0)
{
if(key1!=0x00)
{
key_temp=key1;
//key1=0;
key_scan=0;
delay=0x01;
}
else
{
upcount=0;
downcount=0;
key_scan=1;
return;
}
}
switch(delay)
{
case delay3:
delay=0;
key=key_temp;
if(key_temp==upkey)
{
if(upcount<255)
{
key_temp=0;
upcount++;
downcount=0;
}
else upcount=255;
}
else
{
if(downcount<255)
{
key_temp=0;
downcount++;
upcount=0;
}
else downcount=255;
}
break;
//case delay11:
// delay=0xf0;
// break;
// case delay10:
// delay=0xe0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -