ds18b20驅動配置

2021-10-05 11:56:23 字數 1801 閱讀 4057

)初始化時序

void

ds18b20_rst

(void

)

返回1:沒有檢測到ds18b20的存在返回0:存在

u8 ds18b20_check

(void);

if(retry>=

200)

return1;

else retry=0;

while

(!ds18b20_dq_in&&retry<

240);if

(retry>=

240)

return1;

return0;

}

匯流排控制器初始化寫時序後,ds18b20在乙個15us到60us的視窗對i/o線取樣。如果線上是高電平,就是寫1。如果線上是低電平,就是寫0.

返回值:1/0

u8 ds18b20_read_bit

(void

)return dat;

}

寫1或者寫0,所有的時序必須最少持續60us,包括兩個寫週期之間最少1us的恢復時間。匯流排控制器把資料線從高電平拉倒低電平的時候,寫時序開始。

寫1:匯流排控制器要生產乙個寫1時序,必須把資料線拉倒低電平然後釋放。在寫時序開始後的15us內釋放匯流排,當匯流排被釋放的時候,上拉電阻將拉高匯流排。

寫0:匯流排控制器要生成乙個寫0時序,必須把資料線拉倒低電平保持(至少60us)

//dat 寫入的資料

else

}}

void

ds18b20_start

(void

)

//double atem;

short tem;

short

ds18b20_get_temp

(void

)else temp=1;

//溫度為正

tem=th;

//獲得高八位

tem<<=

8;

tem+

=tl;

//獲得底八位

tem=

(double

)tem*

0.625

;//轉換

// atem=tem;

if(temp)

return tem;

//返回溫度值

else

return

-tem;

}

DS18B20溫度測量

1.ds18b20 復位。2.寫入跳過 rom 的位元組命令,0xcc。3.寫入開始轉換的功能命令,0x44。4.延遲大約 750 900 毫秒 1.ds18b20 復位。2.寫入跳過 rom 的位元組命令,0xcc。3.寫入讀暫存的功能命令,0xbe。4.讀入第 0 個位元組 ls byte,轉換...

DS18B20溫度換算

dsi8b20接收到溫度轉換命令後,開始啟動轉換。轉換完成後的溫度值就以16位帶符號擴充套件的二進位制補碼形式儲存在高速暫存儲存器的0,1位元組。微控制器可通過單線介面讀到該資料,讀取時低位在前,高位在後,資料格式以0 062 5 lsb形式表示。溫度值格式如表2.2.1所示,其中 s 為標誌位,對...

DS18B20驅動根據資料手冊編寫

include sbit ds18b20 p1 4 void delay ds18b20 unsigned int x void ds18b20 res void 溫度計初始化 void ds18b20 write bit unsigned char x 溫度計寫入資料所用的函式 ds18b20 1...