溫度傳感器3資料_第1頁
溫度傳感器3資料_第2頁
溫度傳感器3資料_第3頁
溫度傳感器3資料_第4頁
溫度傳感器3資料_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、小型嵌入式綜合電子系統(tǒng)開發(fā)(kif)與設(shè)計系統(tǒng)設(shè)計(shj) 與集成共六十九頁教學(xué)(jio xu)過程4單線數(shù)字溫度計DSl8B20介紹一DS18B20工作過程及時序二在LCD1602上顯示溫度采集數(shù)據(jù)三共六十九頁 一、 單線(dnxin)數(shù)字溫度計DSl8B20介紹 共六十九頁1、ds18b20概述(i sh) 美國Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是 “一線總線”接口的溫度傳感器。全部(qunb)傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。共六十九頁DS18B20 測量溫度范圍-55+125,在-10+85范圍內(nèi),精度為0.5?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方

2、式傳輸,使用戶可以輕松的組建(z jin)傳感器網(wǎng)絡(luò),大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。共六十九頁2、溫度傳感器外部(wib)特征圖3-1 DS18B20 外觀(wigun)及管腳圖共六十九頁從圖3-1可以看出:DS18B20有三個管腳,分別為接地GND、電源Vdd、數(shù)據(jù)輸入/輸出DQ。DS18B20測得的溫度(wnd)值是通過DQ端進行數(shù)據(jù)傳輸?shù)模@也就是“一線總線”的數(shù)字方式傳輸。共六十九頁3、Ds18b20 電路(dinl)接法圖3-2 DS18B20 供電(n din)方式共六十九頁如圖3-2所示,每只DS18B

3、20都可以設(shè)置成兩種供電方式(fngsh),即數(shù)據(jù)總線供電方式(fngsh)和外部供電方式(fngsh)。采取數(shù)據(jù)總線供電方式可以節(jié)省一根導(dǎo)線,但完成溫度測量的時間較長;采取外部供電方式,則多用一根導(dǎo)線但測量速度較快。共六十九頁任務(wù)1 焊接DS18B20相關(guān)(xinggun)電路共六十九頁4、ds18b20 內(nèi)部結(jié)構(gòu)四部分構(gòu)成:電源模塊、64位ROM和單總線接口、控制(kngzh)模塊和存儲器模塊共六十九頁4、ds18b20 內(nèi)部結(jié)構(gòu)Ds18b20 的內(nèi)部(nib)存儲資源分布如下:共六十九頁在芯片內(nèi)部光刻了一個長度為64bit的ROM,這個編碼是器件的身份識別標(biāo)志。可用于多點溫度控制系統(tǒng)(k

4、n zh x tn)。如下圖,其中 MSB為最高有效位,LSB為最低有效位ROM共六十九頁序號高速存儲器RAM0溫度值低位1溫度值高位2高溫報警寄存器3低溫報警寄存器4配置寄存器5保留6保留7保留8CRC校驗字節(jié)RAM共六十九頁RAM由9個字節(jié)組成,包含8個連續(xù)字節(jié);前兩個字節(jié)是測得的溫度信息,第0個字節(jié)的內(nèi)容是溫度的低八位,第一個字節(jié)是溫度的高八位。輸出時先低8位,再高8位。第二個和第三個是溫度高限TH、溫度低限TL暫存區(qū);第四個字節(jié)是配置寄存器暫存區(qū),第5、6、7字節(jié)是系統(tǒng)保留(boli),就相當(dāng)于運算內(nèi)存。第8個字節(jié)對前面的字節(jié)進行校驗共六十九頁 以12位精度(jn d)為例最高位為符號

5、位。正溫度S=0,負溫度S=1,存放的是補碼。因此當(dāng)測得的溫度是負數(shù)時,應(yīng)作補碼到原碼的轉(zhuǎn)換才能得到相應(yīng)的負溫度值。其他(qt)依此類推從溫度RAM中讀出數(shù)據(jù)后要作右移4位即除以16或乘0.0625(2-4)才可得到實際溫度;如果溫度小于0,測到的數(shù)值需要取反加1(或減1取反)再乘于0.0625即可得到實際溫度。傳感器內(nèi)部溫度表示?共六十九頁傳感器內(nèi)部溫度(wnd)表示?如DS18B20用12位存貯溫值度,最高位為符號(fho)位。負溫度S=1正溫度S=0如0550H為+850191H為25.0625 FC90H為-55 共六十九頁報警(bo jng)值高、低限 在RAM的第2、3、4字節(jié)和E

