1 / 17
文档名称:

数码管扫描显示控制器设计与实现实验报告.docx

格式:docx   大小:406KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数码管扫描显示控制器设计与实现实验报告.docx

上传人:薄荷牛奶 2022/6/5 文件大小:406 KB

下载得到文件列表

数码管扫描显示控制器设计与实现实验报告.docx

文档介绍

文档介绍:实 验 报 告
实验名称:数码管扫描显示控制器设计与实现
学 院: 信息与通信工程学院
班 级:
姓 名:
clk_in='1') then
if cnt=999 then
cnt<=0; clk_tmp<= not clk_tmp;
else
cnt<=cnt+1;
end if;
end if;
end process;
clk_out<=clk_tmp;
end;
--SCAN_LED:LED动态扫描
LIBRARY IEEE;
USE ;
USE ;
ENTITY SCAN_LED IS
PORT ( CLK : IN STD_LOGIC;
SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
BT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0) );
END;
ARCHITECTURE arc OF SCAN_LED IS
component div2k
port(clk_in: in std_logic; clk_out: out std_logic);
end component;
SIGNAL CNT6 : INTEGER RANGE 0 TO 6;
SIGNAL A : INTEGER RANGE 0 TO 5;
SIGNAL clk_tmp: STD_LOGIC;
BEGIN
u1:div2k port map(clk_in=>CLK,clk_out=>clk_tmp);
P1:process(CNT6)
BEGIN
CASE CNT6 IS --3线至6线译码器
WHEN 0 => BT <= "011111" ; A <= 0 ; --A为位码
WHEN 1 => BT <= "101111" ; A <= 1 ;
WHEN 2 => BT <= "110111" ; A <= 2 ;
WHEN 3 => BT <= "111011" ; A <= 3 ;
WHEN 4 => BT <= "111101" ; A <= 4 ;
WHEN 5 => BT <= "111110" ; A <= 5 ;
WHEN OTHERS => NULL ;
END CASE ;
END PROCESS P1;
P2:process(clk_tmp)
BEGIN
IF clk_tmp'EVENT AND clk_tmp = '1' THEN --实现模6计数器
CNT6 <= CNT6 + 1;
if CNT6 = 5 then
CNT6 <= 0;
end if;
END IF;
END PROCESS P2;
P3:process(A)
BEGIN
CASE A IS --实现数码管的显示功能
WHEN 0 => SG <= "1111110"; WHEN 1 => SG <= "0110000";
WHEN 2 => SG <= "1101101"; WHEN 3 => SG <= "1111001";
WHEN 4 => SG <= "0110011"; WHEN 5 => SG <= "1011011";
WHEN OTHERS => NULL ;
END CASE ;
END PROCESS P3;
END arc;
②代码说明
通过分频器输入产生选通脉冲,控制0至5号LED数码管依次亮灭,同时使用数码显示信号使得数码管显示相应数码。实现时通过连接引入分频信号,通过数据选择器选择数码管。计数器信