找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
51定时50ms取样一次温度值,我想1s取样输出20次温度的平均值,请问怎么实现?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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次测量显然是不行的;
不过也许可以想办法来解决问题!
回复

使用道具 举报

5#
ID:213173 发表于 2019-12-12 15:12 | 只看该作者
这是按你的构想,在坛友的程序基础上给你改的示例+仿真
ds18b20温度LCD显示+仿真.zip (160.14 KB, 下载次数: 21)




回复

使用道具 举报

6#
ID:416239 发表于 2019-12-12 15:56 | 只看该作者
每次取一次然后放到一个寄存器里,然后求平均值就可以了
回复

使用道具 举报

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

使用道具 举报

8#
ID:636538 发表于 2019-12-12 17:10 | 只看该作者
做一个温度缓存区,也是一个20个数的数组,将采集的数据写入,再将数组的数据进行累加求平均值
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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