先来说一下热电偶,常用的热电偶分为S型,T型,K型热电偶。K型热电偶有两个端口,热端(Hot junction)与冷端(Cold end),其原理大概是在一定条件下,两个端在同一温度下受自身物理特性影响产生电动势,温差越大,产生的热电动势也就越大。其外形如下图(图片来自网络)。

Max6675是美信公司推出的一款支持K型热电偶接口的12位ADC,SPI数据输出格式,带有温度补偿功能,测量范围为0℃~+1023.75℃。配合微控制器,可直接用于热电偶输出量的读取。数据手册地址:http://pdf1.alldatasheet.com/datasheet-pdf/view/73692/MAXIM/MAX6675.html。

各引脚定义如下:
GND,VCC:电源端
T-,T+:连接热电偶的冷端与热端,注意T-应总是接地。
SO:SPI数据输出端
SCK:SPI时钟信号端
CS' :SPI片选端
数据输出格式为:

其中D15固定为0,D14~D3对应12bit数据位,高位在前;D2表征热电偶是否断开,在正常工作时,D2=0,当热电偶输入端开路时,D2=1,可以凭次位判断系统是否正常工作;D1为芯片ID,固定为0;D0为三态端,不知有毛用。
数据读取时序可以使用外控制器的SPI接口实现,但是对许多低端单片机而言,通常不具有SPI接口,需要模拟SPI时序(有些情况下即使带有SPI接口也会选择模拟SPI时序,提高传输稳定性),注意应在SCK下降沿将数据位读出。在使用高速CPU时,CLK频率最大为4.3Mhz,高低电平时间最小为100ns。