基于单片机实现查表测温与加热控制
2021-09-10决蒙颜志强
决蒙 颜志强
前期设计了一款暖手宝加热电路,主控芯片使用了具有10bit精度ADC和5K字节FLASH存储空间的STC15W402AS单片机,驱动两位LED显示温度,温度检测使用了置于暖手宝内的10KΩ(25°C时)铂金电阻。为了既符合温度检测精度要求,又避免单片机温度检测复杂计算,采取巧妙的电路设计和采样后直接查表代替复杂计算的方法,在极短时间内求得实时温度,降低了编程难度,缩短了程序代码。
为了减少外围元件以降低成本,系统时钟选择使用单片机内部自带的24兆IRC时钟。铂金测温电阻Rk一端接地,另一端接单片机的P1.4脚,该脚还通过10KΩ高精度电阻R1上接5.12V电源的正极。单片机系统在内部以10位的精度对P1.4脚上电压进行数字采样,因此该系统的采样分辨率为5mV(=5.12V/210),采样输出结果(设为X)乘以5mV就是P1.4脚上的测得电压(即0.005*X)。同时电路Rk与R1串联共接于5.12V电源正极,通过串联分压计算,Rk上分得的电压为5.12V*Rk/(Rk+R1),该数取整后与P1.4脚上的测得电压0.005*X应相等,即0.005*X=5.12*Rk/(Rk+R1),把两边取倒数,得到:
(1/X)=1/1024+R1/(1024*Rk)······式①
从式①中可以看到,X与Rk是一一对应且关系唯一(但不是线性关系),而根据阻值与温度手册查询得知,每一个Rk值与一个唯一的温度值相对应,从而可以推出X与温度值也是一一对应且关系唯一。若把式①再化简得到:
(1/X)=(R1/1024)(1/R1+1/Rk)······式②
R1=10000代入第一个括号内得
(1/X)≈ 9.77(1/R1+1/Rk)······式③
那么式③中X的物理意义就变成了定值电阻R1与测温电阻Rk并联后的阻值缩小9.77倍(倍数为R1/1024,随R1而改变),若把R1换为1024Ω,X值就等于定值电阻R1与Rk并联后的阻值。从式③中也可以看到,X值测量,最终与电源电压无关,但为了提高测量准确度,电源电压尽量高。……
