實(shí)驗(yàn)報(bào)告DS18B20溫度檢測(cè)控制_第1頁
實(shí)驗(yàn)報(bào)告DS18B20溫度檢測(cè)控制_第2頁
實(shí)驗(yàn)報(bào)告DS18B20溫度檢測(cè)控制_第3頁
實(shí)驗(yàn)報(bào)告DS18B20溫度檢測(cè)控制_第4頁
實(shí)驗(yàn)報(bào)告DS18B20溫度檢測(cè)控制_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)訓(xùn)五實(shí)訓(xùn)五 ds18b20ds18b20 溫度檢測(cè)控制實(shí)訓(xùn)溫度檢測(cè)控制實(shí)訓(xùn) 一、實(shí)訓(xùn)目的一、實(shí)訓(xùn)目的 1.溫度傳感器電路的工作原理。 2.了解溫度控制的基本原理。 3.掌握一線總線接口的使用。 二、實(shí)訓(xùn)說明二、實(shí)訓(xùn)說明 1.dallas 最新單線數(shù)字溫度傳感器 ds18b20 簡介 dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器 ds1820 是世界上第一片支持 “一線總線”接口 的溫度傳感器?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。 適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過程控制、測(cè)溫類消費(fèi)電子產(chǎn)品等。 與前一代產(chǎn)品不同,新的產(chǎn)品支持 3v5.5v 的電

2、壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便。 ds18b20 測(cè)量溫度范圍為 -55c+125c,在-10+85c 范圍內(nèi),精度為0.5 c。ds18b20 可以程序設(shè)定 912 位的分辨率,及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在 eeprom 中,掉電 后依然保存。 ds18b20 內(nèi)部結(jié)構(gòu) ds18b20 內(nèi)部結(jié)構(gòu)主要由四部分組成:64 位光刻 rom、溫度傳感器、非揮發(fā)的 溫度報(bào)警觸發(fā)器 th 和 tl、配置寄存器。ds18b20 的管腳排列如下: dq 為數(shù)字信號(hào)輸入/輸出端;gnd 為電源地;vdd 為外接供電電源輸入端(在 寄生電源接線方式時(shí)接地) 。 光刻 rom 中的 64 位序列號(hào)是出廠前被光刻好的

3、,它可以看作是該 ds18b20 的 地址序列碼。64 位光刻 rom 的排列是:開始 8 位(28h)是產(chǎn)品類型標(biāo)號(hào),接著的 48 位是該 ds18b20 自身的序列號(hào),最后 8 位是前面 56 位的循環(huán)冗余校訓(xùn)碼 (crc=x8+x5+x4+1) 。光刻 rom 的作用是使每一個(gè) ds18b20 都各不相同,這樣就可 以實(shí)現(xiàn)一根總線上掛接多個(gè) ds18b20 的目的。 ds18b20 中的溫度傳感器可完成對(duì)溫度的測(cè)量,以 12 位轉(zhuǎn)化為例:用 16 位符 號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625/lsb 形式表達(dá),其中 s 為符號(hào)位。 ls byte: bit7bit6bit5bi

4、t4bit3bit2bit1bit0 232221202-12-22-32-4 ms byte: bit15bit14bit13bit12bit11bit10bit9bit8 sssss262524 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲(chǔ)在 18b20 的兩個(gè) 8 比特的 ram 中,二進(jìn)制中的前 面 5 位是符號(hào)位,如果測(cè)得的溫度大于 0,這 5 位為 0,只要將測(cè)到的數(shù)值乘于 0.0625 即可得 到實(shí)際溫度;如果溫度小于 0,這 5 位為 1,測(cè)到的數(shù)值需要取反加 1 再乘于 0.0625 即可得到 實(shí)際溫度。 例如+125的數(shù)字輸出為 07d0h,+25.0625的數(shù)字輸出為

5、0191h,-25.0625的數(shù)字輸 出為 ff6fh,-55的數(shù)字輸出為 fc90h。 溫度數(shù)據(jù)輸出(二進(jìn)制) 數(shù)據(jù)輸出(十六進(jìn)制) +1250000 0111 1101 000007d0h +850000 0101 0101 00000550h +25.06250000 0001 1001 00010191h +10.1250000 0000 1010 001000a2h +0.50000 0000 0000 10000008h 00000 0000 0000 00000000h -0.51111 1111 1111 1000fff8h -10.1251111 1111 0101 1110

6、ff5eh -25.06251111 1110 0110 1111fe6fh -551111 1100 1001 0000fc90h ds18b20 溫度傳感器的存儲(chǔ)器 ds18b20 溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存 ram 和一個(gè)非易失性的可電擦除的 e2ram,后者存放高溫度和低溫度觸發(fā)器 th、tl 和結(jié)構(gòu)寄存器。 暫存存儲(chǔ)器包含了 8 個(gè)連續(xù)字節(jié),前兩個(gè)字節(jié)是測(cè)得的溫度信息,第一個(gè)字節(jié)的內(nèi)容是溫 度的低八位,第二個(gè)字節(jié)是溫度的高八位。第三個(gè)和第四個(gè)字節(jié)是 th、tl 的易失性拷貝,第 五個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新。第六、 七、八個(gè)字

