首页 > 技术 > 内容

基于FPGA开发板流水灯的设计实现

时间:2025-12-02  作者:Diven  阅读:0

流水灯,有时候也叫跑马灯,是一个简单、有趣又经典的实验,基本所有单片机的玩家们在初期学习的阶段都做过。本次我们也来介绍一下如何通过小脚丫FPGA实现一个流水灯。

流水灯就是让一连串的灯在一定时间内先后点亮并循环往复,所中的关键要领就在于控制每两个相邻LED亮灭的时间差,以及所有LED灯完成一组亮灭动作后的循环。很久都没有用过小脚丫的朋友可以再回顾一下,这上面有8个LED灯,且低电平点亮。实现流水灯的方法绝不止,在这里我们采用模块化的设计思路,因为模块化设计对于之后构建大型电路系统非常有帮助,并且我们还可以借机温习一下以前学过的内容。

现在我们的目标是每过1秒后点亮下一个LED灯并且熄灭当前灯,且在第8个灯熄灭之后循环整个流程,该如何设计整个模块?我们先上图后解释。毫无疑问,第一步需要做的就是通过分频来生成一个周期为1秒的时钟信号,不了解时钟分频童鞋可以读一下本系列的第6篇内容。

有了一个1秒钟嘀嗒一次的时钟后,我们还要考虑到循环问题,因为在第8个LED灯熄灭之后还需要再返回到第1个。那么这个时候我们就需要一个计数器,作用就是数羊,一只,两只…...数到第八只后重头再来。数8只羊需要一个3位宽的变量(2 ^3^ =8)。

由于我们是要依次点亮,也就是说8位的输出中每次只有1位是低电平,其余均为高电平(小脚丫LED灯为低电平点亮)。这个特性正好对应了我们之前学过的3-8译码器

现在我们再来捋一遍。通过分频在小脚丫上生成一个周期为1秒的慢速时钟信号,这个时钟信号传送到计数器之中;这个计数器是3位宽的,因此最多可以计八次慢速时钟的嘀嗒,并且计数每增加1时,都对应着3-8译码器的下输出,也就对应着流水灯的下一个状态。

现在我们上代码:

Module runningled (clk,led); input clk,rst; output[7:0] led; reg [2:0] cnt ; //定义了一个3位的计数器,输出可以作为3-8译码器的输入 wire clk1hz; //定义一个中间变量,表示分频得到的时钟,用作计数器的触发  //例化分频模块,产生一个1Hz时钟信号  divide #(.WIDTH(24),.N(12000000)) u2 ( //除数为12,000,000,因此频率为1Hz .clk(clk), .rst_n(rst), .clkout(clk1hz) ); //生成计数器,上沿触发并循环计数  always@(posedge clk1hz) cnt <=< span="" > cnt +1; // 达到位宽上限后可自动溢出清零 //例化3-8译码器模块 decode38 u1 ( .X(cnt), //例化的输入端口连接到cnt,输出端口连接到led  .D(led) );endModule

在第四篇讲译码器的文章里,我们介绍过,如果需要调用/例化子模块时,需要将各子模块与大模块放入同一个工程文件下进行编译。最后我们再来对小脚丫进行管脚配置并烧录就可以了。如果大家成功地在小脚丫上实现了流水灯的程序,还可以自己玩一个有意思的实验:比如,你可以通过修改程序来提高流水灯的刷新频率,然后看看LED灯的刷新率为多少时你的肉眼无法分别。同时再打开手机的摄像头,也以同样的方法试验一番。结合到你观察的现象,可以自己琢磨并思考一下,说不定能挖掘出更多的知识。

备注一些大伙都知道的常识:我国交流电工频为50Hz,电脑常用显示器的刷新率有60,75和144赫兹。华为Mate30刷新频率为90赫兹,苹果6-12的刷新频率为60赫兹。

猜您喜欢


贴片电阻作为电子元件中不可少的一部分,其体积规格多样化成为了厂商和设计师关注的重点。RALEC(旺诠)作为知名的贴片电阻品牌,高品质的产品性能和丰富的规格选择,...
2018-12-18 18:23:30
还在为查找贴片电阻封装尺寸而烦恼吗?一张图片就能解决你的难题!我们整理了常用的贴片电阻封装尺寸,并以清晰的图片形式展现,包含从01005到2512等各种尺寸,并...
2025-04-14 15:03:34
精密运放是高性能的运算放大器,应用于信号处理、传感器接口和音频放大等领域。与传统运放相比,精密运放具有更高的增益精度、更低的失真和更好的温度稳定性。这使得在需要...
2009-01-02 00:00:00
01B贴片电阻,对于不熟悉电子元件的人来说,这个名称可能显得有些陌生。但实际上,它在各种电子设备中都扮演着至关重要的角色。那么,01B贴片电阻究竟有多大呢?01...
2024-11-26 11:30:02
继电器是应用于电气控制系统中的电器元件,其主要功能是通过小电流控制大电流,从而实现电路的开关控制。而在继电器的应用中,二极管作为重要的保护元件,发挥着不可少的作...
2025-04-06 14:00:03
百洁布是常见的清洁工具,通常由聚酯纤维和尼龙等材料制成,表面具有特殊的磨砂纹理,能够有效去除各种表面的污垢和污渍。优点在于柔软、不刮伤物体表面,适用于清洁锅具、...
2010-09-11 00:00:00
地贴警示标识是安全管理中不可少的重要工具,能够有效引导人们的注意力,减少事故发生。选择合适的地贴警示标识时,需关注以下几个关键参数。材料选择非常重要。地贴通常采...
2024-12-10 00:00:00
贴片电阻上的5230并不是直接代表阻值,而是一种编码方式。代表的是52.3KΩ的阻值。这种编码方式通常被称为三位数字表示法。前两位数字52代表有效数字,第三位数...
2024-11-29 10:25:32
电子设备日益小型化、功能日益强大的今天,对电源的要求也越来越高。低压DC-DC开关电源芯片作为电子设备的电力心脏,是很重要的配件,能够将电压转换为设备所需的特定...
2024-02-02 00:00:00
选择合适的贴片电阻品牌对于电子产品的质量和可靠性至关重要。市场上贴片电阻品牌众多,如何选择合适的品牌常常让消费者感到困惑。一般来说,评估贴片电阻品牌需要考虑其产...
2024-11-26 11:29:27