标题: 51单片机取1s内18B20取样的平均值,如何实现? [打印本页]

作者: JT341125    时间: 2019-12-10 21:16
标题: 51单片机取1s内18B20取样的平均值,如何实现?
51定时50ms取样一次温度值,我想1s取样输出20次温度的平均值,请问怎么实现?

作者: csmyldl    时间: 2019-12-10 22:55
定义一个寄存器累计所有采集的温度值,再除以20就得到了
作者: JT341125    时间: 2019-12-11 16:39
csmyldl 发表于 2019-12-10 22:55
定义一个寄存器累计所有采集的温度值,再除以20就得到了

有例程吗?
作者: 51hei**1140    时间: 2019-12-12 10:00
你好!
根据 DS18B20 的控制时序来看,
1秒进行20次测量显然是不行的;
不过也许可以想办法来解决问题!
作者: wulin    时间: 2019-12-12 15:12
这是按你的构想,在坛友的程序基础上给你改的示例+仿真
ds18b20温度LCD显示+仿真.zip (160.14 KB, 下载次数: 22)





作者: 李泽训    时间: 2019-12-12 15:56
每次取一次然后放到一个寄存器里,然后求平均值就可以了
作者: f556    时间: 2019-12-12 16:48
绝对不行,你不用试了。DS18B20现在出的都是高精度12位的,9位的我没见过。
datasheet上明确说了,每次转换需480~900mS,一般我取700ms。你可以20S后20次求平均,但没有意义,18B20的精度可信度非常高,用不着平均了。
作者: SKYLAR123    时间: 2019-12-12 17:10
做一个温度缓存区,也是一个20个数的数组,将采集的数据写入,再将数组的数据进行累加求平均值




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1