PIC16F887 单片机MAX6675proteus 基于热电偶的数显温度计 电子消毒柜控制电路设计

    科技2026-08-08  6

    手册,点我

    电子消毒柜控制电路设计:启动消毒功能后,显示消毒柜温度、剩余消毒时间;可按键实现消毒温度、保持时间的设定;可按键终止正在进行的消毒过程;消毒完成后播放音乐提示;(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/

    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秒发送一次数据)发送四路数据给串口调试助手。

    Processed: 0.013, SQL: 9