找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3082|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

51單片機取1s內(nèi)18B20取樣的平均值,如何實現(xiàn)?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:369443 發(fā)表于 2019-12-10 21:16 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
51定時50ms取樣一次溫度值,我想1s取樣輸出20次溫度的平均值,請問怎么實現(xiàn)?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:235200 發(fā)表于 2019-12-10 22:55 | 只看該作者
定義一個寄存器累計所有采集的溫度值,再除以20就得到了
回復(fù)

使用道具 舉報

板凳
ID:369443 發(fā)表于 2019-12-11 16:39 | 只看該作者
csmyldl 發(fā)表于 2019-12-10 22:55
定義一個寄存器累計所有采集的溫度值,再除以20就得到了

有例程嗎?
回復(fù)

使用道具 舉報

地板
ID:648281 發(fā)表于 2019-12-12 10:00 | 只看該作者
你好!
根據(jù) DS18B20 的控制時序來看,
1秒進行20次測量顯然是不行的;
不過也許可以想辦法來解決問題!
回復(fù)

使用道具 舉報

5#
ID:213173 發(fā)表于 2019-12-12 15:12 | 只看該作者
這是按你的構(gòu)想,在壇友的程序基礎(chǔ)上給你改的示例+仿真
ds18b20溫度LCD顯示+仿真.zip (160.14 KB, 下載次數(shù): 22)




回復(fù)

使用道具 舉報

6#
ID:416239 發(fā)表于 2019-12-12 15:56 | 只看該作者
每次取一次然后放到一個寄存器里,然后求平均值就可以了
回復(fù)

使用道具 舉報

7#
ID:282850 發(fā)表于 2019-12-12 16:48 | 只看該作者
絕對不行,你不用試了。DS18B20現(xiàn)在出的都是高精度12位的,9位的我沒見過。
datasheet上明確說了,每次轉(zhuǎn)換需480~900mS,一般我取700ms。你可以20S后20次求平均,但沒有意義,18B20的精度可信度非常高,用不著平均了。
回復(fù)

使用道具 舉報

8#
ID:636538 發(fā)表于 2019-12-12 17:10 | 只看該作者
做一個溫度緩存區(qū),也是一個20個數(shù)的數(shù)組,將采集的數(shù)據(jù)寫入,再將數(shù)組的數(shù)據(jù)進行累加求平均值
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表