溫度檢測與控制實驗報告(共10頁)_第1頁
溫度檢測與控制實驗報告(共10頁)_第2頁
溫度檢測與控制實驗報告(共10頁)_第3頁
溫度檢測與控制實驗報告(共10頁)_第4頁
溫度檢測與控制實驗報告(共10頁)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)實驗三十二 溫度傳感器溫度控制實驗一、實驗目的一、實驗目的1.了解溫度傳感器電路的工作原理2.了解溫度控制的基本原理3.掌握一線總線接口的使用二、實驗說明二、實驗說明這是一個綜合硬件實驗,分兩大功能:溫度的測量和溫度的控制。1.DALLAS 最新單線數字溫度傳感器 DS18B20 簡介Dallas 半導體公司的數字化溫度傳感器 DS1820 是世界上第一片支持 “一線總線”接口的溫度傳感器?,F場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現場溫度測量,如:環(huán)境控制、設備或過程控制、測溫類消費電子產品等。與前一代產品不

2、同,新的產品支持 3V5.5V 的電壓范圍,使系統(tǒng)設計更靈活、方便。DS18B20 測量溫度范圍為 -55C+125C,在-10+85C 范圍內,精度為0.5C。DS18B20 可以程序設定 912 位的分辨率,及用戶設定的報警溫度存儲在 EEPROM 中,掉電后依然保存。DS18B20 內部結構DS18B20 內部結構主要由四部分組成:64 位光刻 ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器 TH 和 TL、配置寄存器。DS18B20 的管腳排列如下:DQ 為數字信號輸入/輸出端;GND 為電源地;VDD 為外接供電電源輸入端(在寄生電源接線方式時接地) 。光刻 ROM 中的 64 位序列號

3、是出廠前被光刻好的,它可以看作是該 DS18B20 的地址序列碼。64 位光刻 ROM 的排列是:開始 8 位(28H)是產品類型標號,接著的 48 位是該DS18B20 自身的序列號,最后 8 位是前面 56 位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1) 。光刻 ROM 的作用是使每一個 DS18B20 都各不相同,這樣就可以實現一根總線上掛接多個DS18B20 的目的。DS18B20 中的溫度傳感器可完成對溫度的測量,以 12 位轉化為例:用 16 位符號擴展的二進制補碼讀數形式提供,以 0.0625/LSB 形式表達,其中 S 為符號位。LS Byte:精選優(yōu)質文檔-傾情為你奉上專

4、心-專注-專業(yè)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0232221202-12-22-32-4MS Byte:Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8SSSSS262524這是 12 位轉化后得到的 12 位數據,存儲在 18B20 的兩個 8 比特的 RAM 中,二進制中的前面 5 位是符號位,如果測得的溫度大于 0,這 5 位為 0,只要將測到的數值乘于0.0625 即可得到實際溫度;如果溫度小于 0,這 5 位為 1,測到的數值需要取反加 1 再乘于 0.0625 即可得到實際溫度。例如+125的數字輸出為 07D0H,+25.

5、0625的數字輸出為 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 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000FFF8h-10.1251111 1111 0101 1110

6、FF5Eh-25.06251111 1110 0110 1111FE6Fh-551111 1100 1001 0000FC90hDS18B20 溫度傳感器的存儲器DS18B20 溫度傳感器的內部存儲器包括一個高速暫存 RAM 和一個非易失性的可電擦除的 E2RAM,后者存放高溫度和低溫度觸發(fā)器 TH、TL 和結構寄存器。暫存存儲器包含了 8 個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的內容是溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是 TH、TL 的易失性拷貝,第五個字節(jié)是結構寄存器的易失性拷貝,這三個字節(jié)的內容在每一次上電復位時被刷新。第六、七、八個字節(jié)用于內部計算。

7、第九個字節(jié)是冗余檢驗字節(jié)。該字節(jié)各位的意義如下: TMR1R011111低五位一直都是 1 ,TM 是測試模式位,用于設置 DS18B20 在工作模式還是在測試模式。在 DS18B20 出廠時該位被設置為 0,用戶不要去改動。R1 和 R0 用來設置分辨率,如下表所示:(DS18B20 出廠時被設置為 12 位)分辨率設置表: R1R0分辨率溫度最大轉換時間009 位93.75ms精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)0110 位187.5ms1011 位375ms1112 位750ms根據 DS18B20 的通訊協(xié)議,主機控制 DS18B20 完成溫度轉換必須經過三個步驟:每一次讀寫之前

8、都要對 DS18B20 進行復位,復位成功后發(fā)送一條 ROM 指令,最后發(fā)送 RAM 指令,這樣才能對 DS18B20 進行預定的操作。復位要求主 CPU 將數據線下拉 500 微秒,然后釋放,DS18B20 收到信號后等待 1660 微秒左右,后發(fā)出 60240 微秒的存在低脈沖,主 CPU 收到此信號表示復位成功。2.本實驗在讀取溫度的基礎上,完成類似空調恒溫控制的實驗。用加熱電阻代替加熱電機,制冷采用自然冷卻。溫度值通過 LED 靜態(tài)顯示電路以十進制形式顯示出來,同時顯示電路還將顯示設定的恒溫值,通過鍵盤可以改變設定值。按一次升高鍵,恒溫值加 1,按一次降低鍵,恒溫值減小 1。恒溫值在

9、250范圍內可調。當實際溫度低于設定的恒定溫度 2時,單片機發(fā)出指令信號,繼電器吸合,紅色 LED 點亮,加熱電阻開始加熱。當溫度超過設定的恒溫值 2時,單片機發(fā)出指令信號,繼電器斷開,紅色 LED 熄滅,加熱電阻停止加熱,制冷采用自然冷卻。三、實驗內容及步驟三、實驗內容及步驟1.用串行數據通信線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。2.打開 Keil uVision2 仿真軟件,首先建立本實驗的項目文件,接著添加“DS18B20.ASM”源程序,編譯無誤后,全速運行程序。3.程序正常運行后,按下自鎖開關控制 。5LED 數顯為“ XX20” , “X

10、X”為十進制溫度測量值,當氣溫低于 0,或者模擬信號輸入端的電位器沒有逆時針旋到底時,溫度值前面出現“-” 號。 “20”為十進制溫度設定值,按設定鍵升高 、 降低可以改變設定值。當測量值小于設定值 2 個字時,加熱啟動,當實際值超過設定值 2 個字時,加熱停止。4.可把源程序編譯成可執(zhí)行文件,燒錄到 89C51 芯片中。四、源程序四、源程序 LEDBUF EQU 60H ;顯示緩存 1 TEMP EQU 65H ;顯示緩存 2 UP EQU 1 ;1 鍵定義為增加鍵 DOWN EQU 2 ;2 鍵定義為減小鍵 LOWLIMIT EQU 2 ;設定值最低為 2 HIGHLIMIT EQU 50

11、 ;設定值最高為 50 FLAG1 EQU 38H ;是否檢測到 DS18B20 標志位 SETTEMP EQU 50H ;溫度設定值緩存 CURTEMP EQU 29H ;溫度實際值緩存 DIN BIT P3.0 ;串行顯示數據口 CLK BIT P3.1 ;串行顯示時鐘口 ORG 0000H LJMP START ORG 0100H 精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)START: MOV SETTEMP, #20 ;設定值初值 20MLOOP: LCALL TESTKEY ;測試鍵盤是否有鍵按下 CJNE A,#03H,KEYPRESSED ;有鍵按下,處理按鍵MLOOP1: AC

12、ALL DISPLAYRESULT ;無鍵按下,調顯示 ACALL DISPLAYLED ACALL GET_TEMPER ;調用讀溫度子程序 MOV A, CURTEMP JB ACC.7, LE0 ;為負值 CLR C MOV B, SETTEMP ;為正值時與設定值比較 DEC B DEC B SUBB A, B JNC GN2 ;小于(設定值-2) ,加熱 LE0: SETB P3.2 SJMP GN4 GN2: MOV A, CURTEMP SETB C MOV B, SETTEMP INC B INC B SUBB A, B JC GN4 ;大于(設定值+2) ,停止加熱 CLR

13、P3.2 SJMP GN4 GN4: ACALL DELAY1 LJMP MLOOP ;大循環(huán)KEYPRESSED: ;處理按鍵 LCALL GETKEY ;讀取鍵值 MOV B, A XRL A, #DOWN JNZ KEY0 MOV A, SETTEMP XRL A, #LOWLIMIT JZ KEY1 DEC SETTEMP SJMP KEY1 KEY0: MOV A, B XRL A, #UP JNZ KEY1 MOV A, SETTEMP XRL A, #HIGHLIMIT JZ KEY1 INC SETTEMP KEY1: LJMP MLOOP1INIT_1820: ;這是 DS1

14、8B20 復位初始化子程序精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè) SETB P2.0 NOP CLR P2.0 ;主機發(fā)出延時 537 微秒的復位低脈沖 MOV R1,#3TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB P2.0 ;然后拉高數據線 NOP NOP NOP MOV R0,#25HTSR2: JNB P2.0,TSR3 ;等待 DS18B20 回應 DJNZ R0,TSR2 LJMP TSR4 ;延時TSR3: SETB FLAG1 ;置標志位,表示 DS1820 存在 LJMP TSR5TSR4: CLR FLAG1 ;清標志位,表

15、示 DS1820 不存在 LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6 ;時序要求延時一段時間TSR7: SETB P2.0 RETGET_TEMPER: ;讀出轉換后的溫度值 SETB P2.0 LCALL INIT_1820 ;先復位 DS18B20 JB FLAG1,TSS2 RET ;判斷 DS1820 是否存在?若 DS18B20 不存在則返回TSS2: MOV A,#0CCH ;跳過 ROM 匹配 LCALL WRITE_1820 MOV A,#44H ;發(fā)出溫度轉換命令 LCALL WRITE_1820;這里通過調用顯示子程序實現延時一

16、段時間,等待 AD 轉換結束 LCALL DELAY1 LCALL INIT_1820 ;準備讀溫度前先復位 MOV A,#0CCH ;跳過 ROM 匹配 LCALL WRITE_1820 MOV A,#0BEH ;發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 ;將讀出的溫度數據保存到 35H/36H MOV A,CURTEMP MOV C,40H ;將 28H 中的最低位移入 C RRC A MOV C,41H RRC A MOV C,42H精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè) RRC A MOV C,43H RRC A MOV CURTEMP,A

17、 RETWRITE_1820: ;寫 DS18B20 的子程序(有具體的時序要求) 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 RETREAD_18200: ;讀 DS18B20 的程序,從 DS18B20 中讀出兩個字節(jié)的溫度數據 MOV R4,#2 ;將溫度高位和低位從 DS18B20 中讀出 MOV R1,#CURTEMP ;低位存入 29H,高位存入 28HRE00

18、: MOV R2,#8 ;數據一共有 8 位RE01: CLR C SETB P2.0 NOP NOP CLR P2.0 NOP NOP NOP SETB P2.0 MOV R3,#9RE10: DJNZ R3,RE10 MOV C,P2.0 MOV R3,#23RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RETDISPLAYLED: ;數碼管顯示 MOV R0,#LEDBUF精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè) MOV R1,#TEMP MOV R2,#5DP10: MOV DPTR,#LEDMA

19、P MOV A,R0 MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R2,DP10 MOV R0,#TEMP MOV R1,#5DP12: MOV R2,#8 MOV A,R0DP13: RLC A MOV DIN,C CLR CLK SETB CLK DJNZ R2,DP13 INC R0 DJNZ R1,DP12 RETLEDMAP: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,B DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F,

20、 , - DB 63H,39H ;DISPLAYRESULT: ;十六進制轉換為十進制 MOV A, CURTEMP JNB ACC.7, GE0 MOV LEDBUF, #11H ;- DEC A CPL A LJMP GOONGE0: MOV LEDBUF, #10H ; GOON: MOV B, #10 DIV AB MOV LEDBUF+1, A MOV A, B MOV LEDBUF+2, A MOV A, SETTEMP MOV B, #10 DIV AB MOV LEDBUF+3,A MOV A, B MOV LEDBUF+4,A RET TESTKEY: ;測試鍵盤是否有鍵按下

21、精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè) MOV P1, #03H MOV A, P1 ;讀入鍵狀態(tài) RETKEYTABLE: ;鍵碼定義 DB 02H,01H,0F7H DB 0EFH,0DFH,0BFH,07FH GETKEY: MOV R6,#10 LCALL DELAY MOV A,P1 ANL A,#03H ;高六位不用 CJNE A,#03H,K01 ;確有鍵按下 LJMP MLOOPK01: MOV R3,#2 ;2 個鍵 MOV R2,#0 ;鍵碼 MOV B,A ;暫存鍵值 MOV DPTR,#KEYTABLEK02: MOV A,R2 MOVC A,A+DPTR ;從鍵值表中取鍵值 CJNE A,B,K04 ;鍵值比較 MOV A,R2 ;得鍵碼 INC A RETK04: INC

溫馨提示

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

評論

0/150

提交評論