示例說明
先看下完成后的軟件界面運(yùn)行圖,如下所示:
這個流水燈小程序共包括了8個小燈,其主要功能包括:
可設(shè)置每個小燈初始的亮滅狀態(tài);
可設(shè)置流水燈的移動方向;
可設(shè)置流水燈每次向左或向右移動的位數(shù);
可設(shè)置流水燈移動的速度;
可控制流水燈的開始/暫停狀態(tài)。
在LabVIEW中編程實(shí)現(xiàn)這么多功能是不是很難啊?其實(shí)還是比較簡單的,下面看看怎么實(shí)現(xiàn)吧。
文末最后有動態(tài)圖演示哦,不要錯過。
代碼實(shí)現(xiàn)
代碼實(shí)現(xiàn)主要關(guān)鍵點(diǎn):
主要程序結(jié)構(gòu):使用while循環(huán)結(jié)構(gòu)+事件結(jié)構(gòu)+移位寄存器,在事件結(jié)構(gòu)的超時事件中完成流水燈狀態(tài)的顯示,在移位寄存器中存儲上次流水燈狀態(tài)對應(yīng)的數(shù)值;
主要功能函數(shù):布爾數(shù)組(流水燈數(shù)組的值)與數(shù)值(需要移位的值)之間的轉(zhuǎn)換函數(shù),循環(huán)移位函數(shù);
為簡化程序代碼的設(shè)計(jì),將前面板上所有的流水燈控件放到一個U8類型的一維數(shù)組控件中。
其中,超時事件代碼框圖如下圖所示:
這是這個程序功能實(shí)現(xiàn)的主要代碼,在超時事件中,通過移位寄存器中讀取上次流水燈狀態(tài)對應(yīng)的數(shù)值,然后根據(jù)前面板上的控件設(shè)置決定流水燈是否移動、左移或右移及移動的位數(shù),其關(guān)鍵函數(shù)是循環(huán)移位函數(shù),該函數(shù)參數(shù)接口意義如下,通過給定y值的正負(fù)號控件其左移或右移:
當(dāng)在前面板上改變流水燈初始值狀態(tài)時,需重新給移位寄存器賦初值,其代碼如下:
在前面板上點(diǎn)擊退出程序按鈕時,在事件結(jié)構(gòu)的值改變事件中退出程序的運(yùn)行,代碼如下:
至此,程序的主要代碼實(shí)現(xiàn)就完成了。
總結(jié)
可能大家會想,如果一開始讓你在LabVIEW中實(shí)現(xiàn)一個這么花哨的多種控制功能的流水燈小程序,你可能會覺得這太難了,甚至無從下手,實(shí)際上,通過上面的實(shí)現(xiàn)代碼可看出程序也并不是太難,關(guān)鍵是要熟悉如事件結(jié)構(gòu)、移位寄存器、循環(huán)移位及布爾數(shù)組與數(shù)值之間的轉(zhuǎn)換等幾個小知識點(diǎn),把任務(wù)分解清楚,花不了幾分鐘也就可以做出來了。
好了,大家照著這個例子做一遍吧,如果還做不出來的話,大家可以加關(guān)注并私信回復(fù):LabVIEW065,可獲取該文章對應(yīng)的LabVIEW原程序下載。
最后再看下這個小例子的動態(tài)運(yùn)行效果圖吧:
責(zé)任編輯人:CC
-
LabVIEW
+關(guān)注
關(guān)注
1995文章
3670瀏覽量
333312 -
labview編程
+關(guān)注
關(guān)注
2文章
9瀏覽量
14266
發(fā)布評論請先 登錄
怎么實(shí)現(xiàn)基于STM32單片機(jī)流水燈仿真與程序設(shè)計(jì)?
單片機(jī)C語言程序設(shè)計(jì)實(shí)例之雙向來回的流水燈

基于51單片機(jī)流水燈仿真與程序設(shè)計(jì)

評論