📄 whx40318.c
字号:
for (x=0;x<=7;x++) /*互感器运行时间*/
{ ppp=&worktime[x][m-1][d-1];
for ( i=0;i<=1;i++ ) { while(!TI);TI=0;SBUF=*ppp; ppp=ppp+1; }
}
ppp=&sl; /*流量值*/
for (i=0;i<=3;i++) { while(!TI);TI=0;SBUF=*ppp;ppp=ppp+1; }
ppp=&codma; /*电流值1*/
for (i=0;i<=3;i++) { while(!TI);TI=0;SBUF=*ppp;ppp=ppp+1; }
ppp=&itv2; /*电流值2*/
for (i=0;i<=3;i++) { while(!TI);TI=0;SBUF=*ppp;ppp=ppp+1; }
ppp=&itv3; /*电流值3*/
for (i=0;i<=3;i++) { while(!TI);TI=0;SBUF=*ppp;ppp=ppp+1; }
ppp=&itv4; /*电流值4*/
for (i=0;i<=3;i++) { while(!TI);TI=0;SBUF=*ppp;ppp=ppp+1; }
ppp=&hday[m-1][d-1];
for ( i=0;i<=1;i++ ) { while(!TI);TI=0;SBUF=*ppp; ppp=ppp+1; }
while(!TI);TI=0;
sms_state=0;
EA=1;
}
while(sms_send_begin)
{ sms_state=1; sms_ok=1; sms_send_begin=0; }
if ( /*count30s>=30*/0) /*交大30秒传一次*/
{ /*低电平RS232有效*/
count30s=0;
EA=0;
datatrans_232();
EA=1;
}
}
char key()
{
unsigned char s;
PC_8255=0xF0;
delay(40);
s=PC_8255;
s=~s;
s=s&0xF0;
return(s);
}
char jzqr()
{ unsigned char row=0,col=0;
char lmsk,pic,s;
lmsk=0xfe;
PC_8255=lmsk;
delay(40);
while((PC_8255&0xf0)==0xf0)
{ col+=4;
lmsk=_crol_(lmsk,1);
PC_8255=lmsk;
}
pic=(PC_8255&0xf0)>>4;
lmsk=0x01;
while(pic&lmsk)
{ ++row;
lmsk=_crol_(lmsk,1);
}
while((PC_8255&0xf0)!=0xf0);/*put down key*/
pic=row+col;
return(pic);
}
fill_time(y,m,d,cd)
unsigned char y,m,d,cd;
{
switch(cd)
{
case 0: { ary[0]=y/10+0x30;
ary[1]=y%10+0x30;
ary[2]='/';
ary[3]=m/10+0x30;
ary[4]=m%10+0x30;
}
break;
case 1:
{
ary[0]=y/10+0x30;
ary[1]=y%10+0x30;
ary[2]='/';
ary[3]=m/10+0x30;
ary[4]=m%10+0x30;
ary[5]='/';
ary[6]=d/10+0x30;
ary[7]=d%10+0x30;
ary[8]=':';
}
break;
case 2: {
ary[2]=y%10+0x30;
y=y/10;
ary[1]=y%10+0x30;
y=y/10;
ary[0]=y+0x30;
ary[3]='/';
ary[4]=m/10+0x30;
ary[5]=m%10+0x30;
}
break;
}
}
fill_ary(float fly,unsigned long lin,unsigned char sum)
{ unsigned int pt;
char j,i;
if(sum==0)
{ pt=fly;
fly=fly-pt;
fly=fly*10;
for(i=3;i>=0;i--)
{ ary[i]=pt%10+0x30;
pt=pt/10;
}
ary[4]='.';
pt=fly;
ary[5]=pt%10+0x30;
}
else
{ for(i=sum;i>=0;i--)
{ ary[i]=lin%10;
lin=lin/10;
}
for(i=0;i<=(sum-1);i++)
if(ary[i]!=0) break;
for(j=0;j<i;j++)
ary[j]=0x20;
for(j=i;j<=sum;j++)
ary[j]=ary[j]+0x30;
}
}
dll()
{ unsigned int zj=0;
qinping();
while (k!=12)
{ fill_time(year,month,day,1) ;
xs(0x80,ary,8);
fill_ary(0,hday[month-1][day-1],4);
xs(0xc0,"Q:",1);
xs(0xc2,ary,4);
xs(0xc7,"M3",1);
xs(0x94,"RUN TIME:",8);
zj=worktime[3][month-1][day-1];
zj=zj/60;
fill_time(zj/60,zj%60,0,0);
xs(0x9d,ary,4);
if(k=key()!=0)
{ k=jzqr();
switch(k)
{ case 11:if(day==1) break;
else {day=day-1;break;}
case 15:if(day>=lastday[month-1]) break;
else {day=day+1;break;}
}
}
}
qinping();
k=0;
}
mll()
{ char i;
unsigned long int zj;
qinping();
while(k!=12)
{ fill_time(year,month,day,0);
xs(0x80,ary,4);
zj=0;
for(i=0;i<lastday[month-1];i++)
zj=zj+hday[month-1][i];
fill_ary(0,zj,9);
xs(0xc0,"Q:",1);
xs(0xc2,ary,9);
xs(0xcc,"M3",1);
zj=0;
for(i=0;i<lastday[month-1];i++)
zj=zj+worktime[3][month-1][i];
zj=zj/60;
fill_time(zj/60,zj%60,0,2);
xs(0x94,"RUN TIME:",8);
xs(0x9d,ary,5);
if(k=key()!=0)
{k=jzqr();
switch(k)
{ case 11: if(month==1) month=12;
else month=month-1;
break;
case 15: if(month==12) month=1;
else month=month+1;
break;
case 9: {day=1;dll();}
break;
}
if(month>curmonth)
{
if(curyear==0){year=99;}
else{year=curyear-1;}
}
else
year=YEAR_ADR;
}
}
qinping();
}
llx()
{ qinping();
while(k!=12)
{ readtime();
fill_ary(0,total,9);
xs(0x80,"Q:",1);
xs(0x82,ary,9);
xs(0x8c,"M3",1);
fill_ary(sl,0,0);
ary[6]='L';
ary[7]='/';
ary[8]='S';
xs(0xc0,"SSLL:",4);
xs(0xc5,ary,8);
xs(0x94,"DATE:",4);
fill_time(year,month,day,1);
xs(0x9a,ary,7);
xs(0xd4,"START:",5);
fill_time(insyear,insmonth,insday,1);
xs(0xda,ary,7);
if(k=key()!=0)
{
k=jzqr();
switch(k)
{ case 9: dll();
break;
case 10: mll();
break;
}
}
}
qinping();
xs(0x85,"--OK--",5);
k=0;
}
itvxx(float *temp,unsigned char i) /*瞬时itv显示,电流变为电压*/
{
qinping();
while(k!=12)
{
readtime();
xs(0x80,"ITV",2);
ary[0]=i+0x30;
xs(0x83,ary,0);
xs(0x84," :",1);
fill_ary(*temp,0,0);
ary[6]='m';
ary[7]='g';
ary[8]='/';
ary[9]='L';
xs(0x87,ary,9);
fill_ary(0,ADC_VALUE,2);
xs(0xc0,"ADC :",5);
xs(0xc7,ary,2);
xs(0x94,"DATE :",5);
fill_time(year,month,day,1);
xs(0x9b,ary,7);
xs(0xd4,"START:",5);
fill_time(insyear,insmonth,insday,1);
xs(0xdb,ary,7);
if ( k=key()!=0)
k=jzqr();
}
qinping();
xs(0x85,"--OK--",5);
k=0;
}
msj(adr,n,ms,md)
unsigned char adr,n,md; unsigned int ms;
{xdata unsigned char j;
xdata unsigned int hm;
ary[0]='#';
ary[1]=n+0x30;
ary[2]=':';
hm=ms/60;
for(j=5;j>=3;j--)
{ ary[j]=hm%10+0x30;
hm=hm/10;
}
if(md==0)
{ if(ary[3]=0x30)
ary[3]=0x20;
}
ary[6]='/';
hm=ms%60;
ary[7]=hm/10+0x30;
ary[8]=hm%10+0x30;
xs(adr,ary,8);
}
wtday()
{xdata unsigned int m[8],x;
xdata char i;
qinping();
while (k!=12)
{
fill_time(year,month,day,1);
xs(0x80,ary,7);
for(i=0;i<=7;i++)
m[i]=worktime[i][month-1][day-1];
for (i=0;i<=7;i++)
{ x=m[i];
switch(i)
{
case 0:msj(0x8a,0,x,0);break;
case 1:msj(0xc0,1,x,0);break;
case 2:msj(0xca,2,x,0);break;
case 4:msj(0x94,4,x,0);break;
case 5:msj(0x9e,5,x,0);break;
case 6:msj(0xd4,6,x,0);break;
case 7:msj(0xde,7,x,0);break;
default: break;
}
}
if( k=key()!=0)
{ k=jzqr();
switch(k)
{ case 11:if(day==1) break;
else {day=day-1;break;}
case 15:if(day>=lastday[month-1]) break;
else {day=day+1;break;}
}
}
}
qinping();
k=0;
xs(0x85,"--OK--",5);
}
wtmon()
{ xdata unsigned int m[8],x;
xdata char i,j;
qinping();
k=0;
while (k!=12)
{ fill_time(year,month,day,0);
xs(0x80,ary,4);
for(i=0;i<=7;i++)
{ m[i]=0;
for(j=0;j<=lastday[month-1];j++)
m[i]=m[i]+worktime[i][month-1][j];
}
for (i=0;i<=7;i++)
{ x=m[i];
switch(i)
{ case 0:msj(0x8a,0,x,1);break; /*m=ar*/
case 1:msj(0xc0,1,x,1);break;
case 2:msj(0xca,2,x,1);break;
case 4:msj(0x94,4,x,1);break;
case 5:msj(0x9e,5,x,1);break;
case 6:msj(0xd4,6,x,1);break;
case 7:msj(0xde,7,x,1);break;
default: break;
}
}
if(k=key()!=0)
{
k=jzqr();
switch(k)
{
case 11:if(month==1){ month=12;}
else {month=month-1;}
break;
case 15: if(month==12){ month=1;}
else {month=month+1;}
break;
case 9: {day=1;wtday();}
qinping();
break;
}
if(month>curmonth)
{
if(curyear==0){year=99;}
else{year=curyear-1;}
}
else{year=YEAR_ADR;}
}
}
qinping();
xs(0x85,"--OK--",5);
}
set_time(s)
unsigned char s;
{
switch(s)
{
case 0: xs(0xd8,"Year ",4);
break;
case 1: xs(0xd8,"Month",4);
break;
case 2: xs(0xd8,"Day ",4);
break;
case 3: xs(0xd8,"Hour ",4);
break;
case 4: xs(0xd8,"Minut",4);
break;
}
}
Time()
{
unsigned char hour,minu,sec;
unsigned kcount=0;
k=0;
qinping();
xs(0x82,"DATE ",4);
xs(0x87,"AND TIME",7);
xs(0xc0,"DATE:",3);
xs(0x94,"TIME:",3);
xs(0xd4,"SET: ",4);
while(k==0)
{
readtime();
fill_time(year,month,day,1);
xs(0xc5,ary,8);
hour=HOUR_ADR;
minu=MIN_ADR;
sec=SEC_ADR;
fill_time(hour,minu,sec,1);
xs(0x99,ary,8);
xs(0xd8,"Year ",4);
k=key();
}
while(kcount<9)
{
if(k=key()!=0)
{
k=jzqr();
switch(k)
{
case 12: kcount=10;
break;
case 14: kcount+=1;
if(kcount>4)
{kcount=0;}
break;
case 11:
{ switch(kcount)
{ case 0: year+=1;
if(year>99){year=0;}
break;
case 1: month+=1;
if(month>12){month=1;}
break;
case 2: day+=1;
if(day>31){day=1;}
break;
case 3: hour+=1;
if(hour>=24){hour=0;}
break;
case 4: minu+=1;
if(minu>=60){minu=0;}
break;
}
}
break;
case 15:{ switch(kcount)
{ case 0: if(year==0){year=99;}
else{year-=1;}
break;
case 1: month-=1;
if(month<1){month=12;}
break;
case 2: day-=1;
if(day<1){day=31;}
break;
case 3: if(hour==0){hour=23;}
else{hour-=1;}
break;
case 4: if(minu==0){minu=59;}
else{minu-=1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -