LED点阵动画
2022-10-28 本文已影响0人
c0950a553955
LED点阵动画
1,创建工程。注意,芯片型号选择 “EP4C10F17C8”;

2,使用软件 ZIMO221.EXE 制作字模,生成数据。注意,可以是文字,也可以是图案。

3,整理字模数据,生成mif文件。

注意:mif文件的生产方法有很多,本处可以采用手动输入的方法填入数据。
4,使用quartus宏模块制作ROM,数据位宽为16bit(控制列信号,即LED正极),地址位宽可以选择为8bits,即为256个字;

5,使能LED点阵模块,令ADDR_SEL[2..0]=5;


6,使用宏模块生成一个大计数器,例如输出位宽可以为16bits。

7,控制每个LED的正负极同步加载。使用计数器的低4位[3..0]控制行信号(负极),同时也同步控制列信号(阳极),此时可以显示第一个字(或者图案);


8,为了防止下一个字刷出太快,导致正在显示的字被覆盖(混淆在一起),可以令第一个反复显示若干次,如100次,再刷新下一个字,为达到类似效果,字模ROM的高位地址可以调接到计数器的高位输出上,如q[11..10];

9,正确分配引脚,并且将系统时钟降频,频率过高会导致显示不完整。

10,效果录像:
https://www.bilibili.com/video/BV1yt4y1T7VY/?vd_source=8c09b180039a8e6891416332c317aac8