http://www.51hei.com/bbs/dpj-126017-1.html
以下介绍的这个方法是用没有 ADC 功能的芯片来检测模拟量,采集温度:
1. 温度检测电路图 :
2. 温度检测步骤 :
第一步:放电
P85 和 P86 设置为高阻态, P87 输出“1”,电容放电
第二步:测标准电阻
P85 和 P87 设置为高阻态, P86 输出“0”,电容充电,并对充电时间计时
计时功能说明:计时最小时基为 30US,用定时器中断来实现。每 30US 中断一次,
计时器+1。 计时器长度=16BIT, 高字节的 BIT4 代表溢出位。 所以实际有效长度为 12 位,
超出则判为溢出,可能是被测电阻开路和电容短路等故障引起的。
第三步:放电
P85 和 P86 设置为高阻态, P87 输出“1”,电容放电
第四步:测温度电阻
P86 和 P87 设置为高阻态, P85 输出“0”,电容充电,并对充电时间计时
计时功能说明:(同第二步)
第五步:计算电阻比率
计算公式:
电阻比率=温度电阻÷标准电阻
=温度电阻充电时间÷标准电阻充电时间
第六步:查表求温度
根据电阻比率查表求温度摄氏值
为了提高查表时的分辨率,在上一步骤计算比率时应该将比率值乘以一定系数(在本
项目中该系数=256*64=16384).在表格中的数据也应该同步乘以该系数
第七步:温度单位转换
如果是温度单位=华氏值,则将摄氏值转化为华氏值;否则跳过
温度转换公式:
华氏值 = 摄氏值×1.8+32
摄氏值 = (华氏值-32)÷1.8
第八步:数字滤波
采用递推中位平均滤波方法:保留最新 10 个采样值,去掉一个最大值,去掉一个最小
值,剩余 8 个采样值取平均数