原创 七路NTC热敏电阻测试平台

2008-7-16 00:17 4598 7 7 分类: MCU/ 嵌入式

点击开大图


点击开大图


 


单片机采用STC12C5410AD,由于该单片机的AD转换没有外部基准,基准源只能为VCC,而7805输出的电压有时并非标准的5V,可能会在4.9~5.1V间波动,为减小因电源而引起的误差,采用一AD口外接2.5V基准源,通过AD转换后的结果来反推VCC值,然后通过实际的VCC值来计算温度传感器输入AD口的电压值。


 


由于NTC为非线性器件,所以温度检测采用查表的方式。将热敏电阻在不同温度下的阻值做成表格;在检测温度的时候再计算出此时热敏电阻的阻值通过查表来比较。


网上大多数的例子是先将温度根据电路换算成电压值(数字量)。程序中启动AD转换后不需要再计算,而是直接拿到表格中去比较,这样做的话程序执行的效率会高些,缺点是做表格要麻烦点。


由于我这里每次检测时的VCC值不固定(有上百毫伏的波动),所以采用上面第一种方式。


做程序的时候出现过一个问题,就是两个16位数乘法结果溢出,算出来结果不对,后来发现原来是没有强制转换类型的原因,如下式:


uint a,b,c;


ulong  d;


d=a*b/c;


改正后如下


uint  a,b,c;


ulong d;


d=(long)a*b/c;


两个16位数相乘若结果大于16位,应先将其强制转换成长整形,再做运算,这样才不会溢出。


完了后做了一下测试,选取温度范围10~50度


10度左右的时候显示的温度值比实际温度低1~2度。


40度~50度左右的时候显示的温度值比实际温度高1~2度。


中间区域较正常。


看来还有一个温度补偿的问题,明天继续。。。。。


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条