FPGA极易入门教程----数码管篇(1)静态显示_数码管静态显示

图2:共阴极数码管显示数字“1”

其他数字的演示就不做了,根据这个原理可以整理出0~9这10个数字的编码方式(适用共阳极,共阴极只要将编码取反即可):

图3:共阳极数码管编码表

这里涉及到两个概念:

  • 段选:单个数码管的二极管控制信号(a~g),控制段选可以实现数码管显示不同的数字
  • 位选:单个数码管的“电源开关”信号,只有在位选有效的情况下(有电情况下),控制数码管的段选才有意义

也就是说通过控制位选可以控制数码管是否上电工作,通过控制段选可以控制数码管显示具体的内容

在通常的设计中,只用一个数码管显然是不太方便的,一般都需要4个、6个或者多个(这个看自身,我们这里用6个举例)。假设我们需要用6个数码管来显示数字,那么岂不是需要控制8个*6=48个信号,也就是需要48个IO口来进行控制?虽然我们知道FPGA的IO资源比较丰富,但是也架不住这么造不是?

所以一般在FPGA开发板中,基本都是将6个数码管的8个二极管的控制信号(段选)连接到了一起来统一控制,而将数码管的位选信号分开控制。

3、静态显示

我们可以通过位选信号去控制数码管点亮,而在同一时刻,位选选通的数码管上显示的字形是一样的,因为我们将 6 个数码管相对应的段选连在了一起,数码管的显示自然就相同了,数码管的这种显示方式即为静态显示。

接下来我以某Cyclone IVE的开发板为例,编写静态显示的驱动代码进行验证。该开发板有6个共阳极数码管(低电平控制亮),数码管位选控制信号(低电平有效)。

3.1、端口

驱动模块输入输出端口如下:

图4:数码管静态显示模块框图

各信号含义如下:

  • 输入端:
    • sys_clk:系统时钟,我的开发板是50M,周期20ns
    • sys_rst_n:低电平有效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值