實驗報告DS18B20溫度檢測控制_第1頁
實驗報告DS18B20溫度檢測控制_第2頁
實驗報告DS18B20溫度檢測控制_第3頁
實驗報告DS18B20溫度檢測控制_第4頁
實驗報告DS18B20溫度檢測控制_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、bit4bit3bit2bit1bit0 232221202-12-22-32-4 ms byte: 2 bit15bit14bit13bit12bit11bit10bit9bit8 sssss262524 這是 12 位轉化后得到的 12 位數據,存儲在 18b20 的兩個 8 比特的 ram 中,二進制中的前 面 5 位是符號位,如果測得的溫度大于 0,這 5 位為 0,只要將測到的數值乘于 0.0625 即可得 到實際溫度;如果溫度小于 0,這 5 位為 1,測到的數值需要取反加 1 再乘于 0.0625 即可得到 實際溫度。 例如+125的數字輸出為 07d0h,+25.0625的數字

5、輸出為 0191h,-25.0625的數字輸 出為 ff6fh,-55的數字輸出為 fc90h。 溫度數據輸出(二進制) 數據輸出(十六進制) +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

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

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

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

9、 到 ds18b20 模塊的 t-con、 out,連接 rxd(p3.0)、txd(p3.1)到串行靜態數碼顯示模塊的 din、clk 端。 2.將 89s52 芯片插到單片機最小應用系統模塊的 40p 鎖緊插座中,請注意芯片的方向:缺請注意芯片的方向:缺 口朝上。口朝上。用二號導線連接單片機最小應用系統模塊的 ea/vp 端到電源模塊的+5v。 3.接好 ac 220v 電源,打開相關模塊的電源開關, 用 isp 下載器將“th19_ds18b20.hex” 文件下載到 89s52 芯片中運行(ispisp 下載器的使用查看附錄二)下載器的使用查看附錄二) 。 4.實訓現象: 串行靜態數碼

10、顯示模塊顯示“xx”為十進制溫度測量值, “xx”為十進制溫 度設定值,當加熱到設定的控制溫度時如 40 度時,停止加熱。 四、實訓電路圖四、實訓電路圖 本實訓需要用到單片機最小應用系統模塊(c 區),ds18b20 模塊(a4 區), 串行靜態數 碼顯示模塊(a2 區)。單片機最小應用系統電路原理參考附錄三, 串行靜態數碼顯示電路原理 參考實訓十圖 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 led1

11、a4 heaton 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 4 圖 19.1 ds18b20 溫度控制接口電路 五、實訓源程序五、實訓源程序 temper_l equ 29h ;用于保存讀出溫度的低 8 位 temper_h equ 28h ;用于保存讀出溫度的高 8 位 flag1 equ 38h ;是否檢測到 ds18b20 標志位 a_bit equ

12、20h ;數碼管個位數存放內存位置 b_bit equ 21h ;數碼管十位數存放內存位置 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 ;調用讀溫度子程序 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 displayresul

13、t lcall displayled ;調用數碼管顯示子程序 lcall delay1 ajmp main init_1820: ;這是 ds18b20 復位初始化子程序 setb p2.0 nop clr p2.0 mov r1,#3 ;主機發出延時 537 微秒的復位低脈沖 5 tsr1: mov r0,#107 djnz r0,$ djnz r1,tsr1 setb p2.0 ;然后拉高數據線 nop nop nop mov r0,#25h tsr2: jnb p2.0,tsr3 ;等待 ds18b20 回應 djnz r0,tsr2 ljmp tsr4 ; 延時 tsr3: setb

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

15、all write_1820 mov a,#44h ; 發出溫度轉換命令 lcall write_1820 ;這里通過調用顯示子程序實現延時一段時間,等待 ad 轉換結束,12 位的話 750 微秒 lcall delay1 lcall init_1820 ;準備讀溫度前先復位 mov a,#0cch ; 跳過 rom 匹配 lcall write_1820 mov a,#0beh ; 發出讀溫度命令 6 lcall write_1820 lcall read_18200 ; 將讀出的溫度數據保存到 35h/36h ret ;寫 ds18b20 的子程序(有具體的時序要求) write_182

16、0: mov r2,#8;一共 8 位數據 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 中讀出兩個字節的溫度數據 read_18200: mov r4,#2 ; 將溫度高位和低位從 ds18b20 中讀出 mov r1,#29h ; 低位存入 29h(temper_l),高位存入 28h(temper_h) re00: mov r2,#8;數據一共有 8

17、 位 re01: clr c setb p2.0 nop nop clr p2.0 nop nop nop setb p2.0 mov r3,#9 re10: djnz r3,re10 7 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

18、a,a+dptr mov r1,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, , - 8 db 63h,39h,63h displayresult: mov ledbuf, #10h mov ledbuf+3, #14h mov ledbuf+4, #13h goon: mov a,29h ;將 29h 中的十六進制數轉換成 10 進制 mov b, #10 div ab mov ledbuf+1, a ;3 mov a, b m

溫馨提示

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

評論

0/150

提交評論