玖叶教程网

前端编程开发入门

LabVIEW使用循环结构+事件结构+移位寄存器实现跑马灯示例

LabVIEW是一种简单易学、形象直观的图形化编程语言,也称为G语言,具有丰富的同传统仪器外观类似的控件库(如旋钮、仪表盘、温度计、波形图表等),可以构建漂亮专业的用户界面,同时,内部提供了庞大的函数库(如数据采集、GPIB、串口控制、数据处理、数据显示及数据存储等),可以满足各行业各领域的开发需求。另外,由于它并非一种封闭的语言,而是具有强大的外部接口能力,可以实现与C/C++、Basic、Matlab等编程语言互通的能力,现在,LabVIEW不仅仅局限于虚拟仪器软件类的开发,而是已经发展成为了一种通用的、完善的、开放的高级编程语言。

示例说明

程序运行界面如下图所示:

程序界面的上半部分部包括一个U8型的数值显示控件和八个布尔型的圆形指示灯控件,其中,数值显示控件依次在0-255之间循环显示当前整数数值,将当前数值转换为二进制表示后,用八个指示灯的亮灭指示该数值的8个二进制位值,如将十进制数值11可表示为二进制“00001011”,则对应的8个指示灯按照0灭1亮的规则从左到右依次显示其每位的值情况,这样可以模拟一个跑马灯的效果。界面的下半部分是程序的控制部分,其中左边的“开始/暂停”按钮用以控制数值计数的启动和暂停,“重置”按钮将当前数值复位为0。

程序主代码实现

主程序框架使用while循环+事件结构实现,事件结构中包括超时、重置值改变及前面板关闭事件。

对于超时事件说明如下:

  • 在移位寄存器中保存当前显示的数值,通过将数值自加1操作循环更新当前值,其初始值设置为U8型的常量数值0
  • 根据“开始/暂停”按钮的值来判断当前值是否需要更新,为真时更新,否则保持原状
  • 将当前数值转换为二进制表示,通过“数值至布尔数组转换”函数得到当前数值的的二进制位数组,然后对该数组索引即可得到每个位的值,将其连接到8个布尔灯控件上
  • 设置超时时间为300ms,即每隔300ms,更新一次当前计数值

在重置值改变事件中,当点击重置按钮时,在移位寄存器中将当前显示的数据更新为0即可,代码如下图所示:

在前面板关闭事件中,需要注意的是,添加事件分支时,选择的是“前面板关闭?”而非“前面板关闭”,选择前者,当用户点击程序的关闭按钮时,在程序可以正常退出的情况下,又保证了VI程序编辑界面的前面板不退出,利于随时修改代码,代码如下图所示:


结论

在这个小例子中,涉及到了多个知识点的运用,如事件结构、循环结构、移位寄存器、数值转换为二进制布尔数组等,同时在界面布局上也涉及到分割条控件的使用等。

大家也可以参考这个视频,对这个例子的理解更形象些:LabVIEW平台编程实现跑马灯效果视频

大家加关注并私信回复:LabVIEW7,可获取该文章对应的LabVIEW原程序下载。

欢迎加关注,共同交流。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言