6、EPROM的三個字節(jié)是對應(yīng)的,內(nèi)容是相同的,只是RAM因為是暫存器,失電后數(shù)據(jù)就丟失了。EEPROM是電擦除只讀存儲器,失電后數(shù)據(jù)不丟失。 在工作時得到復(fù)位命令后就從EEPROM復(fù)制一份數(shù)據(jù)到RAM的第2、3、4字節(jié)內(nèi),作為我們進行(jnxng)報警搜索、改寫報警值和改寫器件設(shè)置用,我們從外部只能對RAM進行操作,EEPROM只能從RAM復(fù)制而得到要保存的數(shù)據(jù)。共六十九頁配置(pizh)寄存器第4字節(jié)的配置寄存器是用來設(shè)置DS18B20的工作模式(msh)和測量精度的,其內(nèi)容如下圖:低五位一直都是“1”,TM是測試模式位,出廠時被設(shè)置為0,用戶不要去改動。共六十九頁配置(pizh)寄存器R1R

7、0分辨率轉(zhuǎn)換時間00993ms0110187ms1011375ms1112750msR1和R0用來設(shè)置(shzh)分辨率,(DS18B20出廠時被設(shè)置為12位),改動后,需要保存這種設(shè)置時,要用一條復(fù)制命令復(fù)制到EPROM中共六十九頁EEPROM只有三個字節(jié),和RAM的第2、3、4字節(jié)的內(nèi)容相對應(yīng),它的作用就是(jish)存儲RAM第2、3、4字節(jié)的內(nèi)容,以使這些數(shù)據(jù)在掉電后不丟失。EEPROM:共六十九頁5、DS18B20操作(cozu)指令DS18B20 指令(zhlng)分為2種:對ROM 操作對RAM操作共六十九頁如何向芯片寫入下列(xili)命令呢?共六十九頁RAM指令(zhlng)

8、又是如何寫入呢?共六十九頁6、如何實現(xiàn)(shxin)一次簡單的溫度轉(zhuǎn)換功能?根據(jù)DS18B20的通訊協(xié)議,主機(zhj)(單片機)控制DS18B20完成一次操作經(jīng)過以下步驟:首先要對DS18B20進行初始化操作跳過ROM 啟動芯片進行溫度轉(zhuǎn)換功能單片機對芯片ROM寫入指令0CCH單片機對RAM寫入命令44H,芯片開始進行溫度轉(zhuǎn)換釋放總線至少一秒1s內(nèi)芯片課完成溫度轉(zhuǎn)換工作。執(zhí)行過程與芯片工作時序相對應(yīng)共六十九頁如何對ROM、RAM區(qū)域(qy)寫入指令呢?如何讀取DS18B20采集的溫度值呢?共六十九頁二、DSl820工作(gngzu)過程及時序共六十九頁 DS18B20是單總線器件,通訊協(xié)議包

9、括幾種單線信號類型(lixng):復(fù)位脈沖、存在脈沖、寫0、寫1、讀0、讀1。所有這些信號,除存在脈沖外,其余都是由總線控制器(單片機)發(fā)出的。共六十九頁1、對DS18B20進行(jnxng)初始化復(fù)位操作圖3-2 初始化時序(sh x)共六十九頁對DS18B20進行初始化復(fù)位(f wi)操作從圖3-2,/讓DS18B20一段相對長時間低電平, 然后一段相對非常短時間高電平, 即可啟動(qdng)可以看出從t0t1時刻開始,低電平持續(xù)480s,這是復(fù)位秒沖。 對應(yīng)指令: t1時刻釋放總線進入到接收狀態(tài)DQ=0;delay_nus(600);DQ=1共六十九頁對DS18B20進行(jnxng)初

