实验三 7段数码管显示
- 格式:pdf
- 大小:135.82 KB
- 文档页数:3
实验三 7段数码管显示
一实验要求
用设计一个共阴7段数码管控制接口,要求:在时钟信号的控制下,使8位数码管动态刷新显示各自学号。
二实验内容
在实验仪器中,8位7段数码显示的驱动电路已经做好,并且其位选信号(SEL[7..0])为一3-8译码器的输出,所以我们在设计7段数码管控制接口时,其位选信号输出必须经
8-3编码。
显示控制器的引脚图如图3-1:
图3-1
图中CP为时钟输入端,SEGOUT[7..0]为段驱动输出;SELOUT[2..0]为位选信号输出;NUMOUT[3..0]为当前显示的数据输出。
图3-2 7段显示控制器仿真波形图
从图3-2可以看出,8位数码管是轮流点亮的,我们以NUMOUT=1这段波形为参考:当SELOUT为000时,点亮第一位显示器,显示的数字为1,同时,NUMOUT输出的数据也为“0001”。同理,当SELOUT为001时,点亮第二位显示器,显示数字为1,直到6位显示器全都显示完毕,等待进入下一个数字的显示。
同时,还有一个问题不可忽视,位扫描信号的频率至少需要多少以上,才能使显示器不闪烁?简单的说,只要扫描频率超过眼睛的视觉暂留频率24H Z以上就可以达到点亮单个显示,却能享有6个同时显示的视觉效果,而且显示也不闪烁。当我们输入频率为5MH Z时,
我们通过加法计数器来产生一个约300H Z的信号,并且由它来产生位选信号,请参考下面程序段:
PROCESS (CP) -- 计数器计数
Begin
IF CP'Event AND CP='1' then
Q <= Q+1;
END IF;
END PROCESS;
NUM <= Q(24 DOWNTO 21); --about 1 Hz
S <= Q(15 DOWNTO 13); --about 300 Hz
--扫描信号
SEL <= "000" WHEN S=0 ELSE
"001" WHEN S=1 ELSE
"010" WHEN S=2 ELSE
"011" WHEN S=3 ELSE
"100" WHEN S=4 ELSE
"101" WHEN S=5 ELSE
"111111";
由计数器Q引出到S信号,若时钟信号为5MH Z时,Q13得到的信号频率约300HZ,再将它分给扫描信号,最后每个显示器扫描信号频率为:300/6=50H Z>24H Z,所以不会有闪烁情形产生。
三实验连线
CP对应IO3
SEGOUT、SELOUT分别对应数据总线的低8位与高8位
NUMOUT对应IO9-IO12
功能选择位M[3..0]状态均为0010,左端8个数码管,低8位为7位段总加小数点选取位,高8位为8个数码管com端选取,即如果要选取数码管0,则发送总线值为:1111 1110 1111 1111,如要选取数码管1,则发送总线值为:1111 1101 1111 1111,此时所选数码管7段和DP位将全部亮。
实验接线:用导线连接IO3与ADJ_CLK,调整拨码开关SW17-SW20,使输出频率为5MHz;用导线将IO9-IO12连到L1-L4。