虛擬儀器課程設(shè)計(jì)_第1頁
虛擬儀器課程設(shè)計(jì)_第2頁
虛擬儀器課程設(shè)計(jì)_第3頁
虛擬儀器課程設(shè)計(jì)_第4頁
虛擬儀器課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 電控學(xué)院虛擬儀器課程設(shè)計(jì) 院 (系): 專業(yè)班級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 2011年 12 月 30 日摘 要運(yùn)用虛擬儀器的設(shè)計(jì)思想,介紹了一種基于LabWindows/CVI軟件平臺(tái)的多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)原理及過程。利用LabWindows/CVI開發(fā)環(huán)境設(shè)計(jì)上位機(jī)的監(jiān)測界面,上位機(jī)通過串行口與STCAT89C52單片機(jī)通信,從而實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的同步通信,運(yùn)用LabWindows/CVI進(jìn)行系統(tǒng)開發(fā)具有很強(qiáng)的靈活性,能較容易地實(shí)現(xiàn)系統(tǒng)的各項(xiàng)功能,并使系統(tǒng)具有很強(qiáng)擴(kuò)展性。關(guān)鍵詞:虛擬儀器 STCAT89C52單片機(jī) 摘 要1第一章 設(shè)計(jì)要求31.1設(shè)計(jì)要求31.2設(shè)計(jì)思路

2、3第二章 原理介紹32.1 LabWindows/CVI簡介:32.2 LabWindows/CVI的應(yīng)用:3第三章 硬件部分43.1 上位機(jī)簡介43.2 RS232串口簡介53.3 RS-232 接口標(biāo)準(zhǔn)5 3.4 RS-232 缺點(diǎn).5第四章 上位機(jī)界面6第五章 實(shí)習(xí)心得6第六章 參考文獻(xiàn)7第七章 致謝7第八章 附錄7第一章 設(shè)計(jì)要求第一章 設(shè)計(jì)要求1.1設(shè)計(jì)要求 1)用虛擬儀器LabWindows/CVI畫出單片機(jī)流水燈相應(yīng)器件及外圍擴(kuò)展電路。 2)編寫虛擬儀器串口程序?qū)崿F(xiàn)與單片機(jī)的連接。 3)從單片機(jī)發(fā)送數(shù)據(jù)給PC機(jī),使得虛擬儀器與單片機(jī)的流水燈實(shí)現(xiàn)同步運(yùn)行。1.2設(shè)計(jì)思路 1)首先了

3、解虛擬儀器LabWindows/CVI軟件和單片機(jī)(52型)。 2)用CVI畫相應(yīng)圖形并仿真運(yùn)行。 3)連接單片機(jī)和PC機(jī),實(shí)現(xiàn)設(shè)計(jì)最終效果。第二章 原理介紹2.1 LabWindows/CVI簡介: LabWindows/CVI 是National Instruments 公司(美國國家儀器公司,簡稱NI 公司)推出的交互式C 語言開發(fā)平臺(tái)。LabWindows/CVI 將功能強(qiáng)大、使用靈活的C 語言平臺(tái)與用于數(shù)據(jù)采集分析和顯示的測控專業(yè)工具有機(jī)地結(jié)合起來,利用它的集成化開發(fā)環(huán)境、交互式編程方法、函數(shù)面板和豐富的庫函數(shù)大大增強(qiáng)了C 語言的功能,為熟悉C 語言的開發(fā)設(shè)計(jì)人員編寫檢測系統(tǒng)、自動(dòng)測

4、試環(huán)境、數(shù)據(jù)采集系統(tǒng)、過程監(jiān)控系統(tǒng)等應(yīng)用軟件提供了一個(gè)理想的軟件開發(fā)環(huán)境。 開發(fā)人員可以在設(shè)計(jì)階段利用LabWindows/CVI的硬件配置助手、綜合調(diào)試工具以及交互式執(zhí)行功能,來運(yùn)行各項(xiàng)功能,使得這些領(lǐng)域的開發(fā)流水線化。LabWindows/CVI 是為C 語言程序員提供的軟件開發(fā)系統(tǒng),在其交互式開發(fā)環(huán)境中編寫的程序必須符合標(biāo)準(zhǔn)C 規(guī)范。2.2 LabWindows/CVI的應(yīng)用:使用LabWindows/CVI 可以完成如下工作:交互式的程序開發(fā);具有功能強(qiáng)大的函數(shù)庫,用來創(chuàng)建數(shù)據(jù)采集和儀器控制的應(yīng)用程序;充分利用完備的軟件工具進(jìn)行數(shù)據(jù)采集、分析和顯示;利用向?qū)ч_發(fā)IVI 儀器驅(qū)動(dòng)程序和創(chuàng)

5、建ActiveX 服務(wù)器;為其它程序開發(fā)C 目標(biāo)模塊、動(dòng)態(tài)連接庫(DLL)、C 語言庫。在LabWindows/CVI 開發(fā)環(huán)境中可以利用其提供的庫函數(shù)來實(shí)現(xiàn)程序設(shè)計(jì)、編輯、編譯、鏈接和標(biāo)準(zhǔn)C 語言程序調(diào)試。在該開發(fā)環(huán)境中可以用LabWindows/CVI 豐富的函數(shù)庫來編寫程序,此外每個(gè)函數(shù)都有一個(gè)叫做函數(shù)面板(Function Panel)的交互式操作界面,在函數(shù)面板中可以執(zhí)行該函數(shù)并可以生成調(diào)用該函數(shù)的代碼,也可通過右擊面板或控件獲得有關(guān)函數(shù)、參數(shù)、函數(shù)類和函數(shù)庫的幫助。在LabWindnows/CVI 的交互式環(huán)境中編寫程序必須符合標(biāo)準(zhǔn)C 語言的規(guī)范。另外,在開發(fā)應(yīng)用程序時(shí)可以使用編譯

6、好的C 語言目標(biāo)模塊,動(dòng)態(tài)鏈接庫(DLL),C 靜態(tài)庫和儀器驅(qū)動(dòng)程序。LabWindows/CVI 的功能強(qiáng)大在于它提供了豐富的函數(shù)庫。利用這些庫函數(shù)除可實(shí)現(xiàn)常規(guī)的程序設(shè)計(jì)外,還可實(shí)現(xiàn)更加復(fù)雜的數(shù)據(jù)采集和儀器控制系統(tǒng)的開發(fā)。儀器庫是LabWindows/CVI 的特殊資源。它包GPIB、VXI 和RS-232 儀器的驅(qū)動(dòng)程序,如示波器、多用表和函數(shù)發(fā)生器,每個(gè)驅(qū)動(dòng)程序都提供可編輯的源代碼。使用 LabWindows/CVI 開發(fā)工具提供的庫函數(shù)可以創(chuàng)建自己的儀器驅(qū)動(dòng)程序,可以創(chuàng)建單個(gè)儀器、多個(gè)儀器或?qū)嶋H上并不存在的虛擬儀器的驅(qū)動(dòng)程序,在創(chuàng)建儀器驅(qū)動(dòng)程序過程中可以使用LabWindows/CVI

7、 的其它庫函數(shù)。使用LabWindows/CVI 的用戶界面編輯器可以創(chuàng)建并編輯圖形用戶界面(GUI),而使用LabWindows/CVI 的用戶界面庫函數(shù)可以在程序中創(chuàng)建并控制GUI。此外,LabWindows/CVI為GUI 面板的設(shè)計(jì),準(zhǔn)備了許多專業(yè)控件,如:曲線圖控件、帶狀圖控件、表頭、旋鈕和指示燈等,以適應(yīng)測控系統(tǒng)軟件開發(fā)的需求,利用這些控件可以設(shè)計(jì)出專業(yè)的測控程序界面。2009年12月美國國家儀器有限公司(National Instruments,簡稱NI)宣布推出LabWindows/CVI 2009,這是最新版本的ANSI C開發(fā)環(huán)境,用于構(gòu)建可靠的測試與測量解決方案。該軟件支

8、持包括可連接LabVIEW FPGA的C接口在內(nèi)的PC新技術(shù),能夠?qū)崿F(xiàn)與基于現(xiàn)場可編程門陣列(FPGA)的硬件、微軟Windows 7和64位操作系統(tǒng)的連接,以簡化開發(fā)和部署LabWindows/CVI的應(yīng)用程序。工程師和科學(xué)家們可以通過使用新的軟件執(zhí)行分析工具包,來分析和優(yōu)化標(biāo)有圖示的應(yīng)用源代碼運(yùn)行時(shí)的性能,而這些圖示會(huì)顯示運(yùn)行該應(yīng)用程序的每個(gè)階段所需的時(shí)間,以此可以進(jìn)一步提高應(yīng)用程序的可靠性和生產(chǎn)效率。此外,LabWindows/CVI 2009通過運(yùn)用最新的屬性瀏覽器提高生產(chǎn)效率,方便了自定義用戶界面的快速設(shè)計(jì)和調(diào)試性能的改善。第三章 硬件部分3.1 上位機(jī)簡介 上位機(jī)是指人可以直接發(fā)出

9、操控命令的計(jì)算機(jī),一般是PC,屏幕上顯示各種信號(hào)變化(液壓,水位,溫度等)。上位機(jī)發(fā)出的命令首先給下位機(jī),下位機(jī)再根據(jù)此命令解釋成相應(yīng)時(shí)序信號(hào)直接控制相應(yīng)設(shè)備。下位機(jī)不時(shí)讀取設(shè)備狀態(tài)數(shù)據(jù)(一般為模擬量),轉(zhuǎn)換成數(shù)字信號(hào)反饋給上位機(jī)。簡言之如此,實(shí)際情況千差萬別,但萬變不離其宗:上下位機(jī)都需要編程,都有專門的開發(fā)系統(tǒng)。通常上位機(jī)和下位機(jī)通訊可以采用不同的通訊協(xié)議, 可以有RS232的串口通訊,或者采用RS485串行通訊,當(dāng)用計(jì)算機(jī)和PLC通訊的時(shí)候不但可以采用傳統(tǒng)的D形式的串行通訊,還可以采用更適合工業(yè)控制的雙線的profibus-dp通訊,采用封裝好的程序開發(fā)工具就可以實(shí)現(xiàn)PLC和上位機(jī)的通訊

10、。當(dāng)然可以自己編寫驅(qū)動(dòng)類的接口協(xié)議控制上位機(jī)和下位機(jī)的通訊。目前,在許多單片機(jī)應(yīng)用系統(tǒng)中,上、下位機(jī)分工明確,作為下位機(jī)核心器件的單片機(jī)往往只負(fù)責(zé)數(shù)據(jù)的采集和通信,而上位機(jī)通常以基于圖形界面Windows系統(tǒng)作為操作平臺(tái)。為了便于查詢和保存數(shù)據(jù),還需要數(shù)據(jù)庫的支持,這種應(yīng)用的核心是數(shù)據(jù)通信,它包括單片機(jī)的上位機(jī)之間、客戶端的服務(wù)器之間以及客戶端的客戶端之間的通信,而單片機(jī)的上位機(jī)之間數(shù)據(jù)通信則是整個(gè)系統(tǒng)的基礎(chǔ)。單片機(jī)和PC的通信是通過單片機(jī)的串口和PC串口之間的硬件連接實(shí)現(xiàn)的。3.2 RS232串口簡介 RS232是個(gè)人計(jì)算機(jī)上的通訊接口之一,由電子工業(yè)協(xié)會(huì)(Electronic Indust

11、ries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以9個(gè)引腳 (DB-9) 或是25個(gè)引腳 (DB-25) 的型態(tài)出現(xiàn),一般個(gè)人計(jì)算機(jī)上會(huì)有兩組 RS-232 接口,分別稱為 COM1 和 COM23.3 RS-232 接口標(biāo)準(zhǔn) 串行通信接口標(biāo)準(zhǔn)經(jīng)過使用和發(fā)展,目前已經(jīng)有幾種。但都是在RS-232標(biāo)準(zhǔn)的基礎(chǔ)上經(jīng)過改進(jìn)而形成的。所以,以RS-232C為主來討論。RS-232C標(biāo)準(zhǔn)是美國EIA(電子工業(yè)聯(lián)合會(huì))與BELL等公司一起開發(fā)的1969年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在020000b/s范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問題,如信號(hào)

12、線功能、電器特性都作了明確規(guī)定。由于通行設(shè)備廠商都生產(chǎn)與RS-232C制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機(jī)通信接口中廣泛采用。RS-232-C標(biāo)準(zhǔn)規(guī)定,驅(qū)動(dòng)器允許有2500pF的電容負(fù)載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時(shí),最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號(hào)傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于20m以內(nèi)的通信。串行通信接口標(biāo)準(zhǔn)經(jīng)過使用和發(fā)展,目前已經(jīng)有幾種。但都是在RS-232標(biāo)準(zhǔn)的基礎(chǔ)上經(jīng)過改進(jìn)而形成的。3.4 RS-232 缺點(diǎn)(1)接口的信號(hào)電平值較高

13、,易損壞接口電路的芯片,又因?yàn)榕cTTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。 (2)傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps;因此在“南方的老樹51CPLD開發(fā)板”中,綜合程序波特率只能采用19200,也是這個(gè)原因。 (3)接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。 (4) 傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50英尺,實(shí)際上也只能用在15米左右。第4章 上位機(jī)界面第五章 實(shí)習(xí)心得 一周的實(shí)習(xí)結(jié)束了,我們學(xué)到了很多很多,總體來說這次的課程設(shè)計(jì)總的來說并不是特別容易,雖然我們?cè)谡n堂上學(xué)到了不少有用的知識(shí),可真正實(shí)

14、踐起來就發(fā)現(xiàn)自己缺少的太少。我到圖書館來找過資料,也上網(wǎng)差了不少資料,在查找和閱讀的過程中真的學(xué)到不少的知識(shí)。當(dāng)然,在做作業(yè)的時(shí)候我遇到了不少問題,在和周圍同學(xué)的探討中我們找到了答案,大家共同進(jìn)步。通過課程設(shè)計(jì)讓我們更加深刻的體會(huì)到實(shí)踐的重要性,平時(shí)我們多是學(xué)習(xí)理論知識(shí),上機(jī)實(shí)踐的機(jī)會(huì)少,自己也少練習(xí),在實(shí)踐方面確實(shí)欠缺不少,需要我們今后加強(qiáng)練習(xí)。 通過這次實(shí)習(xí),我知道了任何事都要靠自己,只有自己的知識(shí)才是真正的知識(shí),這讓我在以后的工作生活中有了更好的動(dòng)力!感謝老師的耐心指導(dǎo)和悉心教導(dǎo)。通過此次實(shí)習(xí),開闊了我們的視野,使我們的理論和實(shí)踐結(jié)合在一起,也培養(yǎng)了我的實(shí)際動(dòng)手能力,增加了實(shí)際的操作經(jīng)驗(yàn)

15、,更好地為我們今后的工作積累經(jīng)驗(yàn)。同時(shí)也使我們對(duì)課本一些比較模糊的概念、抽象的原理有了一個(gè)嶄新的認(rèn)識(shí)和理解。使我們對(duì)以往所學(xué)的知識(shí)有了更進(jìn)一步的鞏固,對(duì)以前沒接觸過的知識(shí)有了深刻地了解,讓我們對(duì)以后的基本動(dòng)作有了深入認(rèn)識(shí)。第六章 參考文獻(xiàn)Labwindows/CVI虛擬儀器測試技術(shù)及工程應(yīng)用化學(xué)工業(yè)出版社。Labview虛擬儀器數(shù)據(jù)采集與串口通信測控應(yīng)用實(shí)戰(zhàn)人民郵電出版社。Labwindows/CVI的虛擬儀器設(shè)計(jì)與應(yīng)用電子工業(yè)出版社。第7章 附錄 在這次的實(shí)習(xí)過程中,我們遇到了各種專業(yè)問題和軟件操作問題等等,好多都是自己很難解決的,所以就請(qǐng)教了王老師、昝老師和彭老師,很感謝三位老師的耐心講解

16、,幫助我們解決各種問題,在這里我們組對(duì)三位老師表示深深的謝意!當(dāng)然實(shí)驗(yàn)過程中,各位同學(xué)也對(duì)我們幫助不少,最后感謝好多同學(xué)對(duì)我組的細(xì)微照顧。真摯的謝謝以上同學(xué)和老師的幫助!第8章 附錄上位機(jī)程序清單:/*/*/* File: InstallCommCallback.c */* Purpose: This example illustrates the use of the RS232 Librarys InstallComCallback */* function to respond to the LWRS_RXFLAG event. The user will be asked to ent

17、er */* an event character. Whenever this event character is detected on the COM port, */* a callback function will be executed. */* Notes: To run this example you need to do a Loopback Test, i.e. connect pin 2 to */* pin 3 on the serial port. */*/*/*/* Include files */*/#include #include #include #i

18、nclude #include #include commcallback.h#include cfg.h #include /*/* Globals */*/static int gHelpPanelHandle;static int gPanelHandle;static int gComCfgPanelHandle; static char gEventChar2;char state60=0;char AutoSaveDIR1024;char AutoSave40;char AutoSave1024;/全路徑char ValidCom20;char COM_State=COM_STAT

19、E_CLOSE;char chCurrentTime40;int COM_Port = 2;long Baud_Rate = 9600;int Parity = 0;int Data_Bits = 8;int Stop_Bits = 1;int Input_Queue_Size = 512;int Output_Queue_Size = 512;int SendIsHex = 0,RecvIsHex = 0;int nAutoSaveToFile = 0;int n;/*/* Prototypes */*/void CVICALLBACK Event_Char_Detect_Func (int

20、 portNo,int eventMask,void *callbackData);int ComDetect(char ValidCom);int OpenCloseTheCom(void);/*/* Application entry point. */*/int main (int argc, char *argv)int i,y;if (InitCVIRTE (0, argv, 0) = 0) /* Initialize CVI libraries */return -1; /* out of memory */if (gPanelHandle = LoadPanel(0, e:pro

21、gramCVIrs232commcallback.uir, PANEL) 0)return -1;if (gHelpPanelHandle = LoadPanel(0, commcallback.uir, HELP_PANEL) 0)return -1;if (gComCfgPanelHandle = LoadPanel(0, commcallback.uir, COM_CFG) 0)return -1;/* Open and Configure Com port 1 */OpenComConfig (2, , 9600, 0, 8, 1, 512, 512);/* Turn off Hard

22、ware handshaking (loopback test will not function with it on) */SetCTSMode (2, LWRS_HWHANDSHAKE_OFF);/* Make sure Serial buffers are empty */FlushInQ (2);/FlushOutQ (2); /* Promt the user to enter an event character. */PromptPopup (Event Character, Enter the Event Character, gEventChar, 1);/* Instal

23、l a callback such that if the event character appears at the receive buffer, our function will be notified. */InstallComCallback (2, LWRS_RECEIVE, 1, (int)gEventChar0 , Event_Char_Detect_Func, 0); SetCtrlVal (gComCfgPanelHandle, COM_CFG_RING_COM, COM_Port);SetCtrlVal (gComCfgPanelHandle, COM_CFG_RIN

24、G_RATE, Baud_Rate);SetCtrlVal (gComCfgPanelHandle, COM_CFG_RING_PARITY, Parity);SetCtrlVal (gComCfgPanelHandle, COM_CFG_RING_DATA_BIT, Data_Bits);SetCtrlVal (gComCfgPanelHandle, COM_CFG_RING_STOP_BIT, Stop_Bits);SetCtrlVal (gComCfgPanelHandle, COM_CFG_NUMERIC_INQ_LEN, Input_Queue_Size);SetCtrlVal (g

25、ComCfgPanelHandle, COM_CFG_NUMERIC_OUTQ_LEN, Output_Queue_Size);/update COM StateFlashState();SetCtrlVal (gPanelHandle, PANEL_STRING,state);/Set COM State colorSetCtrlAttribute (gPanelHandle, PANEL_STRING, ATTR_TEXT_COLOR, VAL_BLACK); /Set LED color SetCtrlAttribute (gPanelHandle,PANEL_LED , ATTR_ON

26、_COLOR, VAL_GREEN);SetCtrlAttribute (gPanelHandle,PANEL_LED , ATTR_OFF_COLOR, VAL_DK_GRAY); /GetCurrentDIRGetDir (AutoSaveDIR);/將探測的存在的串口加入到 串口選擇的下拉列表中y = ComDetect(ValidCom);char ComName5 = COM00;for(i=0;iy;i+)Fmt(ComName,COM%d,ValidComi);InsertListItem (gComCfgPanelHandle, COM_CFG_RING_COM, i, Com

27、Name,(int)ValidComi);/SetCtrlAttribute (gComCfgPanelHandle, COM_CFG, ATTR_LABEL_TEXT, );/SetCtrlAttribute (gComCfgPanelHandle, COM_CFG, ATTR_CTRL_VAL, );/* Display the panel and run the UI */DisplayPanel (gPanelHandle);RunUserInterface ();/* Close the open COM port before exiting */CloseCom (COM_Por

28、t);/* Discard the loaded panels from memory */DiscardPanel (gPanelHandle);DiscardPanel (gHelpPanelHandle);return 0;/可用串口探測/參數(shù):/ ValidCom,輸出可用串口ID號(hào)/返回:/ 可用串口數(shù)量(0-127),0為無串口可以使用int ComDetect(char ValidCom)int i = 0;int j = 0;int ComState = 0;int ValidNum = 0;for(i=1;i=0 )CloseCom(i);if( (ComState=0)|(

29、ComState=-7) )/-7 Cannot open port ValidNum+;/可用串口數(shù)量加1 ValidComj+ = i;/記錄可用串口ID號(hào)/printf(%d:%dn,i,ComState);return ValidNum;/*/* SendData (): Respond to the Send button to send characters out of the serial port. */*/* Event_Char_Detect_Func (): Fuction called when the event character is detected. */*

