標(biāo)題: 為什么我用18B20都溫度有的時候數(shù)字會少256 [打印本頁]

作者: 瀚海一滴    時間: 2016-7-8 14:06
標(biāo)題: 為什么我用18B20都溫度有的時候數(shù)字會少256
讀取溫度的程序讀的溫度值不是很穩(wěn)定,
是不是讀取過程中被中斷打斷就會讀取錯誤啊,經(jīng)常會出現(xiàn)數(shù)字少256的情況(溫度值*10以后)搞的我不知道怎么辦了
溫度讀取的時間好長,LED數(shù)碼管來不及刷新了,有什么辦法既讓18B20有時間轉(zhuǎn)換,還能做到LED數(shù)碼管 不那么明顯的閃爍
求大神啊

作者: 騰飛的龍    時間: 2016-7-8 16:06
程序里的顯示函數(shù)延時小點試試。
作者: zl2168    時間: 2016-7-8 20:12
讀溫度值一般是0.5秒~1秒讀一次,在間隔時間內(nèi)顯示,讀溫度值與顯示互不干擾。
作者: ahshmj    時間: 2016-7-8 20:20
帖子內(nèi)容看不懂。
作者: zl2168    時間: 2016-7-8 22:05
本帖最后由 zl2168 于 2016-7-8 22:06 編輯

DS18B20 測溫


Proteus仿真一下,確認(rèn)有效。
實例97 DS18B20測溫.rar (51.78 KB, 下載次數(shù): 3)



以上摘自張志良編著《單片機實驗實訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版


書中電路和程序設(shè)計有詳細說明,程序語句條條有注解。



作者: cyy998    時間: 2016-7-8 23:28
本帖最后由 cyy998 于 2016-7-8 23:30 編輯

我這幾天剛好也碰到這個問題,搞了好幾天總算搞明白了,讀取18B20溫度值的時候會閃是因為時序沒分配好,我們一般都會在數(shù)碼管掃描函數(shù)中的每個位選后面加一小段延時,原因就在這,當(dāng)程序執(zhí)行完掃描最后一位時也后會延時一會,之后再讀取溫度,再掃描顯示,因為讀取溫度需要的時間是ms級的,所以就會影響到顯示。
這幾天我試了很多方法,最后發(fā)現(xiàn)把顯示函數(shù)的開始位加一個小延時,把最后一位后面的延時去掉,再用一個for循環(huán)套起來,這樣就解決問題了,同時還發(fā)現(xiàn),掃描程序用for循環(huán)加查表或位移,效果都要好很多。
下面幾張圖是我這幾天自己寫的一個test程序和實物,段選和位選用的都是for循環(huán)加查表的方法,實測一點都不閃,希望對你有所幫助。







作者: 愛國    時間: 2016-7-9 10:55
256是最大值,少于它很正常




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