数字逻辑电路设计实验:七段数码管译码器

简介: 数字逻辑电路设计实验:七段数码管译码器
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity dtsm is
  port(clk:in std_logic;
  key:in std_logic_vector(3 downto 0);
  ledag:out std_logic_vector(6 downto 0);
  sel:out std_logic_vector(2 downto 0)
);
end dtsm;
architecture beha of dtsm is
  begin 
  process(clk)
  variable count:std_logic_vector(2 downto 0);
    begin
    if(clk'event and clk='1') then
      count:=count+'1';
    --if(count="111") then count:="000"; end if;
    end if;
    sel<=count;
  end process;
  process(key)
    begin
    if (sel>"010") then
    case key is
      when "0000"=> ledag<="0111111";
      when "0001"=> ledag<="0000110";
      when "0010"=> ledag<="1011011";
      when "0011"=> ledag<="1001111";
      when "0100"=> ledag<="1100110";
      when "0101"=> ledag<="1101101";
      when "0110"=> ledag<="1111101";
      when "0111"=> ledag<="0000111";
      when "1000"=> ledag<="1111111";
      when "1001"=> ledag<="1101111";
      when "1010"=> ledag<="1110111";
      when "1011"=> ledag<="1111100";
      when "1100"=> ledag<="0111001";
      when "1101"=> ledag<="1011110";
      when "1110"=> ledag<="1111001";
      when "1111"=> ledag<="1110001";
    end case;
  else
    case key is
      when "0001"=> ledag<="0111111";
      when "0010"=> ledag<="0000110";
      when "0011"=> ledag<="1011011";
      when "0100"=> ledag<="1001111";
      when "0101"=> ledag<="1100110";
      when "0110"=> ledag<="1101101";
      when "0111"=> ledag<="1111101";
      when "1000"=> ledag<="0000111";
      when "1001"=> ledag<="1111111";
      when "1010"=> ledag<="1101111";
      when "1011"=> ledag<="1110111";
      when "1100"=> ledag<="1111100";
      when "1101"=> ledag<="0111001";
      when "1110"=> ledag<="1011110";
      when "1111"=> ledag<="1111001";
      when "0000"=> ledag<="1110001";
    end case;
  end if;
end process;
end beha;


目录
相关文章
数字逻辑电路实验:基本电子钟
数字逻辑电路实验:基本电子钟
85 0
数字逻辑电路设计实验:加法器
数字逻辑电路设计实验:加法器
88 0
|
存储 数据采集 芯片
基于单片机的数字存储示波器设计
基于单片机的数字存储示波器设计
137 0
基于单片机的数字存储示波器设计
FPGA-超声波测距数码管显示系列(包含进制转换、均值滤波)
FPGA-超声波测距数码管显示系列(包含进制转换、均值滤波)
160 0
FPGA-超声波测距数码管显示系列(包含进制转换、均值滤波)
|
8月前
|
芯片
译码器的介绍
译码器是一种常见的数字电路元件,它用于将输入的编码信号转换为输出的解码信号。在数字系统中,译码器起着非常重要的作用,它能够将编码的数字信号转换为可识别的输出信号,实现数字信号的解码和解析。本文将介绍译码器的原理、分类、应用以及未来的发展趋势。 一、译码器的原理 译码器的原理是基于布尔逻辑运算的。它根据输入的编码信号,通过内部的逻辑门电路进行运算,最终输出对应的解码信号。译码器的输入可以是二进制编码、BCD编码或格雷码等形式,输出可以是十进制数、BCD数或具体的控制信号等。 译码器的内部结构通常由多个逻辑门电路组成,例如AND门、OR门和NOT门等。通过这些逻辑门的组合,译码器可以实现各种不
198 0
HDLBits练习汇总-08-组合逻辑设计测试--加法器电路
HDLBits练习汇总-08-组合逻辑设计测试--加法器电路
145 0
HDLBits练习汇总-08-组合逻辑设计测试--加法器电路
|
传感器 数据采集 算法
单片机数字滤波算法一些分享-实践思考
单片机数字滤波算法一些分享-实践思考
122 0
单片机数字滤波算法一些分享-实践思考
|
传感器 数据处理 芯片
基于单片机的数字温度计设计
基于单片机的数字温度计设计
164 0
基于单片机的数字温度计设计