主要是用兩個(gè)E型熱電偶測量水泵進(jìn)出口溫差,溫差傳給單片機(jī)(有水泵效率的經(jīng)驗(yàn)公式)用單片機(jī)程序算出效率并顯示出來。
主要硬件是兩個(gè)E型熱電偶,分別接MAX31855芯片通信到AT89C52,然后通過單片機(jī)編程算出效率再顯示效率。設(shè)置效率的范圍,要是超出范圍就報(bào)警。
#include "MAX31855.h"
#include "intrins.h"
//最高位是符號(hào) 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)//負(fù)數(shù)
{
i=1;
k=k & 0x7fff;
k=k>>2;
k=~k;//反碼加一
k++;
j=k;
j=-j;
}
else
{
k>>=2;
j=k;
}
//計(jì)算溫度,誤差0.5%
j=j*0.151-23.626;
return j;
}
//最高位是符號(hào) 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)//負(fù)數(shù)
{
i=1;
k=k & 0x7fff;
k=k>>2;
k=~k;//反碼加一
k++;
j=k;
j=-j;
}
else
{
k>>=2;
j=k;
}
//計(jì)算溫度,誤差0.5%
j=j*0.151-23.626;
return j;
}
資料借鑒于此紛傳
閱讀全文