产品概述

单片机流水灯汇编语言 LabVIEW编程实例:趣味流水灯程序设计

小编 2024-11-24 产品概述 23 0

LabVIEW编程实例:趣味流水灯程序设计

很多小伙伴在学单片机的时候,不管是用汇编也好,还是用C语言也好,都写过各种各样的流水灯小程序,当一排LED灯按你的设计循环亮起的时候,是不是非常有成就感呢?

那么我们思考下,在LabVIEW平台上,是否也可以编程实现一个纯软件版的流水灯演示小程序呢?答案是肯定的,下面看看怎么做吧。

示例说明

先看下完成后的软件界面运行图,如下所示:

这个流水灯小程序共包括了8个小灯,其主要功能包括:

可设置每个小灯初始的亮灭状态;可设置流水灯的移动方向;可设置流水灯每次向左或向右移动的位数;可设置流水灯移动的速度;可控制流水灯的开始/暂停状态。

在LabVIEW中编程实现这么多功能是不是很难啊?其实还是比较简单的,下面看看怎么实现吧。

文末最后有动态图演示哦,不要错过。

代码实现

代码实现主要关键点:

主要程序结构:使用while循环结构+事件结构+移位寄存器,在事件结构的超时事件中完成流水灯状态的显示,在移位寄存器中存储上次流水灯状态对应的数值;主要功能函数:布尔数组(流水灯数组的值)与数值(需要移位的值)之间的转换函数,循环移位函数;为简化程序代码的设计,将前面板上所有的流水灯控件放到一个U8类型的一维数组控件中。

其中,超时事件代码框图如下图所示:

这是这个程序功能实现的主要代码,在超时事件中,通过移位寄存器中读取上次流水灯状态对应的数值,然后根据前面板上的控件设置决定流水灯是否移动、左移或右移及移动的位数,其关键函数是循环移位函数,该函数参数接口意义如下,通过给定y值的正负号控件其左移或右移:

当在前面板上改变流水灯初始值状态时,需重新给移位寄存器赋初值,其代码如下:

在前面板上点击退出程序按钮时,在事件结构的值改变事件中退出程序的运行,代码如下:

至此,程序的主要代码实现就完成了。

总结

可能大家会想,如果一开始让你在LabVIEW中实现一个这么花哨的多种控制功能的流水灯小程序,你可能会觉得这太难了,甚至无从下手,实际上,通过上面的实现代码可看出程序也并不是太难,关键是要熟悉如事件结构、移位寄存器、循环移位及布尔数组与数值之间的转换等几个小知识点,把任务分解清楚,花不了几分钟也就可以做出来了。

好了,大家照着这个例子做一遍吧,如果还做不出来的话,大家可以加关注并私信回复:LabVIEW065 ,可获取该文章对应的LabVIEW原程序下载。

最后再看下这个小例子的动态运行效果图吧:

本文由编码那些事原创,请关注+转发+收藏+点赞,带你一起长知识!

51系列单片机汇编语言实现简单的交通灯控制

十字路口交通灯控制

四个路口各有红、绿2个LED,模拟交通灯的控制,即东西走向的灯变红,南北走向的灯应该变绿,反之亦然。

电路图和代码如下:

相关问答

c51 单片机流水灯 每次亮两个?

c51单片机流水灯,程序设计每次亮两个,在设计好硬件电路后,可用汇编语言或者c语言来编辑应用程序,编好后经烧录器下载程序后安装到电路板上。c51单片机流水灯,...

单片机 汇编语言 编写用一个控制器控制8个LED灯亮?

ORG0000HLJMPMAINORG000BHLJMPT0ISRORG0030HMAIN:MOVTMOD,#01HMOVTH0,#HIGH(65536-50000)MOVTL0,#LOW(65536...

用C 语言 写51 单片机 闹钟程序 - 156****1626 的回答 - 懂得

汇编做的可以不.有秒表.有闹钟.//*********************************************************//实现2113功能:本程序实现在P1口模拟一个...

怎么 汇编语言 使用LED灯亮?

LED有共阴和共阳两种,根据具体情况,给它高电平或者低电平就可以了。在单片机中,假如你的LED是接在P0口,而且是共阴的,那么MOVP0,#FFH就是把8个LED都点亮(...L...

单片机 初学者问题 汇编语言 编制一个循环闪烁的?

;八个LED接在P1,低电平发光。ORG0000HMOVA,#7FH;A=01111111,有一个低电平LOP1:MOVR2,#10LOP2:MOVP1,A;输出一个低...

汇编语言 编写51 单片机 程序让LED灯亮0.5秒,灭2秒无限循环?

ORG0000HMOVSP,#60HE:CLRP1.0;P1.0LED亮ACALLDEL_1S;0.5秒SETBP1.0;P1.0LED灭ACALLDEL_2S;2....

51 单片机 用C 语言 或者 汇编 程序如何实现定时1秒?如何设定初始值?如何计算?如何输出方波?如何对外部?

使用定时器实现1秒定时;初始值要看单片机配置的晶振频率了,若12M晶振,初始值为TH0=0x3c;TL0=0xb0;这才是50ms,还要一个单元做计数器,计数20次才是1秒方波...

单片机汇编语言 中 CY AC OV 分别是什么意思?

单片机汇编语言中CY(PSW.7)是进位或借位,来源于最近一次算术指令或逻辑指令执行结果。AC(PSW.6)是辅助进位或辅助借位,用于BCD码的十进制调整运算。OV(PSW.2...

单片机汇编语言 里DB什么意思?

单片机汇编语言中的DB是以字节为单位定义一个数据段,一般用于查表程序中,举例说明:DISPLAY:MOVDPTR,#TABMOVA,R2MOVCA,@A+DPTRMOVP0,A......

单片机 汇编语言 RLC是什么意思?

RLC是带进位的循环左移,RLCA即将A的内容左移一位,将进位位C中的值移到累加器A的最低位,A的最高位移到C里。譬如说:设A=01000001,C=1;则如果执行RL,则A=...

猜你喜欢