📄 xlbh.c
字号:
{s1=((long)tr[2]-tr[3]); s2=((long)tx[2]-tx[3]) ;
s4=s1*s1+s2*s2;
s1=((long)tr[3]-tr[4]); s2=((long)tx[3]-tx[4]);
s5=s1*s1+s2*s2;
s1=((long)tr[4]-tr[2]); s2=((long)tx[4]-tx[2]);
s6=s1*s1+s2*s2;
if(s4>s5&&s4>s6) s1=s4;
else if(s5>s4&&s5>s6) s1=s5;
else s1=s6;
if((PT_mark1==0)&&(s1<e[15]) && (i5&0x03) == 0x01 )//
{if(jjj=time_counter-rt[5],jjj > et[11] )
{ P1_3=1; P1_5=0;o1=o1|0x20; XBYTE[OUT1]=o1; o2=o2|0x41;//进线低电压
k5=1; w1=w1|0x4000;trip=trip0=1;thdz_mark=1; recval[14]=s1;}
}
else
if(s1>= (e[15]+(e[15]>>4))&&(i5&0x03) == 0x02)
{ rt[5] = time_counter;k5=0; w1=w1&0x40ff;}
}
#endif
temp1=(i5&0x01)<<1;
temp2=(i5&0x02);
if(temp1!=temp2) qqdd_mark=0;
if(temp1==temp2 && qqdd_mark==0 )
{if(jjj=time_counter-rt[10],jjj>3000)
{ /*xk3=1;*/o2=o2|0x82;w1=w1|0x80;qqdd_mark=1;trip0=1;}}
else {/*xk3=0;xk33=0;*/rt[10]=time_counter;w1=w1&0xff7f;}
if(thdz_mark==1)
{if(jjj=time_counter-rt[13],jjj > 1200)
{ if(((i4&0x03)==(((unsigned char)i5)&0x03))&&qqdd_mark==0 ) {o2=o2|0x82;w1=w1|0x2000;trip0=1;}
thdz_mark=0;rt[13]=time_counter;
}
else if (!((i4&0x03)==(((unsigned char)i5)&0x03) ) ) {thdz_mark=0;rt[13]=time_counter;}
}
else {rt[13]=time_counter;w1=w1&0xdfff;}
i4=(unsigned char)i5;
/*
if( k1==1 && k11==0 ) { k=1; k11=1;xj2=1; }
if( k2==1 && k22==0 ) { k=1; k22=1;xj2=1; }
if( k3==1 && k33==0 ) { k=1; k33=1;xj2=1; }
if( k8==1 && k88==0 ) { k=1; k88=1;xj2=1; }
if( k9==1 && k99==0 ) { k=1; k99=1;xj2=1; }
if( k6==1 && k66==0 ) { k=1; k66=1;xj2=1; }
if( k4==1 && k44==0 ) { k=1; k44=1;xj3=1; }
if( k5==1 && k55==0 ) { k=1; k55=1;xj2=1; }
if( kk1==1 && kk11==0 ) { k=1; kk11=1;xj3=1; }
if( xk3==1 && xk33==0 ) { k=1; xk33=1; xj3=1; }
*/
#if FOUT
if( k1==0 && k2==0 && k3==0 &&k7==0&& k8==0 &&k9==0 && (o1&0x04)==0x04&&o1_flag==0)
{ o1=o1&0xfb; XBYTE[OUT1]=o1;}
#endif
#if FIN
if( k1==0 && k2==0 && k3==0 &&k7==0&& k8==0 &&k9==0 && (o1&0x04)==0x04&&o1_flag==0)
{ o1=o1&0xfb; XBYTE[OUT1]=o1;}
if(k5==0&&(o1&0x20)==0x20&&o1_flag==0)
{ o1=o1&0xdf; XBYTE[OUT1]=o1;}
#endif
} /* protection */
#endif
/* jilu protection */
// if(k!=0 && xj2==1 ) { lbbz1=1; k=0; }
if(w1!=w1_status)
{ ttt=1;
for(nn=0;nn<=15;nn++)
{ if((w1&ttt) != (w1_status&ttt))
{
if((w1&ttt) !=0 )
{
temp1=((unsigned int)bz[1539])*6;
bz[temp1+0]=*((unsigned char xdata *)(TIM+9));
bz[temp1+1]=*((unsigned char xdata *)(TIM+8));
bz[temp1+2]=*((unsigned char xdata *)(TIM+7));
bz[temp1+3]=*((unsigned char xdata *)(TIM+4));
bz[temp1+4]=*((unsigned char xdata *)(TIM+2));
bz[temp1+5]=*((unsigned char xdata *)TIM);
sjpp=(unsigned char *)(&ms) ;
bz[temp1+6]=*(sjpp+1); bz[temp1+7]=*sjpp;
bz[temp1+8]=nn+25;
/* if((w1&ttt)==0) bz[temp1+9]=0; else */ bz[temp1+9]=1;
w1_status=(w1_status&(0xffff^ttt))|(w1&ttt);
w1_mem=(w1_mem&(0xffff^ttt))|(w1&ttt);
w1_position[p0]=nn;p0++;
sjpp=(unsigned char *)(&w1_status);
bz[temp1+11]=*(sjpp+1); bz[temp1+12]=*sjpp;
sjpp=(unsigned char *)(&recval[nn]);
bz[temp1+13]=*(sjpp+3); bz[temp1+14]=*(sjpp+2);
bz[temp1+15]=*(sjpp+1); bz[temp1+16]=*sjpp;
bz[1539]+=4;
}
else {w1_status=(w1_status&(0xffff^ttt))|(w1&ttt);
}
}
ttt=ttt<<1;
}
}
/*
if((lbbz1==1)&&(lbbz2==1))
{
ii=i-23; temp1=256*LB_firstch; ttt=LB_zbnum*12;
for(j=0;j<24;j++)
{ jjj=0; LB[j]=D[temp1+ii]; temp2=temp1;
for(jj=1;jj<LB_chnum;jj++)
{ jjj=jjj+ttt; temp2=temp2+256;
LB[jjj+j]=D[temp2+ii];}
ii++;
}
lk=24;lbbz2=0;
}
*/
/* operate order */
temp3=*((unsigned char xdata *)(IDT+0x00c0));
temp4 = *((unsigned char xdata *)(IDT+0x00c0+1));
if((temp3==0x55)&&(temp4==0x55))
{
temp3=*((unsigned char xdata *)(IDT+0x00c0+4));
temp4=*((unsigned char xdata *)(IDT+0x00c0+5));
if( (temp3 == 0xaa) && (temp4 == 0xaa ) )
{
o1=o1 | *((unsigned char xdata *)(IDT+0x00c0+2));
/* o2=o2 | *((unsigned char xdata *)(IDT+0x00c0+3));*/
#if BB35 //my
if( (o1&0x0f)!=0x00 ) {ch_counter=0;bisuo_mark=1;}
#endif
{ P1_3=1; P1_5=0; XBYTE[OUT1]=o1;}
oply=1;thdz_mark=1;
}
XBYTE[IDT+0x00c0]=0;
XBYTE[IDT+0x00c0+1]=0;
XBYTE[IDT+0x00c0+4]=0;
XBYTE[IDT+0x00c0+5]=0;
}
temp3=*((unsigned char xdata *)(IDT+0x0251));
// if(temp3==0x55) { o2=o2&0x00;XBYTE[OUT2]=o2; w1=0; XBYTE[IDT+0X251]=0;}
if(temp3==0x55) { o2=o2&0x00;XBYTE[OUT2]=o2; XBYTE[IDT+0X251]=0;xhfg();}//2000-11-01
if( oply == 1)
{
if( jjj=time_counter-op_relay,jjj > 1200 )
{
o1=o1 & ~(*((unsigned char xdata *)(IDT+0x00c0+2)));
/* o2=o2 & ~(*((unsigned char xdata *)(IDT+0x00c0+3)));*/
XBYTE[OUT1]=o1;
oply=0; /*ji dianqi fugui*/
}
}
else op_relay=time_counter;
/* IO selfcheck */
/*
chk_num++;
if( (*((unsigned char xdata *)IN2)&0x80) == 0x00 && chk_num >= 720000)
{
chk_num=err=0;
for(temp3=0;temp3<7;temp3++)
{
temp4=0x01<<temp3;
XBYTE[OUT1]=temp4; for(temp1=0;temp1<25;temp1++) ;
if( (*((unsigned char xdata *)IN2)&0x80) == 0x00 ) err++;
XBYTE[OUT1]=0x00; for(temp1=0;temp1<25;temp1++) ;
if( (*((unsigned char xdata *)IN2)&0x80) != 0x00 ) err++;
XBYTE[OUT2]=temp4; for(temp1=0;temp1<25;temp1++) ;
if( (*((unsigned char xdata *)IN2)&0x80) == 0x00 ) err++;
XBYTE[OUT2]=0x00; for(temp1=0;temp1<25;temp1++) ;
if( (*((unsigned char xdata *)IN2)&0x80) != 0x00 ) err++;
}
if(err>=5)
{ sck1=1; w2=w2|0x0001; }
else
{ sck1=ck1=0; w2=w2&0xfffe; }
}
if(err>=1 && sck1==1) chk_num=720000;
*/
/*
#if FT
if(prun==0)
{
Et1=(*((unsigned char xdata *)IN2))&0xf0;
for(nn=0;nn<EE_num;nn++)
{
mm=0x08<<(nn+1);
if( (Et2[nn]&mm)==(Et1&mm) ) En1[nn]++; else { Et2[nn]=Et1; En1[nn]=0; }
if( En1[nn]>=3 ) {
if( (Et2[nn]&mm) && !(Ei[nn]&mm) ) {
*(eee+nn)=*(eee+nn)+1;
//if( *(eee+nn) >= et[6] )//
if(((nn==1||nn==0)&&*(eee+nn) >= et[6])||((nn==2||nn==3)&&(*(eee+nn) >=et[6]*4)))//{}
{ *(eee+nn)=0; epq[nn]++; if(epq[nn]>999999) epq[nn]=0;}
// writep(nn);
}
Ei[nn]=Et2[nn]; En1[nn]=0;
}
}
}
#endif
*/
#if EE/mai chong*/
if(prun==0)
{
Et1=(*((unsigned char xdata *)IN2))&0xF0;
for(nn=0;nn<EE_num;nn++)
{
mm=0x10<<nn;
if( (Et2[nn]&mm)==(Et1&mm) ) En1[nn]++; else { Et2[nn]=Et1; En1[nn]=0; }
if( En1[nn]>=2 )
{
if( (Et2[nn]&mm) && !(Ei[nn]&mm) )
{
*(eee+nn)=*(eee+nn)+1;
if( *(eee+nn) >= et[6] )//if(nn==0&&*(eee+nn) >= et[6]||((nn==1||nn=2||nn=3)&&(*(eee+nn) >=et[6]*4))){}
{ *(eee+nn)=0; epq[nn]++; if(epq[nn]>999999) epq[nn]=0;}
// writep(nn);
}
Ei[nn]=Et2[nn]; En1[nn]=0;
}
}
}
#endif
if((o2&0x40)==0x40)
{ jjj=time_counter-rt[11]; if(jjj>=6000)
{ o2=o2&0xbf; xj2=0; } }/*gu zhang quan liang*/
if((o2&0x40)==0) rt[11]=time_counter;
if((o2&0x80)==0x80)
{ jjj=time_counter-rt[12]; if(jjj>=6000)
{ o2=o2&0x7f; xj3=0; } }
if((o2&0x80)==0) rt[12]=time_counter;
//o2=o2&0x00;
XBYTE[OUT2]=o2; XBYTE[OUT1]=o1;
*oo2=o2;
/* *(oo2+1)=0x55; */
if(o1==0x00 && o11 != 0x00)
{ BSFG=1;BSFGT=time_counter;}/*zhuang zhi qing kuang liang hao*/
if(BSFG==1)
{ if( jjj=time_counter-BSFGT,jjj>100) { P1_3=0; P1_5=1;BSFG=0; } }
o11=o1;
//if((P1_2==0)&&((time1_counter-dis_t)>=9000)) {P1_2=1;disinit();}
P1_0=1;
TR1=0; TL1=0xfa; TH1=0xf2; TR1=1; /* set Time1 20M- 1ms f97d; 2ms f2fa;*/
//TR1=0; TL1=0x95; TH1=0xf5; TR1=1; /* set Time1 16M- 1ms faca; 2ms f595;*/
}
/*////////////////////////////////////////////////////////////////////////////*/
/* //////////////////////////end for time1 */////////////////////////////////*/
/*///////////////////////////////////////////////////////////////////////////*/
void fsjs(char k1,char k2)
{
unsigned char t1,t3;
unsigned int t2,t4;
int tttt;
t1=chn;
for(t2=k1;t2 <=k2;t2++)
{
t4=t2*256;
tttt=(int)((long)D[t3=t1+2,t4+t3] - D[t3=t1+8,t4+t3]
+ D[t3=t1+4,t4+t3] - D[t3=t1+10,t4+t3]);
trr[t2] = (int)((long)D[t3=t1+1,t4+t3] - D[t3=t1+7,t4+t3] + D[t3=t1+5,t4+t3]
- D[t3=t1+11,t4+t3]) + ((int)((long)D[t3=t1+3,t4+t3] - D[t3=t1+9,t4+t3])<<1)
+((tttt<<1)-(tttt>>2));
tttt=(int)((long)D[t3=t1+1,t4+t3] - D[t3=t1+7,t4+t3]
+ D[t3=t1+11,t4+t3] - D[t3=t1+5,t4+t3]);
txx[t2] = (int)((long)D[t3=t1+2,t4+t3] - D[t3=t1+8,t4+t3] + D[t3=t1+10,t4+t3]
- D[t3=t1+4,t4+t3]) + ((int)((long)D[t3=t1+12,t4+t3] - D[t3=t1+6,t4+t3])<<1)
+((tttt<<1)-(tttt>>2));
}
}
/*////////////////////////////////////////////////////////////////////*/
char key()
{
unsigned char ke;
if(L110==1) { if( k_counter > 10000 ) { key_no=1; }}
else if( k_counter > 18000 ) { key_no=1; }
if(key_no==1) return(QUE);
if((P1&0x10)==0x10) key_mark2=1; else key_mark2=0;
ke=(P3&0x38)>>3;
if(key_mark2 == 0) { key_mark1=0; return(7); }/*no key*/
if( key_mark1==0 && key_mark2 == 1 && ke >= 0 && ke < 7 )
{ key_mark1=1; k_counter=key_no=0; p_counter=0;
if(P1_2==1){P1_2=0;P1_2=0;P1_2=0;delay(10);back=1;}/*liht the realy*/
dis_t=time1_counter; return(ke); }
else return(7);
}
/*/////////////////////////////////////////////////////////////////////////*/
long fzjs(int tr,int tx)
{
long ttt;
ttt=(long)tr*tr+(long)tx*tx;
return((long)ttt>>2);
}
/*/////////////////////////////////////////////////////////////////////////*/
long srqt( long tt )
{
long xn0,xn1,dxn;
char do_counter;
if(tt<=0) return(0);if(tt==1) return(1);
xn0=tt>>1; do_counter=0;
if(xn0>0) xn1=(xn0+(tt/xn0))>>1;
do {
xn0=xn1; do_counter++;
if(xn0>0) xn1=(xn0+(tt/xn0))>>1;
dxn=xn1-xn0;
dxn=dxn>0 ? dxn : -dxn;
}
while( dxn>2 && do_counter<30) ;
return(xn1);
}
/*/////////////////////////////////////////////////////////////////////////*/
void sample()
{ unsigned int x1,t;
long x2;
gcls();
gwrite_hz(14,1,STR[31]);
for(t=0;t<6;t++)
{ x1=6+3*t;
gwrite_hz(3,x1,&(STR[6][5])); gwrite_hz(23,x1,&(STR[6][5]));
writedata(7,x1,0);writedata(8,x1,t); writedata(9,x1,11);
if(t<4){writedata(27,x1,0); writedata(28,x1,t+6); writedata(29,x1,11);}
}
writedata(27,18,1); writedata(28,18,0); writedata(29,18,11);
writedata(27,21,1); writedata(28,21,1); writedata(29,21,11) ;
l1:
chn=i-12;
fsjs(0,11);
for(x1=0;x1< 11;x1++)
{ DI3[x1]=fzjs(trr[x1],txx[x1]);
if(x1==0||x1==1) x2=Kic*3 ;
else if(x1>=5&&x1<=7) x2=Kib*3 ;
else if(x1==8) x2=Ki0*3;
else x2=Kv*3 ;
DI3[x1]=(long)srqt(DI3[x1]>>3)*10000/x2;}
/*********
#if BB35
x2=Kic*3 ;
for(t=0;t<=1;t++)
{
DI3[t]=(long)srqt(DI3[t]>>3)*10000/x2;
}
x2=Kv*3;
for(t=2;t<=4;t++)
{
DI3[t]=(long)srqt(DI3[t]>>3)*10000/x2;
}
x2=Kib*3 ;
for(t=5;t<=7;t++)
{
DI3[t]=(long)srqt(DI3[t]>>3)*10000/x2;
}
x2=Ki0*3;
DI3[8]=(long)srqt(DI3[8]>>3)*10000/x2;
x2=Kv0*3;
DI3[9]=(long)srqt(DI3[9]>>3)*10000/x2;
//x2=Kv*3;
// DI3[10]=(long)srqt(DI3[10]>>3)*10000/x2;
// DI3[11]=(long)srqt(DI3[11]>>3)*10000/x2;
#endif
*******/
// for(x1=Num_ch;x1<12;x1++)
DI3[11]=0;
page3();
x1=key();
if(x1==QUE) return;
goto l1;
}
/*/////////////////////////////////////////////////////////////////////////*/
void dissets()
{
unsigned char a0,n1,n2,n3;
unsigned int aa,aa3;
a0=a[0];
aa=(unsigned int)sett[a0]; aa3=aa/1000;
n1=(unsigned char)(aa/100-aa3*10);
n2=(unsigned char)(aa/10-(aa/100)*10);
n3=(unsigned char)(aa-(aa/10)*10);
if((a[0]==37)||(a[0]==38))
{ a[2]=(unsigned char)(aa3);
a[3]=n1;a[4]=n2;a[5]=n3;
/*
a[3]=(unsigned char)(aa/100-aa/1000*10);
a[4]=(unsigned char)(aa/10-(aa/100)*10);
a[5]=(unsigned char)(aa-(aa/10)*10);
*/
} else
{
a[2]=(unsigned char)(aa/10000);
a[3]=(unsigned char)(aa3-(aa/10000)*10);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -