找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2307|回复: 7
收起左侧

51单片机取1s内18B20取样的平均值,如何实现?

[复制链接]
ID:369443 发表于 2019-12-10 21:16 | 显示全部楼层 |阅读模式
51定时50ms取样一次温度值,我想1s取样输出20次温度的平均值,请问怎么实现?
回复

使用道具 举报

ID:235200 发表于 2019-12-10 22:55 | 显示全部楼层
定义一个寄存器累计所有采集的温度值,再除以20就得到了
回复

使用道具 举报

ID:369443 发表于 2019-12-11 16:39 | 显示全部楼层
csmyldl 发表于 2019-12-10 22:55
定义一个寄存器累计所有采集的温度值,再除以20就得到了

有例程吗?
回复

使用道具 举报

ID:648281 发表于 2019-12-12 10:00 | 显示全部楼层
你好!
根据 DS18B20 的控制时序来看,
1秒进行20次测量显然是不行的;
不过也许可以想办法来解决问题!
回复

使用道具 举报

ID:213173 发表于 2019-12-12 15:12 | 显示全部楼层
这是按你的构想,在坛友的程序基础上给你改的示例+仿真
ds18b20温度LCD显示+仿真.zip (160.14 KB, 下载次数: 21)
回复

使用道具 举报

ID:416239 发表于 2019-12-12 15:56 | 显示全部楼层
每次取一次然后放到一个寄存器里,然后求平均值就可以了
回复

使用道具 举报

ID:282850 发表于 2019-12-12 16:48 | 显示全部楼层
绝对不行,你不用试了。DS18B20现在出的都是高精度12位的,9位的我没见过。
datasheet上明确说了,每次转换需480~900mS,一般我取700ms。你可以20S后20次求平均,但没有意义,18B20的精度可信度非常高,用不着平均了。
回复

使用道具 举报

ID:636538 发表于 2019-12-12 17:10 | 显示全部楼层
做一个温度缓存区,也是一个20个数的数组,将采集的数据写入,再将数组的数据进行累加求平均值
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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