學習DS1820隨記

2021-07-29 21:05:34 字數 1995 閱讀 4183

注意:接線時正負極不要接反,否則會燒壞ds1820,接反的話ds1820會發熱。

溫ds1820的精度為使用者可程式設計的 9,10,11,12位,分別以0.5℃,0.25℃,0.125℃,0.0625℃增量遞增。上電狀態下預設精度為12位。

溫度暫存器格式:

通過單匯流排埠訪問ds1820的協議如下:

初始化乙個由匯流排控制器發出的復位脈衝額其後又從機發出的存在脈衝。

read rom[33h] (讀取rom指令)

只有存在乙個ds1820的時候可以使用

match rom[55h] (匹配rom指令)

存在多個ds1820時用來定位到具體乙個上面

skip rom[cch] (忽略rom指令)

允許 匯流排控制器不要提供 64位rom編碼就使用功能指令

convert t[44h] (溫度轉換指令)

啟動溫度轉換,產生的結果資料以2個位元組的形式被儲存到高速暫存器中,如果ds1820處在 轉換中,將在匯流排上返回0,若溫度轉你換完成,則返回1。

read scratchpd[beh] (讀暫存器指令)

讀取將從位元組0開始,一直進行下去,直到第9位元組讀完,如果不讀完,控制器可以在任何時間發出復位命令來終止讀取。

write scratchpd[4eh] (寫暫存器指令)

向ds1820的暫存器寫入資料,開始位置在th暫存器 (暫存器的第 2個位元組),接下來寫入tl(暫存器的第3個位元組),最後希爾配置暫存器(暫存器的第4個位元組),資料以最低有效 位開始傳送。

注意:

1.對於寄生電源模式下的ds1820,在溫度轉換 和拷貝資料到eefrom期間,必須給單匯流排乙個強上拉。匯流排上在這段時間內不能有其他活動。

2.匯流排控制器在任何時刻都可以 通過發出 復位訊號 中止資料傳輸 。

3.th,tl和配置暫存器這3個位元組的寫入必須在復位電路訊號發起之前。

復位序列:復位和存在脈衝

乙個復位脈衝跟著乙個存在脈衝表明ds1820已經準備好傳送2和接收資料。

ds18b20的初始化

(1) 先將資料線置高電平「1」。

(2) 延時(該時間要求的不是很嚴格,但是盡可能的短一點)

(3) 資料線拉到低電平「0」。

(4) 延時750微秒(該時間的時間範圍可以從480到960微秒)。

(5) 資料線拉到高電平「1」。

(6) 延時等待(如果初始化成功則在15到60微妙時間之內產生乙個由ds18b20所返回的低電平「0」。據該狀態可以來確定它的存在,但是應注意不能無限的進行等待,不然會使程式進入死迴圈,所以要進行超時控制)。

(7) 若cpu讀到了資料線上的低電平「0」後,還要做延時,其延時的時間從發出的高電平算起(第(5)步的時間算起)最少要480微秒。

(8) 將資料線再次拉高到高電平「1」後結束。

ds18b20的寫操作

(1) 資料線先置低電平「0」。

(2) 延時確定的時間為15微秒。

(3) 按從低位到高位的順序傳送位元組(一次只傳送一位)。

(4) 延時時間為45微秒。

(5) 將資料線拉到高電平。

(6) 重複上(1)到(6)的操作直到所有的位元組全部傳送完為止。

(7) 最後將資料線拉高。

ds18b20的寫操作時序圖。

ds18b20的讀操作

(1)將資料線拉高「1」。

(2)延時2微秒。

(3)將資料線拉低「0」。

(4)延時3微秒。

(5)將資料線拉高「1」。

(6)延時5微秒。

(7)讀資料線的狀態得到1個狀態位,並進行資料處理。

(8)延時60微秒。ds18b20的讀操作時序圖。

DS1820溫度測量程式

include include include include define uchar unsigned char define uint unsigned int sbit p3 5 p3 5 uchar temp 溫度值的變數 uchar flag1 結果為負和正的標誌位。void delay...

LUA學習筆記(第18 20章)

print math.pi print math.huge lua中表示的最大數字 3.1415926535898 1.inf print math.rad 90 轉換成弧度 print math.deg math.pi 轉換成角度 math.random 用於生成偽隨機數 不帶引數,它將返回 0,...

學習隨記 websocket

知乎上乙個講解的非常好 首先,websocket是乙個html5出的協議 為什麼要出這個協議?因為 1.http不是持久鏈結,每次鏈結都耗時 即http是非狀態,每次都要重新鑑別,告訴服務端你是誰,浪費了流量和時間 so 出現websocket websocket是持久化的協議,它是基於http 首...