18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 電子元器件 >> 正文

DS18B20詳細中文資料,DS18B20管腳圖

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2017-11-18

DS18B20的特點:

DS18B20 單線數字溫度傳(chuan) 感器,即“一線器件”,其具有獨特的優(you) 點:

( 1 )采用單總線的接口方式 與(yu) 微處理器連接時僅(jin) 需要一條口線即可實現微處理器與(yu) DS18B20 的雙向通訊。單總線具有經濟性好,抗幹擾能力強,適合於(yu) 惡劣環境的現場溫度測量,使用方便等優(you) 點,使用戶可輕鬆地組建傳(chuan) 感器網絡,為(wei) 測量係統的構建引入全新概念。

( 2 )測量溫度範圍寬,測量精度高 DS18B20 的測量範圍為(wei) -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C範圍內(nei) ,精度為(wei) ± 0.5°C 。

( 3 )在使用中不需要任何外圍元件。

( 4 )持多點組網功能 多個(ge) DS18B20 可以並聯在惟一的單線上,實現多點測溫。

( 5 )供電方式靈活 DS18B20 可以通過內(nei) 部寄生電路從(cong) 數據線上獲取電源。因此,當數據線上的時序滿足一定的要求時,可以不接外部電源,從(cong) 而使係統結構更趨簡單,可靠性更高。

( 6 )測量參數可配置 DS18B20 的測量分辨率可通過程序設定 9~12 位。

( 7 ) 負壓特性電源極性接反時,溫度計不會(hui) 因發熱而燒毀,但不能正常工作。

( 8 )掉電保護功能 DS18B20 內(nei) 部含有 EEPROM ,在係統掉電以後,它仍可保存分辨率及報警溫度的設定值。

DS18B20 具有體(ti) 積更小、適用電壓更寬、更經濟、可選更小的封裝方式,更寬的電壓適用範圍,適合於(yu) 構建自己的經濟的測溫係統,因此也就被設計者們(men) 所青睞。

DS18B20內(nei) 部結構:

主要由4部分組成:64 位ROM、溫度傳(chuan) 感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個(ge) DS18B20的64位序列號均不相同。64位ROM的排的循環冗餘(yu) 校驗碼(CRC=X^8+X^5+X^4+1)。 ROM的作用是使每一個(ge) DS18B20都各不相同,這樣就可以實現一根總線上掛接多個(ge) DS18B20的目的。

DS18B20內(nei)

DS18B20管腳排列:

1. GND為(wei) 電源地;

2. DQ為(wei) 數字信號輸入/輸出端;

3. VDD為(wei) 外接供電電源輸入端(在寄生電源接線方式時接地)

DS18B20管腳排列,DS18B20管腳圖

DS18B20內(nei) 部構成:

高速暫存存儲(chu) 器由9個(ge) 字節組成,當溫度轉換命令發布後,經轉換所得的溫度值以二字節補碼形式存放在高速暫存存儲(chu) 器的第0和第1個(ge) 字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在後,對應的溫度計算:當符號位S=0時,直接將二進製位轉換為(wei) 十進製;當S=1時,先將補碼變為(wei) 原碼,再計算十進製值。

3.jpg

溫度的低八位數據 0

溫度的高八位數據 1

高溫閥值 2

低溫閥值 3

保留 4

保留 5

計數剩餘(yu) 值 6

每度計數值 7

CRC 校驗 8

DS18B20中的溫度傳(chuan) 感器完成對溫度的測量,用16位二進製形式提供,形式表達,其中S為(wei) 符號位。

4.jpg

例如:

+125℃的數字輸出07D0H

(正溫度直接把16進製數轉成10進製即得到溫度值 )

-55℃的數字輸出為(wei) FC90H。

(負溫度把得到的16進製數取反後加1 再轉成10進製數)

5.jpg

DS18B20的工作時序:

初始化時序

初始化時序 

主機首先發出一個(ge) 480-960微秒的低電平脈衝(chong) ,然後釋放總線變為(wei) 高電平,並在隨後的480微秒時間內(nei) 對總線進行檢測,如果有低電平出現說明總線上有器件已做出應答。若無低電平出現一直都是高電平說明總線上無器件應答。

做為(wei) 從(cong) 器件的DS18B20在一上電後就一直在檢測總線上是否有480-960微秒的低電平出現,如果有,在總線轉為(wei) 高電平後等待15-60微秒後將總線電平拉低60-240微秒做出響應存在脈衝(chong) ,告訴主機本器件已做好準備。若沒有檢測到就一直在檢測等待。

寫(xie) 操作

7.jpg

寫(xie) 周期最少為(wei) 60微秒,最長不超過120微秒。寫(xie) 周期一開始做為(wei) 主機先把總線拉低1微秒表示寫(xie) 周期開始。隨後若主機想寫(xie) 0,則繼續拉低電平最少60微秒直至寫(xie) 周期結束,然後釋放總線為(wei) 高電平。若主機想寫(xie) 1,在一開始拉低總線電平1微秒後就釋放總線為(wei) 高電平,一直到寫(xie) 周期結束。而做為(wei) 從(cong) 機的DS18B20則在檢測到總線被拉底後等待15微秒然後從(cong) 15us到45us開始對總線采樣,在采樣期內(nei) 總線為(wei) 高電平則為(wei) 1,若采樣期內(nei) 總線為(wei) 低電平則為(wei) 0。

讀操作

8.jpg

