河南理工大学毕业设计(论文)说明书
开始系统初始化温度采集PID算法调节PWM控制系统数据显示
图4-2 下位机程序流程图
4.2 DS18B20的测温程序
4.2.1 DS18B20常用指令
DS18B20常用命令如下表:
表4-1 DS18B20常用命令 ROM功能 读ROM 匹配ROM 跳过ROM 查找ROM 报警查找
命令 33H 55H CCH F0H ECH
DS18B20的器件功能 启动温度转换 读RAM 写RAM 复制RAM 回读EEPROM
命令 44H BEH 4EH 48H B8H
4.2.2 初始化子程序
DS18B20复位应答时序图如图4-3所示,实现每一次通信之前必须对DS18B20进行复位操作,复位的时间、等待时间、回应时间应严格按照时序图进行编程,具体程序见附录B。
24
河南理工大学毕业设计(论文)说明书
图4-3 DS18B20复位及应答关系示意图
4.2.3 读子程序
与写操作类似,主机对1-Wire总线的读操作也只能逐位进行,连续读8次,即可读入主机一个字节。从1-Wire总线读取1bit同样至少需要60μs,同时也要保证两次连续的读操作间隔1μs以上,DS18B20读时序图如图4-4所示。从总线读数据时,主机首先拉低总线1μs以上然后释放,在释放总线后的 1~15μs内主机对总线的采样值即为读取到的数据,具体程序见附录B。
图4-4 DS18B20读时间隙图
4.2.4 写子程序
由于只有一条I/O线,主机1-Wire总线的写操作只能逐位进行,连续写8次即可写入总线一个字节。如程序1.2所示,当MCS-51单片机的时钟频率为12MHz时,程序中的语句_nop_();可以产生1μs的延时,调用此函数时需包含头文件“intrins.h”。向1-Wire总线写1bit至少需要60μs,同时还要保证两次连续的写操作有1μs以上的间隔。若待写位wbit为0则主机拉低总线60μs然后释放,写0操作完成。若待写位wbit为1,则主机拉低总线并在1~15μs内释放,然后等待60μs,写1操作完成。DS18B20写时序图4-5所示,具体程序见附录B。
25
河南理工大学毕业设计(论文)说明书
图4-5 DS18B20写时间隙图
4.3显示和键盘扫描程序
4.3.1显示扫描程序流程图
显示扫描子程序的流程图如图4-6所示:
开始赋位选初值清除位选送显示段码选通并延时2ms改变位选字消影N完成8位扫描Y结束图4-6 显示扫描子程序的流程图
4.3.2键盘扫描程序流程图
本设计设置有四个按键,S1为返回键,S2为温度加键,S3为温度减键,即当按S2键时,设置温度加0.5度;当按S3键时,设置温度减0.5度,S4用来切换显示通道,以便观察数码管显示的各个通道的温度值。键盘扫描子流程图如下:
26
河南理工大学毕业设计(论文)说明书
开始是否有键按下Y延时10msN是否有键按下YNN是否有键按下Y执行相应代码结束
图4-7 键盘扫描子流程图
4.4控制执行程序
4.4.1控制思路及其流程图
本系统的控制思路为AT89S52为整个系统的CPU。测量的温度由DSl8B20数字温度传感器检测并直接转换成数字信号,单片机将该温度值与被控制值(设定温度值)进行比较,计算出温度偏差,根据其偏差值的大小,然后采用PID控制算法并计算出相应的控制输出量,最后通过D/A转换电路(这里采用PWM调功方式,相当于D/A转换器)控制固态继电器在控制周期内的通断占空比(即控制电阻炉平均功率的大小),将控制输出量输出,控制加热器工作,进而达到对温度进行控制的目的。
为了简化输出通道的硬件结构,考虑到加热系统具有较大的热惯性,本系统采用脉冲宽度调制的控制方法(即PWM波控制)。微机系统输出高电平时,使双向可控硅道通,电热丝通电,输出低电平时,双向可控硅截止,电热丝断电。脉冲宽度T1与周期T的比值为ρ(占空比),它反映了系统的输出控制量,我们实质控制的就是这里。
当环境温度下降时, 输出信号增大,输出脉宽增大, 电热丝加热时间增长,环境温度上升。反之, 当环境温度上升时,输出减少,输出脉宽减少, 电热丝加热时间减少,环境温度下降。温控过程中功率电路输出的脉冲电流方波宽度始终受温度差信号的调节控制原理如图4-8所示:
27
相关推荐: