全球旧事资料 分类
毕后查表得出所对应的温度值。但此种方法需占用较多的程序储存空间本设计采用一次线性插值法对温度与AD转换结果之间的关系进行分段线性化,以少量单片机能直接进行的运算的组合去逼近目标函数。图311为温度T与计时器计时结果N之间的关系曲线。
17
f结

908070605040302010010
X5645e004Y01159
0
1
2
3
4
5x10
6
4
图311计时寄存器值N与温度T的关系曲线
其中圆滑曲线为实际的TN关系曲线设计中根据使用要求将曲线在090范围内分3段采用图中的3段直线断代替实际曲线。曲线按式310计算出图中各线段端点坐标值为:N11000,T190℃;N27549,T243℃;N320000,T320℃;N456450,T40℃;分段线性化后温度T的近似计算公式:
1000N7549,T907549N20000,T43
9043N100097200072N℃6549
311312
4320N7549505490001N℃12451
20000N56450,T20
200N20000300970000548N℃31336450
18
f结

为了能在单片机上进行计算,将以上三式进一步变换成如下形式(其中i
t为取整函数):T97i
tN810001000N7549T50i
tN10007549N20000T30i
tN51000020000N56450314315316
式314、315和316的计算过程仅需通过简单的几步移位与加减法操作即可实现,与通过式310计算并进行四舍五入圆整的结果相比较单片机通过式314、315和316计算出的温度值在020范围内误差不超过2℃在2090范围内误差不超过1℃并且计算出的温度值与AD转结果之间保持良好的单调递增关系。3.程序实现测量水温程序与水位程序类似,由单片机口给电容发矩形波充放电,然后检测中断计时,根据计数器中的值来判断当前温度。也就是水温测量程序包含中断计时和数据处理两部分。定时器0和1已经被水位测量电路,和充电定时占用,所以这里需可以编程序实现水位和水温中断轮流开关,来轮流使用定时器0计算温度传感器的上升时间。数据处理公式已在上面列出。下面列出数据处理程序,其中buf3、buf2为中断1得到的定时器1中的值,中断程序见附件。voidTmReadui
tvalvalbuf3256buf2ifval7549TMP97i
tval81000elseifval20000
19
f结

TMP50i
tval1000elseTMP30i
tval510000
33水位、水温测量电路的整体设计
由上面的分析知道,两者的电路原理一样,都是用P1口给电容充电,用中
123断检测电容电压变化。作为充电口P1口的作用相当于电源(充电时)或地(方4
电时),所以可以用同一个口为两个冲放电回路充r
好听全球资料 返回顶部