FPGA项目(1)--FPGA驱动16*16点阵动态显示

本文介绍了如何利用FPGA进行16*16点阵的驱动,结合按键功能实现文字滚动、数字倒计时及控制显示。通过列扫描方法和字符转字模软件提取数据,将字模存储在ROM中,以动态改变ROM地址实现动态显示。代码编写中涉及ROM模块例化、时钟信号生成及地址提取等步骤。

本次实现的功能就是利用FPGA驱动16*16点阵,在按键的配合下实现文字的滚动显示、数字的倒计时显示,以及按键控制显示等等。先上一幅实物图吧

 16*16点阵的硬件结构图如下所示:

可见,只要在C端输入高电平1,在R端输入低电平0,就可以点亮一颗LED。

我选择使用列扫描的方式,也就是按照一定的频率,依次给C0,C1,C2...高电平,然后分别将字模数据输入在R0--R15上,只要列扫描的频率足够大,由于人眼的视觉暂留效应,就可以在点阵屏幕上显示出字符。

        接下来就是提取字符的字模数据了,这个时候就要用到字符转字模的软件了

        软件截图如下:

         

         在R0-R15给低电平,LED就被点亮。所以在设置字模提取方式时,要选择阳码(0点亮)。其余的配置选择如图所示:

         配置好后,就可以输出字模数据了

         如果要显示很多字符,那么字模数据量是很庞大的。那么如何存储这些数据就成为了问题。我选择的方案是将字模数据存在ROM里面。要使用的时候直接去ROM里面读取即可。注意ROM的数据宽度要为16位。其他的ROM配置步骤我在这里就不多介绍了。(注意,使用ROM前还需要配置好mif文件。数据主要是存储在mif文件里面的) 

        一切准备就绪以后,就是代码的编写了。

        首先要例化ROM模块,因为字模数据全部在ROM里面。

         然后还需要一些不同频率的时钟信号

         再接着就是根据列扫描信号,提取出对应的字模数据。由于使用了ROM,提取ROM里面的数据时,只需要给出ROM的地址就行。

         动态显示(滚动显示)的关键在于,传入给ROM的地址,是以人眼可以识别的频率动态变化的。关键代码如下:

        需要完整代码的,请私信

         

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小李(接定制)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值