文档详情

基于FPGA设计的数码管动态扫描显示

飞***
实名认证
店铺
DOC
57.50KB
约7页
文档ID:35832218
基于FPGA设计的数码管动态扫描显示_第1页
1/7

基于 FPGA 设计的数码管动态扫描显示摘要:利用 FPGA 输入时钟,分频出 1Hz 的计数器;利用 FPGA 输入时钟,分频出 1Hz 的计数器;触发信号控制计数器,实现增、减计数功能;计数器的计数范围为 0~9999;实现四位数码管的动态扫面显示关键词:FPGA、分频、记数、码管动态扫描1.设计原理为使得输入控制电路简单且易于实现,采用动态扫描的方式实现设计要求动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形式代码,用来控制显示的字形,称为断码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码各位数码管的段线并联,断码的输出对各位数码管来说都是相同的因此在同一时刻如果各位数码管的位选线都处于选通状态的话,4 位数码显示管将显示相同的的字符,若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选处于导通状态,而其他位的位选处于关闭状态同时,断线上输出相应要显示字符的字形码这样在同一时刻,只有选通的哪一位显示出字符,而其他各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要的字符虽然这些字符是在不同时刻出现的,而且同一时刻,只显示一位,其他各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼印象就会是连续稳定的显示。

总之,多个数码管动态扫描显示,是将所有数码管的相同段=端并联在一起,通过选通信号分时控制各个数码管的公共端,循环一次点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于 50HZ,将看不到闪烁现象4 个数码管需要 50*4=200HZ 以上才能看到持续稳定点亮现象2.软件设计思想设计利用 FPGA 内部电路,经过分频,产生 1HZ 的扫描信号作为时钟,驱动计数器工作选用模值为 10 的计数器,通过一个 3 线—8 线译码器,产生断码,依次控制 4 个 LED 的亮灭,使得某一时刻有且仅有一个 LED 点亮,同时产生对应的,将点亮的 LED 数码管赋值显示为相应的数字予以显示由于扫描频率较高,位 LED 数码管序列将显示持续稳定的 0—9 数码3.程序设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity led1 isport(clk,clk1:in std_logic;vss:out std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0);k:in bit);end entity led1;architecture rt1 of led1 issignal s:std_logic_vector(1 downto 0);signal a1:std_logic_vector(1 downto 0);signal d1:std_logic_vector(3 downto 0);signal vs:std_logic_vector(3 downto 0);signal cout1,cout2,cout3,cout4:std_logic_vector(3 downto 0);beginp1:process(clk1)beginif(clk1'event and clk1='1') thenif(s=11) thensvsvsvsvsd1d1d1d1 null;end case;end process;p5:process(d1)begincase d1 iswhen“0000“=><=“1101111“;end case;end process;end architecture rt1;。

下载提示
相似文档
正为您匹配相似的精品文档