主要是用兩個E型熱電偶測量水泵進出口溫差,溫差傳給單片機(有水泵效率的經(jīng)驗公式)用單片機程序算出效率并顯示出來。
主要硬件是兩個E型熱電偶,分別接MAX31855芯片通信到AT89C52,然后通過單片機編程算出效率再顯示效率。設置效率的范圍,要是超出范圍就報警。
#include "MAX31855.h"
#include "intrins.h"
//最高位是符號 TCE
//返回溫度,精度0.01
float max_read1() //發(fā)送i到addr
{
uchar i;
uint k=0;
float j=0;
max_sck1=0;
k=0;
_nop_();
max_cs1=0;
for(i=0;i<16;i++)
{
max_sck1=1;
_nop_();
if(max_so1)
k++;
max_sck1=0;
k<<=1;
_nop_();
}
max_cs1=1;
if((k & 0x8000)>0)//負數(shù)
{
i=1;
k=k & 0x7fff;
k=k>>2;
k=~k;//反碼加一
k++;
j=k;
j=-j;
}
else
{
k>>=2;
j=k;
}
//計算溫度,誤差0.5%
j=j*0.151-23.626;
return j;
}
//最高位是符號 TCE
//返回溫度,精度0.01
float max_read2() //發(fā)送i到addr
{
uchar i;
uint k=0;
float j=0;
max_sck2=0;
k=0;
_nop_();
max_cs2=0;
for(i=0;i<16;i++)
{
max_sck2=1;
_nop_();
if(max_so2)
k++;
max_sck2=0;
k<<=1;
_nop_();
}
max_cs2=1;
if((k & 0x8000)>0)//負數(shù)
{
i=1;
k=k & 0x7fff;
k=k>>2;
k=~k;//反碼加一
k++;
j=k;
j=-j;
}
else
{
k>>=2;
j=k;
}
//計算溫度,誤差0.5%
j=j*0.151-23.626;
return j;
}
資料借鑒于此紛傳
閱讀全文