虛擬儀器課程設(shè)計--基于labview上下位機(jī)的led顯示設(shè)計_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  電控學(xué)院</b></p><p><b>  課程設(shè)計(論文)</b></p><p>  課程名稱: LabVIEW程序設(shè)計教程 </p><p>  題 目: 基于LabVIEW上下位機(jī)的LED顯示設(shè)計 </p><p>  

2、院 (系): 電氣與控制工程學(xué)院 </p><p>  專業(yè)班級: XXXXXXXXXXXXXXX </p><p>  姓 名: XXXX </p><p>  學(xué) 號: XXXXXX

3、 </p><p>  指導(dǎo)教師: XXX XX </p><p>  2014年 1 月 9 日</p><p><b>  目錄</b></p><p><b>  1 設(shè)計任務(wù)1</b></p><p

4、>  2 系統(tǒng)方案選擇1</p><p><b>  2.1整體設(shè)計1</b></p><p>  2.2 通信協(xié)議1</p><p>  2.2.1 數(shù)據(jù)信號線2</p><p>  2.2.2 控制信號線2</p><p>  2.3 下位機(jī)總體設(shè)計3</p>

5、<p>  2.4 上位機(jī)總體設(shè)計3</p><p><b>  3 下位機(jī)設(shè)計3</b></p><p><b>  3.1 硬件3</b></p><p>  3.1.1 時鐘晶振模塊3</p><p>  3.1.2 復(fù)位模塊3</p><p>  

6、3.1.3 LED顯示模塊4</p><p>  3.1.4 串口通信模塊4</p><p>  3.2 軟件設(shè)計5</p><p>  3.2.1 主程序設(shè)計5</p><p>  3.2.2 串口通信設(shè)計5</p><p><b>  4 上位機(jī)設(shè)計6</b></p>

7、<p><b>  5 系統(tǒng)調(diào)試7</b></p><p><b>  6 結(jié)論7</b></p><p><b>  7 總結(jié)8</b></p><p><b>  8 參考文獻(xiàn)9</b></p><p><b>  9 附

8、錄10</b></p><p>  基于labview的上位機(jī)與下位機(jī)之間的通信</p><p><b>  1 設(shè)計任務(wù)</b></p><p>  此次設(shè)計所要完成的功能是使用AT89C52作為下位機(jī),通過RS-232C串口與上位機(jī)相連,將編程所實現(xiàn)的跑馬燈和端口設(shè)置數(shù)據(jù)顯示在上位機(jī)上。上位機(jī)是通過LabVIEW軟件繪制實現(xiàn),

9、上位機(jī)界面包括設(shè)置區(qū)、命令控件區(qū)、顯示控件區(qū)、數(shù)據(jù)接收區(qū)。</p><p><b>  2 系統(tǒng)方案選擇</b></p><p><b>  2.1整體設(shè)計</b></p><p>  下位機(jī)使用AT89C52進(jìn)行流水燈設(shè)計,上位機(jī)使用LabVIEW進(jìn)行界面設(shè)計,顯示出端口設(shè)置數(shù)據(jù)和8個LED燈的顯示,通過RS232進(jìn)行串

10、口通訊傳送數(shù)據(jù)到上位機(jī)中顯示。</p><p>  圖2.1 設(shè)計框架</p><p><b>  2.2 通信協(xié)議</b></p><p>  RS-232C標(biāo)準(zhǔn)定義了數(shù)據(jù)通信設(shè)備(DCE)與數(shù)據(jù)終端設(shè)備(DTE)之間進(jìn)行串行數(shù)據(jù)傳輸?shù)慕涌谛畔?,?guī)定了接口的電氣信號和接插件的機(jī)械要求。RS-232C對信號開關(guān)電平規(guī)定如下:</p>

11、;<p>  驅(qū)動器的輸出電平為:邏輯“0”:+5~+15V;邏輯“1”:-5~-15V。</p><p>  接收器的輸入檢測電平為:邏輯“0”:>+3V;邏輯“1”:<-3V。</p><p>  RS-232C采用負(fù)邏輯,噪聲容限可達(dá)2V。RS-232是個人計算機(jī)上的通訊接口之一,由電子工業(yè)協(xié)會(Electronic Industries Association,EIA

12、) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以9個引腳 (DB-9) 或是25個引腳 (DB-25) 的型態(tài)出現(xiàn),一般個人計算機(jī)上會有兩組 RS232 接口,分別稱為 COM1 和 COM2。RS-232C接口定義了20條可以同外界連接的信號線,并對它們的功能作了具體規(guī)定。這些信號線并不是在所有的通訊過程中都要用到可以根據(jù)通信聯(lián)絡(luò)的繁雜程度選用其中的某些信號線。</p><p>  RS-232-C標(biāo)準(zhǔn)