7、節(jié)用于內(nèi)部計(jì)算。第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。 該字節(jié)各位的意義如下: tmr1r011111 低五位一直都是 1 ,tm 是測(cè)試模式位,用于設(shè)置 ds18b20 在工作模式還是在測(cè)試模式。 在 ds18b20 出廠時(shí)該位被設(shè)置為 0,用戶不要去改動(dòng)。r1 和 r0 用來設(shè)置分辨率,如下表所示: (ds18b20 出廠時(shí)被設(shè)置為 12 位) 分辨率設(shè)置表: r1r0分辨率溫度最大轉(zhuǎn)換時(shí)間 009 位93.75ms 0110 位187.5ms 1011 位375ms 1112 位750ms 根據(jù) ds18b20 的通訊協(xié)議,主機(jī)控制 ds18b20 完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀 寫之前都要

8、對(duì) ds18b20 進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條 rom 指令,最后發(fā)送 ram 指令,這樣才 能對(duì) ds18b20 進(jìn)行預(yù)定的操作。復(fù)位要求主 cpu 將數(shù)據(jù)線下拉 500 微秒,然后釋放,ds18b20 收到信號(hào)后等待 1660 微秒左右,后發(fā)出 60240 微秒的存在低脈沖,主 cpu 收到此信號(hào)表 示復(fù)位成功。 2、本實(shí)訓(xùn)在讀取溫度的基礎(chǔ)上,完成類似空調(diào)恒溫控制的實(shí)訓(xùn)。用加熱電阻代替加熱電 機(jī),制冷采用自然冷卻。溫度值通過 led 靜態(tài)顯示電路以十進(jìn)制形式顯示出來,制冷采用自然 冷卻。 三、實(shí)訓(xùn)步驟三、實(shí)訓(xùn)步驟 1.用二號(hào)導(dǎo)線分別連接單片機(jī)最小應(yīng)用系統(tǒng)的 p1.4、p2.0 到 ds1

9、8b20 模塊的 t-con、 out,連接 rxd(p3.0)、txd(p3.1)到串行靜態(tài)數(shù)碼顯示模塊的 din、clk 端。 2.將 89s52 芯片插到單片機(jī)最小應(yīng)用系統(tǒng)模塊的 40p 鎖緊插座中,請(qǐng)注意芯片的方向:缺請(qǐng)注意芯片的方向:缺 口朝上??诔?。用二號(hào)導(dǎo)線連接單片機(jī)最小應(yīng)用系統(tǒng)模塊的 ea/vp 端到電源模塊的+5v。 3.接好 ac 220v 電源,打開相關(guān)模塊的電源開關(guān), 用 isp 下載器將“th19_ds18b20.hex” 文件下載到 89s52 芯片中運(yùn)行(ispisp 下載器的使用查看附錄二)下載器的使用查看附錄二) 。 4.實(shí)訓(xùn)現(xiàn)象: 串行靜態(tài)數(shù)碼顯示模塊顯示

10、“xx”為十進(jìn)制溫度測(cè)量值, “xx”為十進(jìn)制溫 度設(shè)定值,當(dāng)加熱到設(shè)定的控制溫度時(shí)如 40 度時(shí),停止加熱。 四、實(shí)訓(xùn)電路圖四、實(shí)訓(xùn)電路圖 本實(shí)訓(xùn)需要用到單片機(jī)最小應(yīng)用系統(tǒng)模塊(c 區(qū)),ds18b20 模塊(a4 區(qū)), 串行靜態(tài)數(shù) 碼顯示模塊(a2 區(qū))。單片機(jī)最小應(yīng)用系統(tǒng)電路原理參考附錄三, 串行靜態(tài)數(shù)碼顯示電路原理 參考實(shí)訓(xùn)十圖 10.1,ds18b20 溫度控制接口電路原理參考圖 19.1。 r6a4 75/2w gnd 1 dq 2 vcc 3 q3a4 ds18b20 p2a4 out 1 23 q2a4 tip122 +12v_a4 p1a4 t-con led1a4 hea

11、ton q1a4 9013 vcc_a4 r2a4 1k r1a4 10k r4a4 470 r5a4 510 r3a4 2.4k gnd vcc_a4 12 34 56 j1a4 vcc vcc_a4+12v_a4 +12vvcc led2a4 vcc r7a4 510 vcc_a4 圖 19.1 ds18b20 溫度控制接口電路 五、實(shí)訓(xùn)源程序五、實(shí)訓(xùn)源程序 temper_l equ 29h ;用于保存讀出溫度的低 8 位 temper_h equ 28h ;用于保存讀出溫度的高 8 位 flag1 equ 38h ;是否檢測(cè)到 ds18b20 標(biāo)志位 a_bit equ 20h ;數(shù)碼管

