微控制器系統(tǒng)設(shè)計(jì)和應(yīng)用ppt課件_第1頁(yè)
微控制器系統(tǒng)設(shè)計(jì)和應(yīng)用ppt課件_第2頁(yè)
微控制器系統(tǒng)設(shè)計(jì)和應(yīng)用ppt課件_第3頁(yè)
微控制器系統(tǒng)設(shè)計(jì)和應(yīng)用ppt課件_第4頁(yè)
微控制器系統(tǒng)設(shè)計(jì)和應(yīng)用ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 劉燎原劉燎原 江蘇建筑職業(yè)技術(shù)學(xué)院江蘇建筑職業(yè)技術(shù)學(xué)院復(fù)習(xí):復(fù)習(xí):ADC0809ADC0809是典型的是典型的8 8位位8 8通道逐次逼近式通道逐次逼近式A/DA/D轉(zhuǎn)換器,可模擬電壓量實(shí)現(xiàn)分轉(zhuǎn)換器,可模擬電壓量實(shí)現(xiàn)分時(shí)轉(zhuǎn)換為時(shí)轉(zhuǎn)換為8 8位數(shù)字量。位數(shù)字量。Vref/Vin=2n/DVref/Vin=2n/D即即Vin/D=5/255Vin/D=5/255轉(zhuǎn)換步驟:轉(zhuǎn)換步驟:1.1.有有clockclock時(shí)鐘信號(hào)典型值時(shí)鐘信號(hào)典型值500KHZ500KHZ,周期,周期2us2us 用定時(shí)器用定時(shí)器0 0產(chǎn)生周期產(chǎn)生周期2us2us方波信號(hào)作為方波信號(hào)作為CLOCKCLOCK2.Start

2、2.Start、ALEALE有效有效, ,開(kāi)場(chǎng)轉(zhuǎn)換開(kāi)場(chǎng)轉(zhuǎn)換VinVin Start Start、ALEALE需求正脈沖,經(jīng)過(guò)置需求正脈沖,經(jīng)過(guò)置1 1或或0 0得到得到3.3.轉(zhuǎn)換過(guò)程中,轉(zhuǎn)換過(guò)程中,EOC=0;EOC=0;當(dāng)轉(zhuǎn)換終了時(shí),當(dāng)轉(zhuǎn)換終了時(shí),EOC=1.EOC=1.轉(zhuǎn)換時(shí)間大約轉(zhuǎn)換時(shí)間大約100us100us左左右右 利用查詢等待方式,利用查詢等待方式,while(eoc=0);while(eoc=0);4.4.轉(zhuǎn)換終了后,設(shè)置轉(zhuǎn)換終了后,設(shè)置OE=1OE=1后,才可以讀取轉(zhuǎn)換后的數(shù)字量后,才可以讀取轉(zhuǎn)換后的數(shù)字量 OE=1;m=P0; OE=0; OE=1;m=P0; OE=0;

3、5. 5.數(shù)字量送數(shù)碼管顯示數(shù)字量送數(shù)碼管顯示XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A11

4、24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC130pFC230pFC310uFR112345678161514131211109RN1300R410kR510kOUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC0808RV11kQ1PN2907Q2PN2907234567891RP1RES

5、PACK-81.1.十六進(jìn)制顯示轉(zhuǎn)化為十進(jìn)制顯示十六進(jìn)制顯示轉(zhuǎn)化為十進(jìn)制顯示 unsigned char i,j; unsigned char i,j; i=m/51; i=m/51; j=m%51; j=m%51; j=j/5; j=j/5;2.帶小數(shù)點(diǎn)顯示的段值帶小數(shù)點(diǎn)顯示的段值舉例闡明舉例闡明帶小數(shù)點(diǎn)共陰數(shù)碼管:帶小數(shù)點(diǎn)共陰數(shù)碼管:+ 80H P1=sz1i+80H帶小數(shù)點(diǎn)共陽(yáng)數(shù)碼管:帶小數(shù)點(diǎn)共陽(yáng)數(shù)碼管:- 80H P1=sz1i-80H 溫度計(jì)制溫度計(jì)制造造(4學(xué)時(shí)學(xué)時(shí))溫度計(jì)溫度計(jì)溫度計(jì)電路溫度計(jì)電路板板(2學(xué)時(shí)學(xué)時(shí))學(xué)時(shí)安排:學(xué)時(shí)安排: 工程六工程六 數(shù)字溫度計(jì)數(shù)字溫度計(jì) -學(xué)習(xí)學(xué)

6、習(xí)DS18B20模塊模塊 DS-18B20 數(shù)字溫度傳感器數(shù)字溫度傳感器 DS18B20是美國(guó)是美國(guó)DALLAS公司消費(fèi)的公司消費(fèi)的1-wire式單總線的數(shù)字溫度傳感式單總線的數(shù)字溫度傳感器。具有耐磨耐碰,體積小,線路簡(jiǎn)單,運(yùn)用方便,大大提高了系統(tǒng)的抗器。具有耐磨耐碰,體積小,線路簡(jiǎn)單,運(yùn)用方便,大大提高了系統(tǒng)的抗干擾性。適宜于惡劣環(huán)境的現(xiàn)場(chǎng)溫度丈量。例如:冷凍庫(kù),糧倉(cāng),儲(chǔ)罐,干擾性。適宜于惡劣環(huán)境的現(xiàn)場(chǎng)溫度丈量。例如:冷凍庫(kù),糧倉(cāng),儲(chǔ)罐,電訊機(jī)房,電力機(jī)房,電纜線槽等測(cè)溫,汽車(chē)空調(diào)、冰箱、冷柜、以及中電訊機(jī)房,電力機(jī)房,電纜線槽等測(cè)溫,汽車(chē)空調(diào)、冰箱、冷柜、以及中低溫枯燥箱等。低溫枯燥箱等。

7、 一、主要特點(diǎn)一、主要特點(diǎn) 1. 1-wire式式 只需一個(gè)端口即可實(shí)現(xiàn)和單片機(jī)的雙向通訊圖上只需一個(gè)端口即可實(shí)現(xiàn)和單片機(jī)的雙向通訊圖上DQ端,電路銜接簡(jiǎn)單端,電路銜接簡(jiǎn)單 單總線通常要求外接一個(gè)約為單總線通常要求外接一個(gè)約為 4.7K10K 的上拉電阻,這樣,當(dāng)總線閑的上拉電阻,這樣,當(dāng)總線閑置時(shí)其形狀為高電平。置時(shí)其形狀為高電平。 2.分辨率可以在分辨率可以在9-12位選擇溫度轉(zhuǎn)換后的數(shù)字信號(hào)是位選擇溫度轉(zhuǎn)換后的數(shù)字信號(hào)是9-12位位 3. 測(cè)溫范圍測(cè)溫范圍 55125,在在 -10+ 85C 范圍內(nèi),精度為范圍內(nèi),精度為 0.5C 。獨(dú)一的序列號(hào)。獨(dú)一的序列號(hào) 4.每個(gè)器件都有每個(gè)器件都

8、有 5.內(nèi)部有溫度上限、下限的報(bào)警設(shè)置,有報(bào)警功能內(nèi)部有溫度上限、下限的報(bào)警設(shè)置,有報(bào)警功能 6. 支持多點(diǎn)組網(wǎng)功能,多個(gè)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在獨(dú)一的三線上,實(shí)現(xiàn)多可以并聯(lián)在獨(dú)一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫點(diǎn)測(cè)溫 7.供電方式靈敏供電方式靈敏 ,可以外接電源,也可以經(jīng)過(guò)內(nèi)部寄生電路從數(shù)據(jù)線上獲取可以外接電源,也可以經(jīng)過(guò)內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源電源27.0DQ2VCC3GND1U3DS18B20二、二、DS18B20管腳陳列管腳陳列DS18B20DS18B20的管腳陳列的管腳陳列1. GND1. GND為電源為電源 地;地;2. DQ2. DQ為數(shù)字信號(hào)輸入輸出端;為數(shù)字

