0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过FPGA实现一个流水灯?

h1654155282.3538 来源: 硬禾学堂 作者: 硬禾学堂 2021-06-06 10:42 次阅读

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

流水灯就是让一连串的灯在一定时间内先后点亮并循环往复,所以其中的关键要领就在于控制每两个相邻LED亮灭的时间差,以及所有LED灯完成一组亮灭动作后的循环。很久都没有用过小脚丫的朋友可以再回顾一下,这上面有8个LED灯,且低电平点亮。

实现流水灯的方法绝不止一种,在这里我们采用模块化的设计思路,因为模块化设计对于之后构建大型电路系统非常有帮助,并且我们还可以借机温习一下以前学过的内容。

现在我们的目标是每过1秒后点亮下一个LED灯并且熄灭当前灯,且在第8个灯熄灭之后循环整个流程,该如何设计整个模块?我们先上图后解释。

poYBAGC8NkGAZm09AAAzjxoCpyo822.png

毫无疑问,第一步需要做的就是通过分频来生成一个周期为1秒的时钟信号,不了解时钟分频童鞋可以读一下本系列的第6篇内容。

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

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

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

现在我们上代码:

pYYBAGC8Nk-AYq29AACNV7qya1Q412.png

在第四篇讲译码器的文章里,我们介绍过,如果需要调用/例化子模块时,需要将各子模块与大模块放入同一个工程文件下进行编译。最后我们再来对小脚丫进行管脚配置并烧录就可以了。

poYBAGC8Nk-AFtvyAAA2QC8kpH8034.png

如果大家成功地在小脚丫上实现了流水灯的程序,还可以自己玩一个有意思的实验:比如,你可以通过修改程序来提高流水灯的刷新频率,然后看看LED灯的刷新率为多少时你的肉眼无法分别。同时再打开手机的摄像头,也以同样的方法试验一番。结合到你观察的现象,可以自己琢磨并思考一下,说不定能挖掘出更多的知识。

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21648

    浏览量

    601472
  • 流水灯
    +关注

    关注

    21

    文章

    432

    浏览量

    59624
收藏 人收藏

    评论

    相关推荐

    基于Verilog FPGA 流水灯设计

    流水广告灯主要应用于LED灯光控制。通过程序控制LED的亮和灭, 多个LED灯组成阵列,依次逐个点亮的时候像流水
    发表于 08-09 15:14 1.7w次阅读
    基于Verilog <b class='flag-5'>FPGA</b> <b class='flag-5'>流水灯</b>设计

    基于FPGA的音乐流水灯控制系统设计

    介绍种基于 FPGA的音乐流水灯控制器, 采用硬件描述语言对其进行描述, 分别实现乐曲的播放和同步流水灯的闪烁。并构建
    发表于 10-20 17:21 4468次阅读

    基于Verilog FPGA 流水灯设计_流水灯源码_明德扬资料

    LED流水广告灯工程说明在本案例中,使用常用的verilog语言完成该程序,设计并控制8灯的花式或循环点亮;即上电后,实现左移和右移交替的流水灯。案例补充说明在
    发表于 08-02 17:56

    如何上手FPGA实现简单的流水灯效果

    配置选择上篇【FPGA实验】流水灯实验记录了如何上手FPGA实现简单的流水灯效果,本篇将稍微升级
    发表于 01-18 10:28

    简单流水灯程序仿真

    简单流水灯程序仿真,可以实现花式亮灭,循环。
    发表于 11-25 11:40 7次下载

    利用FPGA DIY开发板控制流水灯功能实现

    asean的 FPGA DIY 流水灯视频
    的头像 发表于 06-20 05:04 2954次阅读
    利用<b class='flag-5'>FPGA</b> DIY开发板控制<b class='flag-5'>流水灯</b>功能<b class='flag-5'>实现</b>

    采用FPGA DIY 开发板实现8流水灯向左移功能

    FPGA diy作业实现8位LED输出向左的流水灯
    的头像 发表于 06-20 08:26 5418次阅读
    采用<b class='flag-5'>FPGA</b> DIY 开发板<b class='flag-5'>实现</b>8<b class='flag-5'>个</b><b class='flag-5'>流水灯</b>向左移功能

    采用 FPGA DIY开发板实现流水灯功能

    实现从右到左边的流水灯,间隔1s
    的头像 发表于 06-20 06:30 3866次阅读
    采用 <b class='flag-5'>FPGA</b> DIY开发板<b class='flag-5'>实现</b><b class='flag-5'>流水灯</b>功能

    数字设计FPGA应用:流水灯的设计

    LED流水灯这篇采用最简单的就是点亮灯延时定时间,然后关闭,接下去点亮下一个灯,依次类推形成流水灯
    的头像 发表于 12-04 07:09 3584次阅读
    数字设计<b class='flag-5'>FPGA</b>应用:<b class='flag-5'>流水灯</b>的设计

    使用FPGA实现流水灯的详细资料说明

    本文档的主要内容详细介绍的是使用FPGA实现流水灯的详细资料说明。流水灯模块对于发展商而言,动土仪式无疑是最重要的任务。为此,流水灯实验作为
    发表于 07-11 16:45 27次下载
    使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>流水灯</b>的详细资料说明

    使用FPGA实现流水灯设计的资料合集

    本文档的主要内容详细介绍的是使用FPGA实现流水灯设计的资料合集免费下载。
    发表于 01-18 08:00 30次下载

    详解基于FPGA的数字电路对流水灯的实验

    流水灯,有时候也叫跑马灯,是简单、有趣又经典的实验,基本所有单片机的玩家们在初期学习的阶段都做过。本次我们也来介绍下如何通过小脚丫
    的头像 发表于 03-19 16:36 4426次阅读

    51单片机实现流水灯

    文章目录51单片机实现流水灯、点亮第一个LED灯二、流水灯1.总线型控制2.延时函数3._ crol _函数使用4.
    发表于 11-05 13:36 24次下载
    51单片机<b class='flag-5'>实现</b><b class='flag-5'>流水灯</b>

    基于FPGA流水灯设计

    依次点亮4LED灯,实现流水灯的效果,两灯之间点亮间隔为0.5s,LED灯次点亮持续时间0.5s。
    的头像 发表于 06-23 16:54 2320次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>流水灯</b>设计

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

    流水灯,有时候也叫跑马灯,是简单、有趣又经典的实验,基本所有单片机的玩家们在初期学习的阶段都做过。本次我们也来介绍下如何通过小脚丫
    发表于 06-20 17:10 1250次阅读
    基于<b class='flag-5'>FPGA</b>开发板<b class='flag-5'>流水灯</b>的设计<b class='flag-5'>实现</b>