找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

d18b20時(shí)序問(wèn)題,始終是返回為1

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1094287 發(fā)表于 2024-1-12 10:19 來(lái)自觸屏版 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
大佬們這初始化時(shí)序有問(wèn)題嗎,始終是返回為一

mmexport1705025961506.png (125.79 KB, 下載次數(shù): 50)

mmexport1705025961506.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1064915 發(fā)表于 2024-1-12 11:21 | 只看該作者
IO口是否有沖突
回復(fù)

使用道具 舉報(bào)

板凳
ID:1094287 發(fā)表于 2024-1-12 11:44 | 只看該作者

應(yīng)該沒有,這個(gè)I/o就做這一個(gè)活
回復(fù)

使用道具 舉報(bào)

地板
ID:226055 發(fā)表于 2024-1-12 15:15 | 只看該作者
    沒有看到你單片機(jī)的型號(hào)描述,也沒有指出所用晶振是內(nèi)部晶振還是外部晶振。下面從幾點(diǎn)常見問(wèn)題分析下:
    1、除了樓上所說(shuō)的IO口有沒有被其他電路占用外,還要知道該IO口總線上必須外接上拉電阻。這是單總線通信要求。上拉電阻4.7K~10K范圍。
    2、單總線通信需要嚴(yán)格的時(shí)序,這樣一定檢查下程序的延時(shí)函數(shù)是否準(zhǔn)確,尤其us級(jí)延時(shí)對(duì)51單片機(jī)來(lái)說(shuō)是個(gè)考驗(yàn),但這也是很多初學(xué)者調(diào)試出錯(cuò)的問(wèn)題點(diǎn)。




    3、當(dāng)然還有一個(gè)重要原因要注意DS18B20元件的方向,一旦方向接反芯片燒壞的可能性極大。那么就不要再次使用了。附件給基于單片機(jī)STC8A8K64D4的DS18B20程序源碼,個(gè)人認(rèn)為這一家寫的程序源碼很規(guī)范,參考性很強(qiáng)。






DS18B20.rar

29.58 KB, 下載次數(shù): 3

回復(fù)

使用道具 舉報(bào)

5#
ID:161164 發(fā)表于 2024-1-12 21:34 | 只看該作者
第8行沒報(bào)錯(cuò)嗎?
回復(fù)

使用道具 舉報(bào)

6#
ID:1094287 發(fā)表于 2024-1-13 16:37 | 只看該作者
lkc8210 發(fā)表于 2024-1-12 21:34
第8行沒報(bào)錯(cuò)嗎?

哈哈,傻了。改了但還是接受不到0
回復(fù)

使用道具 舉報(bào)

7#
ID:458247 發(fā)表于 2024-1-15 14:53 | 只看該作者
網(wǎng)上很多ds18b20的通信程序啊,用網(wǎng)上的程序試試唄,首先排除硬件問(wèn)題
回復(fù)

使用道具 舉報(bào)

8#
ID:161164 發(fā)表于 2024-1-15 15:14 | 只看該作者
小臭臭廢 發(fā)表于 2024-1-13 16:37
哈哈,傻了。改了但還是接受不到0

30塊包郵的邏輯分析儀,你值得擁有
回復(fù)

使用道具 舉報(bào)

9#
ID:213173 發(fā)表于 2024-1-15 15:33 | 只看該作者
小臭臭廢 發(fā)表于 2024-1-13 16:37
哈哈,傻了。改了但還是接受不到0

d18b20復(fù)位成功當(dāng)然接收到1,收到0反而怪了。如果一定想以收到0判斷復(fù)位失敗可以改寫:
bit DS18B20_Reset()
{
        DQ=0;                           //送出低電平復(fù)位信號(hào)
        delay_us(240);                  //延時(shí)至少480us
        delay_us(240);
        DQ=1;                                    //釋放數(shù)據(jù)線
        delay_us(60);                   //等待60us
        if(!DQ)                                            //如果DQ低電平
        {
                delay_us(240);              //等待設(shè)備釋放數(shù)據(jù)線
                delay_us(180);
                return 1;                            //返回1
        }
        else                            //DQ低電平
        {
                delay_us(240);              //等待設(shè)備釋放數(shù)據(jù)線
                delay_us(180);
                return 0;                   //返回0
        }
}
回復(fù)

使用道具 舉報(bào)

10#
ID:1109316 發(fā)表于 2024-1-15 17:24 | 只看該作者
沒有看到你單片機(jī)的型號(hào)描述,也沒有指出所用晶振是內(nèi)部晶振還是外部晶振。下面從幾點(diǎn)常見問(wèn)題分析下:     1、除了樓上所說(shuō)的IO口有沒有被其他電路占用外,還要知道該IO口總線上必須外接上拉電阻。這是單總線通信要求。上拉電阻4.7K~10K范圍。     2、單總線通信需要嚴(yán)格的時(shí)序,這樣一定檢查下程序的延時(shí)函數(shù)是否準(zhǔn)確,尤其us級(jí)延時(shí)對(duì)51單片機(jī)來(lái)說(shuō)是個(gè)考驗(yàn),但這也是很多初學(xué)者調(diào)試出錯(cuò)的問(wèn)題點(diǎn)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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