9、信號(hào)輸入輸出端;3. VDD3. VDD為外接供電電源輸入端為外接供電電源輸入端在寄生電源接線方式時(shí)接地在寄生電源接線方式時(shí)接地外接電源任務(wù)方式外接電源任務(wù)方式 u兩種供電方式:兩種供電方式:三、三、DS18B20內(nèi)部構(gòu)造內(nèi)部構(gòu)造 如下圖,主要由如下圖,主要由4部分組成:部分組成: 64 位光刻位光刻 ROM 、溫度傳感器、溫度傳感器、溫度報(bào)警觸發(fā)器溫度報(bào)警觸發(fā)器TH和和TL、配置存放器。、配置存放器。1. 64 1. 64 位光刻位光刻ROMROM 64 64 位位ROMROM中存儲(chǔ)的信息是出廠前被光刻好的,存儲(chǔ)的主要是序列號(hào)。中存儲(chǔ)的信息是出廠前被光刻好的,存儲(chǔ)的主要是序列號(hào)。 64 64

10、 位光刻位光刻 ROM ROM 的陳列是:的陳列是: 開(kāi)場(chǎng)開(kāi)場(chǎng) 8 8 位地址:位地址:28H 28H 是產(chǎn)品類型標(biāo)號(hào),是產(chǎn)品類型標(biāo)號(hào), 接著的接著的 48 48 位是該位是該 DS18B20 DS18B20 本身的序列號(hào),它可以看作是該本身的序列號(hào),它可以看作是該DS18B20DS18B20的地的地址序列碼,每個(gè)址序列碼,每個(gè)DS18B20DS18B20的的6464位序列號(hào)均不一樣位序列號(hào)均不一樣 最后最后 8 8 位那么是前面位那么是前面 56 56 位的循環(huán)冗余校驗(yàn)碼位的循環(huán)冗余校驗(yàn)碼 CRC=X8+X5+X4+1 CRC=X8+X5+X4+1 。 由于每一個(gè)由于每一個(gè) DS18B20

11、DS18B20 的的 ROM ROM 數(shù)據(jù)都各不一樣,因此微控制器就可以經(jīng)過(guò)單數(shù)據(jù)都各不一樣,因此微控制器就可以經(jīng)過(guò)單總線對(duì)多個(gè)總線對(duì)多個(gè) DS18B20 DS18B20 進(jìn)展尋址,從而實(shí)現(xiàn)一根總線上掛接多個(gè)進(jìn)展尋址,從而實(shí)現(xiàn)一根總線上掛接多個(gè) DS18B20 DS18B20 的目的目的。的。 2.溫度傳感器 DS18B20中的溫度傳感器完成對(duì)溫度的丈量,把溫度轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字量9位或12位,出廠時(shí)默許12位,最高位是符號(hào)位。為了存放12位的數(shù)字量,用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼方式表示來(lái)存放。 舉例。該數(shù)字量和溫度之間的對(duì)應(yīng)轉(zhuǎn)換格式,見(jiàn)以下圖,其中S為符號(hào)位,即數(shù)據(jù)格式以0.0625/LSB方

12、式表達(dá)。 補(bǔ)碼三個(gè)部分: 符號(hào):高字節(jié)的高4位 整數(shù):高字節(jié)的低4位、低字節(jié)的高4位 小數(shù):低字節(jié)的低4位對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。例如:1.轉(zhuǎn)換后的數(shù)字量12位,擴(kuò)展為16位后為(十六進(jìn)制):00C1H,那么對(duì)應(yīng)的溫度值應(yīng)為:+12.0625 u 假設(shè)為負(fù)溫度,如何計(jì)算?假設(shè)為負(fù)溫度,如何計(jì)算?u 2.轉(zhuǎn)換后的數(shù)字量轉(zhuǎn)換后的數(shù)字量12位,擴(kuò)展為位,擴(kuò)展為16位后為位后為(十六進(jìn)制十六進(jìn)制):FF5EH,那么對(duì)應(yīng)的溫度值應(yīng)為:那么對(duì)應(yīng)的溫度值應(yīng)為:u -10.125 ;12位3.3.配置存放器配置存放器其中配置存

