电子消毒柜控制电路设计:启动消毒功能后,显示消毒柜温度、剩余消毒时间;可按键实现消毒温度、保持时间的设定;可按键终止正在进行的消毒过程;消毒完成后播放音乐提示;(MAX6675)
6. 使用四路热电偶(TCK+MAX6675)进行轮流测温,可根据串口调试助手的命令选择数据的间隔时间(每1秒发送一次数据,每0,5秒发送一次数据)发送四路数据给串口调试助手。
冷结补偿钾热电偶数字转换器(0℃至+1024℃)
MAX6675执行冷结补偿,并将K型热电偶的信号数字化。数据以12位分辨率、SPI兼容、只读格式输出。该转换器可将温度解析为0.25°C,读数最高可达+1024°C,热电偶精度在0°C至+700°C范围内为8 LSb。max 6675采用小型8引脚SO4封装。应用●工业●家电●暖通空调
特点●K型热电偶输出的直接数字转换●冷结补偿●简单的SPI兼容串行接口● 12位,0.25°C分辨率●开放式热电偶检测

简单来说,读16个二进制,只有中间3到14是有效的,取出来,然后乘以分辨率0.25就是多少摄氏度。
或者你想考虑温度补偿,我这里就不考虑了,能用就行,管他噢。
参考下面文档的程序移植。
参考:
https://blog.csdn.net/liuxianfei0810/article/details/105920528/
c展开代码sbit CS = P2 ^ 5;
sbit SCK = P2 ^ 6;
sbit SO = P2 ^ 7;
typedef struct __MAX6675
{
 unsigned int temperature;
 float finallyDat;
 unsigned char displaydat[4];
 unsigned char flag;
}MAX6675;
MAX6675 max6675 = { 0, 0.0, 0 };
/*
 * fSCL <= 4.3MHz
 * tCH  >= 100ns
 * tCL  >= 100ns
 * tCSS >= 100ns
 * tDV  <= 100ns
 * tTR  <= 100ns
 * tDO  <= 100ns
 */
void MAX6675_ReadData( void )
{
 unsigned char i = 0;
 unsigned int dat = 0;
 CS = 0;
 SCK = 0;
 for ( i = 0; i < 16; i++ ) /* get D15-D0 from 6675 */
 {
  SCK = 1;
  _nop_();
  dat = dat << 1;
  if ( SO )
   dat = dat | 0x01;
  SCK = 0;
  _nop_();
 }
 CS   = 1;
 max6675.temperature = dat;
 max6675.temperature >>= 3; /* 读出来的数据的D3~D14是温度值 */
 max6675.temperature &= ~(0xf << 12);
 max6675.finallyDat = max6675.temperature * 0.25;
}
电子消毒柜控制电路设计:启动消毒功能后,显示消毒柜温度、剩余消毒时间;可按键实现消毒温度、保持时间的设定;可按键终止正在进行的消毒过程;消毒完成后播放音乐提示;(MAX6675)
有偏差正常,本就是转换来的。

6. 使用四路热电偶(TCK+MAX6675)进行轮流测温,可根据串口调试助手的命令选择数据的间隔时间(每1秒发送一次数据,每0,5秒发送一次数据)发送四路数据给串口调试助手。


cpp展开代码https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!