1、 方案二:采用动态扫描法并行输出数据。所谓动态扫描法实际上是利用人眼的视觉暂留现象而实现的一种显示方法。(2)方案的比较方案一的优点在于编程简单且硬件保证无闪烁。缺点:硬件利用率低,造成硬件成本较高。例如一个16*16 的LED显示屏,如用8位锁存器,需32个,此外还有32个锁存器口地址所需的译码电路以及LED驱动电路。显然,这种硬件开销是不能接受的。方案二采用动态扫描来实现LED电子显示屏的显示过程,软件操作实现简便。本实验采用了采用动态扫描法并行输出数据的显示方法。LED点阵的列为扫描选通信号、行为数据输入。显示采用逐行扫描方式,数据端不断输入数据,列扫描按一定顺序逐行选通,扫描一个周期(
2、16次)产生一帧画面。图5.1以44共阴LED阵列为例,给出了LED阵列的组合方式,列选通高有效,数据低有效;数据端输入数据,选通列根据相应数据亮灯,接着送入第二列数据,选通第二列,依次完成一屏的扫描。图2.6.1 LED阵列结构四、定制ROM的方法 1、建立.mif格式文件:首先在Quartus File菜单中选择NEW,在NEW窗中选择Memory Initialization File 项,单击OK产生ROM数据文件大小选择窗口。这里选ROM的数据数Number为48,数据宽Word size取16位。如图所示,将“中兴班”对应数码输入其中即可,如图所示: 保存为adf.mif 2、定制
3、LPM_ROM元件。在Tools中选择Mega Wizard Plug-In Manager 产生如图界面,选择Create a new custom 项,如图所示 单击next后,选择VHDLCycloneIIROM1Port 如图所示选择ROM 控制线、地址线和数据线,如图所示 address5.0,q15.0.接下来按下面步骤操作单击next出现如下图的对话框,在File name 中输入刚才建立的.mif文件,在Allow 前打勾,并在下面输入ROM1单击next即可按图单击next如下图,单击finish即完成了ROM的定制。打开其生成的语言文件,编译后生成如下图的模块后即可调用了。
4、五、实验程序 实验总图:分频程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;-entity fenpin is port( clkin : in std_logic; -20M时钟输入 clk1 : out std_logic );end fenpin;architecture behave of fenpin is signal clk : std_logic:=0; begin process(clkin) variable c
5、ount: integer range 0 to 12010:=0; if clkinevent and clkin=1 then count:=count+1; if(count=12000) then clk=not clk; -进行24000分频,产生方波 end if; clk1=clk; end process;end architecture behave;列选模块程序library ieee;entity he is port( clk1 : -时钟输入 keyc : out std_logic_vector(15 downto 0); -点阵列控制 address : out
6、std_logic_vector(5 downto 0) -点阵行地址输出end he;architecture behave of he is signal cdount : std_logic_vector(3 downto 0); signal dount : std_logic_vector(9 downto 0); signal S : std_logic_vector(1 downto 0); process(clk1) -显示时序控制 if clk1event and clk1= dount1 then -“中兴班”三个字循环显示的控制,分频数比列选大 S=00 else=S+1
7、; if cdount15 then -循环列选 cdountkeyc0000000000000000 end case; if S=address000000 -行显示中的地址000001000010000011000100000101000110000111001000001001001010001011001100001101001110001111=null; elsif S=01 then 010000 -行显示显示兴的地址010001010010010011010100010101010110010111011000011001011010011011011100011101011
8、11001111110100000 -行显示显示班的地址100001100010100011100100100101100110100111101000101001101010101011101100101101101110101111六、 波形仿真先分析列选的仿真情况:如图所示结合上图,看ROM的输出:通过与.mif文件对比发现仿真图的输出与其完全一样,所以程序仿是可以达到实验要求的。七、实验现象 实验现象:LED屏上动态的显示“中兴班”三字。然后改变ROM中数据(通过更替MIF文件),LED屏上产生了不同的动画效果。达到了实验要求的目的。八、实验心得 通过本次实验,最主要的收获是学会了如何去定制ROM并将它运用到点阵中去,学会了利用扫描的方法让点阵滚动显示所需的汉字,列选的时间和字与字之间的时间间隔要控制好才能编出显示效果非常好的图形字符。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1