📄 chengxu.txt
字号:
unsigned long idata savlong;
//long idata kkk;
cs[5]=(Val[1]+0.09813)*10.19716;//yali
if(cs[5]<1.001||cs[5]>12.799)//65.468)
cs[0]=0;
else
{
if(cs[5]>=0.12578&&cs[5]<0.20313)
l=0;
if(cs[5]>=0.20313&&cs[5]<0.3178)
l=1;
if(cs[5]>=0.3178&&cs[5]<0.4829)
l=2;
if(cs[5]>=0.4829&&cs[5]<0.7149)
l=3;
if(cs[5]>=0.7149&&cs[5]<1.0332)
l=4;
if(cs[5]>=1.0332&&cs[5]<1.4609)
l=5;
if(cs[5]>=1.4609&&cs[5]<2.0246)
l=6;
if(cs[5]>=2.0246&&cs[5]<2.7546)
l=7;
if(cs[5]>=2.7546&&cs[5]<3.685)
l=8;
if(cs[5]>=3.685&&cs[5]<4.854)
l=9;
if(cs[5]>=4.854&&cs[5]<6.303)
l=10;
if(cs[5]>=6.303&&cs[5]<8.076)
l=11;
if(cs[5]>=8.076&&cs[5]<10.224)
l=12;
if(cs[5]>=10.224&&cs[5]<=12.799)
l=13;
//if(cs[5]>=12.799&&cs[5]<15.855)
//l=14;
// if(cs[5]>=15.855&&cs[5]<19.454)
//l=15;
// if(cs[5]>=19.454&&cs[5]<23.656)
//l=16;
// if(cs[5]>=23.656&&cs[5]<28.528)
//l=17;
// if(cs[5]>=28.528&&cs[5]<34.138)
// l=18;
// if(cs[5]>=34.138&&cs[5]<40.560)
// l=19;
// if(cs[5]>=40.560&&cs[5]<47.869)
// l=20;
// if(cs[5]>=47.869&&cs[5]<56.144)
// l=21;
// if(cs[5]>=56.114&&cs[5]<65.468)
//l=22;
n=4*c[l];
m=1;
while (m<5)
{
cs[m]=d[n+m-1];
m=m+1;
}
// start midu jisuan
cs[0]=cs[3]+(cs[4]-cs[3])*(cs[5]-cs[1])/(cs[2]-cs[1]);
}
//chin1[1]=cs[5]/9.80665-0.0877;
Val[4]=cs[0];//midu
cs[2]=Val[2];//chaya
cs[2]=cs[2]*Val[4];
cs[0]=sqrt(cs[2]);
//Read_Page(14);
// n=EEI.ui;
cs[1]=(float)xishu;//xishu k
cs[1]=cs[1]*cs[0]/10000;
Val[5]=cs[1];//再这里可以设置瞬时流量的初始制
if(Val[5]<10)
{ n=(uint)(Val[5]*1000);}
else
{ n=(uint)(Val[5]*100);}
if(n>9999){n=9999;}
n1=n/1000;
if(Val[5]<10)
{n1=n1+0x0880;CH4512_write(n1);}
else
{n1=n1+0x0800;CH4512_write(n1);}
n1=n%1000;
n1=n1/100;
if(Val[5]<10)
{n1=n1+0x0900;CH4512_write(n1);}
else
{n1=n1+0x0980;CH4512_write(n1);}
n1=n%100;
n1=n1/10;
n1=n1+0x0A00;CH4512_write(n1);
n1=n%10;
n1=n1+0x0B00;
CH4512_write(n1);
if(leijidsp==1){
savlong=(long)Val[6];
m=savlong/10000;
n1=0x0800+m;CH4511_write(n1);
//if(Val[6]>=10000){n1=0x0800+m;CH4511_write(n1);}
// else
// {CH4511_write(0x0810);}
n1=savlong%10000;
m=n1/1000;
n1=0x0900+m;CH4511_write(n1);
// if(savlong>=1000){n1=0x0900+m;CH4511_write(n1);}
// else
// {CH4511_write(0x0910);}
n1=savlong%1000;
m=n1/100;
n1=0x0A00+m;CH4511_write(n1);
// if(savlong>=100){n1=0x0A00+m;CH4511_write(n1);}
// else
// {CH4511_write(0x0A10);}
n1=savlong%100;
m=n1/10;
n1=0x0B00+m;CH4511_write(n1);
//if(savlong>=10){n1=0x0B00+m;CH4511_write(n1);}
// else
// {n1=0x0B00+m;CH4511_write(n1);}
//else
// {CH4511_write(0x0B10);}
m=savlong%10;
//m=m%10;
n1=0x0C00+m;CH4511_write(n1);
leijidsp=0;
}
if(storc>=240){
// EA=0;
savlong=(long)Val[6];
m=(uchar)(savlong&0x00FF0000)>>16;
n=(uint)((savlong&0xFF000000)>>16);
n=n+m;
//SPI24C44_CS=0;//P2_3=0;
SPI24C44_Write(0x03,n);
// for(m=0;m<20;m++)
// {for(l=0;l<250;l++);}
// m=(n1&0xFF00)>>8;
//n=n1&0x00FF;
//n=n+m;
// SPI24C44_CS=0;//P2_3=0;
m=(uchar)(savlong&0x000000FF);
n=(uint)(savlong&0x0000FF00);
n=n+m;
SPI24C44_Write(0x05,n);
savlong=(unsigned long)(SPI24C44_Read(0x03));//Get_chip(0x03);//from 24c45 read leijiliuliang 16bit value
savlong=(savlong<<16)+(unsigned long)SPI24C44_Read(0x05);
Val[6]=savlong;
storc=0;
// EA=1;
}
}
void BTRSET()
{switch(CC){
case 0: {btreg0=0x3F;btreg1=0xFF;break;}
case 1: {btreg0=0x31;btreg1=0x1C;break;}
case 2: {btreg0=0x18;btreg1=0x1C;break;}
case 3: {btreg0=0x09;btreg1=0x1C;break;}
case 4: {btreg0=0x04;btreg1=0x1C;break;}
case 5: {btreg0=0x03;btreg1=0x1C;break;}
case 6: {btreg0=0x01;btreg1=0x1C;break;}
case 7: {btreg0=0x00;btreg1=0x1C;break;}
case 8: {btreg0=0x00;btreg1=0x16;break;}
case 9: {btreg0=0x00;btreg1=0x14;break;}
}
}
long ADC_TC() //热电偶,通过AIN1,AIN2输入的mv信号
{
long Result;
AD0CON=0x0F;//0x08+TT; //internal reference=1.25v, unbipolar, input1.28v,
ADMODE=0x22; //single conversionA/D
while(~RDY0); //wait for completion
Result=AD0H;
Result=Result*256+AD0M;
//Result=Result*256+AD0L;
return(Result); //
}
void AD(uchar chl)
{ uchar i;
if(chl==0){A0=0;A0=0;A0=0;A1=0;A1=0;A1=0;}
if(chl==1){A0=1;A0=1;A0=1;A1=0;A1=0;A1=0;}
if(chl==2){A1=1;A1=1;A1=1;A0=0;A0=0;A0=0;}
if(chl==3){A1=1;A1=1;A1=1;A0=1;A0=1;A0=1;}
//for(j=0;j<250;j++);
i=5;
fv_temp=0;
//EA=0;
//feeddog();
while(i-->0){ fv_temp+=ADC_TC();}
//EA=1;
fv_temp/=5;
ai_code=fv_temp;
//Val[0]=Eng_Calc(0);
}
void DaChange() //DAC 100mV
{
DACCON=0x03;
DACH=0x00;
DACL=0xA5;
}
void main()
{//uchar i;
unsigned long idata jsval;
//WDWR=1;
//WDCON=0x74;
IE=0x00;/*Enable Extend INT0*/
IT0=0;/* Extend INT0 trigered by edge*/
//PLLCON=0x00;
SPI24C44_CS=0;
cs5045=1;
//cs5045=0;
EC=0;
DaChange();
ICON=0x00;
SF=0x45;
Changed=0;
k=0;
storc=0;
ch451_init();
/*
CH4511_write(0x0800);
CH4511_write(0x0901);
CH4511_write(0x0A02);
CH4511_write(0x0B03);
CH4511_write(0x0C04);
CH4512_write(0x0801);
CH4512_write(0x0902);
CH4512_write(0x0A03);
CH4512_write(0x0B04);
*/
feeddog();
if(SET) Read_Para(); //{Val[1]=0.5;Val[2]=3500;xishu=5000;}//Read_Para(); //sw1=off
else InitVar(); //sw1=0n
BTRSET();
InitCAN();
//Chlint();
TMOD=0x01;
TH0=0x33;
TL0=0x32;
IP=0x02;
IE=0x06; /*T0 AND EXTERNAL INT0 */
InitCAN();
jsval=SPI24C44_Read(0x03);//from 24c45 read leijiliuliang 16bit value
jsval=(jsval<<16)+(unsigned long)SPI24C44_Read(0x05);
Val[6]=jsval;//X24C44的初始化设置,如果要测试,那么就直接复制99994即可 jsval
leijidsp=1;
TR0=1;
EA=1;
EX1=1;
while(1)// Loop Forever
{uchar i;
if(Changed){ Write_Para();Changed=0;}
//feeddog();
if(k>Chlnum) k=0;
for(k=0;k<=Chlnum;k++)
{ switch(k){
case 0:{A0=0;A0=0;A0=0;A1=0;A1=0;A1=0;break;}
case 1:{A0=1;A0=1;A0=1;A1=0;A1=0;A1=0;break;}
case 2:{A1=1;A1=1;A1=1;A0=0;A0=0;A0=0;break;}
case 3:{A1=1;A1=1;A1=1;A0=1;A0=1;A0=1;break;}
}
//for(i=0;i<250;i++);
// for(j=0;j<250;j++);
//feeddog();
i=5;
fv_temp=0;
while(i-->0){ fv_temp+=ADC_TC();}
fv_temp/=5;
ai_code=fv_temp;
//AD(k);
Val[k]=Eng_Calc();
// feeddog();
}
Jisuan();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -