eda实验1七段数码显示译码器设计.doc
文本预览下载声明
七段数码显示译码器设计
1.实验目的:
学习7段数码显示译码器设计,学习VHDL的多层次设计方法。
2. 实验原理:
七段数码管由8个(a,b,c,d,e,f,g,dp)
程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY SMG IS
PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END;
ARCHITECTURE ONE OF SMG IS
BEGIN
PROCESS(A)
BEGIN
CASE A IS
WHEN0000=LED7S=0111111;
WHEN0001=LED7S=0000110;
WHEN0010=LED7S=1011011;
WHEN0011=LED7S=1001111;
WHEN0100=LED7S=1100110;
WHEN0101=LED7S=1101101;
WHEN0110=LED7S=1111101;
WHEN0111=LED7S=0000111;
WHEN1000=LED7S=1111111;
WHEN1001=LED7S=1101111;
WHEN1010=LED7S=1110111;
WHEN1011=LED7S=1111100;
WHEN1100=LED7S=0111001;
WHEN1101=LED7S=1011110;
WHEN1110=LED7S=1111001;
WHEN1111=LED7S=1110001;
WHEN OTHERS=NULL;
END CASE;
仿真波形:
数码管显示电路设计
利用以上设计的译码器模块,设计一个8位的显示电路。
利用时分复用的方式快速轮流点亮8个数码管,在视觉上形成8个数码管同时显示的效果(尽管实际上同一时间只有一个数码管被点亮)。
要实现以上功能,就必须按照一定时钟节拍,轮流使译码器输出所需要字符的编码;同时控制数码管的公共电极电平,轮流点亮数码管。
备注:在新试验箱中可酌情减少位数实现,新试验箱中管脚查阅教材中附录。
程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY VHDL42 IS
PORT(CLK:IN STD_LOGIC;
S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
A:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END VHDL42;
ARCHITECTURE ONE OF VHDL42 IS
SIGNAL C:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
P1:PROCESS(CLK)
BEGIN
IF CLKEVENT AND CLK=1THEN
IF C111THEN C=C+1;ELSE C=000;
END IF;
END IF;
S=C;
END PROCESS P1;
P2:PROCESS(D)
BEGIN
CASE D IS
WHEN 0000= A=0111111;WHEN 0001= A=0000110;
WHEN 0010= A=1011011;WHEN 0011= A=1001111;
WHEN 0100= A=1100110;WHEN 0101= A=1101101;
WHEN 0110= A=1111101;WHEN 0111= A=0000111;
WHEN 1000= A=1111111;WHEN 1001= A=1101111;
WHEN 1010= A=1110111;WHEN 1011= A=1111100;
WHEN 1100= A=0111001;WHEN 1101= A=1011110;
WHEN 1110= A=1111001;WHEN 1111= A=1110001;
WHEN OTHERS= NULL;
END CASE;
END PROCESS P2;
END;
仿真波形:
管脚锁定:
信号 旧试验箱 新试验箱No.2 管脚号 连接的器件 管脚号 连接的器件 clk 43 Clk1 153 CLK2 rst 35 开关2 234 键2 ena 30 开关1 233 键1 A(6) 11 SEG g 167 SEG g A(5) 10 SEG f 166 SEG f A(4) 9 SEG e 165 SEG e A(3) 8 SEG d 164 SEG d A(2) 7 SEG c
显示全部