13、放器的格式如下:其中配置存放器的格式如下:最高位用于設(shè)置最高位用于設(shè)置DS18B20DS18B20在任務(wù)方式還是在測(cè)試方式。在在任務(wù)方式還是在測(cè)試方式。在DS18B20DS18B20出廠時(shí)出廠時(shí)該位被設(shè)置為該位被設(shè)置為0 0,任務(wù)方式,用戶不要去改動(dòng)。,任務(wù)方式,用戶不要去改動(dòng)。R1R1和和R0R0用來(lái)設(shè)置分辨率,如以下圖所示:用來(lái)設(shè)置分辨率,如以下圖所示:DS18B20DS18B20出廠時(shí)被設(shè)置為出廠時(shí)被設(shè)置為1212位位低五位不斷都是低五位不斷都是“1“1 配置存放器與分辨率關(guān)系表配置存放器與分辨率關(guān)系表 4.4.高速暫存存儲(chǔ)器高速暫存存儲(chǔ)器RAMRAM 高速暫存存儲(chǔ)器由高速暫存存儲(chǔ)器由9

14、 9個(gè)字節(jié)組成,見(jiàn)以下圖個(gè)字節(jié)組成,見(jiàn)以下圖. .轉(zhuǎn)換所得的溫度值以兩個(gè)字節(jié)補(bǔ)碼方式存放在高速暫存存儲(chǔ)器的第轉(zhuǎn)換所得的溫度值以兩個(gè)字節(jié)補(bǔ)碼方式存放在高速暫存存儲(chǔ)器的第0 0和第和第1 1個(gè)字節(jié)。單片機(jī)可經(jīng)過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高個(gè)字節(jié)。單片機(jī)可經(jīng)過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。位在后。u四、四、DS18B20的任務(wù)時(shí)序的任務(wù)時(shí)序u單線接口訪問(wèn)單線接口訪問(wèn)DS18B20的協(xié)議的協(xié)議 u 單片機(jī)對(duì)單片機(jī)對(duì)DS18B20操作:溫度轉(zhuǎn)換、讀取溫操作:溫度轉(zhuǎn)換、讀取溫度、存取報(bào)警上下限等。度、存取報(bào)警上下限等。u根據(jù)根據(jù)DS18B20的通訊協(xié)議,單片機(jī)每次訪問(wèn)的通訊協(xié)議,

15、單片機(jī)每次訪問(wèn)DS18B20都必需遵照以下順序:都必需遵照以下順序:u 初始化初始化18B20 ;u 發(fā)對(duì)發(fā)對(duì)ROM操作命令;操作命令;u 發(fā)對(duì)發(fā)對(duì)RAM操作命令:操作命令:u 相應(yīng)操作。相應(yīng)操作。u u 1. ROM1. ROM操作命令操作命令u 2. RAM操作命令操作命令DS18B20 的的RAM指令集指令集 3.3.溫度的轉(zhuǎn)換流程溫度的轉(zhuǎn)換流程DS18B20DS18B20進(jìn)展一次溫度的轉(zhuǎn)換,那詳細(xì)的操作就是:進(jìn)展一次溫度的轉(zhuǎn)換,那詳細(xì)的操作就是:(1)(1)、初始化、初始化18B20 (18B20 (主機(jī)作復(fù)位操作主機(jī)作復(fù)位操作) )(2)(2)、發(fā)對(duì)、發(fā)對(duì)ROMROM操作命令操作命令

16、( (主機(jī)寫(xiě)跳過(guò)主機(jī)寫(xiě)跳過(guò)ROMROM的操作的操作CCHCCH命令命令) )(3)(3)、發(fā)對(duì)、發(fā)對(duì)RAMRAM操作命令操作命令( (主機(jī)寫(xiě)轉(zhuǎn)換溫度的操作主機(jī)寫(xiě)轉(zhuǎn)換溫度的操作44H44H命令命令) ) 后面釋放總線至少一秒,讓后面釋放總線至少一秒,讓DS18B20DS18B20完成轉(zhuǎn)換的操作。完成轉(zhuǎn)換的操作。 整個(gè)操作的總線形狀如以下圖。整個(gè)操作的總線形狀如以下圖。4.4.讀取讀取RAMRAM內(nèi)的溫度數(shù)據(jù)流程內(nèi)的溫度數(shù)據(jù)流程詳細(xì)的操作就是:詳細(xì)的操作就是:(1)(1)、初始化、初始化18B20 (18B20 (主機(jī)作復(fù)位操作主機(jī)作復(fù)位操作) )(2)(2)、發(fā)對(duì)、發(fā)對(duì)ROMROM操作命令操作命

17、令( (主機(jī)寫(xiě)跳過(guò)主機(jī)寫(xiě)跳過(guò)ROMROM的操作的操作CCHCCH命令命令) )(3)(3)、發(fā)對(duì)、發(fā)對(duì)RAMRAM操作命令操作命令( (主機(jī)寫(xiě)讀取主機(jī)寫(xiě)讀取RAMRAM的操作的操作BEHBEH命令命令) )(4)(4)、隨后主機(jī)依次讀取、隨后主機(jī)依次讀取DS18B20DS18B20發(fā)出的從第發(fā)出的從第0 0一第一第8 8,共九個(gè)字節(jié)的數(shù)據(jù)。,共九個(gè)字節(jié)的數(shù)據(jù)。 假設(shè)只想讀取溫度數(shù)據(jù),那在讀完第假設(shè)只想讀取溫度數(shù)據(jù),那在讀完第0 0和第和第1 1個(gè)數(shù)據(jù)后就不再理睬后面?zhèn)€數(shù)據(jù)后就不再理睬后面DS18B20DS18B20發(fā)出的數(shù)據(jù)即可。同樣讀取數(shù)據(jù)也是低位在前的。發(fā)出的數(shù)據(jù)即可。同樣讀取數(shù)據(jù)也是低位

18、在前的。 整個(gè)操作的總線形狀如以下圖:整個(gè)操作的總線形狀如以下圖: 初始化DS18B20跳過(guò)ROM匹配開(kāi)場(chǎng)溫度轉(zhuǎn)換轉(zhuǎn)換終了了否?初始化DS18B20跳過(guò)ROM匹配讀溫度值終了開(kāi)場(chǎng)YNDS18B20DS18B20溫度丈量操作流程溫度丈量操作流程u1.1.初始化初始化DS18B20DS18B20u2.2.發(fā)出跳過(guò)發(fā)出跳過(guò)ROMROM的操作的操作CCHCCH命令命令u3.3.發(fā)出溫度轉(zhuǎn)換發(fā)出溫度轉(zhuǎn)換44H44H命令命令u4.4.延時(shí)等待轉(zhuǎn)換完延時(shí)等待轉(zhuǎn)換完u5.5.初始化初始化DS18B20DS18B20u6.6.發(fā)出跳過(guò)發(fā)出跳過(guò)ROMROM的操作的操作CCHCCH命令命令u7.7.發(fā)出讀溫度發(fā)出讀

