第16講 18B20溫度顯示_第1頁
第16講 18B20溫度顯示_第2頁
第16講 18B20溫度顯示_第3頁
第16講 18B20溫度顯示_第4頁
第16講 18B20溫度顯示_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第16講18B20溫度顯示亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程DS18B20簡(jiǎn)介DS18B20 單線數(shù)字溫度傳感器,即單線數(shù)字溫度傳感器,即“一線器件一線器件”,其具有獨(dú)特的優(yōu)點(diǎn):,其具有獨(dú)特的優(yōu)點(diǎn): ( 1 )采用單總線的接口方式)采用單總線的接口方式 與微處理器連接時(shí)與微處理器連接時(shí) 僅需要一條口線即可實(shí)現(xiàn)微僅需要一條口線即可實(shí)現(xiàn)微處理器與處理器與 DS18B20 的雙向通訊。的雙向通訊。 單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度

2、測(cè)量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。 ( 2 )測(cè)量溫度范圍寬,測(cè)量精度高)測(cè)量溫度范圍寬,測(cè)量精度高 DS18B20 的測(cè)量范圍為的測(cè)量范圍為 -55 + 125 ; 在在 -10+ 85C 范圍內(nèi),精度為范圍內(nèi),精度為 0.5C 。 ( 4 )持多點(diǎn)組網(wǎng)功能)持多點(diǎn)組網(wǎng)功能 多個(gè)多個(gè) DS18B20 可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。測(cè)溫。 ( 5 )供電方式靈活)供電方式靈活 DS18B20 可以通過內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源??梢酝ㄟ^內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源

3、。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外部電源,從而因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外部電源,從而 使系使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。 ( 6 )測(cè)量參數(shù)可配置)測(cè)量參數(shù)可配置 DS18B20 的測(cè)量分辨率可通過程序設(shè)定的測(cè)量分辨率可通過程序設(shè)定 912 位。位。 DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng),因此也就被設(shè)計(jì)更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng),因此也就被設(shè)計(jì)者們所青睞。者們

4、所青睞。亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程單線總線特點(diǎn)單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換,單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換,控制都由這根線完成??刂贫加蛇@根線完成。單總線通常要求外接一個(gè)約為單總線通常要求外接一個(gè)約為 4.7K10K 的的上拉電阻,這樣,當(dāng)總線閑置時(shí)其狀態(tài)為高電上拉電阻,這樣,當(dāng)總線閑置時(shí)其狀態(tài)為高電平。平。亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程原理圖解析亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程電容:刪除雜波,使電壓穩(wěn)定上拉電阻:使溫度傳感器保

5、持在高電平P2.2:通過這個(gè)端口與單片機(jī)通信nDS18B20單總線的工作方式DS18B20的初始化的初始化 主機(jī)首先發(fā)出一個(gè)主機(jī)首先發(fā)出一個(gè)480960微秒微秒的低電平脈沖,然的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的后釋放總線變?yōu)楦唠娖?,并在隨后的480微秒時(shí)間內(nèi)微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說明總線上有器對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答??偩€上無器件應(yīng)答。做為從器件的做為從器件的DS18B20在一上電后就一直在檢測(cè)在一上電后就一直在檢測(cè)總線上是否有總線

6、上是否有480960微秒的低電平出現(xiàn),如果有,微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后在總線轉(zhuǎn)為高電平后等待等待1560微秒微秒后將總線電平拉后將總線電平拉低低60240微秒微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒有檢測(cè)到就一直在檢測(cè)等待。做好準(zhǔn)備。若沒有檢測(cè)到就一直在檢測(cè)等待。 亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程n初始化時(shí)序圖初始化時(shí)序圖亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程主機(jī)發(fā)送低電平 等待 從機(jī)回應(yīng)亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套

7、視頻教程課配套視頻教程/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 函數(shù)名函數(shù)名 : Ds18b20Init: Ds18b20Init* * 函數(shù)功能函數(shù)功能 : : 初始化初始化* * 輸入輸入 : : 無無* * 輸出輸出 : : 初始化成功返回初始化成功返回1 1,失敗返回,失敗返回0 0* * * * * * *

8、* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /unsigned char Ds18b20Init()unsigned char Ds18b20Init() unsigned int i;unsigned int i;DSIO=0;DSIO=0; / /將總線拉低將總線拉低480us960us480us960usi=70;i=70;while(i-);/wh

9、ile(i-);/延時(shí)延時(shí)642us642usDSIO=1;/DSIO=1;/然后拉高總線,若然后拉高總線,若DS18B20DS18B20做出反應(yīng)會(huì)將在做出反應(yīng)會(huì)將在15us60us15us60us后將總線拉低后將總線拉低i=0;i=0;while(DSIO)while(DSIO)/等待等待DS18B20DS18B20拉低總線拉低總線 i+;i+;if(i50000)/if(i50000)/等待等待50MS50MSreturn 0;/return 0;/初始化失敗初始化失敗 return 1;/return 1;/初始化成功初始化成功 主機(jī)發(fā)出各種操作命令都是向主機(jī)發(fā)出各種操作命令都是向DS1