13、規(guī)定的數(shù)據(jù)傳輸速率為50、75、100、150、300、600、1200、2400、4800、9600、19200波特。</p><p>  RS-232C用作計算機(jī)與遠(yuǎn)程通信設(shè)備的數(shù)據(jù)傳輸接口,如圖2.2所示,圖中信號線分為數(shù)據(jù)信號線和控制信號線,分別說明如下:</p><p>  圖2.2 帶RS-232C接口的通信設(shè)備連接</p><p>  2.2.1 數(shù)據(jù)

14、信號線</p><p>  “發(fā)送數(shù)據(jù)(TXD)”和“接收數(shù)據(jù)(RXD)”是一對數(shù)據(jù)傳輸信號。TXD用于發(fā)送數(shù)據(jù),當(dāng)無效數(shù)據(jù)發(fā)送時,TXD線上的信號為“1”。RXD用于接收數(shù)據(jù),當(dāng)無效數(shù)據(jù)發(fā)送或者接收數(shù)據(jù)間隔期間,RXD線上的信號也為“1”。</p><p>  2.2.2 控制信號線</p><p>  “請求發(fā)送(RTS)”與“為發(fā)送清零(CTS)”信號線用于雙

15、工通信方式。半雙工方式下發(fā)送和接收只能分時進(jìn)行。當(dāng)DTE有數(shù)據(jù)待發(fā)送時,先發(fā)“請求發(fā)送”,信號通知調(diào)制解調(diào)器,此時若調(diào)制解調(diào)器處于接收方式,則必須等到接收完畢轉(zhuǎn)為發(fā)送方式時,才向DTE回送“為發(fā)送清零”信號。在全雙工方式下,發(fā)送和接收能同時進(jìn)行,不使用這兩條控制信號線。</p><p>  “DCE就緒”(DSR)和“DTE就緒”(DTR)信號線分別表示DCE和DTE是否處于可供使用的狀態(tài)?!氨Wo(hù)地”信號線一般連

16、接設(shè)備的屏蔽地。</p><p>  2.3 下位機(jī)總體設(shè)計</p><p>  利用AT89C52芯片的P1口,以及軟件編程實現(xiàn)跑馬燈。</p><p>  2.4 上位機(jī)總體設(shè)計</p><p>  對于labview處理主要包括前后面板的設(shè)計,包括三部分:參數(shù)設(shè)置部分、命令控制部分及顯示部分。其中參數(shù)設(shè)置主要包括通訊口、波特率、數(shù)據(jù)位、

17、校驗位、停止位及接收周期的設(shè)置;命令控制主要包括啟停數(shù)據(jù)接收、顯示數(shù)據(jù)清空及退出運(yùn)行等;顯示界面主要包括接收數(shù)據(jù)顯示、接收數(shù)據(jù)個數(shù)顯示、當(dāng)前下位機(jī)流水燈狀態(tài)實時顯示等。</p><p><b>  3 下位機(jī)設(shè)計</b></p><p><b>  3.1 硬件</b></p><p>  在硬件設(shè)計中主要為下位機(jī)的AT8

18、9C52所設(shè)計的流水燈,其中包括基本的時鐘晶振模塊,復(fù)位電路模塊,8位LED燈模塊和最重要的串口通訊模塊。</p><p>  3.1.1 時鐘晶振模塊</p><p>  外接晶振給單片機(jī)提供一個時鐘信號(一個非常穩(wěn)定的頻率信號),使單片機(jī)各內(nèi)部組件同步工作,并且在和外部設(shè)備通信時是也能達(dá)到同步。</p><p>  圖3.1 時鐘晶振模塊</p>

19、<p>  3.1.2 復(fù)位模塊</p><p>  手動開關(guān)復(fù)位使中央處理器CPU以及其他功能部件都恢復(fù)到一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。除此之外,當(dāng)單片機(jī)程序運(yùn)行出現(xiàn)錯誤或系統(tǒng)處于死循環(huán)狀態(tài)時,需要對單片機(jī)進(jìn)行復(fù)位以及重新啟動。</p><p><b>  圖3.2 復(fù)位電路</b></p><p>  3.1.3 LE

20、D顯示模塊</p><p>  8位LED發(fā)光二極管實現(xiàn)流水燈操作。根據(jù)軟件設(shè)計可得到1位LED循環(huán)左移,花樣燈等。</p><p>  圖3.3 8位LED顯示</p><p>  3.1.4 串口通信模塊</p><p>  MAX232是一種把電腦的串行口RS232信號電平(-10,+10v)轉(zhuǎn)換為單片機(jī)所用到的TTL信號點(diǎn)平(0,+5

21、)的芯片。串口通訊模塊使上位機(jī)與下位機(jī)得以通信,進(jìn)行數(shù)據(jù)傳送。</p><p><b>  圖3.4 串口通信</b></p><p><b>  3.2 軟件設(shè)計</b></p><p>  3.2.1 主程序設(shè)計</p><p>  下位機(jī)程序設(shè)計中主要執(zhí)行功能為流水燈顯示和串口發(fā)送,主程序首先

22、對系統(tǒng)的定時器和串口進(jìn)行初始化,然后通過程序SBUF接收P1口的信號,每接收到一個P1口信號就對上位機(jī)進(jìn)行一次數(shù)據(jù)傳送,通過上位機(jī)的設(shè)計界面顯示數(shù)據(jù)。整個系統(tǒng)的主流程圖如下圖所示。</p><p>  圖3.5 下位機(jī)程序流程圖</p><p>  3.2.2 串口通信設(shè)計</p><p>  系統(tǒng)的串口部分十分重要,主要是初始化部分對相應(yīng)的寄存器進(jìn)行設(shè)置,發(fā)送數(shù)據(jù)

23、的時候只需要將數(shù)據(jù)寫入SBUF里面即可,由發(fā)送中斷標(biāo)志位TI檢測其數(shù)據(jù)發(fā)送結(jié)束。而接收則有中斷方式和等待方式兩種,本系統(tǒng)因為單片機(jī)所要完成的簡單,所以采用等待的方式。串口的初始化程序流程圖如圖所示。</p><p>  圖3.6 串口初始化程序流程圖</p><p><b>  4 上位機(jī)設(shè)計</b></p><p>  端口設(shè)置區(qū)中包括五個

24、部分,分別為:通訊口設(shè)置,波特率設(shè)置,數(shù)據(jù)位設(shè)置,校驗位和停止位。通訊口中編輯項有COM1、COM2。波特率編輯項有300、600、1200、1800、2400、4800、7200、9600、14400、19200、28800、38400、56000、76800、115200。數(shù)據(jù)位中編輯項有6、7、8。校驗位中編輯項有無、偶校驗、奇校驗。停止位中編輯項有1、1.5、2。其前、后面板顯示如圖所示。</p><p>

25、;  圖4.1 前面板設(shè)計</p><p>  圖4.2 程序框圖設(shè)計</p><p><b>  5 系統(tǒng)調(diào)試</b></p><p>  運(yùn)行顯示的過程是首先實現(xiàn)燈的左移右移,在實現(xiàn)等從中間點(diǎn)亮逐步向兩邊擴(kuò)散再向中間聚攏,接著實現(xiàn)日期20140107與學(xué)號1006070108。</p><p><b>  

26、其結(jié)果顯示如下:</b></p><p>  圖5.1 運(yùn)行結(jié)果圖</p><p><b>  6 結(jié)論</b></p><p>  本次課程設(shè)計題目是基于LabVIEW的跑馬燈設(shè)計,主要進(jìn)行的任務(wù)是用編程軟件Keil編寫跑馬燈程序、燒寫程序、使用LabVIEW設(shè)計上位機(jī)、下位機(jī)發(fā)送數(shù)據(jù)在上位機(jī)顯示。此次設(shè)計使得我們對課本《LabV

27、IEW程序設(shè)計教程》上的理論知識進(jìn)一步加深,將之應(yīng)用于實踐,充分發(fā)掘?qū)W生們的潛力。</p><p>  首先是熟悉Keil編程軟件的使用,使用單片機(jī)C語言編寫跑馬燈的程序,其中出現(xiàn)了一些問題,比如想要實現(xiàn)一個LED的左移點(diǎn)亮,只將其左移一位,即LED<<=1,并未考慮到左移后數(shù)據(jù)的最右端會自動賦0,這樣燈的點(diǎn)亮順序?qū)⒉粫_(dá)到所想要實現(xiàn)的效果,應(yīng)該使用該語句LED=(LED<<1)|0x01

28、,將最右端賦值1。另外,編譯鏈接后出現(xiàn)兩個警告,其原因未選擇Add Files to Group ‘Source Group1’,導(dǎo)致錯誤。</p><p>  使用LabVIEW軟件繪制前面板和程序框圖是一個很復(fù)雜的過程,首先是繪制前面板上的所要求的各顯示和設(shè)置區(qū),繪制完成后,在后面板上會主動生成一些相應(yīng)的控件,然后補(bǔ)充所要用到的控件,并用導(dǎo)線將相應(yīng)控件相連接。最終完成上位機(jī)的設(shè)計。最初繪制完成后運(yùn)行時,數(shù)據(jù)顯