19、溫度BEHBEH命令命令u8.8.把溫度兩個(gè)字節(jié)從把溫度兩個(gè)字節(jié)從RAMRAM中讀出,保管起來(lái)中讀出,保管起來(lái)u9.9.讀出的溫度的數(shù)字量進(jìn)展數(shù)據(jù)轉(zhuǎn)換,送數(shù)碼管顯示讀出的溫度的數(shù)字量進(jìn)展數(shù)據(jù)轉(zhuǎn)換,送數(shù)碼管顯示u在以上流程中,反復(fù)用到初始化、寫(xiě)、讀時(shí)序,我們先在以上流程中,反復(fù)用到初始化、寫(xiě)、讀時(shí)序,我們先編程對(duì)應(yīng)程序編程對(duì)應(yīng)程序u五、五、DS18B20的根本操作的根本操作u 在以上的任務(wù)流程中,首先要初始化在以上的任務(wù)流程中,首先要初始化18B20,然后發(fā)各種命令以及數(shù)據(jù)傳輸都涉及到對(duì)然后發(fā)各種命令以及數(shù)據(jù)傳輸都涉及到對(duì)DS18B20的讀寫(xiě)操作,所以共涉及到以下的讀寫(xiě)操作,所以共涉及到以下3個(gè)

20、任個(gè)任務(wù)時(shí)序:務(wù)時(shí)序:u1.初始化操作初始化操作u2.寫(xiě)操作寫(xiě)操作 發(fā)命令發(fā)命令u3.讀操作讀操作 讀溫度讀溫度1.初始化時(shí)序初始化時(shí)序u DS18B20DS18B20的初始化的初始化u 1 1 先將數(shù)據(jù)線置高電平先將數(shù)據(jù)線置高電平“1“1。u 2 2 延時(shí)該時(shí)間要求的不是很?chē)?yán)厲,但是盡能夠的短一點(diǎn)延時(shí)該時(shí)間要求的不是很?chē)?yán)厲,但是盡能夠的短一點(diǎn)u 3 3 數(shù)據(jù)線拉到低電平數(shù)據(jù)線拉到低電平“0“0。u 4 4 延時(shí)延時(shí)750750微秒該時(shí)間的時(shí)間范圍可以從微秒該時(shí)間的時(shí)間范圍可以從480480到到960960微秒。微秒。u 5 5 數(shù)據(jù)線拉到高電平數(shù)據(jù)線拉到高電平“1“1。u 6 6 延時(shí)等待假

21、設(shè)初始化勝利那么在延時(shí)等待假設(shè)初始化勝利那么在1515到到6060毫秒時(shí)間之內(nèi)產(chǎn)生一毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)由個(gè)由DS18B20DS18B20所前往的低電平所前往的低電平“0“0。據(jù)該形狀可以來(lái)確定它的存在,但是。據(jù)該形狀可以來(lái)確定它的存在,但是應(yīng)留意不能無(wú)限的進(jìn)展等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)展超時(shí)應(yīng)留意不能無(wú)限的進(jìn)展等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)展超時(shí)控制??刂啤 7 7 假設(shè)單片機(jī)讀到了數(shù)據(jù)線上的低電平假設(shè)單片機(jī)讀到了數(shù)據(jù)線上的低電平“0“0后,還要做延時(shí),其后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起第延時(shí)的時(shí)間從發(fā)出的高電平算起第5 5步的時(shí)間算起最少要步的時(shí)間算起最

22、少要480480微秒。微秒。u 8 8 將數(shù)據(jù)線再次拉高到高電平將數(shù)據(jù)線再次拉高到高電平“1“1后終了。后終了。u unsigned char presence;u init_ds18b02(void)/DS18B20初始化u uDQ=1;delay_8us(3);/延時(shí)約25微秒uDQ=0; delay_8us(80); /延時(shí)約650微秒 u uDQ=1; delay_8us(2);upresence = DQ;udelay_8us(20); /延時(shí)約170微秒u u DQ = 1; u return(presence);uuDS18B20DS18B20的寫(xiě)操作的寫(xiě)操作u1 1 數(shù)據(jù)線先置

23、低電平數(shù)據(jù)線先置低電平“0“0。u2 2 延時(shí)確定的時(shí)間為延時(shí)確定的時(shí)間為1515微秒,表示寫(xiě)周期開(kāi)場(chǎng)。微秒,表示寫(xiě)周期開(kāi)場(chǎng)。u3 3 按從低位到高位的順序發(fā)送字節(jié)一次只發(fā)送一位。按從低位到高位的順序發(fā)送字節(jié)一次只發(fā)送一位。u4 4 延時(shí)時(shí)間為延時(shí)時(shí)間為4545微秒。微秒。u5 5 將數(shù)據(jù)線拉到高電平。將數(shù)據(jù)線拉到高電平。u6 6 反復(fù)上反復(fù)上1 1到到6 6的操作直到一切的字節(jié)全部發(fā)送完為止。的操作直到一切的字節(jié)全部發(fā)送完為止。u7 7 最后將數(shù)據(jù)線拉高。最后將數(shù)據(jù)線拉高。假設(shè)主機(jī)想寫(xiě)假設(shè)主機(jī)想寫(xiě)0 0,那么拉低電平最少,那么拉低電平最少6060微秒直至寫(xiě)周期終了,然后釋放總線為高電平。微秒

24、直至寫(xiě)周期終了,然后釋放總線為高電平。u假設(shè)主機(jī)想寫(xiě)假設(shè)主機(jī)想寫(xiě)1 1,在一開(kāi)場(chǎng)拉低總線電平,在一開(kāi)場(chǎng)拉低總線電平1 1微秒后就釋放總線為高電平,不斷到寫(xiě)周期微秒后就釋放總線為高電平,不斷到寫(xiě)周期終了。終了。2. 2. 寫(xiě)時(shí)序?qū)憰r(shí)序u void write_byte(unsigned char dat) /單片機(jī)向單片機(jī)向DS18B20寫(xiě)寫(xiě) 入一個(gè)字節(jié)數(shù)據(jù),先低后高入一個(gè)字節(jié)數(shù)據(jù),先低后高u uunsigned char i;ufor(i=0;i=1;uu 3.3.讀時(shí)序讀時(shí)序完成一個(gè)讀時(shí)序過(guò)程,至少需求完成一個(gè)讀時(shí)序過(guò)程,至少需求60us60us才干完成才干完成DS18B20的讀操作的讀操作

25、 1將數(shù)據(jù)線拉高將數(shù)據(jù)線拉高“1。2延時(shí)延時(shí)2微秒。微秒。3將數(shù)據(jù)線拉低將數(shù)據(jù)線拉低“0。4延時(shí)延時(shí)15微秒。微秒。5將數(shù)據(jù)線拉高將數(shù)據(jù)線拉高“1。6延時(shí)延時(shí)15微秒,對(duì)總線進(jìn)展采樣檢測(cè)。微秒,對(duì)總線進(jìn)展采樣檢測(cè)。7讀數(shù)據(jù)線的形狀得到讀數(shù)據(jù)線的形狀得到1個(gè)形狀位,并進(jìn)展數(shù)據(jù)處置。個(gè)形狀位,并進(jìn)展數(shù)據(jù)處置。8延時(shí)延時(shí)30微秒。微秒。u unsigned char read_byte(void)/單片機(jī)從單片機(jī)從DS18B20讀出一個(gè)字讀出一個(gè)字節(jié)數(shù)據(jù)節(jié)數(shù)據(jù)u uunsigned char i,dat;ufor(i=0;i=1; /一舉兩得一舉兩得uDQ=1;uif(DQ) /存儲(chǔ)采樣到的值存儲(chǔ)采

26、樣到的值udat|=0 x80;udelay_8us(4);uureturn dat;u 例:設(shè)計(jì)溫度計(jì),例:設(shè)計(jì)溫度計(jì),4位顯示,位顯示,1位小數(shù)點(diǎn)。位小數(shù)點(diǎn)。u程序流程程序流程初始化DS18B20跳過(guò)ROM匹配開(kāi)場(chǎng)溫度轉(zhuǎn)換轉(zhuǎn)換終了了否?初始化DS18B20跳過(guò)ROM匹配讀溫度值終了開(kāi)場(chǎng)YNu1.1.初始化初始化DS18B20DS18B20u2.2.發(fā)出跳過(guò)發(fā)出跳過(guò)ROMROM的操作的操作CCHCCH命令命令u3.3.發(fā)出溫度轉(zhuǎn)換發(fā)出溫度轉(zhuǎn)換44H44H命令命令u4.4.延時(shí)等待轉(zhuǎn)換完延時(shí)等待轉(zhuǎn)換完u5.5.初始化初始化DS18B20DS18B20u6.6.發(fā)出跳過(guò)發(fā)出跳過(guò)ROMROM的操作

27、的操作CCHCCH命令命令u7.7.發(fā)出讀溫度發(fā)出讀溫度BEHBEH命令命令u8.8.把溫度兩個(gè)字節(jié)讀出保管起來(lái)把溫度兩個(gè)字節(jié)讀出保管起來(lái)u9.9.數(shù)據(jù)轉(zhuǎn)換,送數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換,送數(shù)碼管顯示u每個(gè)步驟詳細(xì)化:每個(gè)步驟詳細(xì)化:u 1.1.初始化初始化DS18B20DS18B20u init_ds18b02(void) init_ds18b02(void);u 2.2.發(fā)出跳過(guò)發(fā)出跳過(guò)ROMROM的操作的操作CCHCCH命令命令u if(presence=0) /DS18B20 if(presence=0) /DS18B20初始化勝利初始化勝利u write_byte(0 xcc); write

28、_byte(0 xcc);u 3.3.發(fā)出溫度轉(zhuǎn)換發(fā)出溫度轉(zhuǎn)換44H44H命令命令uwrite_byte(0 x44); write_byte(0 x44); u 4.4.延時(shí)等待轉(zhuǎn)換完延時(shí)等待轉(zhuǎn)換完u delay_8us(500); delay_8us(500);u 5.5.初始化初始化DS18B20DS18B20u init_ds18b02(void) init_ds18b02(void)u 6.6.發(fā)出跳過(guò)發(fā)出跳過(guò)ROMROM的操作的操作CCHCCH命令命令u write_byte(0 xcc); write_byte(0 xcc);u 7.7.發(fā)出讀溫度發(fā)出讀溫度BEHBEH命令命令u

29、 write_byte(0 xBE); write_byte(0 xBE);u 8.8.把溫度兩個(gè)字節(jié)讀出保管起來(lái)把溫度兩個(gè)字節(jié)讀出保管起來(lái)u temp0=read_byte(); / temp0=read_byte(); /按順序讀出溫度低按順序讀出溫度低8 8位位u temp1=read_byte(); / temp1=read_byte(); /溫度高溫度高8 8位位 u /temp /temp是事先定義的數(shù)組,用于是事先定義的數(shù)組,用于存放讀取的溫度存放讀取的溫度u 9.9.數(shù)據(jù)轉(zhuǎn)換,送數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換,送數(shù)碼管顯示u 如何數(shù)據(jù)轉(zhuǎn)換?如何數(shù)據(jù)轉(zhuǎn)換?u 假設(shè)讀過(guò)來(lái)的溫度數(shù)字量假設(shè)讀過(guò)來(lái)

30、的溫度數(shù)字量u temp0=0 x12 低低8位位u temp1=0 x04 高高8位位u 轉(zhuǎn)換思緒:分別出溫度的整數(shù)位、小數(shù)位轉(zhuǎn)換思緒:分別出溫度的整數(shù)位、小數(shù)位u 小數(shù)位小數(shù)位m: temp0的低的低4位位u 0010*0.0625=0.125=0.1四舍五入四舍五入u 同理推出從同理推出從0000-1111對(duì)應(yīng)的四舍五入的溫度小數(shù)值對(duì)應(yīng)的四舍五入的溫度小數(shù)值 u 0000*0.0625=0.0=0.0四舍五入四舍五入u 0001*0.0625=0.0625=0.1四舍五入四舍五入u 0010*0.0625=0.125=0.1四舍五入四舍五入u 0011*0.0625=0.1875=0.2四舍五入四舍五入u 0100*0.0625=0.25=0.3四舍五入四舍五入u u 1111*0.0625=0.9

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論