七段数码显示译码器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
七段数码显示译码器设计
一、
实验目的:
学习7段数码显示译码器设计,学习VHDL 的多层次设计方法。 二、实验原理:
七段数码管由8个(a,b,c,d,e,f,g,dp )按照一定位置排列的发光二极管构
成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。
七段数码显示译码器的功能就是根据需要显示的字符,输出能够控制七段数
码管显示出该字符的编码。 三、
实验内容 :
1)用VHDL 设计7段数码管显示译码电路,并在VHDL 描述的测试平台下对译码器进行功能仿真,给出仿真的波形。 ---------------------------------------------------------------------
程序: 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
WHEN"0000"=>LED7S<="0111111"; WHEN"0001"=>LED7S<="0000110"; WHEN"0010"=>LED7S<="1011011"; WHEN"0011"=>LED7S<="1001111"; WHEN"0100"=>LED7S<="1100110"; WHEN"0101"=>LED7S<="1101101"; WHEN"0110"=>LED7S<="1111101"; WHEN"0111"=>LED7S<="0000111"; WHEN"1000"=>LED7S<="1111111"; WHEN"1001"=>LED7S<="1101111"; WHEN"1010"=>LED7S<="1110111"; WHEN"1011"=>LED7S<="1111100"; WHEN"1100"=>LED7S<="0111001"; WHEN"1101"=>LED7S<="1011110"; WHEN"1110"=>LED7S<="1111001"; WHEN"1111"=>LED7S<="1110001"; WHEN OTHERS=>NULL;
END CASE;
仿真波形:
2)数码管显示电路设计
利用以上设计的译码器模块,设计一个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 CLK'EVENT AND CLK='1'THEN
IF C<"111"THEN 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 g167 SEG g
A(5) 10 SEG f166 SEG f
A(4) 9 SEG e165 SEG e
A(3) 8 SEG d164 SEG d
A(2) 7 SEG c163 SEG c
A(1) 6 SEG b162 SEG b
A(0) 5 SEG a 161 SEG a
S(2) 80 三-八译码器
的控制输入端
S(1) 79
S(0) 78