29、示區(qū)有數(shù)據(jù),但LED燈顯示區(qū)中無一LED亮,此問題的原因是為將接收到的數(shù)據(jù)經(jīng)控件“字符串至字節(jié)數(shù)組轉(zhuǎn)換”轉(zhuǎn)換成字節(jié)數(shù)組,造成錯誤,鼠標(biāo)放在數(shù)據(jù)接收區(qū)控件上,點(diǎn)右鍵選字符串選板中的“字符串至字節(jié)數(shù)組轉(zhuǎn)換”控件,然后鼠標(biāo)放在“字符串至字節(jié)數(shù)組轉(zhuǎn)換”控件上,點(diǎn)擊鼠標(biāo)右鍵選擇“索引數(shù)組”控件,用導(dǎo)線將對應(yīng)的控件相連,再次運(yùn)行,燈亮,數(shù)據(jù)顯示區(qū)數(shù)據(jù)與下位機(jī)燈亮的順序一致,但在前面板中的燈亮與燈滅正好與實際相反,為改正錯誤,在程序框圖中的LED顯示

30、控件區(qū)中的各LED前加一個非門,從而將錯誤改正。</p><p>  此外,對于自身來說,此次設(shè)計中仍有些不足,如程序框圖中有些控件仍不是太明白其含義和功能,希望自己以后會多加練習(xí),爭取更進(jìn)一步地掌握LabVIEW軟件的使用。</p><p><b>  7 總結(jié)</b></p><p>  通過各方面努力,本次實習(xí)基本完成。在LabVIEW設(shè)

31、計的學(xué)習(xí)下,設(shè)計出了上下位機(jī)的LED通訊燈動態(tài)顯示方案。</p><p>  通過這次系統(tǒng)的項目設(shè)計提高了我運(yùn)用所學(xué)的專業(yè)基礎(chǔ)知識來解決面臨實際問題的能力,同時也提高了我查閱各種文獻(xiàn)資料、使用LabVIEW軟件的水平。通過這次設(shè)計,我發(fā)現(xiàn)了自己的很多不足以及許多知識的漏洞。在設(shè)計過程中遇到了不少困難,慶幸的是我得到了許多人的幫助。首先我要感謝我的指導(dǎo)老師昝老師設(shè)計過程中,他給的指導(dǎo),豐富的設(shè)計經(jīng)驗和嚴(yán)謹(jǐn)?shù)闹茖W(xué)態(tài)度

32、,是我解決問題的關(guān)鍵所在。同時,還要感謝幫助我的所有同學(xué)。我想,本次實習(xí)對我們每個人都是影響很大的,它使我們基本掌握了LabVIEW通訊的設(shè)計方案,基本掌握了LabVIEW等軟件的使用,并且對LabVIEW有了更深入的了解。在解決問題的過程中,我們不僅學(xué)到了很多專業(yè)的知識,還學(xué)會了分析問題,解決問題的方法。相信這些對我們以后的學(xué)習(xí)與工作都有很大的幫助。</p><p>  通過對自己在大學(xué)時間里所學(xué)的知識的回顧,

33、并充分發(fā)揮對所學(xué)知識的理解和對課程設(shè)計的思考及書面表達(dá)能力,最終完成了這項實習(xí)。這次設(shè)計為我們今后進(jìn)一步深化學(xué)習(xí),積累了一定的寶貴經(jīng)驗。撰寫論文的過程也是專業(yè)知識的學(xué)習(xí)過程,運(yùn)用已有的專業(yè)基礎(chǔ)知識,對其進(jìn)行設(shè)計,分析和解決一個理論問題或?qū)嶋H問題,把知識轉(zhuǎn)化為能力的實際訓(xùn)練,并且為以后的課程設(shè)計論文做好準(zhǔn)備及鋪墊。本次課題培養(yǎng)了我們運(yùn)用所學(xué)知識解決實際問題的能力,確實也有所提高。</p><p>  通過這次實習(xí)發(fā)

34、現(xiàn),只有理論水平提高,才能夠?qū)⒄n本知識與實踐相整合,理論知識服務(wù)于教學(xué)實踐,以增強(qiáng)自己的動手能力。通過這次設(shè)計,我們知道了理論和實際的距離,也知道了理論和實際想結(jié)合的重要性。</p><p>  我們的學(xué)習(xí)不但要立足于書本,以解決理論和實際教學(xué)中的實際問題為目的,還要以實踐相結(jié)合,理論問題即實踐課題,解決問題即課程研究,學(xué)生自己就是一個專家,通過自己的手來解決問題比用腦子解決問題更加深刻。學(xué)習(xí)就應(yīng)該采取理論與實踐

