LabVIEW編程實例:趣味流水燈程序設計

2020-08-29 編碼那些事

很多小夥伴在學單片機的時候,不管是用彙編也好,還是用C語言也好,都寫過各種各樣的流水燈小程序,當一排LED燈按你的設計循環亮起的時候,是不是非常有成就感呢?

那麼我們思考下,在LabVIEW平臺上,是否也可以編程實現一個純軟體版的流水燈演示小程序呢?答案是肯定的,下面看看怎麼做吧。

示例說明

先看下完成後的軟體界面運行圖,如下所示:



這個流水燈小程序共包括了8個小燈,其主要功能包括:

  • 可設置每個小燈初始的亮滅狀態;
  • 可設置流水燈的移動方向;
  • 可設置流水燈每次向左或向右移動的位數;
  • 可設置流水燈移動的速度;
  • 可控制流水燈的開始/暫停狀態。

在LabVIEW中編程實現這麼多功能是不是很難啊?其實還是比較簡單的,下面看看怎麼實現吧。

文末最後有動態圖演示哦,不要錯過。

代碼實現

代碼實現主要關鍵點:

  • 主要程序結構:使用while循環結構+事件結構+移位寄存器,在事件結構的超時事件中完成流水燈狀態的顯示,在移位寄存器中存儲上次流水燈狀態對應的數值;
  • 主要功能函數:布爾數組(流水燈數組的值)與數值(需要移位的值)之間的轉換函數,循環移位函數;
  • 為簡化程序代碼的設計,將前面板上所有的流水燈控制項放到一個U8類型的一維數組控制項中。

其中,超時事件代碼框圖如下圖所示:



這是這個程序功能實現的主要代碼,在超時事件中,通過移位寄存器中讀取上次流水燈狀態對應的數值,然後根據前面板上的控制項設置決定流水燈是否移動、左移或右移及移動的位數,其關鍵函數是循環移位函數,該函數參數接口意義如下,通過給定y值的正負號控制項其左移或右移:



當在前面板上改變流水燈初始值狀態時,需重新給移位寄存器賦初值,其代碼如下:



在前面板上點擊退出程序按鈕時,在事件結構的值改變事件中退出程序的運行,代碼如下:



至此,程序的主要代碼實現就完成了。

總結

可能大家會想,如果一開始讓你在LabVIEW中實現一個這麼花哨的多種控制功能的流水燈小程序,你可能會覺得這太難了,甚至無從下手,實際上,通過上面的實現代碼可看出程序也並不是太難,關鍵是要熟悉如事件結構、移位寄存器、循環移位及布爾數組與數值之間的轉換等幾個小知識點,把任務分解清楚,花不了幾分鐘也就可以做出來了。

好了,大家照著這個例子做一遍吧,如果還做不出來的話,大家可以加關注並私信回覆:LabVIEW065,可獲取該文章對應的LabVIEW原程序下載。

最後再看下這個小例子的動態運行效果圖吧:



本文由編碼那些事原創,請關注+轉發+收藏+點讚,帶你一起長知識!

