基于MATLAB的溫度檢測系統(tǒng)設(shè)計_第1頁
基于MATLAB的溫度檢測系統(tǒng)設(shè)計_第2頁
基于MATLAB的溫度檢測系統(tǒng)設(shè)計_第3頁
基于MATLAB的溫度檢測系統(tǒng)設(shè)計_第4頁
基于MATLAB的溫度檢測系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于MATLAB的溫度檢測系統(tǒng)設(shè)計成人教育學(xué)院畢業(yè)設(shè)計論文2012 年 6 月目錄1系統(tǒng)總體結(jié)構(gòu) 42系統(tǒng)硬件 42.1系統(tǒng)的硬件設(shè)計 42.2 AT89S52單片機實驗開發(fā)板 52.2.1 AT89S52單片機介紹 62.2.2 串行接口介紹 82.3 DS18B2C傳感器簡介2.3.1 DS18B2C內(nèi)部結(jié)構(gòu) 10112.3.2 DS18B20 的工作原理102.3.3 DS18B20的指令系統(tǒng) 122.3.4 DS18B20的通信協(xié)議 132.3.5 DS18B20使用中注意事項 142.3.6 DS18B20與單片機的典型接口設(shè)計 153系統(tǒng)的軟件設(shè)計 163.1 下位機程序設(shè)計163

2、.2 MATLAB程序設(shè)計 173.2.1 MATLAB串口通信技術(shù) 183.2.2 MATLAB GUI 介紹 203.2.3 GUI界 面 設(shè)計214系統(tǒng)調(diào)試234.1下位機調(diào)試 234.2串口調(diào)試 234.3系統(tǒng)聯(lián)調(diào) 24基于MATLAB勺溫度檢測系統(tǒng)設(shè)計、, 、-前言溫度是工業(yè)控制中主要的被控參數(shù)之一, 特別是在冶金、 化工、建材、食品、機械、石油等工業(yè)中,具有舉足重輕的作用。傳統(tǒng)靠人工控制的溫度、濕度、液 位等信號的測壓力控系統(tǒng),外圍電路比較復(fù)雜,測量精度較低,分辨率不高,需 進(jìn)行溫度校準(zhǔn)非線性校準(zhǔn)、溫度補償、傳感器標(biāo)定等;且它們的體積較大、使用 不夠方便,更重要的是參數(shù)的設(shè)定需要有

3、其它儀表的參與, 外界設(shè)備多,成本高, 因而越來越適應(yīng)不了社會的要求。 在對多類型、 多通道信號同時進(jìn)行檢測和控制 中,傳統(tǒng)的測控系統(tǒng)能力有限。如何將計算機與各種設(shè)施、設(shè)備結(jié)合,簡化人工 操作并實現(xiàn)自動控制,滿足社會的需求,成為一個很迫切的問題。溫度檢測是現(xiàn)代檢測技術(shù)的重要組成部分, 在保證產(chǎn)品質(zhì)量、 節(jié)約能源和安 全生產(chǎn)等方面起著關(guān)鍵的作用。 隨著電子技術(shù)和微型計算機的迅速發(fā)展, 微機測 量和控制技術(shù)得到了迅速的發(fā)展和廣泛的應(yīng)用。 單片機具有處理能力強、 運行速 度快、功耗低等優(yōu)點, 應(yīng)用在溫度測量與控制方面, 控制簡單方便, 測量范圍廣, 精度較高。 由單片集成電路構(gòu)成的溫度傳感器的種類越

4、來越多, 測量的精度越來 越高,響應(yīng)時間越來越短, 因其使用方便、 無需變換電路等特點已經(jīng)得到了廣泛 的應(yīng)用,例如:以前常用的AD590和LM35等,以及現(xiàn)在得到廣泛應(yīng)用的 DSI820、 DS1821和DS1620等。本次畢業(yè)設(shè)計正是為了完成溫度采集而設(shè)計的,而且采用 了美國DALLAS公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器 DS18B20由于物體的性質(zhì) 與穩(wěn)定有著非常密切的關(guān)系, 因此在工農(nóng)業(yè)生產(chǎn)中, 經(jīng)常會遇到溫度的測量和控 制問題,它對保證生產(chǎn)質(zhì)量、 提高生產(chǎn)效率、 節(jié)約能源及促進(jìn)國民經(jīng)濟(jì)的發(fā)展起 著非常重要的作用。新型數(shù)字化、 網(wǎng)絡(luò)化傳感器在工程中的應(yīng)用具有極其重要的意義。 這類傳感 器是

5、 各種參量送入計算機系統(tǒng),進(jìn)行智能監(jiān)測、控制的最前端。隨著科技的發(fā) 展,數(shù)字化、 網(wǎng)絡(luò)化傳感器應(yīng)用日益廣泛, 以其傳統(tǒng)方式不可比擬的優(yōu)勢漸漸成 為技術(shù)的趨勢和主流。近年來,利用智能化數(shù)字式溫度傳感器以實現(xiàn)溫度信息的在線檢測已成為溫度檢測技術(shù)的一種發(fā)展趨勢。 數(shù)字化技術(shù)推動了信息化的革命, 在傳感器 的器件結(jié)構(gòu)上采用數(shù)字化技術(shù), 使信息的采集更加方便。 例如,對于溫度信號采 集系統(tǒng),傳統(tǒng)的模擬溫度傳感器多為鉑電阻、 銅電阻等。 每一個傳輸線至少有兩 根導(dǎo)線,帶補償接法需要三根導(dǎo)線。 如果對 50 路溫度信號進(jìn)行檢測, 就需要 100 根導(dǎo)線接到采集端口,然后還要經(jīng)過電橋電路、信號放大、通道選擇、

6、AD 轉(zhuǎn)換等,才能將溫度信號供計算機處理。 而DS18B2C新型單總線數(shù)字溫度傳感器,采 用3腳或8腳封裝,從DS18B20賣出或圖 1 總設(shè)計框圖寫入數(shù)據(jù)僅需要一根I / O 口線。,使得硬件電路結(jié)構(gòu)簡單,廣泛使用于距離遠(yuǎn), 節(jié)點分布多的場合。具有較強的推廣應(yīng)用價值。1 系統(tǒng)總體結(jié)構(gòu)本次設(shè)計的目的就是以數(shù)字傳感器 DS18B20乍為前端,采集溫度經(jīng)過 單片機處理后,再采用串口通信,在 MATLAB境下對數(shù)據(jù)進(jìn)行分析與處理,將 結(jié)果用圖形顯示并儲存,完成人機交互過程。系統(tǒng)總體設(shè)計如圖 1 所示。本系統(tǒng)的設(shè)計包括硬件和軟件兩大部分。 系統(tǒng)的硬件部分大致可分為四部分:DS18B2喘度采集部分、單片

7、機處理部分、顯示部分、與計算機串口通 信部分。系統(tǒng)的軟件部分分為五大部分: 讀取DS18B20勺內(nèi)部數(shù)據(jù)部分、單片機 對溫度的處理部分、數(shù)碼顯示部分、串口通信部分、MATLAB面部分。2 系統(tǒng)硬件2.1 系統(tǒng)的硬件設(shè)計在本設(shè)計提出在上位機 MATLAB環(huán)境下,使用RS232串行接口實時接 收。該方法較之使用VC VB高級語言編程,極大地縮減了開發(fā)時間,提高了開發(fā)效率。系統(tǒng)主要由上位機 PC機和下位機AT89S52部分。上位機和下位機通過RS232進(jìn)行通訊。上位機負(fù)責(zé)數(shù)據(jù)處理和圖形化顯示,它是在 MATLAB境下進(jìn) 行的,應(yīng)用了儀器控制工具箱中關(guān)于串行通信的函數(shù), 通過程序控制整個系統(tǒng)的 工作并

8、進(jìn)行數(shù)據(jù)處理。下位機負(fù)責(zé)數(shù)據(jù)采集和響應(yīng)主機的控制處理信號。本設(shè)計中,由DS18B20勾成的單片機溫度測量裝置主要由四部成:DS18B20溫 度傳感器、AT89S52顯示模塊和電源模塊圖2所示。產(chǎn)品的主要技術(shù)指標(biāo):測 量范圍:-55.0 C+125.0 C,測量精度:0.1 C,反應(yīng)時間w 1.5s。圖 2 溫度檢測系統(tǒng)結(jié)勾圖2.2 AT89S52單片機實驗開發(fā)板該開發(fā)板可對 ATMEL公司的89S5x系列ISP單片機AT89S51AT89S52 AT89S53 AT89LS53 AT89S8252、AT89LS8252的 DIP40 封裝的器 件進(jìn)行直接編程操作。單片機開發(fā)板結(jié)勾如圖3。圖3

9、AT89S5x單片機實驗開發(fā)板整體結(jié)構(gòu)開發(fā)板的結(jié)勾:1CPU系統(tǒng):包括復(fù)位、時鐘、在線編程電路及I/O引線插孔;2 串行接口:采用 232 構(gòu)成;3顯示模塊:采用串行顯示,由六片 74HC164和六個七段共陰數(shù)碼管 組成;4模數(shù)轉(zhuǎn)換模塊:采用ADC0809及外圍器件,能實現(xiàn)8路八位的模數(shù)采集;5數(shù)模轉(zhuǎn)換模塊:采用串行 D/A轉(zhuǎn)換TLC5616能實現(xiàn)10位的數(shù)模轉(zhuǎn)換;6LED顯示模塊:由8個LED燈構(gòu)成,其中3個紅燈、2個黃燈、3個綠燈;7 單脈沖發(fā)生電路:產(chǎn)生單個正或負(fù)脈沖;8 用戶外接元件區(qū):方便用戶外加少量外接元件進(jìn)行實驗。本設(shè)計只用到CPU系統(tǒng),串行接口,顯示模塊。CPU系統(tǒng)由AT89S

10、52 單片機組成。串行接口是 RS232串口。下面對各個部分作一簡單介紹。2.2.1 AT89S52 單片機介紹2.2.1.1 單片機簡介Atmel公司的AT89S52芯片是一種低功耗、高性能CMOS位微控制器, 具有 8K 在系統(tǒng)可編程 Flash 存儲器。使用 Atmel 公司高密度非易失性存儲器 技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容。片上 Flash 允許程序存儲 器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有 效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Fl

11、ash,256字節(jié)RAM 32位 I/O 口線,看門狗定時器, 2 個數(shù)據(jù)指針,三個 16 位定時器 / 計數(shù)器,一個 6 向量 2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU亭止工 作,允許RAM定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存, 振蕩器被凍結(jié), 單片機一切工作亭止, 直到下一個中斷或硬件復(fù)位 為止。2.2.1.2 單片機引腳功能AT89S52芯片采用40腳雙列直插封裝方式。當(dāng)然,不同芯片之間引腳功能也略有差異。AT89S52單片機是高性能單片機,因為受到引腳數(shù)

12、目的限制, 有部分引腳具有第二功能。引腳分配如圖 4所示。圖 4 AT89S52 雙列直插式封裝和引腳分配下面以雙列直插式為例,介紹AT89S52單片機的引腳。引腳可分為三 個部分: I/O 口引腳、控制引腳和電源時鐘引腳。P0 口: P0 口是一個8位漏極開路的雙向I/O 口。作為輸出口,每位 能驅(qū)動8個TTL邏輯電平。對P0端口寫“ 1”時,弓I腳用作高阻抗輸入。當(dāng)訪問 外部程序和數(shù)據(jù)存儲器時,P0 口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0具有內(nèi)部上拉電阻。在flash編程時,P0 口也用來接收指令字節(jié);在程序校 驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1 口: P

13、1 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口, p1 輸出 緩沖器能驅(qū)動 4 個 TTL 邏輯電平。對 P1 端口寫“1”時,內(nèi)部上拉電阻把端口 拉高,此時可以作為輸入口使用。 作為輸入使用時, 被外部拉低的引腳由于內(nèi)部 電阻的原因,將輸出電流( IIL )。此外, P1.0 和 P1.2 分別作定時器 /計數(shù)器 2 的外部計數(shù)輸入(P1.0/T2 )和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如 表 1 所示。表 1 P1 口的第二功能P2 口: P2 口是一個具有內(nèi)部上拉電阻的 8位雙向I/O 口,P2輸出 緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“ 1”時,內(nèi)部上

14、拉電阻把端口 拉高,此時可以作為輸入口使用。 作為輸入使用時, 被外部拉低的引腳由于內(nèi)部 電阻的原因,將輸出電流( IIL )。在訪問外部程序存儲器或用 16位地址讀取外 部數(shù)據(jù)存儲器(例如執(zhí)行 MOVDPTR時,P2 口送出高八位地址。在這種應(yīng)用 中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX RI訪問外 部數(shù)據(jù)存儲器時,P2 口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2 口也 接收高 8 位地址字節(jié)和一些控制信號。P3 口 : P3 口是一個具有內(nèi)部上拉電阻的 8位雙向I/O 口,p2輸出 緩沖器能驅(qū)動 4 個 TTL 邏輯電平。對 P3 端口寫“1”時,內(nèi)部上

15、拉電阻把端口 拉高,此時可以作為輸入口使用。 作為輸入使用時, 被外部拉低的引腳由于內(nèi)部 電阻的原因,將輸出電流(IIL )。P3 口亦作為AT89S52特殊功能(第二功能) 使用,如表2所示。在flash編程和校驗時,P3 口也接收一些控制信號。2.2.2 串行接口介紹2.2.2.1 RS232C 簡介計算機與計算機或計算機與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行 通訊二種方式。 由于串行通訊方式具有使用線路少、 成本低, 特別是在遠(yuǎn)程傳輸 時,避免了多條線路特性的不一致而被廣泛采用。 在串行通訊時, 要求通訊雙方 都采用一個標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通訊。RS-232-

16、C接口又稱EIARS-232-C是目前最常用的一種串行通訊接口。它是在1970年由美國電子工業(yè)協(xié)會EIA聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家共同 制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是數(shù)據(jù)終端設(shè)備DTE和數(shù)據(jù)通訊設(shè)備DC之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)該標(biāo)準(zhǔn)規(guī)定采用一個25個腳的DB25 連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定, 還對各種信號的電平加以規(guī)1接口的信號內(nèi)容:實際上 RS-232-C的25條引線中有許多是很少使用的, 在計算機與終端通訊中一般只使用 39條引線2接口的電氣特性:在RS-232-C中任何一條信號線的電壓均為負(fù)邏輯關(guān)系。即邏輯“ 1”,-5-15V:邏

17、輯“ 0”,+5+15V。噪聲容限為:2V。即要求接收器 能識別低至+3V的信號作為邏輯“ 0”,高到-3V的信號作為邏輯“ 1。3接口的物理結(jié)構(gòu)RS-232-C接口連接器一般使用型號為 DB-25的25芯插頭 座,通常插頭在DCE端,插座在DTE端, 一些設(shè)備與PC機連接的RS-232-C接口, 因為不使用對方的傳送控制信號, 只需三條接口線, 即“發(fā)送數(shù)據(jù)”、“接收數(shù)據(jù)” 和“信號地”。所以采用DB-9的9芯插頭座,傳輸線采用屏蔽雙絞線。由于RS-232-C接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點:1) 接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL電平不 兼容故需使用

18、電平轉(zhuǎn)換電路方能與 TTL電路連接。2)傳輸速率較低,在異步傳輸時,波特率為 20Kbps。3)接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這種其 地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。4) 傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為 50 英尺,實際上也只能用在 50 米左右。2.2.2.2 232 芯片介紹232是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。由 于電腦串口 rs232電平是-10v +10v,而一般的單片機應(yīng)用系統(tǒng)的信號電壓是 ttl 電平 0 +5v,232 就是用來進(jìn)行電平轉(zhuǎn)換的 ,該器件包含 2驅(qū)動器、2接收器和一 個電壓發(fā)生器電路提供 TIA

19、/EIA-232-F 電平。該器件符合 TIA/EIA-232-F 標(biāo)準(zhǔn),每一個接收器將 TIA/EIA-232-F電平轉(zhuǎn)換成 5-V TTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F 電平。主要特點:1)單5V電源工作2)Li nBiCMOSTMX 藝技術(shù)3)兩個驅(qū)動器及兩個接收器4)± 30V輸入電平5)低電源電流:典型值是 8mA6)符合甚至優(yōu)于 ANSI標(biāo)準(zhǔn)EIA/TIA-232-E 及ITU推薦標(biāo)準(zhǔn) V.287)ESD保護(hù)大于 MIL-STD-883 (方法 3015)標(biāo)準(zhǔn)的 2000V2.3 DS18B20傳感器簡介由DALLAS導(dǎo)

20、體公司生產(chǎn)的DS18B2型單線智能溫度傳感器,屬于新一代適 配微處理器的智能溫度傳感器。 與傳統(tǒng)的熱敏電阻相比, 它能夠直接讀出被測溫 度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn) 912 位的數(shù)字值讀數(shù)方式。其可 以分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,最大分辨率為 0.0625 C而且從DS18B20讀出或?qū)懭隓S18B20的信息僅需要一根口線(單線 接口)寫。2.3.1 DS18B20 內(nèi)部結(jié)構(gòu)DS18B2啲外形及引腳功能說明:圖5為DS18B2C引腳。圖5 DS18B20底視圖1 GND : 地。 2 DQ :單線運用的數(shù)據(jù)輸入輸出。 3 VDD :可選的電源引腳。D

21、S18B20利用Dallas的單總線控制協(xié)議,實現(xiàn)了利用單線控制信號在總線上進(jìn)行通信。由于所有的設(shè)備通過漏極開路端即DS18B20的DQ腳連在總線上,控制線需要一個上拉電阻大約 5kQ o在這一總線系統(tǒng)中,微控制器控設(shè)備通過 唯一的64位序列碼識別和訪問總線上的器件。 采用3腳PR35封裝或8腳SOIC 封裝,其內(nèi)部結(jié)構(gòu)框圖如圖6所示。64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的圖6 DS18B20內(nèi)部結(jié)構(gòu)編號, 接著是接著的 48 位是唯一的系列號, 最后的 8 位是開始 56 位 CRCo 64位ROM和ROM操作控制部分允許DS18B20乍為一個單線器件工作并遵循單線 協(xié)議。直到ROM操作協(xié)議

22、被滿足DS18B20控制部分的功能是不可訪問的。單線 總線主機必須首先操作五種 ROM操作命令之一:1) ReadROM讀ROM,2MatchROM 匹配 ROM, 3Search ROM搜索 ROM,4Skip ROI跳過 ROM或 5Alarm Search (告警 搜索)。在成功地執(zhí)行了 ROM操作序列之后,DS18B20特定的功能便可訪問,然 后總線上主機可提供六個存貯器和控制功能命令之一。DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EEP2RQM高速暫存RAM勺為9字節(jié)的存儲器,結(jié)構(gòu)如表2所示。表2 DS18B20字節(jié)定義其中 1、2 字節(jié)用

23、來存放當(dāng)前溫度 , 1 為低 8 位, 2 為高 8 位。字節(jié) 3、4用 來預(yù)置報警溫度的上下限 ,字節(jié) 5用于配置寄存器 ,用于確定溫度數(shù)據(jù)位數(shù) , 字節(jié) 6、7、8 均為保留字節(jié) , 字節(jié) 9 存放前 8 個字節(jié)循環(huán)冗余校驗碼。2.3.2 DS18B20 的工作原理DS18B20的測溫原理如圖7所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器 1, 高溫度系數(shù)晶 振隨溫度變化其振蕩頻率明顯改變 , 所產(chǎn)生的信號作為減法計數(shù)器 2 的脈沖輸入 , 圖中還隱含著計數(shù)門 , 當(dāng)計數(shù)門打開時 ,DS18B20 就對低溫度系數(shù)振蕩器產(chǎn)生的 時鐘脈沖進(jìn)行計數(shù)

24、, 進(jìn)而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器 來決定,每次測量前,首先將-55C所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄 存器中,減法計數(shù)器1和溫度寄存器被預(yù)置在-55 C所對應(yīng)的一個基數(shù)值減法計 數(shù)器 1 對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù) , 當(dāng)圖 7 DS18B20 的內(nèi)部測溫電路框圖減法計數(shù)器 1的預(yù)置值減到 0時溫度寄存器的值將加 1 ,減法計數(shù)器 1 的預(yù)置將重新被裝入 , 減法計數(shù)器 1 重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號 進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器 2計數(shù)到 0時,停止溫度寄存器值的累加 ,此 時溫度寄存器中的數(shù)值即為所測溫度。 圖中的斜率累加器用

25、于補償和修正測溫過 程中的非線性 , 其輸出用于修正減法計數(shù)器的預(yù)置值 , 只要計數(shù)門仍未關(guān)閉就重 復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是DS18B20勺測溫原理。在DS18B2C完成溫度變換之后,溫度值與貯存在TH和TL內(nèi)的觸發(fā)值 相比較。因為這些寄存器僅僅是 8位,所以0. 5 C位在比較時被忽略。TH或TL 的最高有效位直接對應(yīng)于 16位溫度寄存器的符號位。如果溫度測量的結(jié)果高于 TH或低于TL,那么器件內(nèi)告警標(biāo)志將置位。每次溫度測量更新此標(biāo)志。只要告警 標(biāo)志置位QS18B20將對告警搜索命令作出響應(yīng)。這允許并聯(lián)多個DS18B20同時進(jìn)行溫度測量。如果某處溫度超過極限 , 那

26、么可以識別出正在告警的器件并立即 將其讀出而不必讀出非告警的器件。2.3.3 DS18B20 的指令系統(tǒng)讀暫存存儲器 指令代碼 BEh此命令讀暫存存儲器的內(nèi)容。讀開始于字節(jié) 0,并繼續(xù)經(jīng)過暫存存儲器,直 至第九個字節(jié)(字節(jié)8, CRC被讀出為止。如果不是所有位置均可讀,那么主 機可以在任何時候發(fā)出一復(fù)位以中止讀操作。復(fù)制暫存存儲器 指令代碼 48h此命令把暫存存儲器復(fù)制入 DS18B20勺E2存儲器,把溫度觸發(fā)器字節(jié)存貯 入非易失性存儲器,如果總線主機在此命令之后發(fā)出讀時間片,那么只要 DS18B20正忙于把暫存存儲器復(fù)制入 E2,它就會在總線上輸出“ 0”當(dāng)復(fù)制過程 完成之后,它將返回“ 1

27、”。如果由寄生電源供電,總線主機在發(fā)出此命令之后必 須能立即強制上拉至少 10ms。溫度變換 指令代碼 44h此命令開始溫度變換。不需要另外勺數(shù)據(jù)溫度變換將被執(zhí)行,接著 DS18B20 便保持在空閑狀態(tài)。如果總線主機在此命令之后發(fā)出讀時間片,那么只要DS18B2C正忙于進(jìn)行溫度變換,它將在總線上輸出“ 0”;當(dāng)溫度變換完成時它便 返回“1”。如果由寄生電源供電, 那么總線主機在發(fā)出此命令之后必須立即強制 上拉至少 2 秒。重新調(diào)出E2指令代碼B8h此命令把貯存在E2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯ζ?。這種重新調(diào)出 的操作在對DS18B2C上電時也自動發(fā)生,因此,只要器件一接電,暫存存儲器內(nèi) 就

28、有有效的數(shù)據(jù)可供使用。 在此命令發(fā)出之后, 對于所發(fā)出的第一個讀數(shù)據(jù)時間 片,器件都將輸出其忙的標(biāo)志“ 0”忙,“1” 準(zhǔn)備就緒。讀電源指令代碼B4h對于在此命令送至DS18B2C之后所發(fā)出的第一讀出數(shù)據(jù)的時間片,器件都會給出其電源方式的信號“ 0”寄生電源供電,“ 1”外部電源供電。2.3.4 DS18B20 的通信協(xié)議DS18B2C器件要求采用嚴(yán)格的通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義 了幾種信號類型:復(fù)位脈沖,應(yīng)答脈沖時隙;寫 0,寫1 時隙;讀 0,讀 1 時隙。 與DS18B20的通信,是通過操作時隙完成單總線上的數(shù)據(jù)傳輸。發(fā)送所有的命令 和數(shù)據(jù)時,都是字節(jié)的低位在前 , 高位在

29、后。1 )復(fù)位和應(yīng)答脈沖時隙每個通信周期起始于微控制器發(fā)出的復(fù)位脈沖, 其后緊跟DS18B2C發(fā)出的應(yīng) 答脈沖,在寫時隙期間,主機向DS18B20器件寫入數(shù)據(jù),而在讀時隙期間,主機 讀入來自DS18B20勺數(shù)據(jù)。在每一個時隙,總線只能傳輸一位數(shù)據(jù)。時序圖見圖 8。2)寫時隙當(dāng)主機將單總線DQ從邏輯高拉到邏輯低時,即啟動一個寫時隙,所有的寫 時隙必須在60-120us完成,且在每個循環(huán)之間至少需要 1us的恢復(fù)時間。寫0 和寫 1 時隙如圖所示。 在寫 0時隙期間, 微控制器在整個時隙中將總線拉低; 而 寫1時隙期間,微控制器將總線拉低,然后在時隙起始后 15us之釋放總線。時 序圖見圖 9。3

30、)讀時隙?DS18B2(器件僅在主機發(fā)出讀時隙時,才向主機傳輸數(shù)據(jù)。所以在主機發(fā) 出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時隙,以便DS18B20能夠傳輸數(shù)據(jù)。所有的讀 時隙至少需要60us,且在兩次獨立的讀時隙之間,至少需要 1us的恢復(fù)時間。每個讀時隙都由主機發(fā)起,至少拉低總線1us。在主機發(fā)起讀時隙之后,DS18B2C器件才開始在總線上發(fā)送0或1,若DS18B2C發(fā)送1,則保持總線為高電平。若發(fā)送為 0,則拉低總線 當(dāng)發(fā)送0時,DS18B2C在該時隙結(jié)束后,釋放總線,由上拉電阻將總線拉回至高 電平狀態(tài)。DS18B2C發(fā)出的數(shù)據(jù),在起始時隙之后保持有效時間為 15us。因而主 機在讀時隙期間,必須釋

31、放總線。并且在時隙起始后的15us之內(nèi)采樣總線的狀態(tài)。時序圖見圖 9。圖 8 復(fù)位和應(yīng)答脈沖時隙圖 9 讀寫時序2.3.5 DS18B20 使用中注意事項DS18B2C雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但在實際應(yīng)用中也應(yīng)注意以下幾方面的問題:1) 較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補償,由于 DS18B2C與微處理 器間采用串行數(shù)據(jù)傳送,因此,在對DS18B2C進(jìn)行讀寫編程時,必須嚴(yán)格的保證 讀寫時序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級語言進(jìn)行系統(tǒng)程序 設(shè)計時,對DS18B2C操作部分最好采用匯編語言實現(xiàn)。2)在DS18B20的有關(guān)資料中均未提及單總

32、線上所掛 DS182BC數(shù)量問題,容 易使人誤認(rèn)為可以掛任意多個 DS18B20在實際應(yīng)用中并非如此。當(dāng)單總線上所 掛DS18B2C超過8個時,就需要解決微處理器的總線驅(qū)動問題, 這一點在進(jìn)行多 點測溫系統(tǒng)設(shè)計時要加以注意。3)在DS18B20測溫程序設(shè)計中,向DS18B2C發(fā)出溫度轉(zhuǎn)換命令后,程序總 要等DS18B20的返回信號,一旦某個 DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20寸,將沒有返回信號,程序進(jìn)入死循環(huán)。這一點在進(jìn)行DS18B2C硬件連 接和軟件設(shè)計時也要給予一定的重視。2.3.6 DS18B20 單片機的典型接口設(shè)計在硬件上QS18B20與單片機的連接有兩種方法:一

33、種是Vcc接外部電源,GND接地,1/0與單片機的I/O線相連。此方法可以 使所有使用外部電源的DS18B20同時完成溫度變換。另一種是用寄生電源供電,此時UDD GND接地,I/O接單片機I/O。 DS18B2C內(nèi)部電容在I/O線為高電平時貯存能量,在I/O線為低電平時消耗能量, 并在I/O信號線再為高電平時能量得得到補充。這樣QS1820在不需要外部提供 能量的情況下就可以完成各項操作命令。值得注意的是 ,采用此種方法時UDD引 腳必須接地。使用寄生電源的優(yōu)點是 :1 遠(yuǎn)程溫度檢測無需本地電源 ;2 缺少正常 電源條件下也可讀 ROM。就兩種方式相比較而言 , 寄生電源方式少用一根導(dǎo)線 ,

34、 但它完成溫度測量所 需的時間較長 , 而外部電源方式測量速度則要快些。無論是內(nèi)部寄生電源還是外 部供電,I/O 口線要接4.7KQ左右的上拉電阻。圖10給出了 DS18B20與微處理器 的典型連接。圖10a中DS18B20采用寄生電源方式,其VDD和GNGS均接地,圖 10b中DS18B2C采用外接電源方式,其VDD端用3V5.5V電源供電。本系統(tǒng)采用 圖 10b 所示接線方式 , 即外接電源工作方式。圖10 (a)寄生電源工作方式圖10 (b)外接電源工作方式3 系統(tǒng)的軟件設(shè)計3.1 下位機程序設(shè)計下位機采用MCS5單片機指令進(jìn)行編程,主要包括初始化、溫度計算、溫度 顯示三部分組成。DS1

35、8B20寸時序和電性參數(shù)的要求很高,主 CPU經(jīng)過單總線接 口訪問DS18B20勺工作流程必須要遵守嚴(yán)格的操作順序: 首先,對DS18B2C進(jìn)行 初始化;其次,發(fā)送ROM命令;再則,發(fā)送功能命令。程序主流程如圖11所示。 源程序見附錄。圖 11 測溫主流程框圖3.2 MATLAB程序設(shè)計MATLAB!由美國mathworks公司開發(fā)的面向理論分析研究和工程設(shè) 計處理的一套具有強大功能的軟件系統(tǒng)。在設(shè)計研究單位和工業(yè)部門,MATLAB被認(rèn)作進(jìn)行高效研究、 開發(fā)的首選軟件工具。 其編程語法規(guī)則與一般的結(jié)構(gòu)化編 程語言大同小異, 而且使用更方便, 具有一般編程基礎(chǔ)的用戶都可以很快熟練掌 握。MATL

36、AB!有超強的數(shù)據(jù)處理能力,被廣泛的應(yīng)用于信號處理、自動控制等領(lǐng) 域,而且它的圖形用戶界面編程技術(shù) GUIDE簡單易學(xué),即使非專業(yè)人員也能編制 出界面友好、功能強大的應(yīng)用程序。對于一般的微轉(zhuǎn)換器 , 實現(xiàn)數(shù)據(jù)的采集過程 較為簡單 , 但要對采集的結(jié)果進(jìn)行快速的實時處理就比較困難 ,因為絕大多數(shù) MCU只提供簡單的8位無符號數(shù)的四則運算指令系統(tǒng),對于有符號數(shù)的乘方、開 方等運算軟件實現(xiàn)起來比較困難。3.2.1 MATLAB串口通信技術(shù)對于WINDOW系統(tǒng)而言,硬件系統(tǒng)的驅(qū)動程序有著十分嚴(yán)格的規(guī)范,可以用C 或匯編語言進(jìn)行開發(fā),而MATLAB身是一個跨平臺的軟件,并不具備直接訪問硬 件的能力。即使

37、安裝了驅(qū)動程序并能正常作的硬件設(shè)備,MATLAB也沒有統(tǒng)一的形 式對其進(jìn)行訪問。對于系統(tǒng)的串口 ,在MATLAB6.沖以類SERIAL的形式提供了支持。當(dāng)用指令建立了一個串口對象句柄以后 ,對串口的硬件操作可以文件操作的 軟件形式來完成 , 方法比較簡單。在MATLAB的設(shè)備控制工具條INSTRUMENTONTROTOOLBOX用來負(fù)責(zé)上、下位機之間的通信。該設(shè)備控制工具箱的特色如下:1 支持基于串行接口 RS-232、RS-422、RS-485 GPIB總線 IEEE2488 HPIB標(biāo)準(zhǔn)、VISA總線的通信;2 通信數(shù)據(jù)支持二進(jìn)制和文本 ASCII 兩種方式,文本方式支持SCPIStand

38、ard Commands for ProgrammableInstruments 語言;3 支持異步通信和同步通信;4 支持基于事件驅(qū)動的通信。從以上 Matlab 設(shè)備控制工具箱的特點可以看到, Matlab 完全可以滿 足我們實現(xiàn)串行通信的要求。Matlab 對串行口的編程控制主要分為四個步驟。1 創(chuàng)建串口設(shè)備對象并設(shè)置其屬性。comserial'com1';% 創(chuàng)建串口 1 的設(shè)備對象 com1com.Terminator'CR'% 設(shè)置終止符為CR回車符,缺省為LF換行符 comnputBufferSize1024;% 輸入緩沖區(qū)為256B,缺省值為51

39、2B com.OutputBufferSize1024;% 輸出緩沖區(qū)為 256B,缺省值為 512Bcom.Timeout0.5;%設(shè)置一次讀或?qū)懖僮鞯淖畲笸瓿蓵r間為0.5s,缺省值為 1Oss.ReadAsyncMode'continuous' 缺省方式 ;%在異步通信模式方式下, 讀取串口數(shù)據(jù)采用連續(xù)接收數(shù)據(jù) continuous 的缺省方式,那么下位機返回的數(shù) 據(jù)會自動地存入輸入緩沖區(qū)中。注意:有些屬性 只有在對象沒有被打開時才能改變其值,如 InputBufferSize 、OutputBufferSize 屬性等。 對于一個 RS-232/RS-422/RS-485

40、 串口設(shè)備對象,其屬性的缺省值為波特率 9600b/s ,異步方式,通信數(shù)據(jù)格式為 8 位數(shù)據(jù)位,無奇偶校驗位, 1 位停止位。如果要設(shè)置的串口設(shè)備對象的屬性值 與缺省值的屬性值相同,用戶可以不用另行設(shè)置。另外,設(shè)置串口設(shè)備對象的屬性也可以用一條指令完成,如: comserial'COM1' ,'BaudRate' ,38400, 'Parity' , 'none' , 'DataBits' , 8, 'StopBits' ,1。也可以用 set 命令,如 setcom,'BaudRate&

41、#39; ,19200,'Parity' , 'even' 。創(chuàng)建了對象后可以在 Matlab 命令窗口直接敲對象名并回車,看到其基 本屬性和當(dāng)前狀態(tài)。若需要知道其全部的屬性,可以用 getscom 命令。2 打開串口設(shè)備對象。fopencom;3 讀寫串口操作。初始化并打開串口設(shè)備對象之后,現(xiàn)在可以對串口 設(shè)備對象進(jìn)行讀寫操作, 串口的讀寫操作支持二進(jìn)制和文本 ASCII 兩種方式。 當(dāng) Matlab 通信數(shù)據(jù)采用文本 ASCII 方式時,讀寫串口設(shè)備的命令分別是 fscanf 、 fpritf ;當(dāng) Matlab 通信數(shù)據(jù)采用二進(jìn)制方式時,讀寫串口設(shè)備的命令

42、分別是 fread 、fwrite 。下面以文本方式讀寫串口為例:a.讀串口。Afscanfcoml , '%d' , 10, 100;%從串口設(shè)備對象 coml中讀入 10*100 個數(shù)據(jù)填充到數(shù)組 A10, 100中,并以整型的數(shù)據(jù)格式存放。b.寫串口。fprin tfcoml , '%s',RS232?', asy nc' ;%將字符串'RS232?以字符的數(shù)據(jù)格式寫入到串口設(shè)備 coml,寫操作以異步的方式進(jìn)行。4 關(guān)閉并清除設(shè)備對象。fclosecom;%關(guān)閉串口設(shè)備對象deletecom;%刪除內(nèi)存中的串口設(shè)備對象clear

43、com;% 清除工作空間中的串口設(shè)備對象當(dāng)不再使用該串口設(shè)備對象時, 順序使用以上 3條命令,可以將所創(chuàng) 建的串口設(shè)備對象清除,以免占用系統(tǒng)資源??梢钥闯?,在Matlab中進(jìn)行串行通信是十分方便的,編程較為簡單。 而且,在 Matlab 中串行通信的失誤率很低,通信較為可靠,也可以采用增加握 手信號以及數(shù)據(jù)校驗等的方式進(jìn)一步增加通信的可靠性。INSTRUMENC0NTROTOOLBOX包括兩大部件:M文件函數(shù)和接口驅(qū)動適配器。這兩部件提供了 MATLA與外設(shè)的通訊功能。MATLA 的兩大部件提供一條外設(shè)與MATLA之問的交互通道,使用戶 與外設(shè)之間進(jìn)行信息獲取和傳送。同許多高級語言一樣,MAT

44、LA通過調(diào)用M文件函數(shù)來創(chuàng)建設(shè)備對象, 得到設(shè)備的文件句柄, 而設(shè)備驅(qū)動程序作為操作系統(tǒng)中 直接控制硬件的模塊,是鏈接操作系統(tǒng)內(nèi)核與系統(tǒng)外部設(shè)備 I/O 操作的關(guān)鍵模 塊。它將具體的硬件細(xì)節(jié)隱藏實現(xiàn)對外設(shè)操作的透明,因此MATLA可以象操作文件一樣實現(xiàn)對外設(shè)的讀、寫操作。同時 MATIAS持二進(jìn)制和文本ASCII兩種 串行通信方式 , 支持異步通信和同步通信;支持查詢和基于事件驅(qū)動的兩種串行 通信方式。是由窗口、光標(biāo)、按鍵、菜3.2.2 MATLAB GUI 介紹圖形用戶界面 graphical user interface,GUI 單、文字說明等對象 Object 構(gòu)成的一個用戶界面。用戶通

45、過一定的方法如鼠標(biāo) 或鍵盤選擇、激活這些圖形對象 ,使計算機產(chǎn)生某種動作或變化 , 比如實現(xiàn)計算、 繪圖等。假如科技工作者僅僅執(zhí)行數(shù)據(jù)分析、解方程等工作 , 一般不會考慮 GUI 的制作。但是如果想向客戶提供應(yīng)用程序 ,想進(jìn)行某種技術(shù)、方法的演示 ,想制作 一個供反復(fù)使用且操作簡單的專用工具 , 那么圖形用戶界面是最好的選擇之一。Matlab為表現(xiàn)其基本功能而設(shè)計的演示程序 deme是使用圖形界面的最好范 例。Matlab的用戶在指令窗口中運行 demo打開圖形界面后,只要用鼠標(biāo)進(jìn)行選 擇和點擊 , 就可瀏覽豐富多彩的內(nèi)容。開發(fā)實際的應(yīng)用程序時應(yīng)該盡量保持程序的界面友好 , 因為程序界面是應(yīng)用

46、 程序和用戶進(jìn)行交互的環(huán)境。 在當(dāng)前情況下 , 使用圖形用戶界面是最常用的方法。 提供圖形用戶界面可使用戶更方便地使用應(yīng)用程序 , 不需要了解應(yīng)用程序怎樣執(zhí) 行各種命令 , 只需要了解圖形界面組件的使用方法 ; 同時, 不需要了解各種命令是 如何執(zhí)行的 , 只要通過用戶界面進(jìn)行交互操作就可以正確執(zhí)行程序。在Matlab中,圖形用戶界面是一種包含多種圖形對象的界面 ,典型的圖形界 面包括圖形顯示區(qū)域、 功能按鈕空間以及用戶自定義的功能菜單等。 為了讓界面 實現(xiàn)各種功能 , 需要對各個圖形對象進(jìn)行布局和時間編程。 這樣, 當(dāng)用戶激活對應(yīng) 的GUI對象時,就能執(zhí)行相應(yīng)的時間行為。最后,必須保存和發(fā)布

47、自己創(chuàng)建的 GUI, 使得用戶可以應(yīng)用GUI對象。在 Matlab 中 , 所有對象都可以使用 M 文件進(jìn)行編寫。 GUI 也是一種 Matlab對象,因此,可以使用M文件來創(chuàng)建GUI。使用M文件創(chuàng)建GUI的方法也是 最基礎(chǔ)的,使用其他方法創(chuàng)建GUI圖形界面時,實現(xiàn)圖形控件的各種功能時,也需 要編寫相應(yīng)的程序代碼。除了使用M文件來創(chuàng)建GUI對象之外,Matlab還為用戶開發(fā)圖形界面 提供了一個方便高效的集成開發(fā)環(huán)境 :Matlab 圖形用戶界面開發(fā)環(huán)境 matlab graphical user in terface developme nt en vir onment簡稱 GUIDE 其主要是一個界面設(shè)計工具集。 Matlab 將所有 GUI 所支持的用戶控件都集成起來 , 同時提供 界面外觀、屬性和行為響應(yīng)方法的設(shè)置方法。除了可以使用GUIDE創(chuàng)建GUI之外, 還可以將設(shè)計好的GUI界面保存為一個FIG資源文件,自動生成對應(yīng)的M文件。 該M文件包含了 GUI初始化代碼和組建界面布局的控制代碼。使用GUIDE創(chuàng)建GUI對象執(zhí)行效率高,可以交互式地

溫馨提示

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

最新文檔

評論

0/150

提交評論