📄 xlbh.c
字号:
a[4]=n1;a[6]=n2;a[7]=n3;
}
}
/*/////////////////////////////////////////////////////////////////////////*/
void writeset()
{
unsigned char a0,a1;
unsigned int aa;
long aaa;
a0=a[0];
aaa=(long)a[2]*10000+(int)a[3]*1000+(int)a[4]*100+a[6]*10+a[7];
if((a[0]==37)||(a[0]==38))
aaa=(int)a[2]*1000+(int)a[3]*100+a[4]*10+a[5];
if( a0==0 )
{
if((int)aaa != 100 && (int)aaa != 200 && (int)aaa != 300) aaa=100;
sett[0]=(int)aaa;
*(pee+2)=*psett; delay(25); *(pee+3)=*(psett+1); delay(25);
load_eep();
}
else
if(aaa>=0 && aaa<=32000)
{
sett[a0]=(int)aaa;
for(a1=0;a1<3;a1++)
{
aa=(int)(sett[0]/100-1)*76 + a0*2+(int)a1*250;
*(pee+ 2 + aa )=*(psett + a0*2); delay(25);
*(pee+ 3 + aa )=*(psett + a0*2+1); delay(25);
}
}
if(a0==37) passwd1=sett[37];
if(a0==38) passwd2=sett[38];
}
/*
void writeeepfirst()
{ unsigned char i;
unsigned int aa;
long aaa;
for(i=1;i<=7;i++)
{if(i==1)aaa=1450;
if (i==2) aaa=14000;
if(i==3)aaa=1480;
if(i==4)aaa=10000;
if(i==5)aaa=100;
if(i==6||i==7) aaa=0;
sett[i]=(int)aaa;
aa=i*2;
*(pee+ 2 + aa )=*(psett + i*2); delay(25);
*(pee+ 3 + aa )=*(psett + i*2+1); delay(25);
}
}
*/
/*/////////////////////////////////////////////////////////////////////////*/
void writep(char wkk)
{ *(lepq+wkk)=epq[wkk]; }
void writeeram()
{
int t2;
XBYTE[IDT+0x60]=0;
for(t2=0; t2<EE_num; t2++)
{
p=(unsigned char *)(&epq[t2]);
XBYTE[IDT+0x60+t2*4+1]=*(p+3); XBYTE[IDT+0x60+t2*4+2]=*(p+2);
XBYTE[IDT+0x60+t2*4+3]=*(p+1); XBYTE[IDT+0x60+t2*4+4]=*p;
}
XBYTE[IDT+0x60]=0x55;
}
/*/////////////////////////////////////////////////////////////////////////*/
void delay(int ww)
{
int b;
unsigned char c;
ww=ww+ww;
for(b=0;b<ww;b++) for(c=0;c<0xc0;c++) ;
/* for(c=0;c<0xff;c++) ; */
}
/*/////////////////////////////////////////////////////////////////////////*/
void writeout()
{
io1_7=a[1]; io1_6=a[2]; io1_5=a[3]; io1_4=a[4];
io1_3=a[5]; io1_2=a[6]; io1_1=a[7]; io1_0=a[8];
if( a[0]==1 )
{ o1=io1;P1_3=1;P1_5=0;
if( (o1&0x0f)!=0x00 )
{ ch_counter=0; js_mark=1; sh_t=time_counter; }
o1_flag=1;XBYTE[OUT1]=o1;thdz_mark=1;
delay(1500);o1_flag=0; /* o1=o1&0xf0; */
o1=0x00; XBYTE[OUT1]=o1;
}
if( a[0]==2 )
{ o2=io1; XBYTE[OUT2]=o2;}
}
/*/////////////////////////////////////////////////////////////////////////*/
void write_eep(char wk)
{
unsigned int t1,t2,t3,t4;
unsigned char ttt;
t2=((sett[0]/100)-1)*76;
if( wk<=38 )
{
if(wk==0) { t3=2;t4=73; } else { t3=wk*2; t4=wk*2+1; }
for(t1=t3; t1 <= t4; t1++)
{
ttt=*(psett+t1);
if( *(pee+t2+2+t1) !=ttt )
{ *(pee+t2+2+t1)=ttt; delay(25); }
if( *(pee+t2+2+t1+250) !=ttt )
{ *(pee+t2+2+t1+250)=ttt; delay(25); }
if( *(pee+t2+2+t1+500) !=ttt )
{ *(pee+t2+2+t1+500)=ttt; delay(25); }
}
}
}
/*/////////////////////////////////////////////////////////////////////////*/
void load_eep()
{
unsigned char cc1,cc2,cc3;
unsigned int tt1,tt2;
if(*(pe+1)==300 || *(pe+1)==200 || *(pe+1)==100) sett[0]=*(pe+1);
else
{
sett[0]=100;
*(pee+2)=*psett; delay(25); *(pee+3)=*(psett+1); delay(25);
}
tt2=((sett[0]-100)/100)*76;
for(tt1=4;tt1<=79;tt1++)
{
cc1=*(pee+tt2+tt1);
cc2=*(pee+tt2+tt1+250);
cc3=*(pee+tt2+tt1+500);
if(cc1 == cc2 && cc1 == cc3) goto l1;
if(cc1==cc2 && cc1 != cc3 ) { *(pee+tt1+tt2+500)=cc1; delay(25); }
else {
if(cc1==cc3 && cc1 != cc2 ) { *(pee+tt1+tt2+250)=cc1; delay(25); }
else {
if(cc2==cc3 && cc2 != cc1 ) { *(pee+tt1+tt2)=cc2; delay(25); }
else {
*(pee+tt1+tt2+250)=cc1; delay(25);
*(pee+tt1+tt2+500)=cc1; delay(25);
sck2=1; w2=w2|0x0002;
/* goto l2; */
}
}
}
l1:
sck2=ck2=0; w2=w2&0xfffd;
}
for(tt1=1;tt1<=38;tt1++)
{
tt2=*(pe + 1 + tt1+((sett[0]-100)/100)*38);
if(tt2>=0 && tt2<=32000) sett[tt1]=tt2;
else sett[tt1]=32000;
}
passwd1=sett[37];
passwd2=sett[38];
//passwd1=1000;passwd2=1000;
}
/*/////////////////////////////////////////////////////////////////////////*/
void writetram()//从E2ROM中取字写到RAMZHONG *?
{
unsigned int t1,t2,t3;
ppp=(unsigned char *)(&sett[0]);
XBYTE[IDT+0x0150+1]=*(ppp+1);/*XIE SHUANGKOU RAM*/
XBYTE[IDT+0x0150+2]=*ppp;
for(t1=0;t1<=2;t1++)
{
for(t2=1;t2<=36;t2++)
{
t3=*(pe + t1*38 + t2 + 1);
if(t3<0 || t3>32000) t3=32000;
ppp=(unsigned char *)(&t3);
XBYTE[IDT+0x0150+t2*2+t1*72+1]=*(ppp+1);
XBYTE[IDT+0x0150+t2*2+t1*72+2]=*ppp;
}
XBYTE[IDT+0x0150]=0x55;
}
}
/*char disjs( long ttv1,int ttv2)
{
return((unsigned char)(ttv1-(long)ttv2*10)+0x30);
}
*/
/* set chang function */
/*/////////////////////////////////////////////////////////////////////////*/
void chang_set()
{
long tt;//,tt1,tt2;
char t ;
writetram();
prun=1; delay(40); /* forbid protection */
/* load setting */
#if BB35
Kv=sett[3];
Kic=sett[4];
Kib=sett[5];
Kv1=(long)sett[1]*10;
Ki1=(long)sett[2]*10;
Kv0=(long)sett[30];
Ki0=(long)sett[31];
if(sett[29]>=100) Kpq=-(sett[29]-(sett[29]/100)*100);
else Kpq=sett[29];
if(Kpq>30||Kpq<(-25)) Kpq=0;
pro1=(unsigned char)(sett[6]/100);
pro2=(unsigned char)(sett[7]/100);
for(t=0;t<3;t++)
{ tt=(long)sett[t+8]*Kib*12/10000;
e[t]=tt*tt*2;
}
tt=(long)sett[14]*Kv*12/10000;
e[5]=tt*tt*2; //Udz
e[3]=166666666/(long)sett[16]; // 20M
tt=(long)sett[12]*Ki0*12/10000;
e[6]=tt*tt*2;
et[0]=sett[20]*6-sett[20]/40;
et[1]=sett[21]*6-sett[21]/40;
et[2]=sett[25]*6-sett[25]/40;
et[3]=sett[27]*6-sett[27]/40;
et[8]=sett[23]*6-sett[23]/40;
et[7]=sett[26]*6-sett[26]/40;
// et[9]=sett[22]*6-sett[22]/40;
et[10]=sett[24]*6-sett[24]/40;
et[11]=sett[33]*6-sett[33]/40;
tt=(long)sett[32]*Kv*12/10000;
e[15]=tt*tt*2;
et[5]=500*6;
et[6]=sett[28];//2003-7-5
//et[10]=sett[4]/5;
et[4]=sett[34]/5;
tt=(long)sett[17]*Kv*9/10000;
e[7]=tt*tt/2;
tt=(long)sett[18]*Kv*12/10000;
e[8]=tt*tt*2;
tt=(long)sett[19]*Kib*12/10000;
e[9]=tt*tt*2;
tt=(long)sett[15]*Kib*12/10000;
e[11]=tt*tt*2;
tt=(long)sett[11]*Kv*12/10000;
e[12]=tt*tt/2;
tt=(long)sett[22]*Kv*12/10000;
e[10]=tt*tt/2;
e[13]=166666666/(long)sett[13]; // 20M
// tt=(long)sett[13]*Ki0*12/10000;
// e[13]=tt*tt*2;
if(Kv0<=0) Kv0=10000; if(Ki0<=0) Ki0=10000;
if(Kv1<=0) Kv1=10000; if(Ki1<=0) Ki1=10000;
if(Kic<=0) Kic=10000; if(Kv<=0) Kv=10000;
if(Kib<=0) Kib=10000;
e[14]=sett[36]/100;
if(sett[35]<=1000) t=5; /* t=17; 2sin5=.17 */
if(sett[35]>1000 && sett[35]<=1500) t=4; /* t=26; 2sin7.5=.26 */
if(sett[35]>1500 && sett[35]<=2000) t=3; /* t=34; 2sin10=.34 */
if(sett[35]>2000 && sett[35]<=2500) t=2; /* t=43; 2sin12.5=.43 */
if(sett[35]>2500) t=2; /* t=51; 2sin15=.51 */
e[4]=t*t;
#endif
prun=0;
}
/*/////////////////////////////////////////////////////////////////////////*/
void di_chang()
{
unsigned char t;
long ttt1,ttt2;
#if EE
for(t=0;t<EE_num;t++)
{
ttt1=epq[t] - *(lepq+t);
ttt1= ttt1>0 ? ttt1 : -ttt1;
if( ttt1 >= 1) { writep(t); writeeram(); }
}
#endif
#if BB35
if((DI2[0]<123333)||DI2[0]>150000) DI2[0]=133333;
up1[0]=66666666/DI2[0]; // f
for(t=1;t<=7;t++)
{up1[t]=(int)((long)srqt(DI2[t]>>5)*1000/(3*Kv)); }
for(t=8;t<=9;t++)
{up1[t]=(int)((long)srqt(DI2[t]>>5)*10000/(3*Kic)); }
/***************
up1[1]=(int)((long)srqt(DI2[1]>>5)*1000/(3*Kv)); // Uab
up1[2]=(int)((long)srqt(DI2[2]>>5)*1000/(3*Kv)); // Ubc
up1[3]=(int)((long)srqt(DI2[3]>>5)*1000/(3*Kv)); // Uca
up1[4]=(int)((long)srqt(DI2[4]>>5)*1000/(3*Kv)); // Ua
up1[5]=(int)((long)srqt(DI2[5]>>5)*1000/(3*Kv)); // Ub
up1[6]=(int)((long)srqt(DI2[6]>>5)*1000/(3*Kv)); // Uc
up1[7]=(int)((long)srqt(DI2[7]>>5)*1000/(3*Kv)); // 3U0
up1[8]=(int)((long)srqt(DI2[8]>>5)*10000/(3*Kic)); // Ia
up1[9]=(int)((long)srqt(DI2[9]>>5)*10000/(3*Kic)); // Ic
************************/
ttt1=DI2[10]; ttt2=DI2[11];
DI2[10]=ttt1-(ttt2*Kpq/100); DI2[11]=ttt2+(ttt1*Kpq/100);
ttt1=((long)Kic*9*Kv)/10000;
up1[10]=(int)(DI2[10]/ttt1); /* P w */
up1[11]=(int)(DI2[11]/ttt1); /* Q var */
up1[12]=(int)((long)up1[10]*100/(long)srqt((long)up1[10]*up1[10]+(long)up1[11]*up1[11]));
/* cos%*100 */
up1[12]=up1[12] > 0 ? up1[12] : -up1[12];
for(t=12;t<16;t++) /* ib,Ia,Ib,Ic*/
{
if(t==12) {up1[t+1]=(int)((long)srqt(DI2[t]>>5)*10000/(3*Kic));}
else {up1[t+1]=(int)((long)srqt(DI2[t]>>5)*10000/(3*Kib));}
}
DI2[1]=((long)srqt(DI2[1]>>5))*Kv1/(Kv*3);
DI2[2]=((long)srqt(DI2[2]>>5))*Kv1/(Kv*3);
DI2[8]=((long)srqt(DI2[8]>>5))*Ki1*10/(Kic*3);
DI2[9]=((long)srqt(DI2[9]>>5))*Ki1*10/(Kic*3);
ttt1=(((long)Kic*9000/Ki1)*Kv)/Kv1;
if(ttt1==0) ttt1=1000000000;
for(t=10;t<12;t++) DI2[t]=DI2[t]/ttt1;
#endif
}
/*/////////////////////////////////////////////////////////////////////////*/
void page()
{ uchar i;
for(i=0;i<15;i++)
{gwrite_hz(0,2*i,STR[0]);gwrite_hz(38,2*i,STR[0]);}
for(i=0;i<20;i++)
{gwrite_hz(2*i,0,STR[0]);gwrite_hz(2*i,28,STR[0]);}
writesag(5,8,name_n);writesag(11,8,name_a); writesag(17,8,name_n); writesag(23,8,name_z);
writesag(29,8,name_i);
gwrite_hz(5,25,STR[32]);gwrite_hz(27,25,&(STR[28][5]));
}
/*/////////////////////////////////////////////////////////////////////////*/
void page00()
{unsigned char i;
figure();
#if BB35
gwrite_hz(18,18,STR[9]);writedata(23,18,11);
//writedata(27,18,0);writedata(28,18,1);//dizhi 01
i=e[14]/100;writedata(27,18,i);
i=(e[14]%100)/10;writedata(28,18,i);
i=e[14]%10;writedata(29,18,i);
gwrite_hz(18,21,STR[10]);//baohuyaban
gwrite_hzzf(10,24,promain[0],(pro1&0x01)^0x01);
gwrite_hzzf(15,24,promain[1],(pro1&0x02)^0x02);
gwrite_hzzf(20,24,promain[2],(pro1&0x04)^0x04);
gwrite_hzzf(25,24,promain[3],(pro1&0x08)^0x08);
gwrite_hzzf(30,24,promain[10],(pro2&0x08)^0x08);
gwrite_hzzf(10,27,promain[5],(pro2&0x40)^0x40);
gwrite_hzzf(15,27,promain[7],(pro1&0x80)^0x80);
gwrite_hzzf(20,27,promain[8],(pro2&0x01)^0x01);
gwrite_hzzf(25,27,promain[9],(pro2&0x02)^0x02);
gwrite_hzzf(30,27,promain[4],(pro2&0x20)^0x20);
#endif
#if BB35
writedata(16,1,21);writedata(17,1,17); writedata(18,1,24); writedata(20,1,10);//Uab=
writedata(16,3,21);writedata(17,3,24);writedata(18,3,26); writedata(20,3,10);//Ubc=
writedata(16,5,22);writedata(17,5,17); writedata(20,5,10);//Ia=
writedata(16,7,22);writedata(17,7,26); writedata(20,7,10);//Ic=
writedata(16,9,23);writedata(20,9,10);//P=
writedata(16,11,25); writedata(20,11,10);//Q=
writedata(16,13,27); writedata(20,13,10);//f=
writedata(29,1,33);writedata(30,1,31);//kv
writedata(29,3,33);writedata(30,3,31);//
writedata(29,5,35);
writedata(29,7,35);
writedata(29,9,33);writedata(30,9,32);
writedata(29,11,33);writedata(30,11,15);writedata(31,11,17);writedata(32,11,18);
writedata(29,13,37);writedata(30,13,38);
#endif
}
/*/////////////////////////////////////////////////////////////////////////*/
void page0()
{uchar i,ii,m,ij,x,xx,in, viewstr0[7];
unsigned int t1; long v=0;ij=m=0;
if(trip0==1)
{
x=bz[1539]-4; t1=(unsigned int)x*6;
x=bz[t1+8];
if(x>24){in=0;x=x-25;}
else in=1;
#if BB35
writeblank(16,21,24);
if(in==0)
{if(x>=0&&x<16) {gwrite_hz(18,21,rec[x]);} }
if(in==1)
{if(bz[t1+9]==1) {gwrite_hz(16,21,&rec[16][0]);
gwrite_hz(24,21,&rec[16][4]);
xx=x/10;writedata(22,21,xx);
xx=x-(x/10)*10;writedata(23
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -