电子消毒柜控制电路设计:启动消毒功能后,显示消毒柜温度、剩余消毒时间;可按键实现消毒温度、保持时间的设定;可按键终止正在进行的消毒过程;消毒完成后播放音乐提示;(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/
csbit 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秒发送一次数据)发送四路数据给串口调试助手。
cpphttps://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!