30、/void CVICALLBACK Event_Char_Detect_Func (int portNo,int eventMask,void *callbackData)char outMessage256;char readBufCOM_BUF_LEN = 0;unsigned char hexBufCOM_BUF_LEN = 0;int strLen;int i,j;/Fmt (outMessage, %s (int)COM_BUF_LEN)MessagePopup (Warning!,自定義的串口緩沖區(qū)太小);/return;i = j = 0;if( RecvIsHex = 1 )C

31、omRd (COM_Port, hexBuf, strLen);for(i = 0;i 4) 4) + 0;elseif( (hexBufi4) 4) + A - 10;if( (hexBufi&0x0F) 0x0A )readBufj+ = (hexBufi&0x0F) + 0;elseif( (hexBufi&0x0F) = 0x0F )readBufj+ = (hexBufi&0x0F) + A - 10;readBufj+ = ;readBufj+ = 0;elseComRd (COM_Port, readBuf, strLen);SetCtrlVal (gPanelHandle, P

32、ANEL_OUTOUT_STRING, readBuf);if ( readBuf0=DA ) SetCtrlVal (gPanelHandle, PANEL_LED2, 1); SetCtrlVal (gPanelHandle, PANEL_LED3 ,0); SetCtrlVal (gPanelHandle, PANEL_LED4, 1); SetCtrlVal (gPanelHandle, PANEL_LED5,0); SetCtrlVal (gPanelHandle, PANEL_LED6,1);SetCtrlVal (gPanelHandle, PANEL_LED7,0);SetCt

33、rlVal (gPanelHandle, PANEL_LED8,1);SetCtrlVal (gPanelHandle, PANEL_LED9,0);if(readBuf0=A5) SetCtrlVal (gPanelHandle, PANEL_LED2,0); SetCtrlVal (gPanelHandle, PANEL_LED3 ,1); SetCtrlVal (gPanelHandle, PANEL_LED4, 0); SetCtrlVal (gPanelHandle, PANEL_LED5,1); SetCtrlVal (gPanelHandle, PANEL_LED6,0);Set

