📄 main.c
字号:
{
if(ubit<=3)
{
U_Buf[ubit]=9;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case ESC:
{
I_data = temp;
i_ds=0;
ubit=0;
Sys_sta = IDLE_STA;
}break;
case OK:
case ISET:
{
if (ubit == 4)
{
if((U_Buf[0]==1 && U_Buf[2]==2 && U_Buf[3]>=4) || U_Buf[0]>=2)
{
I_data = U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];
}
else
{
I_data = U_Buf[0]*1000+U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];
}
}
else if(ubit == 3)
{
I_data = U_Buf[0]*100+U_Buf[1]*10+U_Buf[2];
}
else if(ubit == 2)
{
I_data = U_Buf[0]*10+U_Buf[1];
}
else if(ubit == 1)
{
I_data = U_Buf[0];
}
SEND_5615_I(I_data);
U_Buf[0]=0;
U_Buf[1]=0;
U_Buf[2]=0;
U_Buf[3]=0;
i_ds=0;
ubit=0;
Sys_sta = IDLE_STA;
}break;
}
while(keytemp!=0xff)
{
keytemp = Key();
Disp();
Delay(10);
}
}
//1mul8电压设定状态下的服务程序
void U_SETu_Mange(void)
{
unsigned int temp;
temp = U_data;
flashbuf = flashbuf++;
if(flashbuf==15)
{
flash = ~flash;
flashbuf = 0;
}
if(flash==1)
{
Disp_U_set(U_data);
}
else if(flash==0)
{
Disp_Buf[uset_bit]=18;
Disp();
}
Disp_I_Real();
keytemp = Key();
switch(keytemp)
{
case ESC:
{
U_data = temp;
Sys_sta = IDLE_STA;
uset_bit=3;
flashbuf=0;
}break;
case OK:
case USET:
{
SEND_5615_U(U_data);
Sys_sta = IDLE_STA;
uset_bit=3;
flashbuf=0;
}break;
case USEL:
{
if(uset_bit==3)
uset_bit=2;
else if(uset_bit==2)
uset_bit=1;
else if(uset_bit==1)
uset_bit=3;
}break;
case VADD:
{
switch(uset_bit)
{
case 3:
{
U_data=U_data+1;
}break;
case 2:
{
U_data=U_data+10;
}break;
case 1:
{
U_data=U_data+100;
}break;
}
flashbuf=0;
}break;
case VSUB:
{
switch(uset_bit)
{
case 3:
{
U_data=U_data-1;
}break;
case 2:
{
U_data=U_data-10;
}break;
case 1:
{
U_data=U_data-100;
}break;
}
flashbuf=0;
}break;
}
while(keytemp!=0xff)
{
keytemp = Key();
Disp_U_set(U_data);
Disp_I_Real();
Delay(10);
}
}
//1mul8电流设定状态下的服务程序
void I_SETi_Mange(void)
{
unsigned int temp;
temp = I_data;
flashbuf = flashbuf++;
if(flashbuf==15)
{
flash = ~flash;
flashbuf = 0;
}
if(flash==1)
{
Disp_I_set(I_data);
}
else if(flash==0)
{
Disp_Buf[iset_bit]=18;
Disp();
}
Disp_U_Real();
keytemp = Key();
switch(keytemp)
{
case ESC:
{
I_data = temp;
Sys_sta = IDLE_STA;
flashbuf = 0;
iset_bit=7;
}break;
case OK:
case ISET:
{
SEND_5615_I(I_data);
Sys_sta = IDLE_STA;
flashbuf = 0;
iset_bit=7;
}break;
case ISEL:
{
if(iset_bit==7)
iset_bit=6;
else if(iset_bit==6)
iset_bit=5;
else if(iset_bit==5)
iset_bit=7;
}break;
case IADD:
{
switch(iset_bit)
{
case 7:
{
I_data=I_data+1;
}break;
case 6:
{
I_data=I_data+10;
}break;
case 5:
{
I_data=I_data+100;
}break;
}
flashbuf = 0;
}break;
case ISUB:
{
switch(iset_bit)
{
case 7:
{
I_data=I_data-1;
}break;
case 6:
{
I_data=I_data-10;
}break;
case 5:
{
I_data=I_data-100;
}break;
}
flashbuf = 0;
}break;
}
while(keytemp!=0xff)
{
keytemp = Key();
Disp_I_set(I_data);
Disp_U_Real();
Delay(10);
}
}
//用户设置状态下的服务程序
void USER_SET_Mange(void)
{
if(i_ds==0)
{
i_ds=1;//显示uset
Disp_Buf[0]=5;
Disp_Buf[1]=14;
Disp_Buf[2]=21;
Disp_Buf[3]=userbit;
Disp_Buf[4]=18;
Disp_Buf[5]=18;
Disp_Buf[6]=18;
Disp_Buf[7]=18;
Disp();
}
Disp();
keytemp = Key();
switch(keytemp)
{
case 0:
{
if(ubit<=3)
{
U_Buf[ubit]=0;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 1:
{
if(ubit<=3)
{
U_Buf[ubit]=1;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 2:
{
if(ubit<=3)
{
U_Buf[ubit]=2;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 3:
{
if(ubit<=3)
{
U_Buf[ubit]=3;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 4:
{
if(ubit<=3)
{
U_Buf[ubit]=4;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 5:
{
if(ubit<=3)
{
U_Buf[ubit]=5;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 6:
{
if(ubit<=3)
{
U_Buf[ubit]=6;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 7:
{
if(ubit<=3)
{
U_Buf[ubit]=7;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 8:
{
if(ubit<=3)
{
U_Buf[ubit]=8;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case 9:
{
if(ubit<=3)
{
U_Buf[ubit]=9;
Disp_changei(U_Buf[ubit]);
ubit=ubit+1;
}
else
{
ubit=0;
}
}break;
case ESC:
{
i_ds = 0;
Sys_sta = IDLE_STA;
}break;
case OK:
case USET:
{
if(uset == 0)
{
if (ubit == 4)
{
if((U_Buf[0]==1 && U_Buf[2]==2 && U_Buf[3]>=4) || U_Buf[0]>=2)
{
user[userbit].U = U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];
}
else
{
user[userbit].U = U_Buf[0]*1000+U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];
}
}
else if(ubit == 3)
{
user[userbit].U = U_Buf[0]*100+U_Buf[1]*10+U_Buf[2];
}
else if(ubit == 2)
{
user[userbit].U = U_Buf[0]*10+U_Buf[1];
}
else if(ubit == 1)
{
user[userbit].U = U_Buf[0];
}
U_Buf[0]=0;
U_Buf[1]=0;
U_Buf[2]=0;
U_Buf[3]=0;
i_ds = 0;
u_ds=0;
ubit=0;
i_ds = 0;
uset=~uset;
}
else if(uset == 1)
{
if (ubit == 4)
{
if((U_Buf[0]==1 && U_Buf[2]==2 && U_Buf[3]>=4) || U_Buf[0]>=2)
{
user[userbit].I = U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];
}
else
{
user[userbit].I = U_Buf[0]*1000+U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];
}
}
else if(ubit == 3)
{
user[userbit].I = U_Buf[0]*100+U_Buf[1]*10+U_Buf[2];
}
else if(ubit == 2)
{
user[userbit].I = U_Buf[0]*10+U_Buf[1];
}
else if(ubit == 1)
{
user[userbit].I = U_Buf[0];
}
U_Buf[0]=0;
U_Buf[1]=0;
U_Buf[2]=0;
U_Buf[3]=0;
userbit = userbit+1;
if(userbit == 7)
{
userbit = 0;
}
i_ds = 0;
u_ds=0;
ubit=0;
uset=~uset;
Sys_sta = IDLE_STA;
}
}break;
}
while(keytemp!=0xff)
{
keytemp = Key();
Disp();
Delay(10);
}
//==============
}
//调用用户预置状态下的服务程序
void CALL_USER_Mange(void)
{
unsigned int temp1,temp2;
if(i_ds==0)
{
i_ds=1;//显示call
Disp_Buf[0]=12;
Disp_Buf[1]=10;
Disp_Buf[2]=20;
Disp_Buf[3]=20;
Disp_Buf[4]=18;
Disp_Buf[5]=18;
Disp_Buf[6]=18;
Disp_Buf[7]=18;
Disp();
}
Disp();
keytemp = Key();
switch(keytemp)
{
case 0:
{
Disp_Buf[7]=0;
temp1=user[0].U;
temp2=user[0].I;
}break;
case 1:
{
Disp_Buf[7]=1;
temp1=user[1].U;
temp2=user[1].I;
}break;
case 2:
{
Disp_Buf[7]=2;
temp1=user[2].U;
temp2=user[2].I;
}break;
case 3:
{
Disp_Buf[7]=3;
temp1=user[3].U;
temp2=user[3].I;
}break;
case 4:
{
Disp_Buf[7]=4;
temp1=user[4].U;
temp2=user[4].I;
}break;
case 5:
{
Disp_Buf[7]=5;
temp1=user[5].U;
temp2=user[5].I;
}break;
case 6:
{
Disp_Buf[7]=6;
temp1=user[6].U;
temp2=user[6].I;
}break;
case 7:
{
Disp_Buf[7]=7;
temp1=500;
temp2=800;
}break;
case 8:
{
Disp_Buf[7]=8;
temp1=330;
temp2=500;
}break;
case 9:
{
Disp_Buf[7]=9;
temp1=180;
temp2=300;
}break;
case ESC:
{
i_ds=0;
Sys_sta = IDLE_STA;
}break;
case OK:
case ISET:
{
i_ds=0;
I_data = temp2;
U_data = temp1;
SEND_5615_I(I_data);
SEND_5615_U(U_data);
Sys_sta = IDLE_STA;
}break;
}
while(keytemp!=0xff)
{
keytemp = Key();
Disp();
Delay(10);
}
}
//主函数
void main (void)
{
Init();
while(1)
{
Delay(5);//状态机
switch(Sys_sta)
{
case IDLE_STA:
{
IDLE_Mange();//for idle state
}break;
case U_SET_STA:
{
U_SET_Mange();//set u by 4*4
}break;
case I_SET_STA://set i by 4*4
{
I_SET_Mange();
}break;
case U_SETu://set u by 1*8
{
U_SETu_Mange();
}break;
case I_SETi://set i by 1*8
{
I_SETi_Mange();
}break;
case USER_SET_STA://for user set
{
USER_SET_Mange();
}break;
case CALL_USER_STA://for user call
{
CALL_USER_Mange();
}break;
default:break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -