標(biāo)題: 51單片機(jī)取1s內(nèi)18B20取樣的平均值,如何實(shí)現(xiàn)? [打印本頁]

作者: JT341125    時(shí)間: 2019-12-10 21:16
標(biāo)題: 51單片機(jī)取1s內(nèi)18B20取樣的平均值,如何實(shí)現(xiàn)?
51定時(shí)50ms取樣一次溫度值,我想1s取樣輸出20次溫度的平均值,請(qǐng)問怎么實(shí)現(xiàn)?

作者: csmyldl    時(shí)間: 2019-12-10 22:55
定義一個(gè)寄存器累計(jì)所有采集的溫度值,再除以20就得到了
作者: JT341125    時(shí)間: 2019-12-11 16:39
csmyldl 發(fā)表于 2019-12-10 22:55
定義一個(gè)寄存器累計(jì)所有采集的溫度值,再除以20就得到了

有例程嗎?
作者: 51hei**1140    時(shí)間: 2019-12-12 10:00
你好!
根據(jù) DS18B20 的控制時(shí)序來看,
1秒進(jìn)行20次測量顯然是不行的;
不過也許可以想辦法來解決問題!
作者: wulin    時(shí)間: 2019-12-12 15:12
這是按你的構(gòu)想,在壇友的程序基礎(chǔ)上給你改的示例+仿真
ds18b20溫度LCD顯示+仿真.zip (160.14 KB, 下載次數(shù): 22)





作者: 李澤訓(xùn)    時(shí)間: 2019-12-12 15:56
每次取一次然后放到一個(gè)寄存器里,然后求平均值就可以了
作者: f556    時(shí)間: 2019-12-12 16:48
絕對(duì)不行,你不用試了。DS18B20現(xiàn)在出的都是高精度12位的,9位的我沒見過。
datasheet上明確說了,每次轉(zhuǎn)換需480~900mS,一般我取700ms。你可以20S后20次求平均,但沒有意義,18B20的精度可信度非常高,用不著平均了。
作者: SKYLAR123    時(shí)間: 2019-12-12 17:10
做一個(gè)溫度緩存區(qū),也是一個(gè)20個(gè)數(shù)的數(shù)組,將采集的數(shù)據(jù)寫入,再將數(shù)組的數(shù)據(jù)進(jìn)行累加求平均值




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1