MAX6675使用问题,T-接地测量值不对???

2020-02-08 09:08发布

大家好:
    最近做多路温度测量装置,用K型热电偶,我想用MAX6675做测量信号转换,可以省很多事!
    MAX接线电路就是这样:下面是链接
http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=MAX6675&in=27083&cl=2&lm=-1&pn=8&rn=1&di=39066360255&ln=258&fr=&fmq=&ic=0&s=&se=&sme=0&tab=&width=&height=&face=0#
    问题:???
        1.我T-引脚不接地,也就是不能判断热电偶是否短线时,测量值正确,漂在十度左右,漂是不是有点大,
          我就在电源上加了个电容,漂还是那样???
        2.我把T-引脚接地,也就是加上了判断热电偶是否短线,判断功能是有了,可以判断出是不是接了热电偶,
          但是,温度测量值不对了,变小了(好像是小了冷端补尝了),怎么会事,怎么会这样???

谢各位高手...指点!!!我是不是哪里做的不对了,在线等候......在线等候......
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
bj-stm8
2020-02-09 09:53
#include <c8051f340.h>
#include <c8051f340_2.h>

extern void Delay(void);

unsigned char MAX6675_H;
unsigned char MAX6675_L;
/*F*****************************************************************************
* PARAMS:   void
*
* return:   void
*-------------------------------------------------------------------------------
* PURPOSE:  函数
*-------------------------------------------------------------------------------
* NOTE:     
*******************************************************************************/
void MAX6675CS_ID(unsigned char CS_CH)
{
   switch(CS_CH)
   {
                   case 1:
                        CS1 = 1;
                        break;
                case 2:
                        CS2 = 1;
                        break;
                case 3:
                        CS3 = 1;
                        break;
                case 4:
                        CS4 = 1;
                case 5:
                        CS5 = 1;
                case 6:
                        CS6 = 1;
                default:
                    NSSMD0 = 1;                       // Activate Slave Select
                        break;
   }
}
/*F*****************************************************************************
* PARAMS:   void
*
* return:   void
*-------------------------------------------------------------------------------
* PURPOSE:  函数
*-------------------------------------------------------------------------------
* NOTE:     
*******************************************************************************/

void MAX6675_Read (unsigned char CS_CH_ID)
{

//        unsigned int SPI_data;
   // Step1: READ MSB
   MAX6675CS_ID(0,CS_CH_ID);

   Delay();

   SPI0DAT  = 0x03;
   while (!SPIF);
   SPIF = 0;
   MAX6675_H = SPI0DAT;
   Delay();

   // Step2:  READ LSB
   SPI0DAT  = 0xC2;
   while (!SPIF);
   SPIF = 0;
   MAX6675_L = SPI0DAT;

   // Step3:   
   Delay();

   MAX6675CS_ID(1,CS_CH_ID);
}

一周热门 更多>