10、8B20寫寫0和寫和寫1組成的組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從命令字節(jié),接收數(shù)據(jù)時(shí)也是從DS18B20讀取讀取0或或1的過程。的過程。因此首先要搞清主機(jī)是如何進(jìn)行寫因此首先要搞清主機(jī)是如何進(jìn)行寫0、寫、寫1、讀、讀0和讀和讀1的。的。寫周期寫周期最少為最少為60微秒,最長(zhǎng)不超過微秒,最長(zhǎng)不超過120微秒微秒。寫周期一開。寫周期一開始做為主機(jī)始做為主機(jī)先把總線拉低先把總線拉低1微秒微秒表示寫周期開始。隨后若表示寫周期開始。隨后若主機(jī)想寫主機(jī)想寫0,則將總線置為低電平,若主機(jī)想寫,則將總線置為低電平,若主機(jī)想寫1,則將總,則將總線置為高電平,持續(xù)時(shí)間線置為高電平,持續(xù)時(shí)間最少最少60微秒微秒直至寫

11、周期結(jié)束,直至寫周期結(jié)束,然然后釋放總線為高電平后釋放總線為高電平至少至少1微秒微秒給總線恢復(fù)給總線恢復(fù) 。而。而DS18B20則在檢測(cè)到總線被拉底后則在檢測(cè)到總線被拉底后等待等待15微秒微秒然后然后從從15us到到45us開始對(duì)總線采樣開始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為,在采樣期內(nèi)總線為高電平則為1,若采,若采樣期內(nèi)總線為低電平則為樣期內(nèi)總線為低電平則為0。亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程n寫操作時(shí)序圖寫操作時(shí)序圖亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程寫1時(shí)候必須大于1微秒/* 函數(shù)名 : Ds18

12、b20WriteByte* 函數(shù)功能: 向18B20寫入一個(gè)字節(jié) * 輸入 : dat * 輸出 : 無*/void tmpwritebyte(uchar dat) /write a byte to ds18b20 uint i; uchar j; bit testb; /定義一個(gè)位變量 for(j=1;j1; if(testb) /write 1 DS=0; i+;i+; /大于1us DS=1; i=8;while(i0)i-; /至少60us else DS=0; /write 0 i=8;while(i0)i-; /至少60us DS=1; i+;i+; 亞博科技亞博科技 51單片機(jī)開

13、發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀時(shí)序和讀1時(shí)序兩時(shí)序兩個(gè)過程。個(gè)過程。讀周期是從主機(jī)把單總線拉低讀周期是從主機(jī)把單總線拉低1微秒微秒之后就得釋之后就得釋放單總線為高電平,以讓放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)桨褦?shù)據(jù)傳輸?shù)絾慰偩€上。作為從機(jī)單總線上。作為從機(jī)DS18B20在檢測(cè)到總線被拉在檢測(cè)到總線被拉低低1微秒后,便開始送出數(shù)據(jù),若是要送出微秒后,便開始送出數(shù)據(jù),若是要送出0就把就把總線拉為低電平直到讀周期結(jié)束。若要送出總線拉為低電平直到讀周期結(jié)束。若要送出1則則釋放總線為高電平。主機(jī)在一開始拉低總線釋

14、放總線為高電平。主機(jī)在一開始拉低總線1微微秒后釋放總線,然后在包括前面的拉低總線電平秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的微秒在內(nèi)的15微秒時(shí)間內(nèi)完成對(duì)總線進(jìn)行采樣微秒時(shí)間內(nèi)完成對(duì)總線進(jìn)行采樣檢測(cè),采樣期內(nèi)總線為低電平則確認(rèn)為檢測(cè),采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣。采樣期內(nèi)總線為高電平則確認(rèn)為期內(nèi)總線為高電平則確認(rèn)為1。完成一個(gè)讀時(shí)序。完成一個(gè)讀時(shí)序過程,過程,至少需要至少需要60微秒微秒才能完成才能完成亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程n讀操作時(shí)序圖讀操作時(shí)序圖亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配

15、套視頻教程/* 函數(shù)名 : Ds18b20ReadByte* 函數(shù)功能 : 讀取一位數(shù)據(jù)* 輸入 : com* 輸出 : 無*/ bit Ds18b20ReadByte(void) /read a bit uint i; bit dat; DS=0;i+; /i+ for delay DS=1;i+;i+; dat=DS; i=8;while(i0)i-; return (dat);亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程DS18B20的操作步驟DS18B20的一線工作協(xié)議流程是:的一線工作協(xié)議流程是:初始化初始化ROM操作指令操作指令存儲(chǔ)器操作指令存儲(chǔ)器