10、始化復(fù)位操作DS18B20在檢測到t1時刻的上升沿之后,等待60s,即t1t2時長。并在隨后的240微秒時間內(nèi)對總線進行檢測,如果有低電平出現(xiàn)說明總線上有器件(qjin)已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件(qjin)應(yīng)答。在圖3-2中為虛線所示。while(DQ) ; /接收到存在脈沖信號,跳出循環(huán) delay_nus(200);共六十九頁復(fù)位過程:要求(yoqi)主機將數(shù)據(jù)線下拉480960us,然后釋放,ds18b20在總線釋放后1660us內(nèi)發(fā)送一個存在脈沖,主機收到此信號表示復(fù)位成功.共六十九頁初始化程序(chngx)void ds18b20_reset() DQ

11、 = 1;DQ = 0;/拉低總線delay_nus(600); /精確延時在480-960usDQ = 1;/總線釋放(shfng)while(DQ); /等待存在脈沖,若為高電平,則一直等待delay_nus(200);共六十九頁為了完成一次溫度(wnd)轉(zhuǎn)換功能,我們接著需要分別對ROM、RAM 進行讀取操作。以命令44H為例:執(zhí)行一次溫度轉(zhuǎn)換指令,要向RAM內(nèi)寫入44H=0100 0100 ,命令芯片開始工作。單線型芯片通信屬于串行通信方式,也即是說,在一根數(shù)據(jù)線上單片機根據(jù)時序向芯片寫入0100 0100 這一組二進制數(shù),實現(xiàn)轉(zhuǎn)換功能。共六十九頁既然我們的指令是轉(zhuǎn)換成二進制代碼進行讀

12、寫的,那么我只需知道(zh do)如何向芯片寫入“0”和“1” 即可實現(xiàn)所有命令功能。共六十九頁2、寫時序(sh x)圖(2)寫時間隙(jin x)圖3-4 a為寫“0”時序 b為寫“1”時序ab共六十九頁共六十九頁時序(sh x)圖分析從圖3-4中,可以看出寫時序開始時DQ都為高電平 ,t0時刻為高電平,此時(c sh)主機認(rèn)為開始寫入數(shù)據(jù)。從t0到t1時刻,共計60s,時間分為2段。第一個15s之內(nèi)應(yīng)將所需寫的位送到總線上。此時,寫入數(shù)據(jù)“0”DQ = 1;DQ = 0; 共六十九頁DSl8B20在t0后15-60us間對總線采樣(ci yn),若低電平寫入的位是0,見圖3-4 a;若高電

13、平寫入的位是1,見圖3-3 b連續(xù)寫2位數(shù)據(jù),間隙應(yīng)大于1usdelay_nus(60);DQ = 1;_nop_();_nop_(); 共六十九頁寫0void ds18b20_write_bit0() DQ = 1;DQ = 0; /開始寫時間(shjin)片delay_nus(60); /精確延時在60-120usDQ = 1;_nop_();_nop_(); /為下一次寫做準(zhǔn)備共六十九頁任務(wù)(rn wu)2 KEIL中編寫寫“0”程序 編寫寫“1”程序共六十九頁程序(chngx)編寫void ds18b20_write_bit1() DQ = 1;DQ = 0; /開始寫時間片_nop_

14、();_nop_();_nop_();_nop_();_nop_();DQ = 1; /釋放(shfng)總線delay_nus(60);共六十九頁寫時序(sh x)總結(jié) 寫周期最少為60微秒,最長不超過120微秒。寫周期一開始做為主機先把總線拉低1微秒表示寫周期開始。隨后若主機想寫0,則繼續(xù)拉低電平最少60微秒直至寫周期結(jié)束(jish),然后釋放總線為高電平。 若主機想寫1,在一開始拉低總線電平1微秒后就釋放總線為高電平,一直到寫周期結(jié)束。而做為從機的DS18B20則在檢測到總線被拉底后等待15微秒然后從15us到45us開始對總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則

15、為0。共六十九頁3.讀時序(sh x)共六十九頁讀時序(sh x)讀時間隙(jin x)圖3-4 讀時序圖共六十九頁讀時隙是從主機把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在檢測到總線被拉低1微秒后,便開始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到(zhdo)讀周期結(jié)束。若要送出1則釋放總線為高電平。共六十九頁bit ds18b20_read_bit() bit temp;DQ = 1;DQ = 0; /開始(kish)讀時間片_nop_();_nop_();_nop_();DQ = 1; 共六十九頁 _nop_();_nop_

