其转化为十进制的真实温度。DS18B20温度传感器的内部存储器包括一个高速暂存RAM(便笺式内部存储器)和一个非易失性可电擦除的EEPROM。便笺存储器包含了9个连续字节(0~8位),前两个字节是测得的温度信息,第5、6、7个字节是预留寄存器,用于内部计算。字节8是冗余检验字节,检验前面所有8个字节的CRC(CyclicRedundancyCheck循环冗余校验码)码,可用来保证通信正确。测温流程如图5.2.3所示。图5.2.3DS18B20测温流程图5.2.5PID计算控制程序系统将温度传感器采集到的实测温度与输入值比较,根据具体情况进行水温调节。当温差大于两度时,则直接驱动价额加热装置加热;当温度差小于0.8度时,则采用PID算法,控制温差慢慢缩小,最终到达所需温度。由于单片机的控制属于一种采样控制,因此它只能根据设定值和测量值之间的偏差的比例、偏差变化趋势和偏差的累积而进行的控制(即为PID控制)。它根据采样时刻的偏差,值计算出输出控制量的增量,通过调节输出控制信号的导通时间来控制加热电路工作。PID控制系统框图如图5.2.4所示。图5.2.4PID控制图当进入PID调节程序以后,要根据系统给定值(键盘输入值)和实际采样值计算出偏差。为了防止系统在运行初期,由于控制量u(k)过大使得开关管占空比D过大,需要对系统偏差e(k)做限幅处理。瞬间过大的占空比可能会引起较大的电流,进而导致开关管的损坏。具体PID调节子程序流程图如图5.2.5所示。图5.2.5PID子程序流程图5.2.6继电器的控制继电器是和AT89S52单片机的P2.0引脚相连的,继电器的开通或断开完全取决于P2.0口的输出情况,也就是前面PID的计算结果。如果输出值小于零,说明实际温度高于输入的所需温度,则需要断开继电器,关闭加热设备进行相应散热。如果输出值大于输入值两摄氏度,则需要驱动加热设备进行加热。