12、個(gè)位數(shù)存放內(nèi)存位置 b_bit equ 21h ;數(shù)碼管十位數(shù)存放內(nèi)存位置 ledbuf equ 30h temp equ 55h din bit p1.0 clk bit p1.1 org 0000h ljmp start org 0100h start: setb p1.4 main: lcall get_temper ;調(diào)用讀溫度子程序 mov a,29h mov c,40h ;將 28h 中的最低位移入 c rrc a mov c,41h rrc a mov c,42h rrc a mov c,43h rrc a mov 29h,a lcall displayresult lcall

13、displayled ;調(diào)用數(shù)碼管顯示子程序 lcall delay1 ajmp main init_1820: ;這是 ds18b20 復(fù)位初始化子程序 setb p2.0 nop clr p2.0 mov r1,#3 ;主機(jī)發(fā)出延時(shí) 537 微秒的復(fù)位低脈沖 tsr1: mov r0,#107 djnz r0,$ djnz r1,tsr1 setb p2.0 ;然后拉高數(shù)據(jù)線 nop nop nop mov r0,#25h tsr2: jnb p2.0,tsr3 ;等待 ds18b20 回應(yīng) djnz r0,tsr2 ljmp tsr4 ; 延時(shí) tsr3: setb flag1 ; 置標(biāo)

14、志位,表示 ds1820 存在 ljmp tsr5 tsr4: clr flag1 ; 清標(biāo)志位,表示 ds1820 不存在 ljmp tsr7 tsr5: mov r0,#117 tsr6: djnz r0,tsr6 ; 時(shí)序要求延時(shí)一段時(shí)間 tsr7: setb p2.0 ret get_temper: ; 讀出轉(zhuǎn)換后的溫度值 setb p2.0 lcall init_1820 ;先復(fù)位 ds18b20 jb flag1,tss2 ret ; 判斷 ds1820 是否存在?若 ds18b20 不存在則返回 tss2: mov a,#0cch ; 跳過 rom 匹配 lcall write_

15、1820 mov a,#44h ; 發(fā)出溫度轉(zhuǎn)換命令 lcall write_1820 ;這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時(shí)一段時(shí)間,等待 ad 轉(zhuǎn)換結(jié)束,12 位的話 750 微秒 lcall delay1 lcall init_1820 ;準(zhǔn)備讀溫度前先復(fù)位 mov a,#0cch ; 跳過 rom 匹配 lcall write_1820 mov a,#0beh ; 發(fā)出讀溫度命令 lcall write_1820 lcall read_18200 ; 將讀出的溫度數(shù)據(jù)保存到 35h/36h ret ;寫 ds18b20 的子程序(有具體的時(shí)序要求) write_1820: mov r2,#8

16、;一共 8 位數(shù)據(jù) clr c wr1: clr p2.0 mov r3,#6 djnz r3,$ rrc a mov p2.0,c mov r3,#23 djnz r3,$ setb p2.0 nop djnz r2,wr1 setb p2.0 ret ; 讀 ds18b20 的程序,從 ds18b20 中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù) read_18200: mov r4,#2 ; 將溫度高位和低位從 ds18b20 中讀出 mov r1,#29h ; 低位存入 29h(temper_l),高位存入 28h(temper_h) re00: mov r2,#8;數(shù)據(jù)一共有 8 位 re01: clr

17、 c setb p2.0 nop nop clr p2.0 nop nop nop setb p2.0 mov r3,#9 re10: djnz r3,re10 mov c,p2.0 mov r3,#23 re20: djnz r3,re20 rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 ret displayled: ;顯示子程序 mov ledbuf+5,#10h mov r0,#ledbuf mov r1,#temp mov r2,#8 dp10: mov dptr,#ledmap mov a,r0 movc a,a+dptr mov r

18、1,a inc r0 inc r1 djnz r2,dp10 mov r0,#temp mov r1,#8 dp12: mov r2,#8 mov a,r0 dp13: rlc a mov din,c clr clk setb clk djnz r2,dp13 inc r0 djnz r1,dp12 ret ledmap: db3fh,6h,5bh,4fh,66h,6dh ;0,1,2,3,4,5 db7dh,7h,7fh,6fh,77h,7ch ;6,7,8,9,a,b db58h,63h,7bh,71h,00h,40h ;c,o,e,f, , - db 63h,39h,63h displayresult: mov ledbuf, #10h mov ledbuf+3, #14h mov ledbuf+4, #13h goon: mov a,29h ;將 29h 中的十六進(jìn)制數(shù)轉(zhuǎn)換成 10 進(jìn)制 mov b, #10 div ab mov ledbuf+1, a ;3 mov a, b m

溫馨提示

  • 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. 人人文庫網(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)論