版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 2012 年 6 月</p><p><b> 目 錄</b></p><p> 前言…………………………………………………………………………………3</p><p> 1 系統(tǒng)總體結(jié)構(gòu)………………………………………
2、…………………………4</p><p> 2 系統(tǒng)硬件…………………………………………………………………………4</p><p> 2.1 系統(tǒng)的硬件設(shè)計(jì)……………………………………………………………4</p><p> 2.2 AT89S52單片機(jī)實(shí)驗(yàn)開發(fā)板………………………………………………5</p><p> 2.2.1 AT8
3、9S52單片機(jī)介紹…………………………………………………6</p><p> 2.2.2 串行接口介紹…………………………………………………………8</p><p> 2.3 DS18B20傳感器簡介…………………………………………………………10</p><p> 2.3.1 DS18B20內(nèi)部結(jié)構(gòu)………………………………………………………10</p&
4、gt;<p> 2.3.2 DS18B20的工作原理………………………………………………11</p><p> 2.3.3 DS18B20的指令系統(tǒng)…………………………………………………12</p><p> 2.3.4 DS18B20的通信協(xié)議…………………………………………………13</p><p> 2.3.5 DS18B20使用中注意事
5、項(xiàng)……………………………………………14</p><p> 2.3.6 DS18B20與單片機(jī)的典型接口設(shè)計(jì)…………………………………15</p><p> 3 系統(tǒng)的軟件設(shè)計(jì)……………………………………………………………16</p><p> 3.1下位機(jī)程序設(shè)計(jì)……………………………………………………………16</p><p>
6、3.2 MATLAB程序設(shè)計(jì)…………………………………………………………17</p><p> 3.2.1 MATLAB串口通信技術(shù)…………………………………………………18</p><p> 3.2.2 MATLAB GUI介紹………………………………………………………20</p><p> 3.2.3 GUI界面設(shè)計(jì)……………………………………………………
7、……21</p><p> 4 系統(tǒng)調(diào)試………………………………………………………………………23</p><p> 4.1 下位機(jī)調(diào)試………………………………………………………………23</p><p> 4.2 串口調(diào)試………………………………………………………………23</p><p> 4.3 系統(tǒng)聯(lián)調(diào)………………………………
8、………………………………24</p><p> 基于MATLAB的溫度檢測系統(tǒng)設(shè)計(jì)</p><p><b> 前言</b></p><p> 溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用。傳統(tǒng)靠人工控制的溫度、濕度、液位等信號的測壓力控系統(tǒng),外圍電路比較復(fù)雜,測量精度較低,分辨
9、率不高,需進(jìn)行溫度校準(zhǔn)(非線性校準(zhǔn)、溫度補(bǔ)償、傳感器標(biāo)定等);且它們的體積較大、使用不夠方便,更重要的是參數(shù)的設(shè)定需要有其它儀表的參與,外界設(shè)備多,成本高,因而越來越適應(yīng)不了社會的要求。在對多類型、多通道信號同時進(jìn)行檢測和控制中,傳統(tǒng)的測控系統(tǒng)能力有限。如何將計(jì)算機(jī)與各種設(shè)施、設(shè)備結(jié)合,簡化人工操作并實(shí)現(xiàn)自動控制,滿足社會的需求,成為一個很迫切的問題。 溫度檢測是現(xiàn)代檢測技術(shù)的重要組成部分,在保證產(chǎn)品質(zhì)量、節(jié)約能源和安全生產(chǎn)等方
10、面起著關(guān)鍵的作用。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測量和控制技術(shù)得到了迅速的發(fā)展和廣泛的應(yīng)用。單片機(jī)具有處理能力強(qiáng)、運(yùn)行速度快、功耗低等優(yōu)點(diǎn),應(yīng)用在溫度測量與控制方面,控制簡單方便,測量范圍廣,精度較高。由單片集成電路構(gòu)成的溫度傳感器的種類越來越多,測量的精度越來越高,響應(yīng)時間越來越短,因其使用方便、無需變換電路等特點(diǎn)已經(jīng)得到了廣泛的應(yīng)用,例如:以前常</p><p> 近年來,利用智能化數(shù)字式溫度傳感
11、器以實(shí)現(xiàn)溫度信息的在線檢測已成為溫度檢測技術(shù)的一種發(fā)展趨勢。數(shù)字化技術(shù)推動了信息化的革命,在傳感器的器件結(jié)構(gòu)上采用數(shù)字化技術(shù),使信息的采集更加方便。例如,對于溫度信號采集系統(tǒng),傳統(tǒng)的模擬溫度傳感器多為鉑電阻、銅電阻等。每一個傳輸線至少有兩根導(dǎo)線,帶補(bǔ)償接法需要三根導(dǎo)線。如果對50路溫度信號進(jìn)行檢測,就需要100根導(dǎo)線接到采集端口,然后還要經(jīng)過電橋電路、信號放大、通道選擇、AD轉(zhuǎn)換等,才能將溫度信號供計(jì)算機(jī)處理。而DS18B20新型單總線
12、數(shù)字溫度傳感器,采用3腳(或8腳)封裝,從DS18B20讀出或</p><p><b> 圖1 總設(shè)計(jì)框圖</b></p><p> 寫入數(shù)據(jù)僅需要一根I/O口線。,使得硬件電路結(jié)構(gòu)簡單,廣泛使用于距離遠(yuǎn),節(jié)點(diǎn)分布多的場合。具有較強(qiáng)的推廣應(yīng)用價值。</p><p><b> 1 系統(tǒng)總體結(jié)構(gòu)</b></p&g
13、t;<p> 本次設(shè)計(jì)的目的就是以數(shù)字傳感器DS18B20作為前端,采集溫度經(jīng)過單片機(jī)處理后,再采用串口通信,在MATLAB環(huán)境下對數(shù)據(jù)進(jìn)行分析與處理,將結(jié)果用圖形顯示并儲存,完成人機(jī)交互過程。系統(tǒng)總體設(shè)計(jì)如圖1所示。</p><p> 本系統(tǒng)的設(shè)計(jì)包括硬件和軟件兩大部分。系統(tǒng)的硬件部分大致可分為四部分:DS18B20溫度采集部分、單片機(jī)處理部分、顯示部分、與計(jì)算機(jī)串口通信部分。系統(tǒng)的軟件部分分
14、為五大部分:讀取DS18B20的內(nèi)部數(shù)據(jù)部分、單片機(jī)對溫度的處理部分、數(shù)碼顯示部分、串口通信部分、MATLAB界面部分。</p><p><b> 2 系統(tǒng)硬件</b></p><p> 2.1 系統(tǒng)的硬件設(shè)計(jì)</p><p> 在本設(shè)計(jì)提出在上位機(jī)MATLAB 環(huán)境下,使用RS232串行接口實(shí)時接收。該方法較之使用VC、VB高級語言編程
15、,極大地縮減了開發(fā)時間,提高了開發(fā)效率。系統(tǒng)主要由上位機(jī)(PC機(jī))和下位機(jī)(AT89S52)部分。上位機(jī)和下位機(jī)通過RS232進(jìn)行通訊。上位機(jī)負(fù)責(zé)數(shù)據(jù)處理和圖形化顯示,它是在MATLAB環(huán)境下進(jìn)行的,應(yīng)用了儀器控制工具箱中關(guān)于串行通信的函數(shù),通過程序控制整個系統(tǒng)的工作并進(jìn)行數(shù)據(jù)處理。下位機(jī)負(fù)責(zé)數(shù)據(jù)采集和響應(yīng)主機(jī)的控制處理信號。</p><p> 本設(shè)計(jì)中,由DS18B20構(gòu)成的單片機(jī)溫度測量裝置主要由四部成:D
16、S18B20溫度傳感器、AT89S52、顯示模塊和電源模塊(圖2所示)。產(chǎn)品的主要技術(shù)指標(biāo):①測量范圍:-55.0℃~+125.0℃,②測量精度:0.1℃,③反應(yīng)時間≤1.5s。</p><p> 圖2 溫度檢測系統(tǒng)結(jié)構(gòu)圖</p><p> 2.2 AT89S52單片機(jī)實(shí)驗(yàn)開發(fā)板</p><p> 該開發(fā)板可對ATMEL公司的89S5x系列ISP單片機(jī)AT8
17、9S51、 AT89S52、 AT89S53、 AT89LS53、 AT89S8252、AT89LS8252的DIP40封裝的器件進(jìn)行直接編程操作。單片機(jī)開發(fā)板結(jié)構(gòu)如圖3。</p><p> 圖3 AT89S5x單片機(jī)實(shí)驗(yàn)開發(fā)板整體結(jié)構(gòu)</p><p><b> 開發(fā)板的結(jié)構(gòu): </b></p><p> 1)CPU系統(tǒng):包括復(fù)位、時鐘
18、、在線編程電路及I/O引線插孔; </p><p> 2)串行接口:采用MAX232構(gòu)成; </p><p> 3)顯示模塊:采用串行顯示,由六片74HC164和六個七段共陰數(shù)碼管組成; </p><p> 4)模數(shù)轉(zhuǎn)換模塊:采用ADC0809及外圍器件,能實(shí)現(xiàn)8路八位的模數(shù)采集; </p><p> 5)數(shù)模轉(zhuǎn)換模塊:采用串行D/A
19、轉(zhuǎn)換TLC5616,能實(shí)現(xiàn)10位的數(shù)模轉(zhuǎn)換; </p><p> 6)LED顯示模塊:由8個LED燈構(gòu)成,其中3個紅燈、2個黃燈、3個綠燈; </p><p> 7)單脈沖發(fā)生電路:產(chǎn)生單個正或負(fù)脈沖; </p><p> 8)用戶外接元件區(qū):方便用戶外加少量外接元件進(jìn)行實(shí)驗(yàn)。</p><p> 本設(shè)計(jì)只用到CPU系統(tǒng),串行接口,顯示
20、模塊。CPU系統(tǒng)由AT89S52單片機(jī)組成。串行接口是RS232串口。下面對各個部分作一簡單介紹。</p><p> 2.2.1 AT89S52單片機(jī)介紹</p><p> 2.2.1.1 單片機(jī)簡介</p><p> Atmel公司的AT89S52芯片是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密
21、度非易失性存儲器技術(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é)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計(jì)數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙
22、工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。</p><p> 2.2.1.2 單片機(jī)引腳功能</p><p> AT89S52芯片采用40腳雙列直插
23、封裝方式。當(dāng)然,不同芯片之間引腳功能也略有差異。AT89S52單片機(jī)是高性能單片機(jī),因?yàn)槭艿揭_數(shù)目的限制,有部分引腳具有第二功能。引腳分配如圖4所示。</p><p> 圖4 AT89S52雙列直插式封裝和引腳分配</p><p> 下面以雙列直插式為例,介紹AT89S52單片機(jī)的引腳。引腳可分為三個部分:I/O口引腳、控制引腳和電源時鐘引腳。</p><p&g
24、t; P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗(yàn)時,輸出指令字節(jié)。程序校驗(yàn)時,需要外部上拉電阻。</p><p> P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位
25、雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如表1所示。</p><p> 表1 P1口的第二功能</p>
26、<p> P2 口:P2口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在
27、使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時,P2口也接收高8位地址字節(jié)和一些控制信號。</p><p> P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電
28、流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如表2所示。在flash編程和校驗(yàn)時,P3口也接收一些控制信號。</p><p> 2.2.2 串行接口介紹</p><p> 2.2.2.1 RS232C簡介</p><p> 計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本
29、低,特別是在遠(yuǎn)程傳輸時,避免了多條線路特性的不一致而被廣泛采用。在串行通訊時,要求通訊雙方都采用一個標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通訊。RS-232-C接口(又稱EIARS-232-C)是目前最常用的一種串行通訊接口。它是在1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是《數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技
30、術(shù)標(biāo)準(zhǔn)》該標(biāo)準(zhǔn)規(guī)定采用一個25個腳的DB25連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。</p><p> 1)接口的信號內(nèi)容:實(shí)際上RS-232-C的25條引線中有許多是很少使用的,在計(jì)算機(jī)與終端通訊中一般只使用3~9條引線。</p><p> 2)接口的電氣特性:在RS-232-C中任何一條信號線的電壓均為負(fù)邏輯關(guān)系。即邏輯“1”,-5~-15V:邏輯
31、“0”,+5~+15V。噪聲容限為:2V。即要求接收器能識別低至+3V的信號作為邏輯“0”,高到-3V的信號作為邏輯“1。</p><p> 3)接口的物理結(jié)構(gòu)RS-232-C接口連接器一般使用型號為DB-25的25芯插頭座,通常插頭在DCE端,插座在DTE端,一些設(shè)備與PC機(jī)連接的RS-232-C接口,因?yàn)椴皇褂脤Ψ降膫魉涂刂菩盘?,只需三條接口線,即“發(fā)送數(shù)據(jù)”、“接收數(shù)據(jù)”和“信號地”。所以采用DB-9的9
32、芯插頭座,傳輸線采用屏蔽雙絞線。</p><p> 由于RS-232-C接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):</p><p> 1)接口的信號電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。</p><p> 2)傳輸速率較低,在異步傳輸時,波特率為20Kbps。</p><
33、p> 3)接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這種其地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。</p><p> 4)傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50英尺,實(shí)際上也只能用在50米左右。</p><p> 2.2.2.2 MAX232芯片介紹</p><p> MAX232是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)
34、的芯片。由于電腦串口rs232電平是-10v +10v,而一般的單片機(jī)應(yīng)用系統(tǒng)的信號電壓是ttl電平0 +5v,max232就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。</p><p> 該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-V TTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成
35、TIA/EIA-232-F電平。</p><p><b> 主要特點(diǎn):</b></p><p><b> 1)單5V電源工作</b></p><p> 2) LinBiCMOSTM工藝技術(shù)</p><p> 3) 兩個驅(qū)動器及兩個接收器</p><p> 4)
36、177;30V輸入電平</p><p> 5)低電源電流:典型值是8mA</p><p> 6)符合甚至優(yōu)于ANSI標(biāo)準(zhǔn) EIA/TIA-232-E及ITU推薦標(biāo)準(zhǔn)V.28</p><p> 7)ESD保護(hù)大于MIL-STD-883(方法3015)標(biāo)準(zhǔn)的2000V</p><p> 2.3 DS18B20傳感器簡介</p>
37、<p> 由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12 位的數(shù)字值讀數(shù)方式。其可以分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,最大分辨率為0.0625 ℃ 而且從DS18B20 讀出或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)寫。</p>
38、;<p> 2.3.1 DS18B20內(nèi)部結(jié)構(gòu)</p><p> DS18B20的外形及引腳功能說明:圖5為DS18B20引腳。</p><p> 圖5 DS18B20底視圖</p><p> 1 ( GND) :地。2 (DQ) :單線運(yùn)用的數(shù)據(jù)輸入輸出。3 (VDD) :可選的電源引腳。DS18B20利用Dallas的單總線控制協(xié)議,實(shí)現(xiàn)
39、了利用單線控制信號在總線上進(jìn)行通信。由于所有的設(shè)備通過漏極開路端(即DS18B20的DQ腳)連在總線上,控制線需要一個上拉電阻(大約5kΩ ) 。在這一總線系統(tǒng)中,微控制器(控設(shè)備)通過唯一的64位序列碼識別和訪問總線上的器件。采用3腳PR 35封裝或8腳SO IC封裝, 其內(nèi)部結(jié)構(gòu)框圖如圖6所示。64 位ROM 的結(jié)構(gòu)開始8位是產(chǎn)品類型的</p><p> 圖6 DS18B20內(nèi)部結(jié)構(gòu)</p>
40、<p> 編號, 接著是接著的48 位是唯一的系列號,最后的8 位是開始56 位CRC。64位ROM 和ROM 操作控制部分允許DS18B20作為一個單線器件工作并遵循單線協(xié)議。直到ROM 操作協(xié)議被滿足DS18B20 控制部分的功能是不可訪問的。單線總線主機(jī)必須首先操作五種ROM 操作命令之一:1)Read ROM(讀ROM),2)Match ROM(匹配ROM), 3)Search ROM(搜索ROM),4)Skip
41、ROM(跳過ROM),或5)Alarm Search(告警搜索)。在成功地執(zhí)行了ROM 操作序列之后,DS18B20 特定的功能便可訪問,然后總線上主機(jī)可提供六個存貯器和控制功能命令之一。</p><p> DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM 和一個非易失性的可電擦除的EEP2ROM。高速暫存RAM的為9字節(jié)的存儲器,結(jié)構(gòu)如表2所示。</p><p> 表2
42、 DS18B20字節(jié)定義</p><p> 其中1、2字節(jié)用來存放當(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)冗余校驗(yàn)碼。</p><p> 2.3.2 DS18B20的工作原理</p><p> DS18B20的測溫原理如圖7所示,
43、圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將- 55℃所對應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1 和溫度寄存器被預(yù)置在-5
44、5℃所對應(yīng)的一個基數(shù)值減法計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)</p><p> 圖7 DS18B20的內(nèi)部測溫電路框圖</p><p> 減法計(jì)數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為
45、所測溫度。圖中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是DS18B20的測溫原理。</p><p> 在DS18B20完成溫度變換之后,溫度值與貯存在TH和TL 內(nèi)的觸發(fā)值相比較。因?yàn)檫@些寄存器僅僅是8位,所以0. 5℃位在比較時被忽略。TH或TL的最高有效位直接對應(yīng)于16位溫度寄存器的符號位。如果溫度
46、測量的結(jié)果高于TH或低于TL,那么器件內(nèi)告警標(biāo)志將置位。每次溫度測量更新此標(biāo)志。只要告警標(biāo)志置位,DS18B20將對告警搜索命令作出響應(yīng)。這允許并聯(lián)多個DS18B20,同時進(jìn)行溫度測量。如果某處溫度超過極限,那么可以識別出正在告警的器件并立即將其讀出而不必讀出非告警的器件。</p><p> 2.3.3 DS18B20的指令系統(tǒng)</p><p> 讀暫存存儲器 指令代碼[BEh]<
47、;/p><p> 此命令讀暫存存儲器的內(nèi)容。讀開始于字節(jié)0,并繼續(xù)經(jīng)過暫存存儲器,直至第九個字節(jié)(字節(jié)8,CRC)被讀出為止。如果不是所有位置均可讀,那么主機(jī)可以在任何時候發(fā)出一復(fù)位以中止讀操作。</p><p> 復(fù)制暫存存儲器 指令代碼[48h]</p><p> 此命令把暫存存儲器復(fù)制入DS18B20的E2存儲器,把溫度觸發(fā)器字節(jié)存貯入非易失性存儲器,如果總
48、線主機(jī)在此命令之后發(fā)出讀時間片,那么只要DS18B20 正忙于把暫存存儲器復(fù)制入E2,它就會在總線上輸出“0”當(dāng)復(fù)制過程完成之后,它將返回“1”。如果由寄生電源供電,總線主機(jī)在發(fā)出此命令之后必須能立即強(qiáng)制上拉至少10ms。</p><p> 溫度變換 指令代碼[44h]</p><p> 此命令開始溫度變換。不需要另外的數(shù)據(jù)溫度變換將被執(zhí)行,接著DS18B20便保持在空閑狀態(tài)。如果總線
49、主機(jī)在此命令之后發(fā)出讀時間片,那么只要DS18B20正忙于進(jìn)行溫度變換,它將在總線上輸出“0”;當(dāng)溫度變換完成時它便返回“1”。如果由寄生電源供電,那么總線主機(jī)在發(fā)出此命令之后必須立即強(qiáng)制上拉至少2秒。</p><p> 重新調(diào)出E2指令代碼[B8h]</p><p> 此命令把貯存在E2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯ζ鳌_@種重新調(diào)出的操作在對DS18B20上電時也自動發(fā)生,因此,只
50、要器件一接電,暫存存儲器內(nèi)就有有效的數(shù)據(jù)可供使用。在此命令發(fā)出之后,對于所發(fā)出的第一個讀數(shù)據(jù)時間片,器件都將輸出其忙的標(biāo)志“0”=忙,“1” =準(zhǔn)備就緒。</p><p> 讀電源 指令代碼[B4h]</p><p> 對于在此命令送至DS18B20之后所發(fā)出的第一讀出數(shù)據(jù)的時間片,器件都會給出其電源方式的信號“0”=寄生電源供電,“1”=外部電源供電。</p><
51、p> 2.3.4 DS18B20的通信協(xié)議</p><p> DS18B20器件要求采用嚴(yán)格的通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號類型:復(fù)位脈沖,應(yīng)答脈沖時隙;寫0,寫1時隙;讀0,讀1時隙。與DS18B20的通信,是通過操作時隙完成單總線上的數(shù)據(jù)傳輸。發(fā)送所有的命令和數(shù)據(jù)時,都是字節(jié)的低位在前,高位在后。</p><p> 1)復(fù)位和應(yīng)答脈沖時隙</p&g
52、t;<p> 每個通信周期起始于微控制器發(fā)出的復(fù)位脈沖,其后緊跟DS18B20發(fā)出的應(yīng)答脈沖,在寫時隙期間,主機(jī)向DS18B20器件寫入數(shù)據(jù),而在讀時隙期間,主機(jī)讀入來自DS18B20的數(shù)據(jù)。在每一個時隙,總線只能傳輸一位數(shù)據(jù)。時序圖見圖8。</p><p><b> 2)寫時隙</b></p><p> 當(dāng)主機(jī)將單總線DQ從邏輯高拉到邏輯低時,即
53、啟動一個寫時隙,所有的寫時隙必須在60--120us完成,且在每個循環(huán)之間至少需要1us的恢復(fù)時間。寫0和寫1時隙如圖所示。在寫0時隙期間,微控制器在整個時隙中將總線拉低;而寫1時隙期間,微控制器將總線拉低,然后在時隙起始后15us之釋放總線。時序圖見圖9。</p><p><b> 3)讀時隙</b></p><p> DS18B20器件僅在主機(jī)發(fā)出讀時隙時,才
54、向主機(jī)傳輸數(shù)據(jù)。所以在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時隙,以便DS18B20能夠傳輸數(shù)據(jù)。所有的讀時隙至少需要60us,且在兩次獨(dú)立的讀時隙之間,至少需要1us的恢復(fù)時間。每個讀時隙都由主機(jī)發(fā)起,至</p><p> 少拉低總線1us。在主機(jī)發(fā)起讀時隙之后,DS18B20器件才開始在總線上發(fā)送0或1,若DS18B20發(fā)送1,則保持總線為高電平。若發(fā)送為0,則拉低總線當(dāng)發(fā)送0時,DS18B20在該時隙結(jié)束后
55、,釋放總線,由上拉電阻將總線拉回至高電平狀態(tài)。DS18B20發(fā)出的數(shù)據(jù),在起始時隙之后保持有效時間為15us。因而主機(jī)在讀時隙期間,必須釋放總線。并且在時隙起始后的15us之內(nèi)采樣總線的狀態(tài)。時序圖見圖9。</p><p> 圖8 復(fù)位和應(yīng)答脈沖時隙</p><p><b> 圖9 讀寫時序</b></p><p> 2.3.5 DS
56、18B20使用中注意事項(xiàng)</p><p> DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題: </p><p> 1)較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS18B20進(jìn)行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級
57、語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時,對DS18B20操作部分最好采用匯編語言實(shí)現(xiàn)?! ?lt;/p><p> 2)在DS18B20的有關(guān)資料中均未提及單總線上所掛DS182B0數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS18B20超過8個時,就需要解決微處理器的總線驅(qū)動問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時要加以注意?! ?lt;/p><p> 3)在DS1
58、8B20測溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等DS18B20的返回信號,一旦某個DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時,將沒有返回信號,程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS18B20硬件連接和軟件設(shè)計(jì)時也要給予一定的重視。</p><p> 2.3.6 DS18B20單片機(jī)的典型接口設(shè)計(jì)</p><p> 在硬件上,DS18B20與單片機(jī)的連接有兩
59、種方法:</p><p> 一種是Vcc接外部電源,GND接地,I/O與單片機(jī)的I/O線相連。此方法可以使所有使用外部電源的DS18B20同時完成溫度變換。</p><p> 另一種是用寄生電源供電,此時UDD、GND接地,I/O接單片機(jī)I/O。DS18B20內(nèi)部電容在I/O 線為高電平時貯存能量,在I/O線為低電平時消耗能量,并在I/O信號線再為高電平時能量得得到補(bǔ)充。這樣,DS18
60、20 在不需要外部提供能量的情況下就可以完成各項(xiàng)操作命令。值得注意的是,采用此種方法時UDD引腳必須接地。使用寄生電源的優(yōu)點(diǎn)是:1)遠(yuǎn)程溫度檢測無需本地電源;2)缺少正常電源條件下也可讀ROM。</p><p> 就兩種方式相比較而言,寄生電源方式少用一根導(dǎo)線,但它完成溫度測量所需的時間較長,而外部電源方式測量速度則要快些。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接4.7KΩ左右的上拉電阻。圖10給出了DS
61、18B20與微處理器的典型連接。圖10(a)中DS18B20采用寄生電源方式,其VDD和GNG端均接地,圖10(b)中DS18B20采用外接電源方式,其VDD端用3V~5.5V電源供電。本系統(tǒng)采用圖10(b)所示接線方式,即外接電源工作方式。</p><p> 圖10 (a)寄生電源工作方式</p><p> 圖10 (b)外接電源工作方式</p><p>&l
62、t;b> 3 系統(tǒng)的軟件設(shè)計(jì)</b></p><p> 3.1 下位機(jī)程序設(shè)計(jì)</p><p> 下位機(jī)采用MCS51單片機(jī)指令進(jìn)行編程,主要包括初始化、溫度計(jì)算、溫度顯示三部分組成。DS18B20對時序和電性參數(shù)的要求很高,主CPU經(jīng)過單總線接口訪問DS18B20的工作流程必須要遵守嚴(yán)格的操作順序:首先,對DS18B20進(jìn)行初始化;其次,發(fā)送ROM命令;再則,發(fā)送
63、功能命令。程序主流程如圖11所示。源程序見附錄。</p><p> 圖11 測溫主流程框圖</p><p> 3.2 MATLAB程序設(shè)計(jì)</p><p> MATLAB是由美國mathworks公司開發(fā)的面向理論分析研究和工程設(shè)計(jì)處理的一套具有強(qiáng)大功能的軟件系統(tǒng)。在設(shè)計(jì)研究單位和工業(yè)部門,MATLAB被認(rèn)作進(jìn)行高效研究、開發(fā)的首選軟件工具。其編程語法規(guī)則與
64、一般的結(jié)構(gòu)化編程語言大同小異,而且使用更方便,具有一般編程基礎(chǔ)的用戶都可以很快熟練掌握。MATLAB具有超強(qiáng)的數(shù)據(jù)處理能力,被廣泛的應(yīng)用于信號處理、自動控制等領(lǐng)域,</p><p> 而且它的圖形用戶界面編程技術(shù)(GUIDE)簡單易學(xué),即使非專業(yè)人員也能編制出界面友好、功能強(qiáng)大的應(yīng)用程序。對于一般的微轉(zhuǎn)換器,實(shí)現(xiàn)數(shù)據(jù)的采集過程較為簡單,但要對采集的結(jié)果進(jìn)行快速的實(shí)時處理就比較困難,因?yàn)榻^大多數(shù)MCU只提供簡單的
65、8位無符號數(shù)的四則運(yùn)算指令系統(tǒng),對于有符號數(shù)的乘方、開方等運(yùn)算軟件實(shí)現(xiàn)起來比較困難。</p><p> 3.2.1 MATLAB串口通信技術(shù)</p><p> 對于WINDOWS系統(tǒng)而言,硬件系統(tǒng)的驅(qū)動程序有著十分嚴(yán)格的規(guī)范,可以用C或匯編語言進(jìn)行開發(fā),而MATLAB本身是一個跨平臺的軟件,并不具備直接訪問硬件的能力。即使安裝了驅(qū)動程序并能正常作的硬件設(shè)備,MATLAB也沒有統(tǒng)一的形式
66、對其進(jìn)行訪問。對于系統(tǒng)的串口,在MATLAB6.X中以類(SERIAL)的形式提供了支持。當(dāng)用指令建立了一個串口對象(句柄)以后,對串口的硬件操作可以文件操作的軟件形式來完成,方法比較簡單。</p><p> 在MATLAB中的設(shè)備控制工具條(INSTRUMENT CONTR0L T00LB0X)用來負(fù)責(zé)上、下位機(jī)之間的通信。該設(shè)備控制工具箱的特色如下:</p><p> 1)支持基于
67、串行接口(RS-232、RS-422、RS-485)、GPIB總線(IEEE2488、HPIB標(biāo)準(zhǔn))、VISA總線的通信;</p><p> 2)通信數(shù)據(jù)支持二進(jìn)制和文本(ASCII)兩種方式,文本方式支持SCPI(Standard Commands for ProgrammableInstruments)語言;</p><p> 3)支持異步通信和同步通信;</p>&
68、lt;p> 4)支持基于事件驅(qū)動的通信。</p><p> 從以上Matlab設(shè)備控制工具箱的特點(diǎn)可以看到,Matlab完全可以滿足我們實(shí)現(xiàn)串行通信的要求。</p><p> Matlab對串行口的編程控制主要分為四個步驟。</p><p> 1)創(chuàng)建串口設(shè)備對象并設(shè)置其屬性。</p><p> com=serial('
69、;com1');%創(chuàng)建串口1的設(shè)備對象com1</p><p> com.Terminator='CR';%設(shè)置終止符為CR(回車符),缺省為LF(換行符)</p><p> com.InputBufferSize=1024;%輸入緩沖區(qū)為256B,缺省值為512B</p><p> com.OutputBufferSize=1024;
70、%輸出緩沖區(qū)為256B,缺省值為512B</p><p> com.Timeout=0.5;%設(shè)置一次讀或?qū)懖僮鞯淖畲笸瓿蓵r間為0.5s,缺省值為10s</p><p> s.ReadAsyncMode='continuous'(缺省方式);%在異步通信模式方式下,讀取串口數(shù)據(jù)采用連續(xù)接收數(shù)據(jù)(continuous)的缺省方式,那么下位機(jī)返回的數(shù)據(jù)會自動地存入輸入緩沖區(qū)
71、中。</p><p> 注意:有些屬性只有在對象沒有被打開時才能改變其值,如InputBufferSize、OutputBufferSize屬性等。對于一個RS-232/RS-422/RS-485串口設(shè)備對象,其屬性的缺省值為波特率9600b/s,異步方式,通信數(shù)據(jù)格式為8位數(shù)據(jù)位,無奇偶校驗(yàn)位,1位停止位。如果要設(shè)置的串口設(shè)備對象的屬性值與缺省值的屬性值相同,用戶可以不用另行設(shè)置。</p>&l
72、t;p> 另外,設(shè)置串口設(shè)備對象的屬性也可以用一條指令完成,如:com=serial('COM1','BaudRate',38400,'Parity','none','DataBits',8,'StopBits',1)。也可以用set命令,如set(com,'BaudRate',19200,'Parity
73、9;,'even')。創(chuàng)建了對象后可以在Matlab命令窗口直接敲對象名并回車,看到其基本屬性和當(dāng)前狀態(tài)。若需要知道其全部的屬性,可以用get(scom)命令。</p><p> 2)打開串口設(shè)備對象。</p><p> fopen(com);</p><p> 3)讀寫串口操作。初始化并打開串口設(shè)備對象之后,現(xiàn)在可以對串口設(shè)備對象進(jìn)行讀寫操作
74、,串口的讀寫操作支持二進(jìn)制和文本(ASCII)兩種方式。當(dāng)Matlab通信數(shù)據(jù)采用文本(ASCII)方式時,讀寫串口設(shè)備的命令分別是fscanf、fpritf;當(dāng)Matlab通信數(shù)據(jù)采用二進(jìn)制方式時,讀寫串口設(shè)備的命令分別是fread、fwrite。下面以文本方式讀寫串口為例:</p><p> a.讀串口。A=fscanf(com1,'%d',[10,100];%從串口設(shè)備對象com1中讀入1
75、0*100個數(shù)據(jù)填充到數(shù)組A[10,100]中,并以整型的數(shù)據(jù)格式存放。</p><p> b.寫串口。fprintf(com1,'%s','RS232?',’async’);%將字符串’RS232?’以字符的數(shù)據(jù)格式寫入到串口設(shè)備com1,寫操作以異步的方式進(jìn)行。</p><p> 4)關(guān)閉并清除設(shè)備對象。</p><p>
76、fclose(com);%關(guān)閉串口設(shè)備對象</p><p> delete(com);%刪除內(nèi)存中的串口設(shè)備對象</p><p> clear com;%清除工作空間中的串口設(shè)備對象</p><p> 當(dāng)不再使用該串口設(shè)備對象時,順序使用以上3條命令,可以將所創(chuàng)建的串口設(shè)備對象清除,以免占用系統(tǒng)資源。</p><p> 可以看出,在M
77、atlab中進(jìn)行串行通信是十分方便的,編程較為簡單。而且,在Matlab中串行通信的失誤率很低,通信較為可靠,也可以采用增加握手信號以及數(shù)據(jù)校驗(yàn)等的方式進(jìn)一步增加通信的可靠性。</p><p> INSTRUMENT C0NTR0L T00LB0X包括兩大部件:M文件函數(shù)和接口驅(qū)動適配器。這兩部件提供了MATLAB與外設(shè)的通訊功能。</p><p> MATLAB的兩大部件提供一條外設(shè)
78、與MATLAB之問的交互通道,使用戶與外設(shè)之間進(jìn)行信息獲取和傳送。同許多高級語言一樣,MATLAB通過調(diào)用M文件函數(shù)來創(chuàng)建設(shè)備對象,得到設(shè)備的文件句柄,而設(shè)備驅(qū)動程序作為操作系統(tǒng)中直接控制硬件的模塊,是鏈接操作系統(tǒng)內(nèi)核與系統(tǒng)外部設(shè)備I/0操作的關(guān)鍵模塊。它將具體的硬件細(xì)節(jié)隱藏實(shí)現(xiàn)對外設(shè)操作的透明,因此MATLAB可以象操作文件一樣實(shí)現(xiàn)對外設(shè)的讀、寫操作。同時MATIAB支持二進(jìn)制和文本(ASCII) 兩種串行通信方式,支持異步通信和同步
79、通信;支持查詢和基于事件驅(qū)動的兩種串行通信方式。</p><p> 3.2.2 MATLAB GUI介紹</p><p> 圖形用戶界面(graphical user interface,GUI)是由窗口、光標(biāo)、按鍵、菜單、文字說明等對象(Object)構(gòu)成的一個用戶界面。用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對象,使計(jì)算機(jī)產(chǎn)生某種動作或變化,比如實(shí)現(xiàn)計(jì)算、繪圖等。假如科
80、技工作者僅僅執(zhí)行數(shù)據(jù)分析、解方程等工作,一般不會考慮GUI的制作。但是如果想向客戶提供應(yīng)用程序,想進(jìn)行某種技術(shù)、方法的演示,想制作一個供反復(fù)使用且操作簡單的專用工具,那么圖形用戶界面是最好的選擇之一。</p><p> Matlab為表現(xiàn)其基本功能而設(shè)計(jì)的演示程序demo是使用圖形界面的最好范例。Matlab的用戶在指令窗口中運(yùn)行demo打開圖形界面后,只要用鼠標(biāo)進(jìn)行選擇和點(diǎn)擊,就可瀏覽豐富多彩的內(nèi)容。<
81、/p><p> 開發(fā)實(shí)際的應(yīng)用程序時應(yīng)該盡量保持程序的界面友好,因?yàn)槌绦蚪缑媸菓?yīng)用程序和用戶進(jìn)行交互的環(huán)境。在當(dāng)前情況下,使用圖形用戶界面是最常用的方法。提供圖形用戶界面可使用戶更方便地使用應(yīng)用程序,不需要了解應(yīng)用程序怎樣執(zhí)行各種命令,只需要了解圖形界面組件的使用方法;同時,不需要了解各種命令是如何執(zhí)行的,只要通過用戶界面進(jìn)行交互操作就可以正確執(zhí)行程序。</p><p> 在Matlab中
82、,圖形用戶界面是一種包含多種圖形對象的界面,典型的圖形界面包括圖形顯示區(qū)域、功能按鈕空間以及用戶自定義的功能菜單等。為了讓界面實(shí)現(xiàn)各種功能,需要對各個圖形對象進(jìn)行布局和時間編程。這樣,當(dāng)用戶激活對應(yīng)的GUI對象時,就能執(zhí)行相應(yīng)的時間行為。最后,必須保存和發(fā)布自己創(chuàng)建的GUI,使得用戶可以應(yīng)用GUI對象。</p><p> 在Matlab中,所有對象都可以使用M文件進(jìn)行編寫。GUI也是一種Matlab對象,因此,
83、可以使用M文件來創(chuàng)建GUI。使用M文件創(chuàng)建GUI的方法也是最基礎(chǔ)的,使用其他方法創(chuàng)建GUI圖形界面時,實(shí)現(xiàn)圖形控件的各種功能時,也需要編寫相應(yīng)的程序代碼。</p><p> 除了使用M文件來創(chuàng)建GUI對象之外,Matlab還為用戶開發(fā)圖形界面提供了一個方便高效的集成開發(fā)環(huán)境:Matlab圖形用戶界面開發(fā)環(huán)境(matlab graphical user interface development environm
84、ent)簡稱GUIDE,其主要是一個界面設(shè)計(jì)工具集。Matlab將所有GUI所支持的用戶控件都集成起來,同時提供界面外觀、屬性和行為響應(yīng)方法的設(shè)置方法。除了可以使用GUIDE創(chuàng)建GUI之外,還可以將設(shè)計(jì)好的GUI界面保存為一個FIG資源文件,自動生成對應(yīng)的M文件。該M文件包含了GUI初始化代碼和組建界面布局的控制代碼。</p><p> 使用GUIDE創(chuàng)建GUI對象執(zhí)行效率高,可以交互式地進(jìn)行組件布局,還能生成
85、保存和發(fā)布GUI的對應(yīng)文件。</p><p> FIG文件:該文件包含GUI圖形窗口及其子對象的完全描述,包含所有相關(guān)對象的屬性信息,可以調(diào)用hgsave命令或者使用M文件編輯器的File>Save命令生成該文件。FIG文件是一個二進(jìn)制文件,包含系列化的圖形窗口對象。所有對象的屬性都是用戶創(chuàng)建圖形窗口時保存的屬性。該文件最主要的功能是對象句柄的保存。</p><p> M文件:該
86、文件包含GUI設(shè)計(jì)、控制函數(shù)及控件的回調(diào)函數(shù),主要用來控制GUI展開時的各種特征。該文件基本上可以分為GUI初始化和回調(diào)函數(shù)2個部分,控件的回調(diào)函數(shù)根據(jù)用戶與GUI的具體交互行為分別調(diào)用。應(yīng)用程序M文件使用open-fig命令來顯示GUI對象,但是該文件不包含用戶界面設(shè)計(jì)的代碼,對應(yīng)代碼由FIG文件保存。</p><p> 3.2.3 GUI界面設(shè)計(jì)</p><p> 3.2.3.1
87、GUI程序設(shè)計(jì)</p><p> h0=figure('toolbar','none',...</p><p> 'position',[198 56 408 468],...</p><p> 'name','溫度檢測系統(tǒng)溫度曲線(周宇鋒)');</p><p
88、> h1=axes('parent',h0,...</p><p> 'position',[0.15 0.45 0.7 0.5],...</p><p> 'visible','on');</p><p> in=input('輸入接收數(shù)據(jù)數(shù)目:');</p>
89、<p> n=0;s=zeros(1,in);</p><p> for i=1:in</p><p> obj1=serial('COM1');</p><p> fopen(obj1);</p><p> fwrite(obj1, '0');</p><p>
90、 num=0;tem=0;</p><p><b> n=n+1;</b></p><p><b> for i=1:3</b></p><p> data(i)= fread(obj1, 1);</p><p> data(1)=data(1)*0.1;%小數(shù)顯示出錯</p>
91、<p> data(2)=data(2)*1;</p><p> data(3)=data(3)*10;</p><p> tem=data(1)+data(2)+data(3);</p><p><b> end</b></p><p> s(n)=s(n)+tem;</p>&l
92、t;p> fclose(obj1);</p><p> delete(obj1);</p><p> clear obj;</p><p><b> end</b></p><p> hueidiao=['plot(1:in,s)',...</p><p><
93、b> ];</b></p><p> k1=uicontrol('parent',h0,...</p><p> 'style','pushbutton',...</p><p> 'position',[80 100 50 30],...</p><p&g
94、t; 'string','開始',...</p><p> 'callback',hueidiao);</p><p> k3=uicontrol('parent',h0,...</p><p> 'style','pushbutton',...</p>
95、;<p> 'position',[280 100 50 30],...</p><p> 'string','關(guān)閉',...</p><p> 'callback','close');</p><p> 3.2.3.2 GUI界面</p><p
96、> 將上面的程序輸入命令窗口就可出現(xiàn)相應(yīng)的畫面,生產(chǎn)的GUI界面如圖12</p><p> 圖12 GUI界面</p><p><b> 4 系統(tǒng)調(diào)試</b></p><p> 本次設(shè)計(jì)根據(jù)設(shè)計(jì)的先后分三個階段對系統(tǒng)進(jìn)行調(diào)試。首先設(shè)計(jì)下位機(jī):單片機(jī)和DS18B20組成的溫度測量系統(tǒng)。在設(shè)計(jì)好程序和電路后,調(diào)試可以達(dá)到預(yù)期的效果,
97、溫度可以顯示出來。下位機(jī)調(diào)好以后,調(diào)試MATLAB和串口的通信,通過MATLAB設(shè)備控制箱里的serial類和串口調(diào)試軟件實(shí)現(xiàn)串口的通信。最后是系統(tǒng)聯(lián)調(diào),通過MATLAB來控制下位機(jī)實(shí)現(xiàn)溫度的采集,并且在GUI界面中將溫度曲線繪制出來??傮w來說,設(shè)計(jì)的結(jié)果達(dá)到了目的,在一些細(xì)節(jié)方面還需要改進(jìn)。</p><p><b> 4.1下位機(jī)調(diào)試</b></p><p>
98、調(diào)試的目的主要是看能否將溫度顯示出來。將寫好的程序?qū)?,運(yùn)行。數(shù)碼管顯示實(shí)時的溫度。源程序見附錄。溫度顯示如圖13所示。</p><p><b> 4.2 串口調(diào)試</b></p><p> 串口是上位機(jī)和下位機(jī)通信的橋梁,如果串口不通,設(shè)計(jì)就不能成功。在串口調(diào)試軟件里發(fā)命令,將溫度通過開發(fā)板上的RS232讀入串口調(diào)試軟件的界面里。調(diào)試界面如圖14所示。</
99、p><p><b> 4.3 系統(tǒng)聯(lián)調(diào)</b></p><p> 下位機(jī)和串口都調(diào)試好以后,打開MATLAB軟件,在MATLAB設(shè)備控制工具箱里調(diào)試,將溫度顯示在GUI界面里。至此,整個測溫系統(tǒng)就算設(shè)計(jì)好了。MATLAB調(diào)試的結(jié)果如圖15,GUI界面設(shè)計(jì)的溫度曲線見圖16</p><p> 圖13 下位機(jī)調(diào)試結(jié)果顯示</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——多點(diǎn)溫度檢測系統(tǒng)設(shè)計(jì)
- 多點(diǎn)溫度檢測系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文——多點(diǎn)溫度檢測系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))多點(diǎn)溫度檢測系統(tǒng)的設(shè)計(jì)
- 基于matlab的織物疵點(diǎn)檢測系統(tǒng)畢業(yè)論文
- 基于gsm網(wǎng)絡(luò)的溫度檢測系統(tǒng)【畢業(yè)論文】
- 多點(diǎn)溫度檢測系統(tǒng)畢業(yè)論文
- 高壓母線溫度在線檢測系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文--高壓母線溫度在線檢測系統(tǒng)設(shè)計(jì)
- 基于matlab的液壓系統(tǒng)的設(shè)計(jì)與仿真畢業(yè)論文
- 基于matlab的液壓系統(tǒng)的設(shè)計(jì)與仿真畢業(yè)論文
- 基于plc溫室溫度檢測與控制系統(tǒng)的設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文--糧庫溫度自動檢測系統(tǒng)的設(shè)計(jì)
- 基于matlab的模糊控制系統(tǒng)仿真設(shè)計(jì)【畢業(yè)論文】
- 基于wsn的無線溫度采集系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文--基于matlab的人臉識別系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文——溫度監(jiān)控系統(tǒng)的設(shè)計(jì)
- 畢業(yè)論文---溫度監(jiān)控系統(tǒng)的設(shè)計(jì)
- 溫度監(jiān)控系統(tǒng)的設(shè)計(jì)-畢業(yè)論文
- 基于fpga的溫度控制系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
評論
0/150
提交評論