畢業(yè)論文-基于labview的實時溫度采集系統(tǒng)的設計【精校排版】_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設計(論文)</p><p><b> ?。?0 屆)</b></p><p>  基于LabVIEW的實時溫度采集系統(tǒng)的設計</p><p><b>  目錄</b></p><p><b>  摘要III</b></p>&l

2、t;p>  AbstractIV</p><p><b>  第一章 緒論1</b></p><p>  1.1 課題背景1</p><p>  1.2 課題現狀1</p><p>  1.3 課題的研究目的和意義2</p><p>  1.4 本課題采取的技術路線2&

3、lt;/p><p>  第二章 主要技術簡介3</p><p>  2.1 LabVIEW簡介3</p><p>  2.2 Proteus簡介4</p><p>  第三章 總體設計7</p><p>  3.1 系統(tǒng)結構7</p><p>  3.2 下位機部分7<

4、/p><p>  3.3 上位機部分9</p><p>  3.4 通信線路部分9</p><p>  第四章 詳細設計11</p><p>  4.1 上位機的實現11</p><p>  4.1.1 串口的配置11</p><p>  4.1.2 數據處理13</p

5、><p>  4.1.3 數據的顯示15</p><p>  4.2 下位機的實現15</p><p>  4.3 通信線路的實現17</p><p>  第五章 仿真與實現19</p><p>  5.1 下位機調試19</p><p>  5.2 上位機調試20</

6、p><p>  5.3 系統(tǒng)實現和調試22</p><p>  第六章 總結25</p><p><b>  參考文獻26</b></p><p><b>  附錄27</b></p><p><b>  致謝31</b></p>

7、<p>  基于LabVIEW的實時溫度采集系統(tǒng)的設計</p><p><b>  摘要</b></p><p>  溫度采集在每個部門得到了廣泛的應用,因此設計簡單方便的溫度采集系統(tǒng)具有十分重要的意義。傳統(tǒng)的溫度采集系統(tǒng),其功能唯一,用戶無法根據自己的需要改變。為此本文提出了一種基于LabVIEW軟件開發(fā)平臺的溫度實時采集系統(tǒng)的實現方案,它具有精度高、界

8、面好、易于操作、成本低且擴展性強。</p><p>  本方案中,以LabVIEW8.5軟件平臺開發(fā),單片機80C51為硬件核心,設計一個實時溫度測控系統(tǒng)。該系統(tǒng)采用數字溫度傳感器DS18B20,配合單片機,實現現場溫度采集系統(tǒng)。通過通信線路和計算機進行通信,并由平臺對信號進行顯示、存儲。本方案通過了EDA軟件Proteus的仿真驗證,實驗證明設計完全可行,達到設計預期。</p><p>

9、  關鍵詞:數據采集;傳感器;虛擬儀器;LabVIEW</p><p>  Design of Real-time Temperature Collection System Based on LabVIEW</p><p><b>  Abstract</b></p><p>  Temperature acquisition in each

10、 department has been widely used, so the design is simple and convenient temperature acquisition system has very important significance. The traditional temperature acquisition system, its functions and specifications of

11、 a single fixed, users can not change according to their needs. This paper proposes a software development platform based on the temperature of LabVIEW Real-Time Acquisition System program, which has high precision, good

12、 interface, easy operation, l</p><p>  Keywords:Data Acquisition,Sensors,Virtual Instrument,LabVIEW</p><p><b>  第一章 緒論</b></p><p><b>  1.1 課題背景</b></p&g

13、t;<p>  無論你關心與不關心溫度,溫度總是影響著你的一生,冬天我們生火取暖,夏天我們下河洗澡,我們所做的就是讓自己的體溫保持在一個正常的狀態(tài)。一場無情的大火會吞噬一切,當災難發(fā)生的時候,我們總是無助的。我們看看國內的一則新聞,2010年11月15日14時,上海余姚路膠州路一棟高層公寓起火。據附近居民介紹,公寓內住著不少退休教師,起火點位于10-12層之間,整棟樓都被大火包圍著,樓內還有不少居民沒有撤離,其中58人死亡

14、,70余人受傷送醫(yī),56余人失蹤。又是一場災難,當災難發(fā)生了,我們所做的只能是補救,如果我們在事故發(fā)生以前,我們能做很好的預防,我們就完全能避免災難的發(fā)生,所以對溫度的采集就非常有必要了。總之,設計可靠且實用的溫度采集系統(tǒng)顯得非常重要。</p><p><b>  1.2 課題現狀</b></p><p>  目前我國許多對溫度的測試還停留在人工巡回測試,使用古老的

15、水銀溫度計,這種溫度計只能人為去測量溫度,而且不能遠程測量,如果要測量一段時間溫度的變化,還要停留在那個環(huán)境一段時間,一點都不人性化,而且浪費時間,隨著集成電路的發(fā)展,電子溫度采集系統(tǒng)孕育而生,它比水銀溫度計更能精確的采集溫度數據,而且LED的顯示更直觀的表示溫度信息,可是也有很多的不足,功能單一,結構簡單,對于數據的儲存,還是最原始的儲存方式,不便于數據長期的保存,只能對單點進行溫度測量,不能組網測量溫度??墒翘摂M儀器卻解決這樣的問題

16、,給我們帶來了希望是曙光,虛擬儀器是計算機硬件資源、儀器硬件、數據分析處理、軟件、通信軟件及圖行用戶界面的有效結合,具有傳統(tǒng)儀器所具備的信號采集、信號處理分析、信號輸出等功能。其基本構成包括計算機、虛擬儀器軟件、硬件接口和測試儀器等。硬件技術包括卡式儀器和總線技術,其中總線技術包括計算機總線和儀器總線。軟件技術包括虛擬儀器應用軟件的開發(fā)平臺、和儀器驅動程序以及I/O接口軟件。軟件的開發(fā)平臺主要有Visual C++,Visual Bas

17、ic和NI公司的LabVIEW、Lab Windows/CVI等</p><p>  1.3 課題的研究目的和意義</p><p>  主要目的: 基于LabVIEW平臺開發(fā)接收單片機發(fā)送的實時溫度信息,并進行處理; 利用Zigbee嵌入式無線通信模塊組建分布式溫度感應系統(tǒng)。</p><p>  主要意義:本文設計的溫度測控系統(tǒng)以單功耗的單片機系統(tǒng)為采集模塊

18、,以LabVIEW開發(fā)的軟件平臺進行溫度處理與控制,與傳統(tǒng)儀器相比,具有更友好,易于操作及擴張性強等特點。使用的高級語言Keil C對單片機編程技術、Protues對原理圖的設計及仿真應用、LabVIEW軟件實現與計算機的通信技術,系統(tǒng)能夠解決傳統(tǒng)設備不能多點采集溫度數據、不便保存溫度信息的問題,讓人們更加人性化的工作。</p><p>  1.4 本課題采取的技術路線</p><p>

19、  本課題要做的是溫度測量系統(tǒng)的仿真與實現,而本課題擬采用的技術路線是通過濕度傳感器DS18B20采集頻率數據,將其傳送到單片機,再通過通信線路傳輸到計算機中,再在計算機中調用LabVIEW軟件對數據進行處理及顯示。系統(tǒng)的仿真是由Proteus軟件與Keil C51以及LabVIEW三個軟件進行聯合仿真實現的;系統(tǒng)的實現是做好硬件實物后,將實物與計算機用串口連接好后,再在計算機中啟動LabVIEW軟件,調節(jié)好參數啟動即可實現分布式濕度測

20、量系統(tǒng)的實現。</p><p>  對于通信線路的選擇,可以根據不同的距離,選擇不同的傳輸模式,可以是使用RS232,或者Zigbee無線模塊進行傳輸。</p><p>  第二章 主要技術簡介</p><p>  2.1 LabVIEW簡介</p><p>  LabVIEW(Laboratory Virtual Instrument

21、Engineering Workbench),是一種用圖標代替文本行創(chuàng)建應用程序的圖形化編程語言[1]。由美國國家儀器(National Instrument,簡稱NI)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,是一種數據流編程語言。程序員通過繪制導線連接不同功能的節(jié)點,圖形化的程序框圖(L

22、V源代碼)結構決定程序如何執(zhí)行。這些線傳遞變量,所有的輸入數據都準備好之后,節(jié)點便馬上執(zhí)行。這可能出現同時使用多個節(jié)點的情況,G語言天生地具有并行執(zhí)行能力。內置的調度算法自動使用多處理器和多線程硬件,可以跨平臺地在可運行的節(jié)點上復用線程,產生的程序是框圖的形式。</p><p>  LabVIEW集成了與滿足GPIB、VXI、RS-232和RS-485協議的硬件及數據采集卡通訊的全部功能。它還內置了便于應用TCP

23、/IP、ActiveX等軟件標準的庫函數。這是一個功能強大且靈活的軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。利用LabVIEW,可產生獨立運行的可執(zhí)行文件,它是一個真正的32位編譯器。像許多重要的軟件一樣,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多種版本。它主要的方便就是,一個硬件的情況下,可以通過改變軟件,就可以實現不同的儀器儀表的功能,非常方便,是相當

24、于軟件即硬件現在的圖形化主要是上層的系統(tǒng),國內現在已經開發(fā)出圖形化的單片機編程系統(tǒng)(支持32位的嵌入式系統(tǒng),并且可以擴展的),而且也在不斷完善中。</p><p>  如圖2.1所示是一個頻域分析_雙邊傅里葉變換程序,如圖2.2所示是程序的前面板。通過上面的程序,我們可以看到頻域分析_雙邊傅里葉變換程序在LabVIEW中,就是由幾個功能不同的控件構成,一個簡單的正弦信號,通過配置幅度和頻率,就可以產生需要的信號,

25、三個信號進行做加運算,然后送到波形表中顯示,將數據送入到FFT中,運用復函數到極坐標的轉換,除上維數,最后顯示頻域信號。</p><p>  圖2.1 程序框圖</p><p><b>  圖2.2 前面板</b></p><p>  試想一下,如果我們用C語言,在很短的時間內實現這一功能,結果我們是可想而知的,這個是很難的。</p&

26、gt;<p>  LabVIEW處理的信息由我們的硬件產生的,可是我們在做硬件的時候,我們可以使用Proteus對硬件仿真,隨后在做實體,我們就可以提前知道我們面臨的問題了,從而更迅速的解決問題,下面我們來介紹一下Proteus。</p><p>  2.2 Proteus簡介</p><p>  Proteus軟件是來自英國Labcenter electronics公司的

27、EDA工具軟件,具有其它EDA工具如PROTELL 99等軟件的常規(guī)功能:原理圖編輯、PCB自動或人工布線及電路仿真的功能外,此外它最大的特點是可以對眾多MCU進行多種編程語[2]。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具,從

28、原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和

29、MPLAB等多種編譯器。</p><p>  Proteus元件庫中具有很多的元器件,并不需要自己封裝,我們要做的只是把元件庫中的元件拿出來用,隨后連接,完成最終的電路,Proteus最大的功能就是仿真,內含眾多的仿真模塊,電壓表,波形圖,虛擬終端,在我們虛擬中使用到的單片機,可以將keil眾多文件加入單片機,從而上單片機根據我們的指令工作。串口提供了一個很重要的功能PIM,這個功能不僅可以讓我們的串口可以外接實

30、體硬件,還可以接虛擬借口,從而更方便的進行仿真。圖2.3所示是一個溫度收集系統(tǒng)的仿真,我們在庫中調用全部設計好的元件,然后連線,導入HEX文件,最后點擊仿真,我們就可以看到系統(tǒng)的運行。</p><p>  圖2.3 溫度收集系統(tǒng)仿真圖</p><p>  如果我們沒有硬件實體,可是又想做仿真,那Proteus是我們最好的選擇。而Vspd能這個虛擬串口工具,虛擬出串口能外接器件。</

31、p><p><b>  第三章 總體設計</b></p><p><b>  3.1 系統(tǒng)結構</b></p><p>  整個系統(tǒng)由三個部分組成,上位機、通信線路、下位機。上位機,由LabVIEW開發(fā)平臺設計,主要負責處理由MCU通過通信線路發(fā)送來的數據,并利用LabVIEW中的控件顯示,一個是溫度計,另一個是波形圖表;

32、下位機,由MCU和DS18B20構成,就是一個溫度收集系統(tǒng),將環(huán)境溫度收集,經過MCU的處理以后,通過通信線路發(fā)送到LabVIEW上顯示;通信線路,供我們選擇的有RS232,RS485,Zigbee協議通信模塊。</p><p>  我們使用LabVIEW做上位機,MCU和DS18B20收集溫度數據,在經過通信鏈路發(fā)送給LabVIEW進行數據的處理和顯示,如圖3.1所示。</p><p>

33、  圖3.1 系統(tǒng)設計框圖</p><p>  3.2 下位機部分</p><p>  下位機,由MCU和DS18B20組成一個溫度信息收集以及發(fā)送的系統(tǒng),當收集到溫度信息以后,經過數據的處理,然后將數據發(fā)送到LabVIEW上。如圖3.2所示。</p><p>  圖3.2 下位機設計框圖</p><p>  MCU是控制器,在經過這幾

34、年不斷地研究,發(fā)展,歷經4位,8位,到現在的16位及32位,甚至64位。產品的成熟度,以及投入廠商之多,應用范圍之廣,真可謂之空前。根據我們我們的需求,本設計選用的中央處理單元是STC89C52單片機,STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Eras-able Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除

35、只讀存儲器可以反復擦除。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。MCS-51單片機是在一塊芯片中集成了CPU、RAM、ROM、定時器/計數器和多種功能的I/O口等一臺計算機所需要的基本功能部件[3]。我們選擇STC89C52的原因,在于我們使用到的MCU,只是做一個數據的收集和發(fā)送,沒有什么高需求,STC89C52完全能夠勝任,而且STC89C52完全兼容51單片機,性價比高。

36、</p><p>  DS18B20是DALLAS半導體公司生產的可組網數字溫度傳感器,具在其內部使用了在板(ON-B0ARD),專利技術。全部傳感元件及轉換電路集成在形成如一只三極管的集成電路內[4]。我們選擇DS18B20的原因:</p><p>  獨特的單線借口僅需一個端口引腳進行通訊;</p><p>  簡單的多點分布應用;</p><

37、;p><b>  無需外部器件;</b></p><p><b>  零待機功耗;</b></p><p><b>  可通過數據線供電;</b></p><p>  撥碼開關可以組建更大的網絡,它的作用就是選擇對應的地址,如果單片機中的地址和撥碼開關一致,就將數據包通過數據線路發(fā)送到LabVI

38、EW上顯示,否則不發(fā)送數據。</p><p>  3.3 上位機部分</p><p>  上位機的開發(fā),有許多工具,例如:.Net、VC,每個平臺都具有自己的優(yōu)點,可是這些平臺都具有一個共同的特點,編程十分的復雜,基于代碼化的編程,對于我們來說這是非常難以掌握的,而LabVIEW圖形化的編程方式,具有集成的控件,優(yōu)美的編程界面,讓我們在很短的時間內完成開發(fā),縮短開發(fā)周期,提高競爭力。&l

39、t;/p><p>  LabVIEW,一共有五個主要模塊,分別為:配置VISA,數據同步,數據緩存,數據處理,數據顯示如圖3.3所示。作用如下:</p><p>  配置VISA:問提供數據的傳輸做準備。</p><p>  數據同步:配置VISA資源名稱,波特率,數據比特,停止位,等等。</p><p>  數據緩存:為了提高數據傳輸,設置數據

40、緩存期。</p><p>  數據處理:進行數據處理,拆分數據包,保存有用信息。</p><p>  數據顯示:將溫度信息送入模擬溫度計,波形圖。</p><p>  圖3.3 LabVIEW流程圖</p><p>  3.4 通信線路部分</p><p>  通信線路是保證信息傳遞的通路,我們可以把通信分為有線通

41、信或者無線通信方式。有線通信,經常使用的傳輸介質有,電纜,雙絞線,光纖。由于通信行業(yè)的發(fā)展,數據高速傳輸的要求,電纜作為傳輸介質,已經很少使用了,現在基本使用雙絞線和光纖作為傳輸介質,雙絞線一般作為局域網內的傳輸線,雖然現在已經有光纖到戶,可是雙絞線在局域網內大多使用的還是雙絞線,光纖的傳播速度很快,城域網和廣域網,樓宇之間使用的大多數都是光纖,單模光纖傳播速度快,一般用于遠距離傳播。有線通信,一般受干擾較小,可靠性,保密性強,但建設費

42、用大。無線通信,目前使用較廣泛的近距無線通信技術是藍牙(Bluetooth),無線局域網802.11(Wi-Fi)和紅外數據傳輸(IrDA)。同時還有一些具有發(fā)展?jié)摿Φ慕酂o線技術標準,它們分別是:Zigbee、超寬頻(Ultra WideBand)、短距通信(NFC)、WiMedia、GPS、DECT、無線1394和專用無線系統(tǒng)等。它們都有其立足的特點,或基于傳輸速度、距離、耗電量的特殊要求;或著眼于功能的擴充性;或符合某些單一應用的

43、特別要求;或建立競爭技術的差異化等。這個是從有線的方式對通信進行分</p><p>  我們?yōu)榱藢崿F多點的溫度測控,我們選擇Zigbee嵌入式無線通信模塊,我們使用它來連接PC和MCU,PC機的電平是RS232,MCU的電平是TTL,兩個終端的電平不兼容,使用Zigbee不需要電平轉換,直接使用兩個模塊,進行終端配置就可以通信縮短了我們開發(fā)的周期。Zigbee是一種高可靠的無線數傳網絡,類似于CDMA和GSM網絡

44、。Zigbee數傳模塊類似于移動網絡基站。通訊距離從標準的75m到幾百米、幾公里,并且支持無限擴展[6]。 </p><p><b>  第四章 詳細設計</b></p><p>  4.1 上位機的實現</p><p>  LabVIEW的設計主要由三個部分組成,分別是串口的配置,數據的處理,數據的顯示,如圖4.1所示。這個只是軟件系統(tǒng),

45、我們的硬件系統(tǒng)就是一臺PC機。</p><p>  串口的配置:作用是做好串口硬件的配置,便于正確接收數據配置的內容有,串口ID,波特率等。</p><p>  數據的處理:處理下位機的數據,通過一系列方法獲得溫度信息。</p><p>  數據的顯示:通過一種直觀的方法,將數據顯示,使得人們更容易理解。</p><p>  圖4.1 La

46、bVIEW工作框圖 </p><p>  4.1.1 串口的配置</p><p>  串口的配置,主要指定的是使用的串口資源,以及串口COM口的選擇,還有波特率的選擇,如果不能正確的配置,我們就會收到錯誤的數據,或者收不到數據。我們使用到的控件主要有VISA resource name和VISA select。VISA resource name就打開指定的資源,如果我沒有指定資源,那我

47、們根本就不能配置,資源的指定是我們的第一步,使用VISA resource name連接至VISA select,就可以指定我們的資源了如圖4.2所示。</p><p>  圖4.2 VISA資源名稱配置圖</p><p>  在PC中我們擁有的資源很多,例如在我們的PC中就擁有2個COM口,COM1和COM2,當然筆記本是沒有COM口的,我們是通過VSPD虛擬出來的,如果我們的系統(tǒng)中沒

48、有這個功能,只是指定一個COM口,那在這個當今擁有很多終端的時代,當使用的端口被其他終端設備使用,那我們就沒有辦法,只能等待COM口的空閑,所以我們必須提供COM口的選擇,隨后我們就開始配置串口,配置串口就是配置COM端口以及波特率的配置,在我們的PC中,我們擁有的COM口有COM1和COM2如圖4.3所示,除了能夠進行對COM口的選擇外,我們還能刷新COM口,尋找新的資源,方便我們能夠及時的使用新COM口。</p>&l

49、t;p>  圖4.3 COM口選擇圖</p><p>  我們通過下拉列表控件和條件結構,提高給用戶擁有選擇眾多波特率選項的功能,我們提供的波特率有:9600、19200、38400、57600、115200,我們可以根據我們使用的終端調節(jié)波特率,選擇過低的波特率,傳輸效率慢,消耗資源,選擇過高的波特率,傳輸速率高,可是有可能出現接收數據的不及時,而導致數據的丟失。我們使用的下位機為單片機,綜合各方面的因

50、素,我們選擇9600的波特率如圖4.4所示。當我們選中了合適的數據以后,我們就把數據送給VISA select,當我們配置COM口和波特率以后,我們的串口配置還沒有結束,我們還要配置啟用終止符,啟用終止符使串行設備做好識別終止符的準備,我們提供的值是邏輯常量FALSE,就會產生一個信息比歐式串行設備不識別終止符,這樣就可以通過設置的While循環(huán)無限的讀取信息,只有當串口關閉的時候,讀取這個動作才會停止。通過VISA資源名稱輸出,就能把

51、數據傳給下一個模塊,經過一系列的處理,我們就將串口配置好了如圖4.5所示。利用VISA select控件,可以提供更完善的數據串行傳輸,我們可以不僅僅可以設置COM口、波特率,還有其他的功能,例如偶校驗,流控制</p><p>  圖4.4 波特率選擇圖 圖4.5 串口配置圖</p><p>  4.1.2 數據處理</p>

52、<p>  數據處理的目的是將數據包中的包頭拆開,取出溫度信息,并送入顯示模塊。在這個過程中,還記錄了讀取的總字節(jié)數并顯示。</p><p>  數據處理模塊包括:建立緩存器,讀數據包,識別數據包,數據轉換,數據包拆分,數據類型轉換如圖4.6所示。</p><p>  圖4.6 數據處理模塊圖</p><p><b>  1. 建立緩存器<

53、;/b></p><p>  通過VISA設置I/O緩沖區(qū)大小控件建立一個大小為4096字節(jié)的緩存器如圖4.7所示,用來接收串口發(fā)送的數據,緩存器可以用來匹配數據收發(fā)端速率的不同,確保數據收發(fā)的同步。緩存器的作用不僅僅是作為I/O接收緩沖區(qū),當屏蔽的值為32時,緩存器作為I/0傳輸緩沖區(qū),當屏蔽的值為48時,緩存器作為I/O接收和傳輸緩沖區(qū),面對不同的用途,我們通過設置屏蔽不同的值,選擇我們所需求的模塊。&

54、lt;/p><p>  圖4.7 緩存器配置圖</p><p><b>  讀數據包</b></p><p>  我們通過VISA讀取控件來讀取緩沖區(qū)的數據,節(jié)點用于從一個比特流文件中讀取一定行數的字符串。讀取操作完成后,節(jié)點關閉。我們定義的數據包,有2個部分組成,數據包頭和溫度信息,數據包頭用來識別數據包,數據包頭和溫度信息為2個字節(jié)。包頭定義為

55、TM。每次設置讀取一個數據包4個字節(jié)如圖4.8所示,還要設置返回數,讀取緩沖區(qū)、錯誤輸出、錯誤輸入、這樣次能讓控件正常工作,返回數的作用就是返回讀取的字節(jié)數,通過它和一個反饋節(jié)點的作用,返回數返回的是讀取字節(jié)的數目,通過一個反饋節(jié)點每次都加上后一個數字,將讀取的所有字節(jié)數送入累加字節(jié)顯示框中在前面板顯示。</p><p>  圖4.8 VISA讀取配置圖</p><p><b>

56、  3. 識別數據包</b></p><p>  在我們讀取1個數據包的時候,我們要識別數據包是否完整,通過搜索/拆分字符串控件來搜索數據包,我們設置的數據包包頭TM,如果設置每個數據包的包頭都是TM的話,那我們就可以判斷這個是一個完成的數據包,必須將讀取的數據包送入控件如圖4.9所示。</p><p>  圖4.9 VISA讀取配置圖</p><p>

57、;  4. 數據包分拆以及類型轉換</p><p>  將字符轉換為數組,在將數組中開始的第2個開始的2個字節(jié)數據提取出來,強制轉換如圖4.10所示,數據包的設置中,頭2個字節(jié)是包頭部分,它的作用是做同步的,而我們要顯示的僅僅是溫度數據部分,所以我們要把溫度數據提取出來,我們是通過數組子集控件來作用的,首先將數組數據輸入控件,第一個2表示從數組的第2個字節(jié)開始收集數據,第二個2表示總共收集2個溫度數據,,然后轉換

58、類型,最后就會將我們的子數組輸入顯示控件。數據包的變化如圖4.11所示。</p><p>  圖4.10 數據包分拆圖配置 圖4.11 數據包變化圖</p><p>  4.1.3 數據的顯示</p><p>  數據的顯示通過2個控件,溫度計和波形圖,可以直接將數據送入溫度計,在通過數組插入和反饋節(jié)點一起作用記錄讀取的數據如圖4.12所示

59、,然后送入波形圖如圖4.13所示,所以我們看到波形圖的X軸一直在變化。我們在這里使用的是數組插入控件和一個反饋節(jié)點,利用反饋節(jié)點,使得我們輸入的數據連續(xù)顯示,而數組插入控件則是插入數據。</p><p>  圖4.12 數據插入圖 圖4.13 波形圖</p><p>  4.2 下位機的實現</p><p>

60、  下位機的主要部分由STC89C52和DS18B20構成一個溫度感應硬件系統(tǒng)如圖4.14,DS18B20收集溫度信息,STC89C52處理接收到的數據,撥碼開關的作用是判斷,單片機的地址是撥碼開關設定的地址相符,如果符合的話,就將數據發(fā)送到上位機顯示,否則上位機不做任何處理。.</p><p>  圖4.14 硬件系統(tǒng)</p><p>  DS18B20,通過一個單線接口發(fā)送或接收數據

61、,因此在STC89C52和DS18B20之間僅僅需要一條連接線(加上地線)。用于讀寫和溫度轉換的電影可以數據線本身獲得,無需從外部電源。因為每個DS18B20都有一個獨特的片序列號,所以多只DS18B20可以同時連在一根單線總線上,這樣就可以把溫度傳感器放在許多不同的地方。采用寄生電源,電路會在I/O或VDD引腳處于高電平時“偷”能量,寄生電源有兩個好處:1)進行遠距離測溫時,無需本地電影,2)可以在沒有常規(guī)電源的條件下讀ROM。<

62、;/p><p>  溫度傳感器數據采集通過DS18B20將數據包經過單片機將數據通過通信線路傳輸到上位機如圖4.15所示,DS18B20收集來的溫度信息,發(fā)送給單片機,撥碼開關判斷地址是否是本機地址,如果是單片機延遲0.9秒接收數據,隨后發(fā)送數據,數據都是經過處理的,數據包總共4個字節(jié),以TM開頭,后面都為本機地址和溫度信息,在上位機的處理中,經過LabVIEW的處理,將溫度信息取出,隨后以圖形的形式顯示出來,這個過

63、程和LabVIEW對數據的處理是反過來的。</p><p>  圖4.15 下位機軟件流程圖</p><p>  4.3 通信線路的實現</p><p>  Zigbee無線通信模塊標準接口規(guī)范,包含電源接口、數據接口、控制接口和系統(tǒng)指示燈接口和天線接口等,接口采用標準2.54雙排插針,與系統(tǒng)接口可以采用插座或接線座模式引出到用戶系統(tǒng)。 </p>

64、<p>  當我們使用無線模塊和PC,或者和STC9C52相連的時候,需要連接五個端點,GND電源地,VCC+5V,SGND接信號地,當無線模塊和PC連接的時候,TX2/RX232接RX,RX2/RS232接TX如圖4.17所示,當無線模塊和STC89C52連接的時候,RX1/TTL接TX,TX1/TTL接RX如圖4.16所示。然后進行兩個無線模塊進行終端配置波特率和數據位,停止位,就完成配置。我們再次還要定義數據包的格式,數

65、據包總共有兩個部分組成,數據包頭和溫度信息,都為兩個字節(jié),數據包頭用于判斷數據包的完整性,溫度信息就是我們所傳輸的數據如圖4.18所示。</p><p>  圖4.16 無線模塊與STC89C52連接圖 圖4.17 無線模塊與PC連接圖</p><p>  圖4.18 數據包格式圖</p><p>  第五章 仿真與實現</p>

66、<p>  5.1 下位機調試</p><p>  對于下位機的調試,我們使用Keil和Proteus進行聯合仿真,Keil可以對我們下位機的程序進行編譯,調試,而且十分的方便簡單,只要對Keil稍許的配置,就可以完成和Proteus的聯合仿真。我們安裝Vdmagdi驅動,然后將Keil的狀態(tài)配置成Proteus VSM Simulat,這樣兩者就可以通信了。而Keil包含在uVision2集成開發(fā)

67、環(huán)境中,uVision2支持所有的Keil C51工具,包括C編譯器、宏編譯器、連接/定位器、目標代碼到HEX的轉換器[8]。由于Keil與Proteus之間通信是通過TCP/IP進行的,一次要確保計算機安裝了TCP/IP協議[9]。由于我們?yōu)榱瞬榭磫纹瑱C發(fā)送的數據,我們設置一個端點如圖5.1所示。我們運行程序,利用Proteus虛擬終端查看發(fā)送的數據。當我們每次運行一次的時候,單片就就會發(fā)送一個字節(jié)的數據,第一個數據是54,第二個是4

68、DH,54H和4DH都是TM的ASCⅡ碼,這個就是我們定義的數據包的包頭如圖6.2所示,后面的兩個字節(jié)都是溫度信息,觀察到的結果滿足我們先前的設計,證明下位機和通信線路正常工作。</p><p><b>  圖5.1 斷點圖</b></p><p>  圖5.2 調試效果圖</p><p>  5.2 上位機調試</p>&

69、lt;p>  上位機的調試,我們需要利用VSPD虛擬串口工具虛擬出一對串口COM1和COM2,COM1用于上位機接收收據,COM2用于下位機發(fā)送數據如圖5.3所示。VSPD只是一個轉接口,我們的串口沒有打開,也沒有數據的發(fā)送和接收,當系統(tǒng)正常工作的時候,我們就會發(fā)送端口出現發(fā)送數據的統(tǒng)計,接收端口出現接收數據的統(tǒng)計,數據的統(tǒng)計,對于判斷系統(tǒng)是否正常的工作具有很大意義。</p><p>  圖5.3 虛擬串

70、口圖</p><p>  現在我們利用LabVIEW接收數據,使用Proteus仿真下位機給上位機提供數據,我們運行LabVIEW,可是并沒有觀察到數據,我們使用探針工具查看VISA設置緩沖區(qū)控件的資源端口,探針顯示的是串口為COM2,我們此刻就理解為什么沒有數據,因為我們在先前設置的數據接收的串口為COM1如圖5.4所示,只有調整到COM1,LabVIEW才能正確的工作,否則不能正確的顯示當前環(huán)境溫度。我們在觀

71、察讀取4個字節(jié)的數據包,在探針監(jiān)視窗口觀察到的數據TM,現在的數據還是字符串,我們只能觀察到數據包頭TM,通過拆分字符串控件,根據數據包頭判斷數據包是否正常,然后我們在將字符串轉換為數組如圖5.5所示,“84”、“77”表示數據包頭,“00”、“32”表示溫度信息,這個數據和我們通過虛擬終端查看到的數據一致。下一步通過分組數據控件把溫度數據拆分出來,觀察到的數據就算“00”,“32”,最后將數據類型轉換,送入顯示控件,改變溫度查看變化曲

72、線如圖5.6所示,波形圖可以有多種數據輸入類型[10],方便我們信號的顯示。</p><p>  圖5.4 串口調試圖</p><p>  圖5.5 數據包數組圖</p><p>  圖5.6 前面板框圖</p><p>  5.3 系統(tǒng)實現和調試</p><p>  我們已經對系統(tǒng)仿真成功,現在我們就實現系統(tǒng)

73、。</p><p>  根據仿真,我們系統(tǒng)實現需要的材料有一塊8051,一顆4.7K電阻,一顆DS18B20,因為現在我們只是做單機,所以把撥碼開關拿掉。</p><p>  首先,我們把元器件組成一個物理系統(tǒng),如圖5.7,5.8所示。雖然我做的硬件系統(tǒng)比較簡單,只是一個單片機和DS18B20構成一個溫度感應器,可是這個開發(fā)流程是當今流行的,先進行仿真,然后在實現,而且我們的上位機系統(tǒng)開發(fā)

74、能力很強,可以開發(fā)出具有很大功能的應用程序?,F在的系統(tǒng)還不能正常工作,僅僅是一個硬件系統(tǒng),為了檢測我們的硬件系統(tǒng)是否可以正常,我們使用萬用表檢測各點電壓。單片機的最高電壓為10V,為了更精確的觀察,我們把萬用表調節(jié)至20V。現在給單片機上電,肉眼觀察燈已經亮了,我們用萬用表,測試單片機的VCC端,P1.7,分別為5.09V,5.03V,DS18B20的VCC,DQ端為5.04,5.03V。根據測試得到的數據,我們可知系統(tǒng)正常工作。<

75、;/p><p>  圖5.7 實物正面圖 圖5.8 實物反面圖</p><p>  然后,我們使用SSTEasyIAP11F軟件,把我們的程序燒錄到STC89C52中,計算機識別的是COM3口,我們將COM3口的波特率設置為9600。在進行配置結束以后,使用串口調試工具觀察到的數據如圖5.9所示。54H和4DH都是TM的ASCⅡ碼,

76、00、14H是溫度信息也就是感應到的環(huán)境溫度20攝氏度。</p><p>  圖5.9 串口調試</p><p>  接著,我們LabVIEW接收數據,經過前面的調試已經發(fā)現系統(tǒng)下位機發(fā)送的數據正常,打開LabVIEW,把串口調節(jié)為COM3,波特率調節(jié)為9600,觀察到的現象如圖所示。這個是溫度感應器感應到的環(huán)境溫度如圖5.10所示,現在我們用吹風機人為的改變環(huán)境溫度,如圖5.11所示,

77、觀察到的數據表明系統(tǒng)工作正常。</p><p>  圖5.10 上位機工作1圖</p><p>  圖5.11 上位機工作2圖</p><p><b>  第六章 總結</b></p><p>  本系統(tǒng)基本完成預先的目標,完成了基于LabVIEW實時的溫度測量系統(tǒng),可是由于只有一個下位機,不能組網,如果我們有更多

78、的下位機,我們就能組建溫度測量網絡 。由于Zigbee嵌入式無線通信模塊的昂貴,我們只能選擇串行通信。</p><p>  由于學習Proteus和LabVIEW時間不是很長,系統(tǒng)在設計過程中,難免存在不足之處。在程序結構上系統(tǒng)設計得還不夠緊密,對一些問題,還不是很好的能解決。雖然畢業(yè)設計已接近尾聲,但我想我的這個設計不會因為畢業(yè)設計的結束而停止,在今后的學習中,再就這些問題進行完善,爭取做出能將精度進一步提高、

79、實用價值更高的溫度檢測系統(tǒng)。</p><p>  由于時間倉促和本人水平有限,在設計過程中,難免在設計上存在一定的缺陷,請各位老師多多指正。</p><p><b>  參考文獻</b></p><p>  陳錫輝,張銀鴻.LabVIEW 8.20程序設計從入門到精通[M]. 北京:清華大學出版社,2007.7:2~3.</p>

80、<p>  陳朝元,魯五一. Proteus 軟件在自動控制系統(tǒng)仿真中的應用[J]. 系統(tǒng)仿真學報,2008,20(2):319~320.</p><p>  張為民,毛敏,毛義梅,等.MCS-51系列單片機系統(tǒng)以及應用[M]. 北京:高等教育出版社, 2004.8:10~11.</p><p>  賈振國. DS1820及高精度溫度測量的實現[J]. 電子技術應用,2005 ,

81、21(5):155~156.</p><p>  王成端. 微機接口技術[M]. 北京:高等教育出版社, 2009.12, 199.</p><p>  Zigbee協議百度百科[OL]. http://baike.baidu.com/view/215522.htm.</p><p>  楊樂樂,李海濤,楊磊.LabVIEW程序設計與應用[M]. 北京:北京工業(yè)出版

82、社,2005.1:264.</p><p>  趙亮,候國銳.單片機C語言編程與實例[M].北京:人民郵電出版社,2003.9:39.</p><p>  鄧小武,王棟.基于Proteus的單片機軟硬件實時動態(tài)仿真[D].山東:山東科技大學,2004.</p><p>  陳錫輝,張銀鴻.LabVIEW8.20程序設計從入門到精通[M]. 北京:清華大學出版社,20

83、07.7:112~113.</p><p><b>  附錄</b></p><p><b>  上位機程序框圖:</b></p><p><b>  上位機前面板:</b></p><p><b>  單片機程序:</b></p><

84、p>  #include <REG51.H></p><p>  #include <Temperature.c>//包含文件"Temperature.c"</p><p>  bit AskFlag=0;//數據請求標志,1有請求,0無請求</p><p>  sbit StateLED=P

85、1^0;//定義溫度轉換指示輸出</p><p>  #defineLocalAddr P2//定義下位機地址設定輸入口</p><p>  unsigned char SendBuf[4]={'T','M'};//定義發(fā)送緩沖區(qū)并初始化包頭</p><p>  //*********************

86、*****</p><p>  //初始化單片機函數 *</p><p>  //**************************</p><p>  void InitMCU(void)</p><p>  {TMOD=0x020; //設定定時器1,工作方8位自動重裝</p><p>

87、  TH1=253;//設定波特率9600bps(11.0592MHz時鐘)</p><p><b>  TL1=253;</b></p><p>  SCON=0x50;//串口工作在方式1,允許接收</p><p>  ES=1; //開定串口中斷</p><p>  EA=1;

88、 //開總中斷</p><p>  TR1=1; //啟動定時器1</p><p><b>  }</b></p><p>  //*******************</p><p>  // 串口中斷函數 *</p><p>  //**********

89、*********</p><p>  void SCI_INT (void) interrupt 4</p><p>  {static unsigned char n=0;</p><p>  unsigned char ch;</p><p><b>  if (RI)</b></p>

90、<p>  {RI=0;// RI清0</p><p><b>  ch=SBUF;</b></p><p>  if (LocalAddr==ch)AskFlag=1;//是否本機地址,是則置位數據請求標志</p><p><b>  }</b></p><p>&

91、lt;b>  else</b></p><p>  {TI=0;// TI清0</p><p>  if(n<4) SBUF=SendBuf[n++];//連續(xù)發(fā)送緩沖字符</p><p>  else n=0;</p><p><b>  }</b></p>

92、;<p><b>  }</b></p><p>  //*******************************************</p><p>  //溫度數據串行發(fā)送函數 *</p><p>  //*****************************************

93、**</p><p>  void Print(char T)</p><p>  {(int)(*(SendBuf+2))=T;</p><p>  TI=1;// TI置1啟動串行發(fā)送</p><p><b>  }</b></p><p>  //**************

94、*</p><p>  //主函數 *</p><p>  //***************</p><p>  void main(void) </p><p>  { unsigned int i;</p><p>  InitMCU ( );</p><p>

95、;<b>  while(1)</b></p><p>  {if (1) //數據請求標志有效</p><p>  { StateLED=0; //轉換狀態(tài)指示開</p><p>  StartConv();//啟動溫度轉換</p><p>  for(i=0;i<200

96、;i++) Delay(200);//延時約0.9s等待DS18B20轉換溫度</p><p>  Print(ReadConvResult());//讀溫度轉換結果并發(fā)送</p><p>  StateLED=1;//轉換狀態(tài)指示關</p><p>  AskFlag=0;//清除數據請求標志</p><p>&

97、lt;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  致謝</b></p><p>  本論文是在余軍老師的精心指導下完成的,論文從選題到最終完成都得到了余老師的熱心幫助和精

98、心指導,余老師的細心分析、精益求精的精神深深的感染了我,并對我的工作和學習產生了很大的促進作用。尤其是余老師對我的細心關照以及給我的獨特意見都讓我受益終身。在此特別要向余老師表示深深的感謝!</p><p>  通過這次畢業(yè)設計,我學會了綜合的運用大學四年學的東西,學會了用嚴謹的軟件工程學來做設計,為我走向社會打下了一個不錯的基礎,從一開始的比較迷茫,到最后能成功完成了這次設計,這里面有老師和同學的幫助,也有自己

溫馨提示

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

最新文檔

評論

0/150

提交評論