找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10133|回复: 0
收起左侧

用单片机普通IO口(不用ADC功能)采集模拟量的方法

[复制链接]
ID:362481 发表于 2018-6-30 22:45 | 显示全部楼层 |阅读模式
以下介绍的这个方法是用没有 ADC 功能的芯片来检测模拟量,采集温度:

1. 温度检测电路图 :
1.PNG
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.832
摄氏值 = (华氏值-32)÷1.8

第八步:数字滤波
采用递推中位平均滤波方法:保留最新 10 个采样值,去掉一个最大值,去掉一个最小
,剩余 8 个采样值取平均数



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表