![]() |
發(fā)布時間: 2021-10-24 21:04
正文摘要:最近在學習DS18B20外設(shè)時,接觸到了單總線協(xié)議。按照DS18B20的DataSheet寫了一版程序后,發(fā)現(xiàn)一直無法正常顯示溫度,最后發(fā)現(xiàn)是延時的問題,但具體原理一直沒想明白。 單片機芯片為STC89C52,晶振為11.0592MHz。 ... |
yzwzfyz 發(fā)表于 2021-10-25 16:23 嗯,您說的很對。最后發(fā)現(xiàn)是精確延時函數(shù)有問題,導致延時的時間并不是理想的定義的uint x的時間,超過了DataSheet要求的最大值120us,導致最后輸出數(shù)據(jù)紊亂。確實是時序沒對好導致的。 |
這個不難解決,去研讀DS18B20手冊,特別是它的讀寫時序部分。再對比一下,你的程序?qū)λ牟僮鲿r序,能滿足手冊上的要求嗎? |
感謝大佬,驗證后發(fā)現(xiàn)原來的精確延時方法確實有問題
之前做的實驗對時序的要求沒那么嚴格,導致沒發(fā)現(xiàn)這種精確延時方法有問題。 將10us的精確延時改成
就好了 |
|
Powered by 單片機教程網(wǎng)