主要是用两个E型热电偶测量水泵进出口温差,温差传给单片机(有水泵效率的经验公式)用单片机程序算出效率并显示出来。
主要硬件是两个E型热电偶,分别接MAX31855芯片通信到AT89C52,然后通过单片机编程算出效率再显示效率。设置效率的范围,要是超出范围就报警。
#include "MAX31855.h"
#include "intrins.h"
//最高位是符号 TCE
//返回温度,精度0.01
float max_read1() //发送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)//负数
{
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() //发送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)//负数
{
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;
}
资料借鉴于此纷传