對於(yu) 讀數據操作時序也分為(wei) 讀0時序和讀1時序兩(liang) 個(ge) 過程。讀時隙是從(cong) 主機把單總線拉低之後,在1微秒之後就得釋放單總線為(wei) 高電平,以讓DS18B20把數據傳(chuan) 輸到單總線上。DS18B20在檢測到總線被拉低1微秒後,便開始送出數據,若是要送出0就把總線拉為(wei) 低電平直到讀周期結束。若要送出1則釋放總線為(wei) 高電平。主機在一開始拉低總線1微秒後釋放總線,然後在包括前麵的拉低總線電平1微秒在內(nei) 的15微秒時間內(nei) 完成對總線進行采樣檢測,采樣期內(nei) 總線為(wei) 低電平則確認為(wei) 0。采樣期內(nei) 總線為(wei) 高電平則確認為(wei) 1。完成一個(ge) 讀時序過程,至少需要60us才能完成

DS18B20 單線通信:

DS18B20 單線通信功能是分時完成的,他有嚴(yan) 格的時隙概念,如果出現序列混亂(luan) , 1-WIRE 器件將不響應主機,因此讀寫(xie) 時序很重要。係統對 DS18B20 的各種操作必須按協議進行。根據 DS18B20 的協議規定,微控製器控製 DS18B20 完成溫度的轉換必須經過以下 3個(ge) 步驟 :

(1)每次讀寫(xie) 前對 DS18B20 進行複位初始化。複位要求主 CPU 將數據線下拉 500us ,然後釋放, DS18B20 收到信號後等待 16us~60us 左右,然後發出60us~240us 的存在低脈衝(chong) ,主 CPU 收到此信號後表示複位成功。

(2)發送一條 ROM 指令

9.jpg

(3)發送存儲(chu) 器指令

發送存儲器指令 

具體(ti) 操作舉(ju) 例:

現在我們(men) 要做的是讓DS18B20進行一次溫度的轉換,那具體(ti) 的操作就是:

1、主機先作個(ge) 複位操作,

2、主機再寫(xie) 跳過ROM的操作(CCH)命令,

3、然後主機接著寫(xie) 個(ge) 轉換溫度的操作命令,後麵釋放總線至少一秒,讓DS18B20完成轉換的操作。在這裏要注意的是每個(ge) 命令字節在寫(xie) 的時候都是低字節先寫(xie) ,例如CCH的二進製為(wei) 11001100,在寫(xie) 到總線上時要從(cong) 低位開始寫(xie) ,寫(xie) 的順序是“零、零、壹、壹、零、零、壹、壹”。整個(ge) 操作的總線狀態如下圖。

 

讀取RAM內(nei) 的溫度數據。同樣,這個(ge) 操作也要接照三個(ge) 步驟。

1、主機發出複位操作並接收DS18B20的應答(存在)脈衝(chong) 。

2、主機發出跳過對ROM操作的命令(CCH)。

3、主機發出讀取RAM的命令(BEH),隨後主機依次讀取DS18B20發出的從(cong) 第0一第8,共九個(ge) 字節的數據。如果隻想讀取溫度數據,那在讀完第0和第1個(ge) 數據後就不再理會(hui) 後麵DS18B20發出的數據即可。同樣讀取數據也是低位在前的。整個(ge) 操作的總線狀態如下圖:

12.jpg

C語言代碼

sbit DQ=P3^3;

uchar t; //設置全局變量,專(zhuan) 門用於(yu) 延時程序

bit Init_DS18B20(void)

{

bit flag;

DQ=1;

_nop_(); //??????????????? for(t=0;t<2;t++);

DQ=0;

for(t=0;t<200;t++);

DQ=1;

for(t=0;t<15;t++);//????????????????? for(t=0;t<10;t++);

flag=DQ;

for(t=0;t<200;t++);

return flag;

}

uchar ReadOneChar(void)

{

uchar i=0;

uchar dat;

for(i=0;i<8;i++)

{

DQ=1;

_nop_();

DQ=0;

_nop_();

DQ=1; //人為(wei) 拉高,為(wei) 單片機檢測DS18B20的輸出電平做準備

for(t=0;t<3;t++);//延時月9us ????????????????????????? for(t=0;t<2;t++);

dat>>=1;

if(DQ==1)

{

dat|=0x80;

}

else

dat|=0x00;

for(t=0;t<1;t++);//延時3us,兩(liang) 個(ge) 個(ge) 讀時序間至少需要1us的恢複期 ??????????for(t=0;t<8;t++);

}

return dat;

}

void WriteOneChar(uchar dat)

{

uchar i=0;

for(i=0;i<8;i++)

{

DQ=1;

_nop_();

DQ=0;

_nop_();// ??????????????????????????????????????????????

DQ=dat&0x01;

for(t=0;t<15;t++);//延時約45us,DS18B20在15~60us對數據采樣 ??????????????? for(t=0;t<10;t++);

DQ=1; //釋放數據線

for(t=0;t<1;t++); //延時3us,兩(liang) 個(ge) 寫(xie) 時序間至少需要1us的恢複期

dat>>=1;

}

for(t=0;t<4;t++);

}

void ReadyReadTemp(void)

{

Init_DS18B20();

WriteOneChar(0xcc);

WriteOneChar(0x44);

delaynms(1000); // ?????????????????????????? delaynms(200);

Init_DS18B20();

WriteOneChar(0xcc);

WriteOneChar(0xbe);

}

Tags:DS18B20,中文資料,DS18B20管腳圖  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