16、();_nop_();temp = DQ; /主機開始(kish)采樣delay_nus(60);return temp;共六十九頁任務(wù)(rn wu)3KEIL中編寫讀位(“0”、“1”)程序共六十九頁弄清了如何復(fù)位,如何寫1寫0和讀1讀0,我們現(xiàn)在就要看看在總線上如何進行實際的運用。請同學(xué)們自行編寫函數(shù)(hnsh),如何寫入一個字節(jié)?共六十九頁4.寫字節(jié)(z ji)最低位為0?向DS18B20寫“0”向DS18B20寫“1”數(shù)據(jù)右移1位8位數(shù)據(jù)寫完?Y N NY共六十九頁4.寫字節(jié)(z ji)void ds18b20_write_byte(unsigned char byte) unsign

17、ed char i,temp;temp = byte;for(i = 0;i = 1;共六十九頁讀到的數(shù)據(jù)(shj)為1?向存儲(cn ch)來自DS18B20的變量最高位寫“1”數(shù)據(jù)右移1位8位數(shù)據(jù)讀完? NY讀字節(jié)Y N共六十九頁讀字節(jié)(z ji)unsigned char ds18b20_read_byte() bit bit_temp;unsigned char i,temp = 0;for(i = 0;i = 1;bit_temp = bs18b20_read_bit();if(bit_temp) temp |= 0 x80; return temp;共六十九頁任務(wù)(rn wu)4K

18、EIL中編寫寫字節(jié)、讀字節(jié)程序共六十九頁首先(shuxin)要對DS18B20進行初始化操作跳過ROM 啟動芯片進行溫度(wnd)轉(zhuǎn)換功能單片機對芯片ROM寫入指令0CCH單片機對RAM寫入命令44H,芯片開始進行溫度轉(zhuǎn)換釋放總線至少一秒1s內(nèi)芯片課完成溫度轉(zhuǎn)換工作。執(zhí)行過程與芯片工作時序相對應(yīng)完整的溫度轉(zhuǎn)換過程共六十九頁首先(shuxin)要對DS18B20進行初始化操作跳過ROM 發(fā)送(f sn)命令讀RAM溫度數(shù)據(jù)單片機對芯片ROM寫入指令0CCH單片機對RAM寫入命令3EH,芯片開始進行溫度轉(zhuǎn)換接受來自DS18B20的兩字節(jié)數(shù)據(jù)讀兩個字節(jié)數(shù)據(jù)執(zhí)行過程與芯片工作時序相對應(yīng)共六十九頁至此,

19、一個完整的溫度(wnd)轉(zhuǎn)換過程,如下圖所示 ds18b20_reset();ds18b20_write_byte(SKIP_ROM);ds18b20_write_byte(CONVER_T); /開始(kish)溫度轉(zhuǎn)換delay_nms(800); /溫度轉(zhuǎn)換時間共六十九頁測得溫度后存在什么地方?如何讀取到溫度值,處理(chl)讀取到的溫度值,并把它在LCD上顯示?共六十九頁任務(wù)5KEIL中編寫讀溫度(wnd)程序共六十九頁三、在LCD1602上顯示溫度(wnd)采集數(shù)據(jù)共六十九頁溫度(wnd)轉(zhuǎn)換過程2、轉(zhuǎn)換(zhunhun)溫度共六十九頁2、讀取溫度(wnd)值讀取RAM內(nèi)的溫度(wn

20、d)數(shù)據(jù) ds18b20_reset();ds18b20_write_byte(SKIP_ROM);ds18b20_write_byte(READ_SCRATCHPAD);共六十九頁五、實時(sh sh)溫度采集(讀溫度)程序設(shè)計初始設(shè)置(shzh),沒有,按缺省Ds18b20_read_byte() 2次Ds18b20_write_byte(0 xcc)Ds18b20_reset()Ds18b20_write_byte(0 x44)Ds18b20_reset()Ds18b20_write_byte(0 xcc)Ds18b20_write_byte(0 xbe)Delay_nms(800)Ds18b20_reset()Write_byte(0 xcc)Ds18b20初始化從ds18b20讀溫度定義int型變量wenduzhi放溫度值的高、低8位共16位共六十九頁2、在LCD上進行(jnxng)顯示void main() unsigned char xdata str10; ds18b20_init(); LCM_Init(); while(1) ds18b20_read_temp();sprintf

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論