基于Linux的溫度傳感器DS18B20驅動程序設計
圖2中的暫存器是DS18B20中最重要的寄存器。暫存器由9個字節(jié)組成,各字節(jié)定義如表1所列。
配置寄存器用于用戶設置溫度傳感器的轉換精度,其各位定義如下:
TM位是測試模式位,用于設置DS18B20是工作模式(0)還是測試模式(1),其出廠值為0。R1、R0用于設置溫度傳感器的轉換精度:00,分辨率為9位,轉換時間為93.75ms;01,分辨率為10位,轉換時間為187.5 ms;10,分辨率為11位,轉換時間為375 ms;11,分辨為12位,轉換時間為750 ms。R1、R0的出廠值為11。其余5位值始終為1。
第0和第1字節(jié)為16位轉換后的溫度二進制值,其中前4位為符號位,其余12位為轉換后的數據位(分辨率為12位)。如果溫度大于0,則前4位值為0,只要將測到的數值乘上0.062 5即可得到實際溫度值;如果溫度小于0,則前4位為1,需將測得的數值取反加1后,再乘上0.062 5。第0和第1字節(jié)各位的二進制值如下:
2.2 DS18B20的應用電路結構
按DS18B20的供電方式,其應用電路結構可分為如下3種:寄生電源供電方式;寄生電源強上拉供電方式;外部電源供電方式。實際應用中,以外部電源供電方式為主。其應用原理圖如圖3所示。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論