(3) 向左滚动,用全灭的数码管填充右边,直至全部变灭,然后再依次从右边一个一个地点亮。状态为:012345-12345X-2345XX-345XXX-45XXXX-5XXXXX-XXXXXX-XXXXX0-XXXX01-XXX012-XX0123-X01234-012345,其中’X’表示数码管不显示。 i)设计思路:
(1)同时显示6位数码,并使数码循环左移位的设计思路与方法同实验任务2-I, (2)稍有不同为左移出的数码不从右移入,因而没有取余运算,大于6的数码状态为灭灯,实现了左移且右端数码依次熄灭。
(3)待全部灯熄灭后要实现数码依次从右移入,需要进行反向计数,故设置了控制加减计数的标志位FLAG_REVERSE,当FLAG计数达到5时,将FLAG_REVERSE设置为1,进行减计数;当FLAG计数达到0时,将FLAG_REVERSE设置为0,进行加计数。当FLAG_REVERSE为0时,FLAG_NUM等于NUM与FLAG的和;当FLAG_REVERSE为1时,FLAG_NUM等于NUM与FLAG的差。当FLAG_REVERSE等于1时,右端数码最先达到0,显示数码“0”,然后是右端第二位达到0,显示数码“0”,右端第一位为1,显示数码“1”,其余灯灭,以此类推,实现了右端逐位移入数码的功能。 ii)VHDL代码:
6.仿真波形及分析
(1)同时显示0、1、2、3、4、5这6个不同的数字到6个数码管上的仿真波形及分析 i)仿真波形
ii)波形分析
由波形可见,随着模6计数器的周期性重复,0至5号数码管依次被点亮,当一个数码管被点亮时其余管熄灭,同时,数码管显示数字从0至5依次出现,两者保持同步,即n号管亮时显示的数码为n。以计数6次为一个周期进行循环,可知仿真结果正确。当扫描速度很快时,人眼将能看到持续稳定的0至5号数码显示。
(2) 循环左滚动,始终点亮6个数码管,左出右进。状态为:012345-123450-234501-345012-450123-501234-012345
i)仿真波形
相关推荐: