描等,相对于计算来说,我们的控制周期比较长,所以我们可以对2分钟进行细分,例如我们用每分钟进行100等分,则两分钟就是200等分,用于我们的温度控制,这样的输出比例的变化已经足够了,我们可以有200个输出等级了。取200的另一个好处是,对应于我们的8位单片机刚好可以在一个字节内进行运算,程序简单运算速度快。当需要改变我们的定时周期时,有些不同的加热对象,例如较大热惯性的加热对象时,可能2分钟周期太短了,我们可以通过修改基本定时常数的办法来实现,而保持我们的200等分不变。我们对2分钟进行200等分,算一下他的每一个基本单位的具体时间?To60220006s600ms这对于单片机来说太长了,因为如果我让我的定时器做到这么慢的定时周期就干不了别的事了,为了显示、键盘等的处理一般我们定时在510ms,所以就需要另外设定一个变量tTempl在每一个定时中断发生时对tTempl计数。例如我的系统定时器的定时常数对应于10ms,则设定tTempl在达到60的时候才确认是达到600ms了,才作为一个基本的输出时间单位。对应于总周期的修改,我们的200等分可以不用修改,而只要修改我们的变量tTempl的判断边界就可以了,例如对应于2分钟时是60,则在3分钟为周期时边界改为90就行了,定下了我们的基本控制时间分辨率以后,我们的计算就可以不用改变了。当然,根据您的具体对象也可以修改这个等分数,我这里只是作为一个举例:例如200等分。温控仪器不离开测温器件,无论用什么测温器件(传感器),对于控制上来说,首先需要将测到的值换算为温度数据,一般我们国内都采用摄氏度℃,工业上使用的测温器件一般都是非线性的器件,经过放大、AD转换所得到的电压数据与温度呈非线性关系,存在着微小的差异,一般采用电压值表的办法获得实际温度,这个表格是以每一个温度点上的电压值来表述的,由于
f我们的单片机rom的大小限制,这个表格也不可能做得很细,基本上以度作为间隔,也就是说直接查表只能获得度为单位的温度值,而实际测量的温度可能是介于T与T1度之间,在PID控制计算上,这样的分辨率是不够的,所以我们还需要进一步获得具体的温度精确数据,一般采用将T与T1之间的电压差和AD实际值(mv)进行定分比分点的办法(更精确的是采用二次插值计算法)获得温度的精确数值,也就是获得小数部分。如果能够做到110度的温度分辨率精度就可以基本满足控制运算要求了,所以我们可以用定点数的办法处理。不采用浮点数是因为单片机的运算速度r