當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]任何一個DS18B20其內(nèi)部64位ROM用于存儲位移的芯片ID(這就為我們的多點采集提供了極大的方便),我使用3pin封裝的芯片,值得注意的是:DS18B20使用一根數(shù)據(jù)線一根地線也能正常工作,也就是VCC并不是必須的,什么原因

任何一個DS18B20其內(nèi)部64位ROM用于存儲位移的芯片ID(這就為我們的多點采集提供了極大的方便),我使用3pin封裝的芯片,值得注意的是:DS18B20使用一根數(shù)據(jù)線一根地線也能正常工作,也就是VCC并不是必須的,什么原因呢?因為DS18B20在內(nèi)部有一個寄生電容,當我們的數(shù)據(jù)線的電壓范圍在3.3--5V之間的時候,他會轉(zhuǎn)存為power,所以當我們外部斷電之后,這個power就為IC提供了電源,這很好的起到了一個節(jié)能的作用。。

還有一些其他的特點總結(jié)如下:

--全數(shù)字溫度轉(zhuǎn)換及輸出。
-- 先進的單總線數(shù)據(jù)通信。
--最高12位分辨率,精度可達土0.5攝氏度。
--12位分辨率時的最大工作周期為750毫秒。
--可選擇寄生工作方式。
--檢測溫度范圍為–55°C ~+125°C (–67°F ~+257°F)
--內(nèi)置EEPROM,限溫報警功能。
--64位光刻ROM,內(nèi)置產(chǎn)品序列號,方便多機掛接。
--多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。

一、硬件介紹

1、首先看一看DS13B20的整體框圖

總結(jié)一下我自己對這幾個部分的理解:

1、電源檢測用于檢測是外部提供電源還是使用數(shù)據(jù)線轉(zhuǎn)換的power

2、64為ROM用于讀取芯片ID

3、溫度靈敏元件用于DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625℃/LSB形式表達,其中S為符號位

4、接下來就是高低溫觸發(fā)器了,

5、還有配置寄存器,配置寄存器是配置不同的位數(shù)來確定溫度和數(shù)字的轉(zhuǎn)化。配置寄存器的結(jié)構(gòu)格式如下

R1、R2與控制器分辨率關(guān)系如下:

測溫操作 DS18B20的核心功能是它的直接讀數(shù)字的溫度傳感器。溫度傳感器的精度為用戶可編程的9,10,11或12位,分別以0.5℃,0.25℃,0.125℃和0.0625℃增量遞增。在上電狀態(tài)下默認的精度為12位。

所以能夠很清楚的看到轉(zhuǎn)換位數(shù)和轉(zhuǎn)換時間之間的關(guān)系。

溫度寄存器的格式如下:


二、接下來看看如何控制這個芯片

a、協(xié)議:

單總線串行通信協(xié)議,這個與普通的spi協(xié)議有一點點區(qū)別

b、操作流程:一下操作流程是我參照網(wǎng)上的,寫的比較容易理解

1,復(fù)位:首先我們必須對DS18B20芯片進行復(fù)位,復(fù)位就是由控制器(單片機)給DS18B20單總線至少480uS的低電平信號。當18B20接到此復(fù)位信號后則會在15~60uS后回發(fā)一個芯片的存在脈沖。

2,存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個60~240uS的低電平信號。至此,通信雙方已經(jīng)達成了基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計時要注意意外情況的處理。

3,控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。ROM指令在下文有詳細的介紹。

4,控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復(fù)制到RAM、工作方式切換。存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關(guān)鍵。

5,執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機)必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS。如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴格遵循18B20的讀寫時序來操作。數(shù)據(jù)的讀寫方法將有下文有詳細介紹。

若要讀出當前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個周期為復(fù)位、跳過ROM指令、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令、等待500uS溫度轉(zhuǎn)換時間。緊接著執(zhí)行第二個周期為復(fù)位、跳過ROM指令、執(zhí)行讀RAM的存儲器操作指令、讀數(shù)據(jù)(最多為9個字節(jié),中途可停止,只讀簡單溫度值則讀前2個字節(jié)即可)。其它的操作流程也大同小異,在此不多介紹。

除此之外,還有一篇文章或許能夠解決你的一些關(guān)于DS13b20的疑惑,這是我在百度空間轉(zhuǎn)載過來的

http://blog.csdn.net/king_bingge/article/details/8808631好的,如果讀完了這篇文章,那么下面對代碼進行分析也不成問題了

三、代碼分析

1、首先是一段獲取溫度的主代碼


/**************************************************************************************

*名稱:DS18B20_Get_Temp

*功能:從ds18b20得到溫度值,精度:0.1C

*參數(shù):無

*返回值:溫度值(-550~1250)

**************************************************************************************/

shortDS18B20_Get_Temp(void)

{

u8temp;

u8TL,TH;

shorttem;//2bytes

DS18B20_Start();//ds1820startconvert

DS18b20_Reset();

DS18B20_Check();

DS18B20_Write_Byte(0xcc);//skiprom

DS18B20_Write_Byte(0xbe);//convert

TL=DS18B20_Read_Byte();//LSB

TH=DS18B20_Read_Byte();//MSB

if(TH>7)//判斷正負

{

TH=~TH;

TL=~TL;

temp=0;//溫度為負

}elsetemp=1;//溫度為正

tem=TH;//獲得高八位

tem<<=8;

tem+=TL;//獲得低八位

tem=(float)tem*0.625;//轉(zhuǎn)換

if(temp)returntem;//返回溫度值

elsereturn-tem;

}

說道讀取溫度就得看看這個表了



下面的就是一個官方的示例表,說明了我們轉(zhuǎn)換的時候要注意的地方


注意精度上電默認的12位的。那么如何確定精度的呢?我問了我一個學(xué)長,是這樣解釋的,小數(shù)部分是4位,那么最小分辨率就是2的4次方分之一

也就是1/16. = 0.0625

2、開始信號


/**************************************************************************************

*名稱:DS18B20_Start

*功能:開始信號

*參數(shù):無

*返回值:無

**************************************************************************************/

voidDS18B20_Start(void)//ds1820startconvert

{

DS18b20_Reset();

DS18B20_Check();

DS18B20_

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