35、結(jié)合的方式,理論的問題,也就是實踐性的課題。這種做法既有助于完成理論知識的鞏固,又有助于帶動實踐,解決實際問題,加強(qiáng)我們的動手能力和解決問題的能力。</p><p><b>  8 參考文獻(xiàn)</b></p><p>  [1] 虛擬儀器實驗指導(dǎo)書,彭倩編.西安科技大學(xué)出版社.</p><p>  [2] 楊樂平,李海濤,趙勇等.LabVIEW高

36、級程序設(shè)計.北京:清華大學(xué)出版社,2003.</p><p>  [3] 王磊,陶梅.精通LabVIEW8.0.北京:電子工業(yè)出版社,2007.</p><p><b>  9 附錄</b></p><p><b>  圖1 下位機(jī)原理圖</b></p><p><b>  程序清單<

37、;/b></p><p>  #include<reg51.h> </p><p>  #define uchar unsigned char </p><p>  #define uint unsigned int </p><p>  uchar code LED1[]={0xfe,0xfd,0xfb,0xf7,0xe

38、f,0xdf,0xbf,0x7f};//定義流水燈點(diǎn)亮順序</p><p>  uchar code LED2[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7e}; </p><p>  uchar code LED3[]={0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3e,0x7c}; </p><p>

39、  uchar code LED4[]={0xe7,0xc3,0x81,0x00,0x00,0x81,0xc7,0xe7}; </p><p>  uchar code LED5[]={0xfb,0xfe,0xfd,0xef,0xfe,0xfd,0xfe,0x7f}; </p><p>  uchar code LED6[]={0xfe,0xff,0xff,0xc0,0xff,0x80,0

40、xff,0xfe,0xff,0x00}; </p><p>  void delay(uint x) //延遲函數(shù) </p><p>  { uchar i;</p><p>  while(x--)</p><p>  for(i=0;i<120;i++);</p><p>&l

41、t;b>  } </b></p><p>  void Port(char c) //定義單片機(jī)向串口輸出數(shù)據(jù)子函數(shù) </p><p>  { SBUF=c;</p><p>  while(TI==0);</p><p><b>  TI=0;</b></p>

42、<p><b>  }</b></p><p>  void main(void)</p><p>  { SCON=0x50; //設(shè)置串口工作于方式1</p><p>  TMOD=0x20; //設(shè)置定時器工作于方式2</p><p&g

43、t;  PCON=0x00; //設(shè)置SMOD</p><p>  TH1=0xfd; //設(shè)置波特率</p><p>  TL1=0xfd; </p><p>  TI=0; //允許向串口發(fā)送數(shù)據(jù)</p><p> 

44、 TR1=1; //啟動TI</p><p><b>  while(1)</b></p><p>  { uchar i;</p><p>  for(i=0;i<8;i++) //正向點(diǎn)亮流水燈并將流水燈狀態(tài)發(fā)送至串口</p><p>

45、;  { P1=LED1[i];</p><p>  Port(LED1[i]);</p><p>  delay(300);</p><p><b>  }</b></p><p>  for(i=7;i>0;i--) //反向點(diǎn)亮流水燈并將流水燈狀態(tài)發(fā)送至口</p>&

46、lt;p>  { P1=LED1[i];</p><p>  Port(LED1[i]);</p><p>  delay(300);</p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p>  { P1=LED

47、2[i];</p><p>  Port(LED2[i]);</p><p>  delay(300);</p><p><b>  }</b></p><p>  for(i=7;i>0;i--) </p><p>  { P1=LED2[i];</p>

48、<p>  Port(LED2[i]);</p><p>  delay(300);</p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p>  { P1=LED3[i];</p><p>  Port(LED

49、3[i]);</p><p>  delay(300);</p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p>  { P1=LED4[i];</p><p>  Port(LED4[i]);</p>

50、<p>  delay(500);</p><p><b>  }</b></p><p>  for(i=0;i<8;i++) //顯示日期20140107</p><p>  { P1=LED5[i];</p><p>  Port(LED5[i]);</p>&

51、lt;p>  delay(1000);</p><p><b>  }</b></p><p>  for(i=0;i<10;i++) //顯示學(xué)號1006070108</p><p>  { P1=LED6[i];</p><p>  Port(LED6[i]);</p&g

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論