logo资料库

《匠人手记》02《用普通IO口检测AD值的方法(采集温度)》.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
更多精彩文章,尽在《匠人的百 宝箱》。网址:http://cxjr.21ic.org 《匠人手记》之二 用普通 IO 口检测 AD 值的方法(采集温度) 作者:程序匠人 以下介绍的这个方法是用没有 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).在表格中的数据也应该同步乘以该系数 如果你的‘芯’是一座作坊,我愿做那不知疲倦的程序匠……
更多精彩文章,尽在《匠人的百 宝箱》。网址:http://cxjr.21ic.org 第七步:温度单位转换 如果是温度单位=华氏值,则将摄氏值转化为华氏值;否则跳过 温度转换公式: 华氏值 = 摄氏值×1.8+32 摄氏值 = (华氏值-32)÷1.8 第八步:数字滤波 采用递推中位平均滤波方法:保留最新 10 个采样值,去掉一个最大值,去掉一个最小 值,剩余 8 个采样值取平均数 3. 电阻-温度图 阻值(K) 比例 60000 50000 40000 30000 20000 10000 0 0 0 1 0123456789 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 8 0 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 9 40 35 30 25 20 15 10 5 0 如果你的‘芯’是一座作坊,我愿做那不知疲倦的程序匠……
分享到:
收藏