📄 play.#2
字号:
if(powerdat[i][j] != 0)
{
ZERO=1;
}
LCDRSFT(1);
break;
}
case 'L':{goto newlly2;break;}
case 'U':
{
if(i==0)
{
i=1;
goto newlly1;
}
else
{
i--;
goto newlly2;
}
break;
}
case 'D':
{
if(i==0)
{
i++;
}
goto newlly2;
break;
}
case 'S':{goto ack;break;}
case 'C':{goto cancel;break;}
default: {goto loop2;break;}
}
while(KEY != 0xFF){}
}
}
}
ack:
while(KEY != 0xFF){}
tempraturel=tempdat[0][3]*1000+tempdat[0][2]*100+tempdat[0][1]*10+tempdat[0][0];
tempratureh=tempdat[1][3]*1000+tempdat[1][2]*100+tempdat[1][1]*10+tempdat[1][0];
powerl=powerdat[0][2]*100+powerdat[0][1]*10+powerdat[0][0];
powerh=powerdat[1][2]*100+powerdat[1][1]*10+powerdat[1][0];
if((tempratureh >= 9999) || (tempratureh < tempraturel) || (powerh > 255) || (powerh < powerl))
{
LCDGBOC(0);//光标关闭
goto again;
}
else
{
TEMPRATURE_hi=tempratureh;
TEMPRATURE_lo=tempraturel;
POWER_hi=powerh;
POWER_lo=powerl;
}
cancel:
LCDSHOW(MENUSELECT);//菜单选择画面
}
//***********************
void setpid()//设置PID参数
{
uchar key;
uchar i,j;
uchar tempdat[3][5];
ulong pidp;
ulong pidi;
ulong pidd;
LCDSHOW(PIDPARASET);
LCDASIIC();//西文方式
LCDGBCOLOR(7,0);//光标前景色为白色光标背景色为黑色
LCDFCOLOR(2);//设置前景色为绿色
LCDOVERLAP(1);//覆盖方式
again:
//显示PID_P值
LCDXY(18,8);//光标移到x=18光标移到y=8
tempdat[0][4]=PID_P/10000;
if(tempdat[0][4]==0)
{
LCDDAT(' ');
}
else
{
LCDDAT(tempdat[0][4]+0x30);
}
tempdat[0][3]=PID_P/1000%10;
LCDDAT(tempdat[0][3]+0x30);
LCDDAT('.');
tempdat[0][2]=PID_P/100%10;
LCDDAT(tempdat[0][2]+0x30);
tempdat[0][1]=PID_P/10%10;
LCDDAT(tempdat[0][1]+0x30);
tempdat[0][0]=PID_P%10;
LCDDAT(tempdat[0][0]+0x30);
//显示PID_I值
LCDXY(18,10);//光标移到x=18光标移到y=10
tempdat[1][4]=PID_I/10000;
if(tempdat[1][4]==0)
{
LCDDAT(' ');
}
else
{
LCDDAT(tempdat[1][4]+0x30);
}
tempdat[1][3]=PID_I/1000%10;
LCDDAT(tempdat[1][3]+0x30);
LCDDAT('.');
tempdat[1][2]=PID_I/100%10;
LCDDAT(tempdat[1][2]+0x30);
tempdat[1][1]=PID_I/10%10;
LCDDAT(tempdat[1][1]+0x30);
tempdat[1][0]=PID_I%10;
LCDDAT(tempdat[1][0]+0x30);
//显示PID_D值
LCDXY(18,12);//光标移到x=18光标移到y=12
tempdat[2][4]=PID_D/10000;
if(tempdat[2][4]==0)
{
LCDDAT(' ');
}
else
{
LCDDAT(tempdat[2][4]+0x30);
}
tempdat[2][3]=PID_D/1000%10;
LCDDAT(tempdat[2][3]+0x30);
LCDDAT('.');
tempdat[2][2]=PID_D/100%10;
LCDDAT(tempdat[2][2]+0x30);
tempdat[2][1]=PID_D/10%10;
LCDDAT(tempdat[2][1]+0x30);
tempdat[2][0]=PID_D%10;
LCDDAT(tempdat[2][0]+0x30);
//数字设定
LCDGBOC(1);//光标显示
while(1)
{
for(i=0;i<3;i++)
{
newlly: while(KEY != 0xFF){}
LCDXY(18,8+i*2);//光标移到x=18光标移到y=8+i*2
LCDLINE(0x07,97,0,150,0,0x0E,0x01,150,0);
LCDFCOLOR(2);//设置前景色为绿色
for(j=4;j<5;j--)
{
loop:
while((KEY <'0' || KEY >'9') && (KEY != 'S') && (KEY != 'C') && (KEY != 'R') && (KEY != 'L') && (KEY != 'U') && (KEY != 'D')){}
key=KEY;
switch(key)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
{
tempdat[i][j]=(key-0x30);
if(j==4)
{
if(tempdat[i][j]==0)
{
LCDDAT(' ');
}
else
{
LCDDAT(key);
}
}
else
{
LCDDAT(key);
}
break;
}
case 'R':{LCDRSFT(1);break;}
case 'L':{goto newlly;break;}
case 'U':
{
if(i>0)
{
i--;
}
goto newlly;
break;
}
case 'D':
{
if(i<2)
{
i++;
}
goto newlly;
break;
}
case 'S':{goto ack;break;}
case 'C':{goto cancel;break;}
default: {goto loop;break;}
}
if(j==3)
{
LCDDAT('.');
}
while(KEY != 0xFF){}
}
}
}
ack:
while(KEY != 0xFF){}
pidp=tempdat[0][4]*10000+tempdat[0][3]*1000+tempdat[0][2]*100+tempdat[0][1]*10+tempdat[0][0];
pidi=tempdat[1][4]*10000+tempdat[1][3]*1000+tempdat[1][2]*100+tempdat[1][1]*10+tempdat[1][0];
pidd=tempdat[2][4]*10000+tempdat[2][3]*1000+tempdat[2][2]*100+tempdat[2][1]*10+tempdat[2][0];
if((pidp >65535) || (pidi >65535) || (pidd >65535))
{
LCDGBOC(0);//光标关闭
goto again;
}
else
{
PID_P=pidp;
PID_I=pidi;
PID_D=pidd;
//
loop1:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop1;
}
transmitbyte(0x17);
if(cack())
{
goto loop1;
}
transmitbyte(0x70);
if(cack())
{
goto loop1;
}
transmitbyte(PID_P/256);
if(cack())
{
goto loop1;
}
stop();
loop2:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop2;
}
transmitbyte(0x17);
if(cack())
{
goto loop2;
}
transmitbyte(0x71);
if(cack())
{
goto loop2;
}
transmitbyte(PID_P%256);
if(cack())
{
goto loop2;
}
stop();
loop3:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop3;
}
transmitbyte(0x17);
if(cack())
{
goto loop3;
}
transmitbyte(0x72);
if(cack())
{
goto loop3;
}
transmitbyte(PID_I/256);
if(cack())
{
goto loop3;
}
stop();
loop4:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop4;
}
transmitbyte(0x17);
if(cack())
{
goto loop4;
}
transmitbyte(0x73);
if(cack())
{
goto loop4;
}
transmitbyte(PID_I%256);
if(cack())
{
goto loop4;
}
stop();
loop5:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop5;
}
transmitbyte(0x17);
if(cack())
{
goto loop5;
}
transmitbyte(0x74);
if(cack())
{
goto loop5;
}
transmitbyte(PID_D/256);
if(cack())
{
goto loop5;
}
stop();
loop6:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop6;
}
transmitbyte(0x17);
if(cack())
{
goto loop6;
}
transmitbyte(0x75);
if(cack())
{
goto loop6;
}
transmitbyte(PID_D%256);
if(cack())
{
goto loop6;
}
stop();
//
}
cancel:
LCDSHOW(MENUSELECT);//菜单选择画面
}
//***********************
void close()//关机画面
{
ALARM(CLOSSYSTEM);
WRITEAI(0x15,12);//关808P表
BEEP=0;
while(1){}
}
//*********************************************************************
void GET_INITVALUE()
{
uchar time1,time2,temp1,temp2;
uchar i,j;
loop:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop;
}
transmitbyte(0x00);
if(cack())
{
goto loop;
}
transmitbyte(0x00);
if(cack())
{
goto loop;
}
start();
transmitbyte(0xA1);
if(cack())
{
goto loop;
}
for(i=1;i<60;i++)
for(j=0;j<20;j++)
{
GY[i].power[j]=receiverbyte();
ack();
time1=receiverbyte();
ack();
time2=receiverbyte();
ack();
GY[i].time[j]=time1*256+time2;
temp1=receiverbyte();
ack();
temp2=receiverbyte();
ack();
GY[i].temperature[j]=temp1*256+temp2;
}
for(j=0;j<19;j++)
{
GY[60].power[j]=receiverbyte();
ack();
time1=receiverbyte();
ack();
time2=receiverbyte();
ack();
GY[60].time[j]=time1*256+time2;
temp1=receiverbyte();
ack();
temp2=receiverbyte();
ack();
GY[60].temperature[j]=temp1*256+temp2;
}
GY[60].power[19]=receiverbyte();
ack();
time1=receiverbyte();
ack();
time2=receiverbyte();
ack();
GY[60].time[19]=time1*256+time2;
temp1=receiverbyte();
ack();
temp2=receiverbyte();
ack();
GY[60].temperature[19]=temp1*256+temp2;
temp1=receiverbyte();
ack();
temp2=receiverbyte();
ack();
PID_P=temp1*256+temp2;
temp1=receiverbyte();
ack();
temp2=receiverbyte();
ack();
PID_I=temp1*256+temp2;
temp1=receiverbyte();
ack();
temp2=receiverbyte();
nack();
stop();
PID_D=temp1*256+temp2;
for(i=0;i<20;i++)
{
GY[0].power[i]=0;
GY[0].time[i]=0;
GY[0].temperature[i]=0;
}
}
//************************************
void INIT_DATA()
{
uchar temp;
uint i;
loop:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop;
}
transmitbyte(0x1F);
if(cack())
{
goto loop;
}
transmitbyte(0xFF);
if(cack())
{
goto loop;
}
start();
transmitbyte(0xA1);
if(cack())
{
goto loop;
}
temp=receiverbyte();
nack();
stop();
if(temp != 0x00)
{
for(i=0;i<8192;i++)
{
loop1:
start();
transmitbyte(0xA0);
if(cack())
{
goto loop1;
}
transmitbyte(i/256);
if(cack())
{
goto loop1;
}
transmitbyte(i%256);
if(cack())
{
goto loop1;
}
transmitbyte(0);
if(cack())
{
goto loop1;
}
stop();
}
}
}
//*********************************************************************
void main()
{
uchar key;
WDTCN=0xDE;//先关看门狗,初始化完成之后再开
WDTCN=0xAD;//
//**********************************
SYSINIT();//系统 初始化
LCDSHOW(WELCOMESCR);
//**********************************
INIT_DATA();
GET_INITVALUE();
//**********************************
WRITEAI(0x15,12);
WRITEAI(0x18,3);
WRITEAI(0x00,1);
if(HDISTANCE)
{
TPFCON;
MOTORRUN;
loop:
while(HDISTANCE){}
delay5ms();
if(!HDISTANCE)
{
MOTORSTOP;
delay200ms();
TPFCOFF;
}
else
{
goto loop;
}
}
//**********************************
//系统初始化基本上完成
//**********************************
LCDSHOW(MENUSELECT);//菜单选择画面
WRITEAI(0x15,12);
while(1)
{
while(KEY < '0' || KEY >'5'){}
key=KEY;
while(KEY != 0xFF){}
switch(key)
{
case '0': {close(); break;}
case '1': {work(); break;}
case '2': {selectpronum();break;}
case '3': {setpropara(); break;}
case '4': {setsenpara(); break;}
case '5': {setpid(); break;}
default: { break;}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -