找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 40696|回復(fù): 193
打印 上一主題 下一主題
收起左側(cè)

10分鐘理解DS18B20數(shù)字溫度計模塊

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:304634 發(fā)表于 2018-4-11 15:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
1. 明確目的


DS18B20是美國DALLA半導(dǎo)體公司推出的一種數(shù)字化單總線器-數(shù)字溫度計。既然是數(shù)字溫度計,那么它一定具備這樣的能力-把周圍環(huán)境的溫度信號轉(zhuǎn)換成數(shù)字信號。那么這個轉(zhuǎn)換的結(jié)果放到哪里去了呢?存放到了一個叫做Scratchpad的上面,這個Scratchpad是什么意思不用去管它,只需要知道它是一個SRAM就可以了。這個Scratchpad一共有9個字節(jié)(BYTE0~BYTE8),轉(zhuǎn)換的數(shù)字信息就存放在BYTE0和BYTE1,如下圖所示。所以,目的就很明確了,對于DS18B20模塊就是去讀Scratchpad的BYTE0和BYTE1.




2. 思路分析


現(xiàn)在目的已經(jīng)知道了,就是讀Scratchpad(read scratchpad)的BYTE0和BYTE1. 那么怎么樣Read Scratchpad呢?當(dāng)然是去查看DS18B20的芯片手冊了。閱讀說明書你會發(fā)現(xiàn)Read Scratchpad是一個功能命令(DS18B20 FUNCTION COMMANDS),類似的還有其他很多功能命令,如下圖所示:




說明書上已經(jīng)講的非常清楚了,要求每次在訪問DS18B20的時候一定要遵循以下步驟,如下所示,






簡單的講,你想發(fā)送一個功能命令Read Scratchpad, 那必須在它前面加兩步,初始化命令(Initialization)和ROM命令(ROM Command)。初始化命令只有一個,很容易確定,但是ROM命令有多個,需要找到一個與功能命令Read Scratchpad相匹配的ROM命令。如果總線上只有一個DS18B20模塊,選擇Skip ROM就可以了。
這樣整個步驟就很簡單了,先初始化,然后發(fā)送skip rom命令,緊接著發(fā)送read scratchpad命令,然后開始接收DS18B20傳送的數(shù)據(jù),第0和第1個字節(jié)就是我們所需要的。這樣讀出來的全部是0和1組成的信號,我們還需要將這些0和1組成的信號翻譯成“溫度值”。怎么樣翻譯,去查看說明書上的溫度-數(shù)據(jù)對應(yīng)表就可以了,如下所示:






注意這個表中的數(shù)據(jù)是補(bǔ)碼形式,如果你只是考慮溫度為正的情況,那么就不用去管原碼,反碼和補(bǔ)碼了。因為對于正數(shù)的原碼,反碼和補(bǔ)碼都是一樣的。


如果讀寫操作正確的話,此時計算出來的溫度應(yīng)該是+85攝氏度。通過這個值可以判斷你的讀寫程序和溫度計算過程是否正確。那么為什么是+85攝氏度呢?在一上電的時候,DS18B20處在一個"idle state",簡單的講就是它沒有工作,沒有采集周圍環(huán)境的溫度。Scratchpad的BYTE0和BYTE1里面放的默認(rèn)值是+85,所以你讀到的其實是它的默認(rèn)值。如果你想讓DS18B20開始工作,那么很簡單,發(fā)送一個Convert T命令就可以了。注意Convert T也是一個功能命令(Function Command),同樣的按照前面的規(guī)則,給它添加初始化命令和ROM命令。


這樣整個過程是不是完了呢?注意DS18B20完成溫度的采集和轉(zhuǎn)換是需要時間的,好比你敲隔壁的門,那你發(fā)出“敲門”這個命令后,你同學(xué)過來開門是需要時間的,在這個過程中你要做的事情就是等待。同樣的,當(dāng)你發(fā)送一個Convert T命令后,你需要等待DS18B20完成溫度采集和轉(zhuǎn)換的工作。那么等待多長呢,這個與你設(shè)置精度有關(guān),精度越高,需要的時間越長,最多不超過750ms。當(dāng)然這個過程中,你也可以采用忙信號檢測的方式來判斷。

3. 操作步驟


這樣整個操作步驟就非常簡單了,
  1. (1) initial                       (DS18B20初始化)
  2. (2) skip rom
  3. (3) convert T                 (讓DS18B20開始工作采集周圍溫度)
  4. (4) busy check              (等待DS18B20完成采集)
  5. (5)  initial                        (DS18B20初始化)
  6. (6) skip rom
  7. (7) read scratchpad       (發(fā)送讀scratchpad命令)
  8. (8) rcv data                     (接收DS18B20傳過來的數(shù)據(jù))
  9. (9) cal                             (計算溫度值)
  10. (10) display                    (把這個值顯示出來)
復(fù)制代碼


4. 參考代碼

DS18B20參考代碼.rar (50.62 KB, 下載次數(shù): 238)





上一篇:

10分鐘理解LCD1602液晶顯示模塊
10分鐘理解LCD1602如何顯示自定義字符
10分鐘理解OLED顯示模塊



評分

參與人數(shù) 3黑幣 +28 收起 理由
map0391 + 18
HHJ960325 + 5 贊一個!
402794511 + 5 贊一個!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:301077 發(fā)表于 2018-4-11 17:36 | 只看該作者
很給力!
回復(fù)

使用道具 舉報

板凳
ID:192893 發(fā)表于 2018-4-11 18:38 來自觸屏版 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報

地板
ID:306035 發(fā)表于 2018-4-11 19:44 | 只看該作者
厲害厲害
回復(fù)

使用道具 舉報

5#
ID:284598 發(fā)表于 2018-4-13 17:25 來自觸屏版 | 只看該作者
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報

6#
ID:283590 發(fā)表于 2018-4-13 20:06 來自觸屏版 | 只看該作者
給力      
回復(fù)

使用道具 舉報

7#
ID:269211 發(fā)表于 2018-4-14 08:13 | 只看該作者
很給力!
回復(fù)

使用道具 舉報

8#
ID:280132 發(fā)表于 2018-4-20 14:01 | 只看該作者
很有用謝謝。
回復(fù)

使用道具 舉報

9#
ID:307683 發(fā)表于 2018-4-20 20:03 | 只看該作者
很有用謝謝。
回復(fù)

使用道具 舉報

10#
ID:312884 發(fā)表于 2018-4-21 10:06 | 只看該作者
謝謝!剛好用到
回復(fù)

使用道具 舉報

11#
ID:303345 發(fā)表于 2018-4-21 19:44 | 只看該作者
總結(jié)的不錯
回復(fù)

使用道具 舉報

12#
ID:314339 發(fā)表于 2018-4-23 11:43 來自觸屏版 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報

13#
ID:314581 發(fā)表于 2018-4-23 16:28 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

14#
ID:314875 發(fā)表于 2018-4-23 21:39 | 只看該作者
正在學(xué)習(xí)這個溫度傳感器,感謝樓主分享
回復(fù)

使用道具 舉報

15#
ID:118624 發(fā)表于 2018-4-23 23:21 | 只看該作者
講得很通俗易懂
回復(fù)

使用道具 舉報

16#
ID:218365 發(fā)表于 2018-4-24 22:07 | 只看該作者
簡單
回復(fù)

使用道具 舉報

17#
ID:305880 發(fā)表于 2018-4-25 08:45 | 只看該作者
新手路過?纯磳W(xué)習(xí)下。。。。
回復(fù)

使用道具 舉報

18#
ID:316680 發(fā)表于 2018-4-25 22:22 | 只看該作者
新人學(xué)習(xí)了
回復(fù)

使用道具 舉報

19#
ID:183278 發(fā)表于 2018-4-26 11:26 | 只看該作者

很給力!
回復(fù)

使用道具 舉報

20#
ID:277993 發(fā)表于 2018-4-26 15:39 | 只看該作者
還有很多疑惑,希望讀完作者的思路。非常感謝樓主。
回復(fù)

使用道具 舉報

21#
ID:256132 發(fā)表于 2018-4-26 17:52 | 只看該作者
不錯的見解
回復(fù)

使用道具 舉報

22#
ID:313867 發(fā)表于 2018-4-26 20:35 | 只看該作者
學(xué)到了謝謝
回復(fù)

使用道具 舉報

23#
ID:317589 發(fā)表于 2018-4-27 11:47 | 只看該作者
好文章啊
回復(fù)

使用道具 舉報

24#
ID:317700 發(fā)表于 2018-4-27 13:02 來自觸屏版 | 只看該作者
新手路過
回復(fù)

使用道具 舉報

25#
ID:166903 發(fā)表于 2018-4-27 14:01 | 只看該作者
很詳細(xì),還是覺得第一個圖6啊
回復(fù)

使用道具 舉報

26#
ID:318019 發(fā)表于 2018-4-28 18:12 | 只看該作者
漲知識
回復(fù)

使用道具 舉報

27#
ID:318803 發(fā)表于 2018-4-29 11:03 | 只看該作者
學(xué)習(xí)下
回復(fù)

使用道具 舉報

28#
ID:3212 發(fā)表于 2018-4-29 12:20 | 只看該作者
好好學(xué)習(xí),天天控制……
回復(fù)

使用道具 舉報

29#
ID:319520 發(fā)表于 2018-5-1 22:29 | 只看該作者

感謝樓主分享!
回復(fù)

使用道具 舉報

30#
ID:319909 發(fā)表于 2018-5-1 22:44 | 只看該作者
寫的真好,樓主下回功夫了。
回復(fù)

使用道具 舉報

31#
ID:116685 發(fā)表于 2018-5-2 15:18 | 只看該作者
理解一下
回復(fù)

使用道具 舉報

32#
ID:304204 發(fā)表于 2018-5-2 16:22 | 只看該作者
看一下
回復(fù)

使用道具 舉報

33#
ID:102702 發(fā)表于 2018-5-2 16:36 | 只看該作者
學(xué)習(xí)一下,放分享
回復(fù)

使用道具 舉報

34#
ID:296603 發(fā)表于 2018-5-2 16:59 | 只看該作者
學(xué)習(xí)學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報

35#
ID:315751 發(fā)表于 2018-5-2 19:39 | 只看該作者
正需要啊,學(xué)習(xí)到了
回復(fù)

使用道具 舉報

36#
ID:261884 發(fā)表于 2018-5-2 21:03 | 只看該作者
學(xué)習(xí)一下.
回復(fù)

使用道具 舉報

37#
ID:301302 發(fā)表于 2018-5-5 23:08 | 只看該作者
看看,,,,,,,
回復(fù)

使用道具 舉報

38#
ID:322832 發(fā)表于 2018-5-6 13:36 | 只看該作者
好東西,謝謝分享
回復(fù)

使用道具 舉報

39#
ID:323716 發(fā)表于 2018-5-6 20:27 | 只看該作者
之前寫了個單1820的 現(xiàn)在需要個雙1820的
回復(fù)

使用道具 舉報

40#
ID:323270 發(fā)表于 2018-5-6 23:22 | 只看該作者
看一看看
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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