16、操作指令數(shù)據(jù)傳輸。數(shù)據(jù)傳輸。其工作時(shí)序包括:其工作時(shí)序包括:l初始化時(shí)序初始化時(shí)序l寫時(shí)序?qū)憰r(shí)序l讀時(shí)序讀時(shí)序亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成:內(nèi)部結(jié)構(gòu)主要由四部分組成: 64 位光刻位光刻 ROM 、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器 TH 和和 TL 、配置寄存、配置寄存器。器。光刻光刻 ROM 中的中的 64 位序列號(hào)是出廠前被光刻好的,它可以看位序列號(hào)是出廠前被光刻好的,它可以看作是該作是該 DS18B20 的地址序列碼。的地址序列碼。 64 位光刻位光刻 ROM 的

17、排列是:的排列是:開始開始 8 位(地址:位(地址: 28H )是)是產(chǎn)品類型標(biāo)號(hào)產(chǎn)品類型標(biāo)號(hào),接著的,接著的 48 位是位是該該 DS18B20 自身的序列號(hào),并且每個(gè)自身的序列號(hào),并且每個(gè) DS18B20 的序列號(hào)的序列號(hào)都不相同,因此它可以看作是該都不相同,因此它可以看作是該 DS18B20 的的地址序列碼地址序列碼;最后最后 8 位則是前面位則是前面 56 位的位的循環(huán)冗余校驗(yàn)碼循環(huán)冗余校驗(yàn)碼( CRC=X8+X5+X4+1 )。由于每一個(gè))。由于每一個(gè) DS18B20 的的 ROM 數(shù)據(jù)都各不相同,因此微控制器就可以通過單總線對(duì)多個(gè)數(shù)據(jù)都各不相同,因此微控制器就可以通過單總線對(duì)多個(gè)

18、DS18B20 進(jìn)行尋址,從而實(shí)現(xiàn)一根總線上掛接多個(gè)進(jìn)行尋址,從而實(shí)現(xiàn)一根總線上掛接多個(gè) DS18B20 的目的。的目的。亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程DS18B20的存儲(chǔ)器由一個(gè)高速暫存的存儲(chǔ)器由一個(gè)高速暫存RAM和一個(gè)和一個(gè)非易失性、電可擦除(非易失性、電可擦除(E2)RAM組成。組成。0 溫度的低八位數(shù)據(jù)溫度的低八位數(shù)據(jù)5 保留(全保留(全1)1 溫度的高八位數(shù)據(jù)溫度的高八位數(shù)據(jù)6 保留保留2 高溫閥值高溫閥值7 保留保留3 低位閥值低位閥值8 前八位前八位CRC效驗(yàn)值效驗(yàn)值4 配置寄存器配置寄存器亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開

19、發(fā)板28課配套視頻教程課配套視頻教程n配置寄存器其中配置寄存器的格式如下:其中配置寄存器的格式如下: 出場(chǎng)設(shè)置默認(rèn)出場(chǎng)設(shè)置默認(rèn)R0、R1為為11。也就是。也就是12位分辨率,也就是位分辨率,也就是1位代表位代表0.0625攝氏度。攝氏度。 亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程DS18B20經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和和第第1個(gè)字節(jié)。所以當(dāng)我們只想簡(jiǎn)單的讀取個(gè)字節(jié)。所以當(dāng)我們只想簡(jiǎn)單的讀取溫度值的時(shí)候,只用讀取暫存器中的第溫度值的時(shí)候,只用讀取暫存器中的第0和第和

20、第1個(gè)字節(jié)就可以了。個(gè)字節(jié)就可以了。簡(jiǎn)單的讀取溫度值的步驟如下:簡(jiǎn)單的讀取溫度值的步驟如下:跳過跳過ROM操作操作發(fā)送溫度轉(zhuǎn)換命令發(fā)送溫度轉(zhuǎn)換命令跳過跳過ROM操作操作發(fā)送讀取溫度命令發(fā)送讀取溫度命令一一讀取溫度值讀取溫度值亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程/* 函數(shù)名 : Ds18b20ReadTemp* 函數(shù)功能 : 讀取溫度* 輸入 : com* 輸出 : 無*/int Ds18b20ReadTemp()unsigned int temp=0;unsigned char tmh,tml;Ds18b20ChangTemp();/先寫入轉(zhuǎn)換命令Ds18b20ReadTempCom();/然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令tml=Ds18b20ReadByte();/讀取溫度值共16位,先讀低字節(jié)tmh=Ds18b20ReadByte();/再讀高字節(jié)temp=tmh;temp=8;temp|=tml;return temp;亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論