相關焦點

  • LabVIEW編程實例:趣味流水燈程序設計
    很多小夥伴在學單片機的時候,不管是用彙編也好,還是用C語言也好,都寫過各種各樣的流水燈小程序,當一排LED燈按你的設計循環亮起的時候,是不是非常有成就感呢?那麼我們思考下,在LabVIEW平臺上,是否也可以編程實現一個純軟體版的流水燈演示小程序呢?答案是肯定的,下面看看怎麼做吧。
  • 基於labview的示波器控制設計
    下面就來談談計算機控制示波器的步驟和方法,並利用實例進行分析和講解。本文引用地址:http://www.eepw.com.cn/article/234570.htm1.編寫的應用程式通過TekVISA來控制示波器。3. 計算機控制示波器步驟實例(以LAN口控制為例,開發軟體:labview)下面針對計算機如何編程控制示波器的步驟進行詳細的說明。
  • labview介紹和書籍推薦
    Labview門戶網站:http://www.gsdzone.net/  辦得很好,裡面有個Labview社區,不妨點一下進去,進去就知道labview門戶網站辦得有多好,中文資料有好多,很貼心。  2、精通LabVIEW程序設計(含光碟1張)  本書由基礎入門篇、編程精通篇和應用實例篇三大部分組成。
  • LabVIEW編程實例:如何創建並使用多態VI程序
    LabVIEW中的多態VI程序是指:該VI程序作為子程序被調用時,可以自動適應所連線的輸入數據類型,自動選擇實際的處理VI程序並得到正確的運算結果。可以簡單的理解為,多態VI程序本質上只是具有相同輸入輸出參數模式的不同VI程序的集合,LabVIEW平臺本身可以根據連線的數據類型自動選擇相應的VI程序。下面通過一個具體實例演示LabVIEW中多態VI程序的創建及使用方法。例子說明編程實現一個多態VI程序——MyAdd.vi,實現兩個數據x、y的相加運算,得到運算結果z。
  • LabVIEW編程基礎:以實例學編程之循環結構
    LabVIEW又稱為G語言,簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。在前面兩篇文章(請參考:LabVIEW編程基礎:以實例學編程之條件結構精講,LabVIEW編程基礎:以實例學編程之順序結構)中分別講了順序結構與條件結構的編程方法,下面通過具體例子演示循環結構的編程使用方法。
  • labview和C ,那個更好入門
    現在用來編寫C/S端程序的程式語言,比較容易入門的估計就是labview和C#了。先來說說labview吧。labview在工控自動化領域應用非常廣泛,而且在物理教學方面很有優勢。如果你是搞電氣自動化,嵌入式,那麼用labview會事半功倍。labview的口號是軟體即是儀器。它的優勢是入門簡單,有編程功底的兩三天就可以入門。就算沒有編程功底的,兩周也入門了。不過,入門雖然容易,但是想要真正使用它編寫出一個健壯的商業軟體卻是不那麼容易的事。
  • LabVIEW編程實例:如何求解自然常數e
    實例說明自然常數e,是數學中最重要的常數之一,是一個無限不循環小數,也是自然對數函數的底數,其值約為2.71828。它的一個經典的數學定義公式是:使用計算機計算e的值時,可以使用下面的公式近似計算:那麼在LabVIEW中如何編程實現求解這個公式即e的值呢?編程思路從上面的近似公式可以看出,e的值與n的階乘有關,可將上式分解為兩個步驟:求解n的階乘:n!=1×2×3×......
  • 基於Verilog FPGA 流水燈設計
    通過程序控制LED的亮和滅, 多個LED燈組成一個陣列,依次逐個點亮的時候像流水一樣,所以叫流水燈。由於其形成美觀大方的視覺效果,因此廣泛應用於店鋪招牌、廣告、大型建築夜間裝飾、景觀裝飾等。  在FPGA電路設計中,儘管流水燈的設計屬於比較簡單的入門級應用,但是其運用到的方法,是FPGA設計中最核心和最常用部分之一,是FPGA設計必須牢固掌握的基礎知識。
  • LabVIEW實例,如何編程實現一個虛擬FFT分析儀
    LabVIEW又稱為G語言,簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。因此,LabVIEW軟體在數據仿真、信號分析處理方面有著得天獨厚的優勢。本文以一個具體實例,演示在LabVIEW中如何實現一個虛擬的FFT分析儀設計,包括採樣信號的仿真、頻域的FFT分析及數據結果的圖形顯示等功能。
  • LabVIEW編程實例:手把手教你按鍵監視小軟體的實現
    實例說明該實例的軟體運行界面如下圖所示:其功能為監視當前鍵盤的按鍵信息,當按下鍵盤上的某個鍵時,在軟體上顯示出當前按鍵對應的字符及ASCII碼,如上圖為當在鍵盤上按下「a」鍵時的運行情況,其對應的ASCII碼為97。
  • 利用Labview開發平臺和PLC通信協議實現換熱器採集監控系統的設計
    利用Labview開發平臺和PLC通信協議實現換熱器採集監控系統的設計 電子設計 發表於 2019-08-15 08:07:00 1 引言 能源問題是現在社會所面臨的重大問題。
  • LabVIEW編程基礎:以實例學編程之順序結構
    LabVIEW又稱為G語言,簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。同C語言編程一樣,LabVIEW中也有對應的三大程序執行框架結構,分別為順序結構、循環結構和選擇結構。下面通過一個例子演示順序結構的編程使用方法。
  • 單純看編程實例會讓初學者頭暈,編程基礎概念,IPO程序編寫方法
    筆者發文的初衷是幫助想學習編程的小白初學者學習python編程。目前為止,已經寫了一些簡單的程序。開始,筆者還是想著用程序實例引領編程小白一步一步前進。但是,假如我在程序中用上一個循環結構while,用上一個遍歷結構for,再加幾個判斷語句……編程小白們會立刻暈給我看。「思想正確,等於創造。」忘了從哪裡看到的金句,很有道理。擁有正確的基礎概念,才能更好地編寫程序。
  • LabVIEW編程實例:如何產生仿真信號數據
    從軟體仿真得到但一般情況下對於整個系統(如數據採集分析系統)的設計,硬體部分工作往往要落後於軟體部分的工作,但軟體部分也不可能等硬體平臺調試完成後才動工,這時候用於前期算法驗證的數據來源就要依靠於軟體仿真了。
  • 如何安裝LabVIEW?
    安裝完打開LabVIEW界面是這樣滴:按Ctrl+N,新建一個VI(LabVIEW程序的「最小單元」),會彈出前面板(Front Panel)與程序框圖(Block Diagram),如下圖:前面板(Front Panel)程序框圖(Block Diagram)
  • 如何學習LabVIEW
    還記得當初是因為一個項目才與labview結緣的,使用圖像化的編程方式操作外設,通過NI和研華的板卡採集和控制外設的數據,一直對自己很大的吸引力。
  • LabVIEW基礎知識:引用的理解及編程方法
    LabVIEW簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。內置豐富的控制項庫及函數庫,可開發出界面美觀漂亮、功能強大的專業軟體,能夠勝任各行業各領域的開發需求。
  • Scratch趣味少兒編程之認識鐘錶實例
    更多推薦 少兒編程之scratch趣味編程:Scratch3.0編輯器下載與安裝 scratch少兒趣味編程的好處 3天學會scratch少兒趣味編程(初級) scratch少兒趣味編程對孩子的影響 什麼是Scratch少兒編程?
  • LabVIEW視頻教程
    導讀:labview視頻教程labview也是一種程式語言,可能很多人並沒有聽說過它。LabVIEW是由美國國家儀器公司所開發的圖形化程序編譯平臺,發明者為傑夫·考度斯基,程序最初於1986年在蘋果電腦上發表。目前可支持Windows,UNIX,Linux,Mac OS等作業系統。
  • LabVIEW編程實例:生成隨機字符串並查找某字符出現的次數及位置
    實例說明使用LabVIEW程式語言,編寫一個VI程序,要求如下:能夠生成指定長度的a-z之間的隨機字符串能夠查找某個字符在字符串中出現的次數及位置實現後的軟體運行界面如下圖所示:編程思路對於第一個問題,要求生成