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

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

3天内不再提示

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

电子森林 来源:哔哩哔哩 作者:硬禾学堂 2021-03-19 16:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

继年前介绍的时序逻辑电路之时钟分频后,今天我们来介绍第7讲:流水灯。

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

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

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

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

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

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

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

对应变量小脚丫管脚FPGA管脚

clkClockJ5

led [0]LED1N15

led [1]LED2N14

led [2]LED3M14

led [3]LED4M12

led [4]LED5L12

led [5]LED6K12

led [6]LED7L11

led [7]LED8K11

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

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

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

    关注

    1664

    文章

    22502

    浏览量

    639087
  • 单片机
    +关注

    关注

    6078

    文章

    45576

    浏览量

    673497
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74373

原文标题:基于FPGA的数字电路实验7:流水灯的实现

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用FPGA控制上千颗RGB LED流水灯

    国内还有一个FPGA技术在特定垂直的领域-LED 显示。今天就从开源项目展开讲讲这个领域中FPGA扮演的角色。
    的头像 发表于 03-25 17:52 944次阅读

    FPGA在音频产品上的应用案例

    FPGA(Field-Programmable Gate Array),现场可编程逻辑门阵列,它是一种电子设备,用于执行任何(数字)逻辑功能或数字电路的硬件实现。它是作为专用集成电路(
    的头像 发表于 03-19 10:30 2580次阅读
    <b class='flag-5'>FPGA</b>在音频产品上的应用案例

    数字电路和模拟电路的差异解析

    运行,都离不开两大基础电子电路的支撑:数字电路与模拟电路。很多人在接触电子技术时,都会产生一个疑问:数字电路和模拟电路到底有什么区别?它们各
    的头像 发表于 03-14 09:47 423次阅读
    <b class='flag-5'>数字电路</b>和模拟<b class='flag-5'>电路</b>的差异解析

    从“人机交互”到“数字预演”:详解 HMI、SCADA 与虚拟调试的闭环架构

    从“人机交互”到“数字预演”:详解 HMI、SCADA 与虚拟调试的闭环架构
    的头像 发表于 03-05 11:36 323次阅读
    从“人机交互”到“<b class='flag-5'>数字</b>预演”:<b class='flag-5'>详解</b> HMI、SCADA 与虚拟调试的闭环架构

    嵌入式与FPGA的区别

    应用。 FPGA的开发是逻辑实现+约束+综合+仿真,嵌入式的开发是编码+编译+调试,如果是对数字电路设计感兴趣,可以考虑FPGA。 ⭕在了解下就业机会哪个多? ✅1、嵌入式的就业机会很多,优点就是就业容易,因为
    发表于 11-20 07:12

    蜂鸟E203在黑金XC7A200T型FPGA上点亮LED并实现流水灯

    一、队伍介绍 本篇介绍的内容是蜂鸟E203在黑金XC7A200T型FPGA上点亮LED并实现流水灯。 二、前言 在此之前我们已经将蜂鸟E203在黑金XC7A200T型FPGA开发板上,所以
    发表于 10-31 09:04

    什么是数字信号?

    文章介绍了什么是数据信号、数字电路、总线的有关内容。
    的头像 发表于 10-20 17:48 2849次阅读
    什么是<b class='flag-5'>数字</b>信号?

    掌握数字设计基础:迈向芯片设计的第一步

    在当今电子世界里,数字设计 是一切复杂系统的基石。从智能手机到自动驾驶,从AI芯片到物联网设备,数字电路无处不在。想要进入半导体与IC设计领域,扎实的数字设计基础几乎是“必修课”。今天我们就带你梳理
    发表于 10-09 21:11

    高速数字电路设计与安装技巧

    内容简介: 详细介绍印制电路板的高速化与频率特性,高速化多层印制电路板的灵活运用方法,时钟信号线的传输延迟主要原因.高速数字电路板的实际信号波形,传输延迟和歪斜失真的处理,高速缓冲器IC的种类与传输
    发表于 09-06 15:21

    【沁恒CH585开发板免费试用体验】GPIO 流水灯

    提高电路的负载能力,又提高开关速度。 Figure 1‑8 推挽式输出 推挽式复用输出 Figure 1‑9 推挽式复用功能 2 GPIO流水灯硬件电路分析 发光二极管是属于二极管的一种,具有二级
    发表于 07-04 22:55

    自动化开装封码流水线数据采集解决方案

    在智能制造加速推进的时代背景下,自动化开装封码流水线广泛应用于食品、药品、日化、电子等众多行业,承担着产品自动开箱、装填、封箱、贴标及码垛的核心生产任务。随着生产规模扩大和精细化管理需求的提升,对流水
    的头像 发表于 06-27 15:56 931次阅读
    自动化开装封码<b class='flag-5'>流水</b>线数据采集解决方案

    远程io模块在汽车流水线的应用

    在汽车制造领域,生产流水线的高效、稳定运行是保障产品质量与生产效率的关键。随着工业 4.0 和智能制造理念的深入,汽车生产企业对流水线自动化控制提出了更高要求,不仅要实现设备间的精准协同作业,还需
    的头像 发表于 06-11 15:26 795次阅读

    实用电子电路设计(全6本)—— 数字系统设计

    。其中包括数字电路基础、布尔代数和数字电路的表示方法、基本的数字IC、数字电路的基本功能块、各种数字IC、
    发表于 05-15 15:25

    【RA-Eco-RA4M2开发板评测】点灯实现6种LED花式流水灯操作

    很高兴收到瑞萨电子提供的RA4M2开发板,这次帖子就专门用来说说专业点灯操作,实现各种花式的流水灯,可以十分方便地控制LED的各种状态,甚至多个LED组合控制,如跑马灯等。 打开原理图,可以看到3个
    发表于 04-28 21:28

    【RA-Eco-RA4M2开发板评测】2 初识GPIO流水灯

    LED1亮,P405引脚输出低电平LED1熄灭,其他LED同理。 Figure ‑ LED电路图 值得注意的,不同的开发板,LED连接的GPIO一般是不同的,请注意修改。 3 GPIO 流水灯实现
    发表于 04-25 23:06