標(biāo)題: 請(qǐng)教STC8單片機(jī)讀取18B20數(shù)值錯(cuò)誤 [打印本頁]

作者: 13872888583    時(shí)間: 2024-4-25 10:05
標(biāo)題: 請(qǐng)教STC8單片機(jī)讀取18B20數(shù)值錯(cuò)誤
各位師傅好,最近想用STC8H8K64U單片機(jī)讀18b20溫度,在數(shù)碼管上顯示,顯示溫度20,實(shí)際溫度25左右,不過,用手捏著18B20,幾秒之后,就會(huì)顯示0,之前用89C51,STM32寫過,都能顯示,以為時(shí)序錯(cuò)誤,同時(shí)用邏輯分析儀讀取STC8和STM32的時(shí)序,發(fā)現(xiàn)有偏差,根據(jù)邏輯分析儀的時(shí)間更改了STC8讀取寫入的時(shí)序,目前,時(shí)序基本一致,可惜,還是老問題,用串口讀取也是一樣的錯(cuò)誤,發(fā)現(xiàn)把18B20的初始化和寫都注釋掉,也能讀取數(shù)值,這就奇怪了,先說明一下,18B20加有上拉電阻,和貼片濾波電容,接的P13腳。在網(wǎng)上查了一下,都沒有我的這種奇怪問題,真是奇哉怪哉

作者: yzwzfyz    時(shí)間: 2024-4-25 15:45
1、設(shè)置一個(gè)變UU。
2、編程顯示UU中的內(nèi)容,改變UU數(shù)據(jù),就可能驗(yàn)證顯示程序是否正確。
3、設(shè)置一個(gè)變MM
4、將讀取的18B20數(shù)據(jù),放入MM中。并評(píng)估MM是否正確。有懷疑時(shí)再讀讀18B20手冊。
5、將MM中和數(shù)據(jù),轉(zhuǎn)存到UU顯示,就OK了。

作者: xiaobendan001    時(shí)間: 2024-4-25 16:32
竊電方式嗎?
作者: cocolala    時(shí)間: 2024-4-25 17:03
    1、DS18B20是單總線通信,確實(shí)問題最有可能出在時(shí)序上。手頭正好有艾克姆的STC8H8K64U開發(fā)板,帶了這個(gè)DS18B20的例程。例程見附件。    2、當(dāng)然你還要考慮硬件原因,上拉電阻是一方面,DS18B20相對(duì)比較脆弱,一旦有接錯(cuò)線的情況都可能導(dǎo)致傳感器不正常的,所以必要時(shí)可以更換下這個(gè)傳感器。











DS18B20.rar

38.43 KB, 下載次數(shù): 5


作者: 13872888583    時(shí)間: 2024-4-25 21:02
yzwzfyz 發(fā)表于 2024-4-25 15:45
1、設(shè)置一個(gè)變UU。
2、編程顯示UU中的內(nèi)容,改變UU數(shù)據(jù),就可能驗(yàn)證顯示程序是否正確。
3、設(shè)置一個(gè)變MM
...

抱歉,技術(shù)有限,你的方法操作起來有點(diǎn)困難。
作者: 13872888583    時(shí)間: 2024-4-25 21:03
xiaobendan001 發(fā)表于 2024-4-25 16:32
電方式嗎?

5伏供電
作者: 13872888583    時(shí)間: 2024-4-25 21:06
cocolala 發(fā)表于 2024-4-25 17:03
1、DS18B20是單總線通信,確實(shí)問題最有可能出在時(shí)序上。手頭正好有艾克姆的STC8H8K64U開發(fā)板,帶了這個(gè) ...

感謝,直接寫入你的程序,第一個(gè)晶振選擇24M,讀取為零,至少比我寫的強(qiáng),我的不為零,第二次選擇11.052,正常顯示溫度,手摸,溫度會(huì)上升。再次感謝
作者: cy009    時(shí)間: 2024-4-26 11:30
18B20顯示不正常,多數(shù)為時(shí)序不對(duì),對(duì)照時(shí)序,檢查延時(shí)程序。
作者: 13872888583    時(shí)間: 2024-4-27 18:01
cy009 發(fā)表于 2024-4-26 11:30
18B20顯示不正常,多數(shù)為時(shí)序不對(duì),對(duì)照時(shí)序,檢查延時(shí)程序。

感謝,的確是時(shí)序問題,按照樓上的師傅的程序,寫入可以顯示實(shí)時(shí)溫度,我的就不行,




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