




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第16講18B20溫度顯示亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程DS18B20簡介DS18B20 單線數(shù)字溫度傳感器,即單線數(shù)字溫度傳感器,即“一線器件一線器件”,其具有獨(dú)特的優(yōu)點(diǎn):,其具有獨(dú)特的優(yōu)點(diǎn): ( 1 )采用單總線的接口方式)采用單總線的接口方式 與微處理器連接時與微處理器連接時 僅需要一條口線即可實(shí)現(xiàn)微僅需要一條口線即可實(shí)現(xiàn)微處理器與處理器與 DS18B20 的雙向通訊。的雙向通訊。 單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場溫度測量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感合于惡劣環(huán)境的現(xiàn)場溫度
2、測量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。 ( 2 )測量溫度范圍寬,測量精度高)測量溫度范圍寬,測量精度高 DS18B20 的測量范圍為的測量范圍為 -55 + 125 ; 在在 -10+ 85C 范圍內(nèi),精度為范圍內(nèi),精度為 0.5C 。 ( 4 )持多點(diǎn)組網(wǎng)功能)持多點(diǎn)組網(wǎng)功能 多個多個 DS18B20 可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)測溫。測溫。 ( 5 )供電方式靈活)供電方式靈活 DS18B20 可以通過內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源??梢酝ㄟ^內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源
3、。因此,當(dāng)數(shù)據(jù)線上的時序滿足一定的要求時,可以不接外部電源,從而因此,當(dāng)數(shù)據(jù)線上的時序滿足一定的要求時,可以不接外部電源,從而 使系使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。 ( 6 )測量參數(shù)可配置)測量參數(shù)可配置 DS18B20 的測量分辨率可通過程序設(shè)定的測量分辨率可通過程序設(shè)定 912 位。位。 DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測溫系統(tǒng),因此也就被設(shè)計(jì)更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測溫系統(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ù)交換,控制都由這根線完成??刂贫加蛇@根線完成。單總線通常要求外接一個約為單總線通常要求外接一個約為 4.7K10K 的的上拉電阻,這樣,當(dāng)總線閑置時其狀態(tài)為高電上拉電阻,這樣,當(dāng)總線閑置時其狀態(tài)為高電平。平。亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程原理圖解析亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程電容:刪除雜波,使電壓穩(wěn)定上拉電阻:使溫度傳感器保
5、持在高電平P2.2:通過這個端口與單片機(jī)通信nDS18B20單總線的工作方式DS18B20的初始化的初始化 主機(jī)首先發(fā)出一個主機(jī)首先發(fā)出一個480960微秒微秒的低電平脈沖,然的低電平脈沖,然后釋放總線變?yōu)楦唠娖剑⒃陔S后的后釋放總線變?yōu)楦唠娖?,并在隨后的480微秒時間內(nèi)微秒時間內(nèi)對總線進(jìn)行檢測,如果有低電平出現(xiàn)說明總線上有器對總線進(jìn)行檢測,如果有低電平出現(xiàn)說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答??偩€上無器件應(yīng)答。做為從器件的做為從器件的DS18B20在一上電后就一直在檢測在一上電后就一直在檢測總線上是否有總線
6、上是否有480960微秒的低電平出現(xiàn),如果有,微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后在總線轉(zhuǎn)為高電平后等待等待1560微秒微秒后將總線電平拉后將總線電平拉低低60240微秒微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒有檢測到就一直在檢測等待。做好準(zhǔn)備。若沒有檢測到就一直在檢測等待。 亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程n初始化時序圖初始化時序圖亞博科技亞博科技 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-);/延時延時642us642usDSIO=1;/DSIO=1;/然后拉高總線,若然后拉高總線,若DS18B20DS18B20做出反應(yīng)會將在做出反應(yīng)會將在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ù)時也是從命令字節(jié),接收數(shù)據(jù)時也是從DS18B20讀取讀取0或或1的過程。的過程。因此首先要搞清主機(jī)是如何進(jìn)行寫因此首先要搞清主機(jī)是如何進(jìn)行寫0、寫、寫1、讀、讀0和讀和讀1的。的。寫周期寫周期最少為最少為60微秒,最長不超過微秒,最長不超過120微秒微秒。寫周期一開。寫周期一開始做為主機(jī)始做為主機(jī)先把總線拉低先把總線拉低1微秒微秒表示寫周期開始。隨后若表示寫周期開始。隨后若主機(jī)想寫主機(jī)想寫0,則將總線置為低電平,若主機(jī)想寫,則將總線置為低電平,若主機(jī)想寫1,則將總,則將總線置為高電平,持續(xù)時間線置為高電平,持續(xù)時間最少最少60微秒微秒直至寫
11、周期結(jié)束,直至寫周期結(jié)束,然然后釋放總線為高電平后釋放總線為高電平至少至少1微秒微秒給總線恢復(fù)給總線恢復(fù) 。而。而DS18B20則在檢測到總線被拉底后則在檢測到總線被拉底后等待等待15微秒微秒然后然后從從15us到到45us開始對總線采樣開始對總線采樣,在采樣期內(nèi)總線為高電平則為,在采樣期內(nèi)總線為高電平則為1,若采,若采樣期內(nèi)總線為低電平則為樣期內(nèi)總線為低電平則為0。亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程n寫操作時序圖寫操作時序圖亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程寫1時候必須大于1微秒/* 函數(shù)名 : Ds18
12、b20WriteByte* 函數(shù)功能: 向18B20寫入一個字節(jié) * 輸入 : dat * 輸出 : 無*/void tmpwritebyte(uchar dat) /write a byte to ds18b20 uint i; uchar j; bit testb; /定義一個位變量 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課配套視頻教程課配套視頻教程對于讀數(shù)據(jù)操作時序也分為讀對于讀數(shù)據(jù)操作時序也分為讀0時序和讀時序和讀1時序兩時序兩個過程。個過程。讀周期是從主機(jī)把單總線拉低讀周期是從主機(jī)把單總線拉低1微秒微秒之后就得釋之后就得釋放單總線為高電平,以讓放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)桨褦?shù)據(jù)傳輸?shù)絾慰偩€上。作為從機(jī)單總線上。作為從機(jī)DS18B20在檢測到總線被拉在檢測到總線被拉低低1微秒后,便開始送出數(shù)據(jù),若是要送出微秒后,便開始送出數(shù)據(jù),若是要送出0就把就把總線拉為低電平直到讀周期結(jié)束。若要送出總線拉為低電平直到讀周期結(jié)束。若要送出1則則釋放總線為高電平。主機(jī)在一開始拉低總線釋
14、放總線為高電平。主機(jī)在一開始拉低總線1微微秒后釋放總線,然后在包括前面的拉低總線電平秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的微秒在內(nèi)的15微秒時間內(nèi)完成對總線進(jìn)行采樣微秒時間內(nèi)完成對總線進(jìn)行采樣檢測,采樣期內(nèi)總線為低電平則確認(rèn)為檢測,采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣。采樣期內(nèi)總線為高電平則確認(rèn)為期內(nèi)總線為高電平則確認(rèn)為1。完成一個讀時序。完成一個讀時序過程,過程,至少需要至少需要60微秒微秒才能完成才能完成亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程n讀操作時序圖讀操作時序圖亞博科技亞博科技 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操作指令操作指令存儲器操作指令存儲器
16、操作指令數(shù)據(jù)傳輸。數(shù)據(jù)傳輸。其工作時序包括:其工作時序包括:l初始化時序初始化時序l寫時序?qū)憰r序l讀時序讀時序亞博科技亞博科技 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 位序列號是出廠前被光刻好的,它可以看位序列號是出廠前被光刻好的,它可以看作是該作是該 DS18B20 的地址序列碼。的地址序列碼。 64 位光刻位光刻 ROM 的
17、排列是:的排列是:開始開始 8 位(地址:位(地址: 28H )是)是產(chǎn)品類型標(biāo)號產(chǎn)品類型標(biāo)號,接著的,接著的 48 位是位是該該 DS18B20 自身的序列號,并且每個自身的序列號,并且每個 DS18B20 的序列號的序列號都不相同,因此它可以看作是該都不相同,因此它可以看作是該 DS18B20 的的地址序列碼地址序列碼;最后最后 8 位則是前面位則是前面 56 位的位的循環(huán)冗余校驗(yàn)碼循環(huán)冗余校驗(yàn)碼( CRC=X8+X5+X4+1 )。由于每一個)。由于每一個 DS18B20 的的 ROM 數(shù)據(jù)都各不相同,因此微控制器就可以通過單總線對多個數(shù)據(jù)都各不相同,因此微控制器就可以通過單總線對多個
18、DS18B20 進(jìn)行尋址,從而實(shí)現(xiàn)一根總線上掛接多個進(jìn)行尋址,從而實(shí)現(xiàn)一根總線上掛接多個 DS18B20 的目的。的目的。亞博科技亞博科技 51單片機(jī)開發(fā)板單片機(jī)開發(fā)板28課配套視頻教程課配套視頻教程DS18B20的存儲器由一個高速暫存的存儲器由一個高速暫存RAM和一個和一個非易失性、電可擦除(非易失性、電可擦除(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配置寄存器其中配置寄存器的格式如下:其中配置寄存器的格式如下: 出場設(shè)置默認(rèn)出場設(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ǔ)碼形式存放在高速暫存存儲器的第補(bǔ)碼形式存放在高速暫存存儲器的第0和和第第1個字節(jié)。所以當(dāng)我們只想簡單的讀取個字節(jié)。所以當(dāng)我們只想簡單的讀取溫度值的時候,只用讀取暫存器中的第溫度值的時候,只用讀取暫存器中的第0和第和
20、第1個字節(jié)就可以了。個字節(jié)就可以了。簡單的讀取溫度值的步驟如下:簡單的讀取溫度值的步驟如下:跳過跳過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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量認(rèn)證申請表-質(zhì)量認(rèn)證申請材料準(zhǔn)備
- 銀行競聘考試試題及答案
- 音樂上崗考試試題及答案
- 醫(yī)院物流考試試題及答案
- 六一書畫活動方案
- 六一兒童節(jié)文藝活動方案
- 六一咖啡活動策劃方案
- 六一奔馳活動方案
- 六一幼兒集市活動方案
- 六一活動寶樂匯活動方案
- 定向鉆施工合同
- 2022-2023學(xué)年黑龍江省佳木斯市小升初必考題數(shù)學(xué)檢測卷含答案
- 小學(xué)一年級下學(xué)期數(shù)學(xué)無紙化測試題
- 小學(xué)生愛國主義教育校長講話稿7篇
- 口腔頜面外科學(xué) 第十章 顳下頜關(guān)節(jié)疾病
- 建設(shè)文化強(qiáng)國說課 教學(xué)設(shè)計(jì)
- 陳巴爾虎旗草原全域旅游發(fā)展總體規(guī)劃
- 壓鑄行業(yè)常用英語專業(yè)詞匯
- 立管高空作業(yè)施工專項(xiàng)安全方案
- GB/T 7778-2017制冷劑編號方法和安全性分類
- GB/T 40393-2021金屬和合金的腐蝕奧氏體不銹鋼晶間腐蝕敏感性加速腐蝕試驗(yàn)方法
評論
0/150
提交評論