34、CtrlVal (gPanelHandle, PANEL_LED7,1);SetCtrlVal (gPanelHandle, PANEL_LED8,0);SetCtrlVal (gPanelHandle, PANEL_LED9,1);if(readBuf0=CA) SetCtrlVal (gPanelHandle, PANEL_LED2, 1); SetCtrlVal (gPanelHandle, PANEL_LED3 ,0); SetCtrlVal (gPanelHandle, PANEL_LED4, 1); SetCtrlVal (gPanelHandle, PANEL_LED5,0);

35、SetCtrlVal (gPanelHandle, PANEL_LED6,1);SetCtrlVal (gPanelHandle, PANEL_LED7,0);SetCtrlVal (gPanelHandle, PANEL_LED8,1);SetCtrlVal (gPanelHandle, PANEL_LED9,0);if(readBuf0=B5) SetCtrlVal (gPanelHandle, PANEL_LED2, 0); SetCtrlVal (gPanelHandle, PANEL_LED3 ,1); SetCtrlVal (gPanelHandle, PANEL_LED4, 0)

36、; SetCtrlVal (gPanelHandle, PANEL_LED5,1); SetCtrlVal (gPanelHandle, PANEL_LED6,0);SetCtrlVal (gPanelHandle, PANEL_LED7,1);SetCtrlVal (gPanelHandle, PANEL_LED8,0);SetCtrlVal (gPanelHandle, PANEL_LED9,1);if(nAutoSaveTo 1)WriteFile (n, readBuf, strlen(readBuf);WriteFile (n, n, 1);return; /*/* Help ():

37、 Display help text. */*/int CVICALLBACK Help (int panel, int control, int event, void *callbackData, int eventData1,int eventData2)switch (event)case EVENT_COMMIT:SetCtrlAttribute (gHelpPanelHandle, HELP_PANEL_TEXTBOX, ATTR_TEXT_COLOR, VAL_BLUE);InstallPopup (gHelpPanelHandle);break;return 0;/*/* Qu

38、itHelpCB (): Remove help text. */*/int CVICALLBACK QuitHelp (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)switch (event) case EVENT_COMMIT:RemovePopup (0);break;return 0;/*/* ReceiveData (): Read the data on the serial COM port. */*/int CVICALLBACK ReceiveDat

39、a (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)char readBuf1 = 0;int strLen = 0;switch (event)case EVENT_COMMIT:/* Read the characters from the port */if( GetComStat(COM_Port) (int)COM_BUF_LEN) MessagePopup (Warning!,自定義的串口緩沖區(qū)太小);/ return 0; else if( strLen

40、= 0 ) MessagePopup (Warning!,無接收數(shù)據(jù));/ return 0; ComRd (COM_Port, readBuf, strLen); / SetCtrlVal (gPanelHandle, PANEL_OUTOUT_STRING, readBuf); MessagePopup(dsdd,dd);if ( readBuf0=D9 ) SetCtrlVal (gPanelHandle, PANEL_LED2, 0); SetCtrlVal (gPanelHandle, PANEL_LED3 ,1); SetCtrlVal (gPanelHandle, PANEL_L

41、ED4, 1); SetCtrlVal (gPanelHandle, PANEL_LED5,0); SetCtrlVal (gPanelHandle, PANEL_LED6,0);SetCtrlVal (gPanelHandle, PANEL_LED7,1);SetCtrlVal (gPanelHandle, PANEL_LED8,1);SetCtrlVal (gPanelHandle, PANEL_LED9,0);if(readBuf=C9) SetCtrlVal (gPanelHandle, PANEL_LED2, 0); SetCtrlVal (gPanelHandle, PANEL_LED3 ,1); SetCtrlVal (gPanelHandle, PANEL_LED4, 1); SetCtrlVal (gPanelHandle, PANEL_LED5,0); SetCtrlVal (gPanelHandle, PANEL_

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論