📄 set_function.h
字号:
/*--------------system_setup_function------------------------------*/
/*--------------------显示区域背影函数-----------------------*/
void back_char(unsigned char row,unsigned char col,unsigned char n) //背光
{unsigned int cursor,tempaddress,addl,addh;
unsigned char i;
for(i=0;i<n;i++)
{
cursor=row*20+col+i; //第一显示区
tempaddress=cursor;
addl=tempaddress&0x00ff;
addh=((cursor&0xff00)>>8);
WRCommand(0x46); //设置光标指针
WRData(addl);
WRData(addh);
WRCommand(0x4F); //光标下移,CSRDIR代码
WRCommand(0x42); //设置数据写入,MWRITE代码
WRData(0x83); //?
WRData(0x83);
}
}
/*-----------------键盘背景函数------------------*/
void back_keyboad()
{
unsigned char i,k;
for(i=0;i<2;i++)
{
for (k=0;k<5;k++)
CCDisplay((19+i*4),(0+k*4),0x80);
}
}
/*----------键盘显示函数--------------*/
void Display_keyboard()
{
GCDisplay_C(148,1,CTable50);
GCDisplay_C(148,5,CTable51);
GCDisplay_C(148,9,CTable52);
GCDisplay_C(148,13,CTable53);
GCDisplay_C(148,17,CTable54);
GCDisplay_C(180,1,CTable55);
GCDisplay_C(180,5,CTable56);
GCDisplay_C(180,9,CTable57);
GCDisplay_C(180,13,CTable58);
GCDisplay_C(180,17,CTable59);
back_keyboad();
}
/*--------------------数值补码求解函数------------------*/
PatchCode(signed long data)//求一个32位数的正负
{unsigned long data_temp;
data_temp=data;
if(data_temp>0x7fffffff)
{
data_temp=~(data_temp-1);
}
return(data_temp); //
}
/*--------------------------求x^y值的函数--------------------------*/
unsigned int PF(unsigned char x, unsigned char y) //求x^y的值
{
unsigned int pf;
unsigned char i;
pf=1;
for(i=0;i<y;i++)
{pf*=x;
}
return(pf);
}
/*---------------------------数值设置函数----------------------*/
unsigned int set_value(unsigned char row,unsigned char col,unsigned char n)
{
unsigned char set,temp_flag_setup,temp_flag_updown,temp_col;
unsigned int value;
unsigned char i;
unsigned char temp_value[5];
set=1;
value=0;
temp_col=col;
flag.updown=0;
flag.sure=0;
flag.number=0;
temp_flag_setup=flag.setup;
temp_flag_updown=flag.updown;
back_char((row/8),col,(n*2));
/*for(i=0;i<n;i++)
{
Display_Number1(row,(col+i*2),0);
}*/
i=0;
while (set)
{
if(flag.gb==1)
{
flag.gb=0;
Display_Number1(row,col,flag.number);
temp_value[i]=flag.number;
col+=2;
i++;
flag.updown=i;
if(i==n)
{ col=temp_col;
i=0;
}/*if*/
}/*if*/
_NOP();
_NOP();
if (flag.sure==1)
{
flag.sure=0;
for(i=0;i<n;i++)
{
value+=temp_value[i]*PF(10,(n-i-1));
} /*for*/
if(value>0xFFFF)
{ value=0xFFFF;
} /*if*/
set=0;
flag.setup=temp_flag_setup+1;
flag.updown=temp_flag_updown;
flag.gb=1;
return(value);
}/*if,这里有结束循环的条件,读程序的时候要特别注意*/
}/*while*/
flag.setup=temp_flag_setup; //程序能运行到这里吗???
flag.updown=temp_flag_updown;
return(value);
}
/*---------------------数值选择设置函数------------------*/
unsigned set_choice(unsigned char row,unsigned char col)
{
unsigned char temp_flag_setup,temp_flag_updown;
unsigned temp_flag;
temp_flag_setup=flag.setup;
temp_flag_updown=flag.updown;
flag.sure=0;
flag.updown=0;
GCDisplay(row,col,CTable83);
while(1)
{
if(flag.gb==1)
{
flag.gb=0;
switch(flag.updown)
{
case 0: GCDisplay(row,col,CTable83);temp_flag=0;break;
case 1: GCDisplay(row,col,CTable82);temp_flag=1;break;
default: flag.updown=0;break;
}
if(flag.sure==1)
{
flag.sure=0;
flag.updown=temp_flag_updown;
flag.setup=temp_flag_setup+1;
flag.gb=1;
if(temp_flag==0)
return(0);
if(temp_flag==1)
return(1);
}
}
_NOP();
_NOP();
}
}
/*---------------------地址设置函数-------------------------*/
void Set_address(void) //地址设置函数
{
back_char(4,1,8);
if(flag.sure==1)
{
flag.sure=0;
systemsetup.sbh=set_value(32,11,4);
return;
}
}
/*---------------------CT变比设置函数-------------------------*/
void Set_CTrate(void) //CT变比设置函数
{
back_char(7,1,8);
if(flag.sure==1)
{
flag.sure=0;
systemsetup.CT=set_value(56,11,4);
return;
}
}
/*---------------------PT变比设置函数-------------------------*/
void Set_PTrate(void) //PT变比设置函数
{
back_char(10,1,8);
if(flag.sure==1)
{
flag.sure=0;
systemsetup.PT=set_value(80,11,4);
return;
}
}
/*---------------------设置密码函数-------------------------*/
void Set_codeset(void) //设置密码函数
{
back_char(13,1,8);
if(flag.sure==1)
{
flag.sure=0;
systemsetup1.passwordL1=set_value(104,11,4);
return;
}
}
/*---------------------波特率选择函数-------------------------*/
void Set_baudrate(void) //波特率选择函数
{
back_char(16,1,8);
if(flag.sure==1)
{
flag.sure=0;
Display_Number1(128,10,1);
systemsetup.baudrate.com1=set_value(128,12,1);
flag.gb=0;
flag.setup--;
Display_Number1(128,10,2);
systemsetup.baudrate.com2=set_value(128,12,1);
flag.gb=0;
flag.setup--;
Display_Number1(128,10,3);
systemsetup.baudrate.com3=set_value(128,12,1);
flag.gb=0;
flag.setup--;
Display_Number1(128,10,4);
systemsetup.baudrate.com4=set_value(128,12,1);
}
return;
}
/*---------------------通讯模式设置函数-------------------------*/
void Set_conmode(void) //通讯模式设置函数
{
unsigned set=1;
unsigned temp_flag_setup,temp_flag_updown;
back_char(4,1,8);
if(flag.sure==1)
{
flag.sure=0;
temp_flag_setup=flag.setup;
temp_flag_updown=flag.updown;
flag.updown=0;
flag.gb=1;
while(set)
{
if(flag.gb==1)
{
flag.gb=0;
switch(flag.updown)
{
case 0:
GCDisplay( 32,10, CTable16);
GCDisplay( 32,12, CTable18);
GCDisplay( 32,14, CTable21);
GCDisplay( 32,16, CTable22);
break;
case 1:
GCDisplay( 32,10, CTable17);
GCDisplay( 32,12, CTable18);
GCDisplay( 32,14, CTable17);
GCDisplay( 32,16, CTable20);
break;
case 2:
GCDisplay( 32,10, CTable17);
GCDisplay( 32,12, CTable18);
GCDisplay( 32,14, CTable19);
GCDisplay( 32,16, CTable20);
break;
default: flag.updown=0; break;
}
if(flag.sure==1)
{
flag.sure=0;
systemsetup.connectionmode=flag.updown;
flag.setup=temp_flag_setup+1;
flag.updown=temp_flag_updown;
set=0;
flag.gb=1;
return;
}
}
_NOP();
_NOP();
}
}
}
/*---------------------事件清除设置函数-------------------------*/
void Set_eveclr(void) //事件清除函数
{
back_char(7,1,8);
if(flag.sure==1)
{
flag.evecl=set_choice(56,10);
}
}
/*---------------------清除电度设置函数-------------------------*/
void Set_edgclr(void) //清除电度函数
{
back_char(10,1,8);
if(flag.sure==1)
{
flag.edgcl= set_choice(80,10);
}
}
/*---------------------清除最值设置函数-------------------------*/
void Set_limiclr(void) //清除最值函数
{
back_char(13,1,8);
if(flag.sure==1)
{
flag.limicl= set_choice(104,10);
}
}
/*---------------------校表设置函数-------------------------*/
void Set_verify()
{unsigned char p,i;
/*float Pgainerr[3][2]; //功率增益
float Phsregerr[3][5]; //角差校正
float Ur[3]; //实际输入电压值
float Ir[3]; //实际输入电流值*/
back_char(16,1,8);
if(flag.sure==1)
{
flag.sure=0;
for(i=0;i<3;i++)
{for(p=0;p<2;p++)
{
Display_Number1(128,10,i);
Display_Number1(128,12,p);
Pgainerr[i][p]=set_value(128,14,3);
flag.gb=0;
flag.setup--;
}
}
for(i=0;i<3;i++)
{for(p=0;p<5;p++)
{
Display_Number1(128,10,i);
Display_Number1(128,12,p);
Phsregerr[i][p]=set_value(128,14,3);
flag.gb=0;
flag.setup--;
}
}
for(i=0;i<2;i++)
{
for(p=0;p<3;p++)
{
Display_Number1(128,10,i);
Display_Number1(128,12,p);
UIr[i][p]=set_value(128,14,3);
flag.gb=0;
flag.setup--;
}
}
flag.gb=1;
flag.setup++;
flag.jy=1;
return;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -