基于LabVIEW的恒溫水域智能控制系統的界面設計_第1頁
基于LabVIEW的恒溫水域智能控制系統的界面設計_第2頁
基于LabVIEW的恒溫水域智能控制系統的界面設計_第3頁
基于LabVIEW的恒溫水域智能控制系統的界面設計_第4頁
基于LabVIEW的恒溫水域智能控制系統的界面設計_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、目錄摘 要1Abstract21 緒 論11.1 課題意義11.2 系統開發的相關研究動態21.2.1 虛擬儀器軟件LabVIEW編程技術21.2.2 STC89C51單片機與PC機串口通訊技術72 設計方案的論證82.1 整體方案的論證82.2單片機與PC機通信方案的論證103 系統硬件電路的設計113.1 單片機控制電路113.1.1 STC89C51功能特性的描述113.1.2 電路的分析說明123.2 單片機與PC機串行通信的設計133.2.1 RS-232接口的介紹143.2.2 MAX232芯片介紹15 3.3 DS18b20溫度采集模塊的設計.16 3.31 DS18b20傳感器

2、簡介.164 軟件程序的設計184.1 單片機與PC機串口通信程序的設計19 4.11波特率的選擇.20 4.12 通信協議的使用.214.13 溫度信號的處理.224.2 PC機LabVIEW程序設計244.2.1 LabVIEW串口通信程序的設計254.2.2 LabVIEW波形顯示程序的設計294.2.3 LabVIEW數據儲存程序設計31結 論34參考文獻36附錄 部分程序清單38致 謝47 47基于LabVIEW的恒溫水域智能控制系統的界面設計摘 要在實驗室中的一些精密儀器,對環境的要求是比較苛刻的,例如粘度儀等。而精密儀器對環境的要求大部分則是體現在對溫度的嚴格要求。因此,對精密儀

3、器環境溫度進行恒溫控制十分必要?,F有的一些溫度控制設備,如 HA168 型的溫度控制棒,結構比較簡單,當測量溫度低于設定溫度時進行加熱,其結果是儀器水域內溫度不均,控溫效果不理想,控制界面也不美觀和人性化。目前,國外也開發出了一些基于單片式計算機的溫度控制設備,但是價格比較高,且目前其操作系統均為英文,普及性不強。而為了讓恒溫控制界面好看美觀,為了更好的滿足用戶操作,實現更友好的人機界面,通??梢圆捎肞C與單片機之間的串行通信,通過單片機采集數據,然后用異步串行通訊方式傳給PC機。所以本設計著重用虛擬儀器軟件Labview編程實現。LabVIEW是一種程序開發環境,由美國國家儀器(NI)公司研

4、制開發的,類似于C和BASIC開發環境,但是LabVIEW與其他計算機語言的顯著區別是:其他計算機語言都是采用基于文本的語言產生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產生的程序是框圖的形式。LabVIEW軟件具有面向對象的設計方法,友好的用戶界面等優點,本設計重點在于實現在LabVIEW軟件環境下來實現PC機與STC89S51單片機之間串口通訊。關鍵詞:恒溫控制;串口通信;LabVIEW界面設計。AbstractIn the laboratory some of the precision instruments, environmental requirements are

5、 more demanding, such as viscosity instrument. The requirements of precision instruments on the environment is reflected in most of the strict temperature requirements. Therefore, precision instruments, the ambient temperature is necessary for temperature control. Some of the existing temperature co

6、ntrol equipment, such as the HA168-type temperature control rod, the structure is relatively simple, when the measured temperature is below the set temperature for heating, the result is uneven temperatures within the waters of equipment, temperature control is not satisfactory, the control interfac

7、e Not beautiful and humane. At present, some foreign countries have also developed computer-based monolithic temperature control equipment, but the price is relatively high, and its operating systems are currently in English, popularity is not strong. The temperature control interface to make good-l

8、ooking appearance, in order to better meet the user to achieve a more friendly interface, usually used between the PC and the microcontroller serial communication, data collection through the microcontroller, and then use asynchronous serial communications Passed to PC. Therefore, this design focuse

9、s on using virtual instrument software Labview programming. LabVIEW is a program development environment, from National Instruments (NI) Development of the company, similar to C and BASIC development environment, LabVIEW with other computer languages, but a significant difference: the other computer

10、 languages are generated based on the language of the text Code, while LabVIEW is a graphical editor using the G programming language, the resulting program is a block diagram form. LabVIEW software with object-oriented design methods, user-friendly interface, etc., the design focus is to achieve im

11、plementation in the LabVIEW software environment down the PC, serial communication between MCU and STC89S51.Keywords: temperature control; serial communication; LabVIEW interface design.1 緒 論1.1 課題意義現代信息技術的三大基礎是信息采集控制(即溫度控制器技術)、信息傳輸(通信技術)和信息處理(計算機技術)。溫度的控制無論是在工業生產過程中,還是在日常生活中都起著非常重要的作用,工業生產生活中,溫度的測量

12、及控制對保證產品質量、提高生產效率、節約能源、生產安全、促進國民經濟的發展起到非常重要的作用。隨著我國電子溫度控制市場的迅猛發展,與之相關的核心生產技術應用和研發將會成為業內企業關注的焦點。同時了解國內外電子溫度控制器生產核心技術的研發動向、工藝設備、技術應用及其趨勢對于企業提升產品技術規格,提高市場競爭力至關重要。然而隨著生活質量的提高,隨著社會的發展,人們對溫度的控制要求越來越高,特別是在精密的實驗儀器上。 在實驗室中的一些精密儀器,對環境的要求是比較苛刻的,例如粘度儀等。而精密儀器對環境的要求大部分則是體現在對溫度的嚴格要求。因此,對精密儀器環境溫度進行恒溫控制十分必要?,F有的一些溫度控

13、制設備,如 HA168 型的溫度控制棒,結構比較簡單,當測量溫度低于設定溫度時進行加熱,其結果是儀器水域內溫度不均,控溫效果不理想,控制界面也不美觀和人性化。目前,國外也開發出了一些基于單片式計算機的溫度控制設備,但是價格比較高,且目前其操作系統均為英文,普及性不強。而為了讓恒溫控制界面好看美觀,為了更好的滿足用戶操作,實現更友好的人機界面,通??梢圆捎肞C與單片機之間的串行通信,通過單片機采集數據,然后用異步串行通訊方式傳給PC機。所以本設計著重用虛擬儀器軟件Labview編程實現。LabVIEW是一種程序開發環境,由美國國家儀器(NI)公司研制開發的,類似于C和BASIC開發環境,但是La

14、bVIEW與其他計算機語言的顯著區別是:其他計算機語言都是采用基于文本的語言產生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產生的程序是框圖的形式。LabVIEW軟件具有面向對象的設計方法,友好的用戶界面等優點,本設計重點在于實現在LabVIEW軟件環境下來實現PC機與STC89S51單片機之間串口通訊。1.2 系統開發的相關研究動態1.2.1虛擬儀器軟件LabVIEW編程技術虛擬儀器 (VI) 的概念虛擬儀器(virtual instrument)是基于計算機的儀器。計算機和儀器的密切結合是目前儀器發展的一個重要方向。粗略地說這種結合有兩種方式,一種是將計算機裝入儀器,其典型的例

15、子就是所謂智能化的儀器。隨著計算機功能的日益強大以及其體積的日趨縮小,這類儀器功能也越來越強大,目前已經出現含嵌入式系統的儀器。另一種方式是將儀器裝入計算機。以通用的計算機硬件及操作系統為依托,實現各種儀器功能。虛擬儀器主要是指這種方式。上面的框圖反映了常見的虛擬儀器方案。虛擬儀器實際上是一個按照儀器需求組織的數據采集系統。虛擬儀器的研究中涉及的基礎理論主要有計算機數據采集和數字信號處理。目前在這一領域內,使用較為廣泛的計算機語言是美國 NI 公司的 LabVIEW。 虛擬儀器的起源可以追溯到20世紀70年代,那時計算機測控系統在國防、航天等領域已經有了相當的發展。PC機出現以后,儀器級的計算

16、機化成為可能,甚至在 Microsof t公司的 Windows 誕生之前,NI公司已經在Macintosh計算機上推出了LabVIEW2.0 以前的版本。對虛擬儀器和 LabVIEW 長期、系統、有效的研究開發使得該公司成為業界公認的權威。目前LabVIEW 的最新版本為 LabVIEW2009,LabVIEW 2009 為多線程功能添加了更多特性,這種特性在 1998 年的版本 5 中被初次引入。使用 LabVIEW 軟件,用戶可以借助于它提供的軟件環境,該環境由于其數據流編程特性、LabVIEW Real-Time 工具對嵌入式平臺開發的多核支持,以及自上而下的為多核而設計的軟件層次,是

17、進行并行編程的首選。 LabVIEW 的概念與 C 和 BASIC 一樣,LabVIEW也是通用的編程系統,有一個完成任何編程任務的龐大函數庫。LabVIEW的函數庫包括數據采集、GPIB、串口控制、數據分析、數據顯示及數據存儲等等。LabVIEW也有傳統的程序調試工具,如設置斷點、以動畫方式顯示數據及其子程序(子VI)的結果、單步執行等等,便于程序的調試。 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一種用圖標代替文本行創建應用程序的圖形化編程語言。傳統文本編程語言根據語句和指令的先后順序決定程序執行順序,而 La

18、bVIEW則采用數據流編程方式,程序框圖中節點之間的數據流向決定了VI及函數的執行順序。VI指虛擬儀器,是 LabVIEW的程序模塊。LabVIEW提供很多外觀與傳統儀器(如示波器、萬用表)類似的控件,可用來方便地創建用戶界面。用戶界面在 LabVIEW中被稱為前面板。使用圖標和連線,可以通過編程對前面板上的對象進行控制。這就是圖形化源代碼,又稱G代碼。LabVIEW的圖形化源代碼在某種程度上類似于流程圖,因此又被稱作程序框圖代碼。LabVIEW廣泛地被工業界、學術界和研究實驗室所接受,視為一個標準的數據采集和儀器控制軟件。LabVIEW 集成了與滿足 GPIB、VXI、RS-232 和 RS

19、-485 協議的硬件及數據采集卡通訊的全部功能。它還內置了便于應用TCP/IP、ActiveX 等軟件標準的庫函數。這是一個功能強大且靈活的軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。利用 LabVIEW,可產生獨立運行的可執行文件,它是一個真正的32位/64位編譯器。像許多重要的軟件一樣,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多種版本。 1.2.2 STC89C51單片機與PC機串口通訊技術隨著計算機技術發展,特別是單片機技術的發展,在各種單片機應用系統的設計中,如智能儀器儀表、各類手持設備、GPS接收器等,常

20、常遇到計算機與外界的信息交換,即通訊。串行通信是指按照逐位順序傳遞數據的通信方式,由于僅需三根傳輸線傳送信息且通信距離相對較遠,所以在控制領域的現場監測、分布控制等場合有著重要的應用價值8。鑒于PC機具有強大的監控和管理功能,單片機則具有快速以及容易控制的特點,在數據量不大、傳輸要求不高的情況下,一般都采用給PC機配置的RS-232標準串行接口COM1、COM2等相連接來實現應用系統與PC機之間的數據交換。將PC串行接口與經過轉換的符合RS-232電氣標準的單片機串行接口連接即可實現二者之間的異步串行通信。單片機串行接口有一個全雙工串行接口,采用TTL邏輯電平,經過MAX-232芯片可方便地轉

21、換成RS-232電氣標準。Labview軟件中提供的VISA控件串口具有完善的串口數據的發送和接收功能。通過此控件,PC機可以利用串行口與其它設備實現輕松連接,簡單高效地實現設備之間的通訊。2 設計方案的論證本章主要介紹幾種設計方案,再通過比較和論證,最終,選出本設計的最佳方案。2.1 整體方案的論證方案一:在單片機方面,采用軟件模擬溫度采集信號,通過RS232串口與PC機通信;在PC機方面,采用Excel表格文件的形式儲存數據,并從Excel表格中讀取歷史數據。其原理如圖2.1所示。此方案硬件電路結構簡單,但溫度數據不真實,且數據保存方面對軟件編程要求較高,編程繁瑣,且需要購買LabVIEW

22、相應的Microsoft的功能模塊,成本較高。故不采用此方案。 圖2.1 方案一原理框圖 方案二:在單片機方面,依舊采用軟件模擬溫度采集信號,通過RS232串口與PC機通信;在PC機方面,建立一個數據庫,LabVIEW利用DataBase功能模塊與數據庫連接。并且歷史數據查詢模塊能夠從數據庫中讀取數據。其原理如圖2.2所示。此方案硬件電路簡單,但溫度數據不真實,且需要建立和調用數據庫,方法繁瑣。另外,需要購買LabVIEW相應的DataBase功能模塊,成本較高。故不采用此方案。圖2.2 方案二原理框圖方案三:在單片機方面,采用DS18b20溫度傳感器采集溫度信號,送入單片機,再通過RS232

23、串口與PC機通信;在PC機方面,將溫度數據保存在系列二進制文件中,并且歷史數據查詢模塊能從二進制文件中讀取數據。其原理如圖2.3所示。此方案需增加溫度傳感器部分硬件電路,溫度數據真實可靠。在數據保存方面,數據保存至二進制文件中編程簡單,方法簡便,且不需要購買LabVIEW其他功能模塊,成本低。經實驗測試表明,系統工作穩定。故本設計采用之。 圖2.3 方案三原理框圖 2.2單片機與PC機通信方案的論證方案:單片機與PC機通信采用RS232模式,利用單片機的串口,經MAX232實現電平轉換,直接與PC機串口通信。電路簡單,通信協議簡單。故采用之。3 系統硬件電路的設計本章主要介紹系統的硬件電路部分

24、的設計,主要完成數據采集功能以及與PC機串口通信功能。主要包括:單片機主控電路、DS18b20溫度傳感器溫度采集電路、單片機與PC機串口通信電路。 3.1 單片機控制電路本設計是采用STC89C51單片機作為系統的控制芯片,用來控制和處理系統各個部分的協調工作,是本設計的一個核心部分。 3.1.1 STC89C51功能特性的描述 STC89C51單片機是一種低功耗、高性能CMOS八位微控制器,具有8K在系統可編程Flash存儲器。STC89C51單片機具有以下標準功能:8k字節Flash,256字節RAM,32位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中

25、斷結構,全雙工串行口,片內晶振及時鐘電路。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。STC98C51單片機應用電路如圖3.1所示。圖3.1 STC89C51最小系統工作電路3.1.2 電路的分析說明STC89S51單片機工作電路圖如圖3.1所示。下面對圖3.1進行簡單的分析說明:第40腳為芯片電源腳(VCC),本設計是在5V的直流電源下工作;第20腳為地腳(GND)。第31腳是EA/Vpp腳。片內,片外程序存儲器選擇端。為高電平時,單片機復位后訪問片內程序存儲器的

26、程序,當程序計數PC的值超過8K時,會自動訪問片外程序存儲器的程序。本設計將次腳與電源相接,從片內開始訪問。第9腳為復位腳,RST復位信號輸入高電平有效。至少要兩個機器周期以上的高電平才能將單片機復位,一般在設計時要保證有10ms的高電平。本設計中采用了10pF的電容和1K的電阻組成了復位電路如圖3.1所示。利用RC充電/放電原理,充電初電容視為短路,RET腳為高電平,充電完畢電容視為斷路,RET腳低電平。本設計可以使單片機正確復位。第18腳,19腳為晶振腳,18腳為振蕩輸入,19腳為振蕩輸出。圖3.1所示,C1、C2、XTAL為晶振的外圍電路與18,19腳相接通構成了單片機的時鐘電路(即是自

27、激振蕩器)。其中XTAL為石英晶振,本設計采用11.0592MHz;C1、C2為電容,本設計采用30PF,在振蕩電路中起微調作用。第10腳,11腳分別為串行輸入、輸出端口,在本設計中用來實現單片機與計算機串行通信的端口。P3.6口(16腳)在本設計中是用來讀取DS18b20的溫度信號,連接DS18b20的DQ口。單片機要正常工作,時鐘電路、復位電路、電源、地和程序存儲器選擇腳都必須要設計好,缺一不可。3.2 單片機與PC機串行通信的設計在本設計單片機應用系統中,數據通信主要采用異步串行通信方式。在設計通信接口時,必須根據需要選擇標準接口,并考慮傳輸介質、電平轉換等問題。本設計采用專用串行接口芯

28、片MAX232進行電平轉換,實現STC89S52單片機和PC機采用RS-232協議,利用串口與PC進行通信。具體工作原理圖如圖3.2所示。圖3.2 串口通信原理圖3.2.1 RS-232接口的介紹RS-232是美國電子工業協會(EIA)1969年公布的10,是在異步串行通信中應用最廣的總線標準。它包括了按位串行傳輸的電器和機械方面的規定,適合于短距離或帶調制解調器的通信場合。為了提高數據傳輸率和通信距離,EIA又公布了RS-422和RE-485串行總線接口標準。RS-232是目前最常見的串行接口標準,用來實現計算機與計算機之間、計算機與外設之間的數據通信。RS-232串行接口總線使用于之間的通

29、信距離不大于15m,傳輸速率最高位19.2kb/s的場合。RS-232屬單端信號發送,存在共地噪音和不能抑制的共模干擾等問題,因此一般用于短距離通信。RS-232引腳及功能說明:TXD(pin 3):串口數據輸出RXD(pin 2):串口數據輸入RTS(pin 7):發送數據請求CTS(pin 8):清除發送DSR(pin 6):數據發送就緒DCD(pin 1):數據載波檢測DTR(pin 4):數據終端就緒GND(pin 5):地線RI(pin 9):鈴聲指示對于TxD和RxD上的數據信號,采用負邏輯。用-3-25V(通常為-3-15V)表示邏輯“1”,用+3+25V(通常為+3+15V)表

30、示邏輯“0”。對于DTR,DSR,RTS,CTS,CD等控制信號,規定:-3-25V表示信號無效,即斷開(OFF),+3+25V表示信號有效,即接通(ON)顯然,采用RS 232C標準電平與計算機連接時,它與計算機采用的TTL電平不兼容。TTL是標準正邏輯,用5V表示邏輯“1”,用0V表示邏輯“0”。因此,RS 232C的EIA電平與CPU的TTL電平連接時,必須進行電平轉換。3.2.2 MAX232芯片介紹電腦的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉換電路,我們采用專用芯片MAX232進行轉換,雖然也可以用幾個三極管進行模擬轉換,但是還是用專用芯片更簡

31、單可靠。我們采用了三線制連接串口,也就是說和電腦的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我們來說已經足夠使用了,電路如附件圖所示,MAX232的第10腳和單片機的11腳連接,第9腳和單片機的10腳連接,第15腳和單片機的20腳連接即能很方便地是實現PC機與單片機的通信。3.3 DS18b20溫度采集模塊的設計在本設計單片機應用系統中,溫度數據來源于DS18b20溫度傳感器采集所得。在設計溫度采集電路時,必須注意DS18b20傳感器的電路接法與工作方式的選擇。本設計采用的是DS18b20的默認工作方式,數據線接在單片機的P3.6口

32、。具體工作原理圖如圖3.3所示。 圖3.3 溫度采集原理圖3.31 DS18b20傳感器簡介溫度傳感器的種類眾多,在應用與高精度、高可靠性的場合時DALLAS(達拉斯)公司生產的DS18B20溫度傳感器當仁不讓。超小的體積,超低的硬件開消,抗干擾能力強,精度高,附加功能強,使得DS18B20更受歡迎。DS18B20的主要特征:全數字溫度轉換及輸出;先進的單總線數據通信;最高12位分辨率,精度可達土0.5攝氏度; 12位分辨率時的最大工作周期為750毫秒;可選擇寄生工作方式;檢測溫度范圍為55°C +125°C (67°F +257°F);內置EEPROM

33、,限溫報警功能。DS18B20芯片封裝結構:DS18B20引腳功能:·GND 電壓地 ·DQ 單數據總線 ·VDD 電源電壓 ·NC 空引腳DS18B20工作原理及應用:DS18B20的溫度檢測與數字數據輸出全集成于一個芯片之上,從而抗干擾力更強。其一個工作周期可分為兩個部分,即溫度檢測和數據處理。在講解其工作流程之前我們有必要了解18B20的內部存儲器資源。18B20共有三種形態的存儲器資源,它們分別是:ROM 只讀存儲器,用于存放DS18B20ID編碼,其前8位是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號,最后8位是以

34、上56的位的CRC碼(冗余校驗)。數據在出產時設置不由用戶更改。DS18B20共64位ROM。RAM 數據暫存器,用于內部計算和數據存取,數據在掉電后丟失,DS18B20共9個字節RAM,每個字節為8位。第1、2個字節是溫度轉換后的數據值信息,第3、4個字節是用戶EEPROM(常用于溫度報警值儲存)的鏡像。在上電復位時其值將被刷新。第5個字節則是用戶第3個EEPROM的鏡像。第6、7、8個字節為計數寄存器,是為了讓用戶得到更高的溫度分辨率而設計的,同樣也是內部溫度轉換、計算的暫存單元。第9個字節為前8個字節的CRC碼。EEPROM 非易失性記憶體,用于存放長期需要保存的數據,上下限溫度報警值和

35、校驗數據,DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。 4 軟件程序的設計本章主要介紹軟件電路的設計,主要包括:單片機與PC機通信、PC機的顯示界面。單片機部分用C語言編程實現,PC機部分用LabVIEW軟件的G語言編寫實現。4.1單片機與PC 機通信程序的設計 單片機主程序主要用來實現溫度采集功能,以及實現與PC機的串行通信,具體工作流程如圖4.1所示。圖4.1 單片機主程序流程圖串口通訊對單片機而言意義重大,不但可以實現將單片機的數據傳輸到計算機端,而且也能實現計算機對單片機的控制。由于其所需電纜線少,接線簡單,所以在較遠距離傳輸中,得到了廣泛的運用。本設計采用

36、4800波特率,8位數據位,無校驗位,1位停止位的串口通信方式。4.11波特率的選擇波特率(Boud Rate)就是在串口通信中每秒能夠發送的位數(bits/second)。單片機串行端口在四種工作模式下有不同的波特率計算方法。其中,模式0和模式2波特率計算很簡單,模式1和模式3的波特率選擇相同,故在此僅以工作模式1為例來說明串口通信波特率的選擇。在串行端口工作于模式1,其波特率將由計時/計數器1來產生,通常設置定時器工作于模式2(自動再加模式)。在此模式下波特率計算公式為:波特率=(1+SMOD)*晶振頻率/(384*(256-TH1), 其中,SMOD寄存器PCON的第7位,稱為

37、波特率倍增位。TH1定時器的重載值。在選擇波特率的時候需要考慮兩點:首先,系統需要的通信速率。這要根據系統的運作特點,確定通信的頻率范圍。然后考慮通信時鐘誤差。使用同一晶振頻率在選擇不同的通信速率時通信時鐘誤差會有很大差別。為了通信的穩定,我們應該盡量選擇時鐘誤差最小的頻率進行通信。因此,在通信中,最好選用波特率為1200,2400,4800中的一個,本設計選的是4800。下面是部分程序,可以看到單片機的工作模式和波特率的選擇。TMOD=0x20;/model 2,T1TH1=0xfa;/baud rate is 4800,11.0592HZTL1=0xfa;4.12 通信協議的使用通信協議是

38、通信設備在通信前的約定。單片機、計算機有了協議這種約定,通信雙方才能明白對方的意圖,以進行下一步動作。在本設計中,我們約定只要上位機發送0x11至單片機,單片機就源源不斷的通過串口發送溫度數據。串行口工作之前,應對其進行初始化,主要是設置產生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:1)、確定T1的工作方式(編程TMOD寄存器)。2)、計算T1的初值,裝載TH1、TL1。3)、啟動T1(編程TCON中的TR1位)。4)、確定串行口控制(編程SCON寄存器)。部分初始化程序(產生波特率,串行口控制):TMOD=0x20;/model 2,T1TH1=0xfa;/baud rate i

39、s 4800,11.0592HZTL1=0xfa;/TCON=0x40;/start T1SCON=0x50;/receive permissionPCON=0x00;SBUF=' '/IE=0x99;/enable EA,ES,ET1,EX0 ES=1; EA=1;TR1=1;中斷控制程序:void s_int(void) interrupt 4 /單片機串口中斷 RI=0; /清中斷標志 ES=0; cpubbs_pc_command=SBUF;/將接收到的PC機指令存入pc_command變量中 ES=1;4.13 溫度信號的處理讀取溫度程序:uint ReadTempe

40、rature(void)/讀取溫度unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號列號的操作WriteOneChar(0x44); / 啟動溫度轉換Init_DS18B20();WriteOneChar(0xCC); /跳過讀序號列號的操作WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀9個寄存 a=ReadOneChar(); 器) 前兩個就是溫度b=ReadOneChar();t=b;t<<=8;t

41、=t|a;tt=t*0.0625;return(t);溫度格式轉換程序:void data_convert(uint data_to_convert)/把數據折開成四字節,為了方便發送data_conver0=(uchar)(data_to_convert&0xf000)>>12);data_conver1=(uchar)(data_to_convert&0x0f00)>>8);data_conver2=(uchar)(data_to_convert&0x00f0)>>4);data_conver3=(uchar)(data_to_c

42、onvert&0x000f);負溫度的判斷程序:if(data_conver0)/判斷是不是負溫度cpubbs_temp_data=data_conver0;/為了在下面的轉換中不至于數據丟失cpubbs_temp=cpubbs_temp+1;/是的話進行按位取反再加1,這是這種溫度轉換芯片的計算溫度的方法data_convert(cpubbs_temp);/判斷是的話之后然后再進行一次轉換data_conver0=cpubbs_temp_data;/符號位仍然放回去原來的地方,給計算機識別是負溫度還是正溫度4.2 PC機LabVIEW程序設計在本設計中,上位機的LabVIEW編程主要

43、實現串口通信、數據顯示、數據保存等功能。圖4.2 歡迎界面 圖4.3 上位機界面菜單選項 圖4.4 退出界面4.2.1 LabVIEW串口通信程序的設計本程序將實現在PC機上按下“開始采集”按鈕,將發送數據“0x11”到單片機,單片機接收到數據后,根據通信協議,取相應的溫度波形數據,再發送給PC機,PC機接收數據后,再在LabVIEW界面上用波形顯示出來。在LabVIEW中有一個名為Visual Instrument Software Architecture(簡稱VISA)的通訊控件。我們只要通過對此控件的屬性和事件進行相應編程操作,就可以輕松地實現串口通訊。1、 VISA控件的主要屬性和結

44、構特點VISA就是虛擬儀器軟件架構,VISA是對包含GPIB、VXI、PXI、串口(RS232/485)、以太網、USB和IEEE 1394接口的儀器系統進行配置、編程和故障排除的標準。 (1)VISA的結構特點 正式VISA在結構模型中采用了金字塔式,因此使得虛擬儀器對不同廠家生產的儀器有良好的兼容性。另外VISA給用戶列出了豐富的函數,用戶只需輕松的調用這些函數,就能很好的對串口接口的控制。另外,VISA生成的驅動程序,很好的在其他計算機或微處理系統中應用,具有良好的通用性。最后,用戶設計的VISA程序和使用環境無關,能在MAC、Linux等系統應用,只需做很小的修改即可。 (2)VISA

45、編程用到的函數VISA中常有函數有VISA配置串口函數、VISA寫入函數、VISA設置I/O緩沖區大小函數、VISA讀取函數、VISA關閉函數等,常有VISA的流程方式是:開始打開設備資源,之后向設備中寫相關命令,隨后,在設備緩存中讀取數值,最后控制關閉設備資源。在本系統中主要利用了以上函數,下面對這些函數作簡單介紹。圖4.5 VISA配置串口函數 圖4.6 VISA寫入函數 圖4.7 VISA設置I/O緩沖區大小函數 圖4.8 VISA讀取函數圖4.9 VISA關閉函數二、串口通信程序圖4.10 串口通訊程序1圖4.11 串口通訊程序2圖4.12 串口通訊界面4.2.2 LabVIEW波形顯

46、示程序的設計 1、 LabVIEW溫度波形顯示控件1.波形圖 圖4.13 波形圖標控件2.警示燈 圖4.14 警示燈控件3. 數據表格顯示圖4.15 數據表格控件2、 波形顯示界面圖4.16 界面一圖4.16 界面二3、 波形顯示程序 圖4.17 顯示程序圖4.2.3 LabVIEW數據儲存程序設計1、 數據儲存函數圖4.18 讀取測量函數 圖4.19 創建表格函數2、 數據儲存界面圖4.20 儲存界面3、 數據儲存程序圖4.21 儲存程序結 論本文設計了基于LabVIEW的恒溫水域溫度管理系統的界面設計,其主要包括單片機與PC機串口通信設計以及PC機界面設計。本設計的重點是實現PC機于單片機

47、通信,通過自學LabVIEW語言來實現單片機與PC機的通訊,并做一個人機界面;難點是實現PC與單片機串口通信以及溫度數據的儲存。在設計過程中,本人嚴格要求自己力爭高效率地完成本設計。通過一段時間的LabVIEW語言的學習,掌握了LabVIEW的基本編程思路,以及一些重要控件和函數的應用。最終完成了單片機與PC機的串口通信,并用LabVIEW語言做了一個實現數據波形的人機界面。遺憾的是,由于時間的有限,個人知識水平的有限,對串口通信知識沒有足夠的了解,因此,單片機與PC的通信部分完成得較緩慢。由于本人之前沒有接觸過LabVIEW語言,所以在本次設計中,也遇到了很多的問題。做PC界面時,要實現串口

48、通訊需要用到VISA串口通訊控件,但是,本人安裝的精簡版的LabVIEW8.5軟件卻無法找到VISA控件,經過在網絡上的尋找,終于找到了免費的VISA模塊。在界面設計完之后,運行時卻老是出錯誤,經過反復的檢查和網絡收索才解決,VISA控件的一些屬性的設計非常重要。其次,設計中遇到的最嚴重的問題是PC機顯示的波形失真,總有溫度數據突變到很高(常溫下100多度)或很低(常溫下0下幾度)。反復查證不是硬件的問題,串口通信程序也沒有錯,百思不得其解。后來經過多方咨詢及幫助,知道了是波特率的緣故。本人將波特率設定過高(9600),數據采集太快,數據容易出現偏差。后來將波特率調低(4800),波形數據顯示

49、正常??偠灾?,通過本設計,我的專業技術有了較大的提高,對理論知識有了更深的理解,動手技術得到了鍛煉,特別是學習了一門編程語言,為以后的專業學習積累了寶貴的經驗與方法。參考文獻1 阮奇楨.我和LabVIEW:一個NI工程師的十年編程經驗M. 北京:航空航天大學出版社, 2009: 20-23. 2 劉章發、衣法臻. LabVIEW編程樣式M. 北京:電子工業出版社, 2009:45-483 王志宏. 單片機與PC機串口通信J. 現代電子技術, 2000, (12):68-69.4 李存志. 單片機與PC機串行通訊的實現與應用J. 中國高新技術企業,2007,(11):36-45.5 白云、高育

50、鵬、胡小江. 21高等學校信息工程類專業規劃教材基于LabVIEW的數據采集與處理技術M. 西安:西安電子科技大學出版社,2009:32-35.6 胥保春. 單片機AT89C51與PC機的串行通信J.大眾科技, 2005, (8):1108-1151.7 李華. 單片機通用接口技術M. 北京:北京航空航天大學出版社, 1999: 32-34.8 郭成林. AT89系列單片機與PC機之間的串行通信接口設計J. 山西電子技術, 2008, (01):31-36.9 王兆宇,王巍,袁贛南.串口的調試和軟件實現J. 森林工程,2003, 19(1): 61-64.附錄 部分程序清單1、 LabVIEW

51、部分主程序二、單片機部分主程序#include <AT89X55.H>#include <stdio.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ =P36; /定義通信端口/pc機通知下位機發數據的標指令uchar cpubbs_pc_command;/只要PC有發過來0x11過來就算是 告訴單片機啟動發送指令uchar data_conver4; /定義變量數組,用于存放轉換完成后的數據unsigned int cpubbs_temp;/保

52、存臨時溫度值void delay(unsigned int i)/延時函數while(i-);void Init_DS18B20(void)/初始化函數unsigned char x=0;DQ = 1; /DQ復位delay(8); /稍做延時DQ = 0; /單片機將DQ拉低delay(80); /精確延時 大于 480usDQ = 1; /拉高總線delay(14);x=DQ; /稍做延時后 如果x=0則初始化成功 x=1則初始化失敗delay(20);uchar ReadOneChar(void)/讀一個字節unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0; / 給脈沖信號dat>>=1;DQ = 1; / 給脈沖信號if(DQ)dat|=0x80;delay(4);return(dat);void WriteOneChar(unsigned char dat)/寫一個字節unsigned char i;for (i=8; i>0; i-)DQ = 0;DQ = dat&

溫馨提示

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

評論

0/150

提交評論