欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 用示波器人工解碼DS18B20協議時序。 [打印本頁]

作者: 湖南孵化    時間: 2020-7-18 15:49
標題: 用示波器人工解碼DS18B20協議時序。
本帖最后由 湖南孵化 于 2020-7-18 16:05 編輯

最近得空,用普通的示波器,采用人工的方式對DS18B20的協議進行了解碼。詳細內容如下:
一:示波器抓取DS18B20工作時的波形。

二:單片機對DS18B20發出溫度轉換指令時的波形。


圖二為溫度轉換操作:
1,首先按照DS18B20的時序,拉低總線480-960微秒進行復位,然后檢測DS18B20發出的60-240微秒的應答脈沖,
2,我的PCB上只有一個DS18B20,所以跳過ROM,指令為CCH(16進制數,二進制碼為11001100,按照操作協議要求單片機應以低字節在前高字節在后的方式在單總線上發出數據:00110011)。
3,發出溫度轉換指令44H(16進制數,二進制碼為01000100,按照操作協議要求單片機應以低字節在前高字節在后的方式在單總線上發出數據:00100010)
4,  延時960MS


三:單片機進行讀溫度數據操作時的波形。



圖三為讀溫度操作:
1,首先按照DS18B20的時序,拉低總線480-960微秒進行復位,然后檢測DS18B20發出的60-240微秒的應答脈沖,
2,我的PCB上只有一個DS18B20,所以跳過ROM,指令為CCH(16進制數,二進制碼為11001100,按照操作協議要求單片機應以低字節在前高字節在后的方式在單總線上發出數據:00110011)。

3,發出讀溫度指令BEH(16進制數,二進制碼為10111110,按照操作協議要求單片機應以低字節在前高字節在后的方式在單總線上發出數據:01111101)
4,讀取DS18B20發送的溫度數據,該數據也是按照低位在前高位在后的順序在單總線上發送的,實時數據為01001111,10000000轉換為高位在前低位在后的真實數據:00000001,11110010,高位8字節數據的前5位為溫度正負符號位,正溫度(一般指0溫度以上)為00000,負溫度(一般指0溫度以下)為11111,將我的時實溫度進行換算,高位00000001與低位11110010合并后為0000000111110010,轉換成十六進制數為1F2,轉換成十進制數為498,實時溫度為498X0.0625=31.125度。我的溫度轉換位數用的是默認的。
好了,終于得到溫度了,
  結束!

DS18B20.jpg (78.08 KB, 下載次數: 171)

DS18B20工作時的整體波形

DS18B20工作時的整體波形

作者: bjt040412    時間: 2022-2-11 15:11
民間不乏高手
作者: wukouyyq    時間: 2022-4-16 14:26
示波器是高手
作者: 正在學習51    時間: 2022-12-10 02:50
我還沒有了解的那么清楚,前部分問的是這個吧,但是因為我還沒有了解所以看不太懂。協議是自定義的是吧?0中間那個尖波是反饋?有沒有反饋這些我都沒有了解清楚
作者: 正在學習51    時間: 2022-12-10 02:50
wukouyyq 發表于 2022-4-16 14:26
示波器是高手

我還沒有買
作者: HWX0309    時間: 2022-12-12 08:50
謝謝分享時序分析。
作者: 王秋冬    時間: 2022-12-15 20:52
高手,講解的很好,謝謝分享經驗。




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