?? jkb.c
字號:
return(u);
break;
case 2:
u=y*(390.26-18.49)+18.49;
return(u);
break;
case 3:
//Read_Temperature();
//lenduanzhi();
//r=lenduan;
r= GetTempValue();
r=(-5e-6)*r*r*r+0.014*r*r+48.293*r+379.36;//將冷端溫度值轉(zhuǎn)換成毫伏值
u=y*(69536+8096)-8096;//求出熱端毫伏值
u=u+r;//進行冷端補償
return(u);
break;
case 4:
//Read_Temperature();
//lenduanzhi();
//r=lenduan;
r= GetTempValue();
r=(-7e-6)*r*r*r+10132*r*r+35.297*r+454.93;//將冷端溫度值轉(zhuǎn)換成毫伏值
u=y*(54807+6458)-6458;//求出熱端毫伏值
u=u+r;//進行冷端補償
return(u);
break;
case 5:
//Read_Temperature();
//lenduanzhi();
//r=lenduan;
r= GetTempValue();
r=(-3e-5)*r*r*r+0.0471*r*r+38.526*r-22.551;//將冷端溫度值轉(zhuǎn)換成毫伏值
u=y*(20689+6258)-6258;//求出熱端毫伏值
u=u+r;//進行冷端補償
return(u);
break;
case 6:
//Read_Temperature();
//lenduanzhi();
//r=lenduan;
r= GetTempValue();
r=(-3e-5)*r*r*r+0.0481*r*r+56.392*r+282.86;//將冷端溫度值轉(zhuǎn)換成毫伏值
u=y*(76358+9835)-9835;//求出熱端毫伏值
u=u+r;//進行冷端補償
return(u);
break;
case 7:
Read_Temperature();
lenduanzhi();
r=lenduan;//將冷端溫度值轉(zhuǎn)換成毫伏值
u=y;//求出熱端毫伏值
u=u+r;//進行冷端補償
return(u);
break;
case 8:
//Read_Temperature();
//lenduanzhi();
//r=lenduan;
r= GetTempValue();
r=(-9e-7)*r*r*r+0.0036*r*r+6.8411*r-26.969;//將冷端溫度值轉(zhuǎn)換成毫伏值
u=y*(18612+236)-236;//求出熱端毫伏值
u=u+r;//進行冷端補償
return(u);
break;
case 9:
//Read_Temperature();
//lenduanzhi();
//r=lenduan;
r= GetTempValue();
r=(-1e-6)*r*r*r+0.0067*r*r-0.7424+46.959;//將冷端溫度值轉(zhuǎn)換成毫伏值
u=y*13814;//求出熱端毫伏值
u=u+r;//進行冷端補償
return(u);
break;
case 10:
//Read_Temperature();
//lenduanzhi();
//r=lenduan;
r= GetTempValue();
r=(-9e-9)*r*r*r+(2e-5)*r*r+0.0253*r+0.1641;//將冷端溫度值轉(zhuǎn)換成毫伏值
u=y*(47.502+4.345)-4.345;//求出熱端毫伏值
u=u+r;//進行冷端補償
return(u);
break;
default:
break;
}
}
//-----------------------------------------------------------------------------
//CU50溫度值計算
//-----------------------------------------------------------------------------
float cu50(float r)
{
float wendu;
wendu=4.6673*r-233.29;
return(wendu);
}
//-----------------------------------------------------------------------------
//cu100溫度值計算
//-----------------------------------------------------------------------------
float cu100(float r)
{
float wendu;
wendu=2.3337*r-233.29;
return(wendu);
}
//-----------------------------------------------------------------------------
//PT100溫度值計算
//-----------------------------------------------------------------------------
float pt100(float r)
{
float wendu;
wendu=(1e-6)*r*r*r+0.0007*r*r+2.3782*r-245.55;
return(wendu);
}
//-----------------------------------------------------------------------------
//J型熱電偶溫度值計算
//-----------------------------------------------------------------------------
float dj(float r)
{
float wendu;
wendu=(6e-13)*r*r*r-(9e-8)*r*r+0.0206*r-9.356;
return(wendu);
}
//-----------------------------------------------------------------------------
//K型熱電偶溫度值計算
//-----------------------------------------------------------------------------
float dk(float r)
{
float wendu;
wendu=(3e-12)*r*r*r-(2e-7)*r*r+0.0285*r-15.743;
return(wendu);
}
//-----------------------------------------------------------------------------
//T型熱電偶溫度值計算
//-----------------------------------------------------------------------------
float dt(float r)
{
float wendu;
wendu=(3e-11)*r*r*r-(1e-6)*r*r*r+0.292*r+0.8784;
return(wendu);
}
//-----------------------------------------------------------------------------
//E型熱電偶溫度值計算
//-----------------------------------------------------------------------------
float de(float r)
{
float wendu;
wendu=(1e-12)*r*r*r-(2e-7)*r*r+0.0184*r-16.133;
return(wendu);
}
//-----------------------------------------------------------------------------
//R型熱電偶溫度值計算
//-----------------------------------------------------------------------------
float dr(float r)
{
float wendu;
wendu=r;
//printf("溫度值= ",wendu);
return(wendu);
}
//-----------------------------------------------------------------------------
//S型熱電偶溫度值計算
//-----------------------------------------------------------------------------
float ds(float r)
{
float wendu;
wendu=(9e-11)*r*r*r-(4e-6)*r*r+0.1297*r+11.023;
return(wendu);
}
//-----------------------------------------------------------------------------
//B型熱電偶溫度值計算
//-----------------------------------------------------------------------------
float db(float r)
{
float wendu;
wendu=(3e-17)*r*r*r-(7e-15)*r*r+10*r-10;
return(wendu);
}
//-----------------------------------------------------------------------------
//N型熱電偶溫度值計算
//-----------------------------------------------------------------------------
float dn(float r)
{
float wendu;
wendu=0.007*r*r*r-0.5649*r*r+39.132*r-19.054;
return(wendu);
}
//-----------------------------------------------------------------------------
//SPI數(shù)據(jù)傳輸
//-----------------------------------------------------------------------------
void spi_send(float wendu)
{
char *ptr1;
float *ptr_wendu;
int i;
ptr_wendu=&wendu;
ptr1=(char*)ptr_wendu;
//printf("%f\n",wendu);
for(i=0;i<4;i++)
{
//P3=0XEF;
SPIF=0;
SPI0DAT=*ptr1;
ptr1++;
while(!SPIF);
// P3=0XFF;
}
}
//-----------------------------------------------------------------------------
//單通道配置
//-----------------------------------------------------------------------------
void tongdao_init(void)
{
int number,i;
while(!SPIF);
number=SPI0DAT;
SPIF=0;
while(!SPIF);
i=SPI0DAT;
SPIF=0;
chanel_chanshu[number-1]=i;//配置通道類型
// P3=0XEF;
SPI0DAT=0xaa;//發(fā)送響應(yīng)命令
SPIF=0;
//P3=0XFF;
}
//-----------------------------------------------------------------------------
//通道增益參數(shù)配置
//-----------------------------------------------------------------------------
void chan(int t)
{ int i;
switch(chanel_chanshu[(t-1)*3])
{
case 0:
ADC0CF |=0X04;
i2o_write(47,0x50);//9.1K
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(47,0x52);
break;
case 1:
ADC0CF |=0X03;
i2o_write(47,0x50);//9.1K
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(47,0x52);
break;
case 2:
ADC0CF &=0Xfa;
ADC0CF |=0X02;
i2o_write(20,0x50);//7K 40
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(20,0x52);
break;
case 3:
ADC0CF |=0X04;
i2o_write(55,0x50);
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(55,0x52);//10.2K
break;
case 4:
ADC0CF |=0X04;
i2o_write(70,0x50);
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(70,0x52);//13.68K
break;
case 5:
ADC0CF |=0X04;
i2o_write(185,0x50);
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(185,0x52);//36.25K
break;
case 6:
ADC0CF |=0X04;
i2o_write(50,0x50);
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(50,0x52);//9.82K
break;
case 7:
ADC0CF |=0X04;
i2o_write(30,0x50);
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(30,0x52);//7K
break;
case 8:
ADC0CF |=0X04;
i2o_write(206,0x50);
for(i=0;i<256;i++);
i2o_write(206,0x52);//40.3K
break;
case 9:
ADC0CF |=0X04;
i2o_write(36,0x50);
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(36,0x52);//7K
break;
case 10:
ADC0CF |=0X04;
i2o_write(255,0x50);
for(i=0;i<256;i++){;}
for(i=0;i<256;i++){;}
i2o_write(255,0x52);//50K//只有2.2V
break;
default:
break;
}
}
//-----------------------------------------------------------------------------
//FLASH寫
//-----------------------------------------------------------------------------
void flash_scratch_write(unsigned dest,char *src,unsigned num)
{
unsigned idata i;
char xdata *pwrite;
char the_data;
bit EA_SAVE=EA;
pwrite=(char*)dest;
for(i=0;i<num;i++)
{
the_data=*src++;
EA=0;
FLSCL |=0x01;//便能FLASH寫
PSCTL |=0x01;//PSWE=1
PSCTL |=0X04;//SFLE=1
*pwrite=the_data;//寫數(shù)據(jù)
PSCTL &=~0X04;//SFLE=0
PSCTL &=~0X01;//PSWE=0
FLSCL &=~0X01;//禁止FLASH寫
EA =EA_SAVE;
pwrite++;
}
}
//-----------------------------------------------------------------------------
//FLASH讀
//-----------------------------------------------------------------------------
void flash_scratch_read(unsigned src,unsigned num)
{
unsigned idata i;
char code *pread;
bit EA_SAVE=EA;
pread=(char *)src;
for(i=0;i<num;i++)
{
EA=0;
PSCTL |=0x04;
*ptrlchar=*pread;
PSCTL &=~0X04;
EA=EA_SAVE;
pread++;
ptrlchar++;
}
}
//-----------------------------------------------------------------------------
//FLASH擦除
//-----------------------------------------------------------------------------
void flash_scratch_erase(void)
{
char xdata *pwrite;
bit EA_SAVE=EA;
pwrite=(char*)0x0000;
EA=0;
FLSCL |=0X01;
PSCTL |=0X01;
PSCTL |=0X02;
PSCTL |=0X04;
*pwrite=0x00;
PSCTL &=~0X04;
PSCTL &=~0X02;
PSCTL &=~0X01;
FLSCL &=~0X01;
EA=EA_SAVE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -