七段数码显示译码器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档