|
这是温度采集的一段程序,temp_num == 0时开始采集用10位AD转换结电返回出到temp[0],再计算好温度值放回temp[0],
if(temp_num == 0)
if(temp_num == 0)
{
ET0 = 0;
ET1 = 0;
GetADCResult(6,&temp[0]);
//如下计算方式不明白,望解答,谢谢。
temp[0]=(unsigned int) ((1/(log(((float)temp[0]*10898/(1024-(float)temp[0]))/10000)/3950+1/298.15)-273.15)*100);
//热敏电阻MF58 10k 精度 B值:3950 5%;串一个10K金属膜电阻至正极
temp_num = 1;
ET1 = 1;
ET0 = 1;
}
P2 = LEDData1[temp[0]/1000]; //千位
LED4 = 0;
Delayms(50);
LED4 = 1;
P2 = (LEDData1[temp[0]%1000/100])&0x7F;//百位
LED3 = 0;
Delayms(50);
LED3 = 1;
P2 = LEDData2[temp[0]%1000%100/10];//十位
LED2 = 0;
Delayms(50);
LED2 = 1;
P2 = 0xa7;//c
LED1 = 0;
Delayms(50);
LED1 = 1;
|
|