找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10029|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
以下介绍的这个方法是用没有 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.832
摄氏值 = (华氏值-32)÷1.8

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



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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