Programa en vhdl contador década

Solo disponible en BuenasTareas
  • Páginas : 2 (296 palabras )
  • Descarga(s) : 0
  • Publicado : 27 de abril de 2011
Leer documento completo
Vista previa del texto
--Contador ascendente (0 to 9) y descendente con salida a un display de 7 segmentos
--Consideraciones
--Es necesario inicializar en contador en 0, para ello debemos habilitar laentrada CLR con un 0
--La entrada eneable E o habilitación es una entrada sincrona que nos permite detener el conteo
--para posteriormente retomerlo en donde lo detuvimos se activa enbajo (0)
--Display corresponde al bus de datos del display de 7 segmentos de anodo común
library ieee;
use ieee.std_logic_1164.all;
entity CON is port(
CLK,CLR:in bit;
E:inbit_vector(0 to 3);
Oper:in bit_vector(0 to 1);
display: inout bit_vector(0 to 3)
);
end CON;
architecture a_CON of CON is
begin
process(CLK,CLR,Oper)
begin
if(CLR='0')thendisplay<="0000";
elsif(CLK' event and CLK='1')then
if(Oper="00")then
display<=display;
elsif(Oper="01")then
display<=E;
elsif(Oper="10")then
case display is
when "0000"=> display <= "0001";
when "0001" => display <= "0010";
when "0010" => display <= "0011";
when "0011" => display <= "0100";
when "0100" => display <="0101";
when "0101" => display <= "0110";
when "0110" => display <= "0111";
when "0111" => display <= "1000";
when "1000" => display <= "1001";
when others=> display <= "0000";
end case;
elsif(Oper="11")then
case display is
when "1001" => display <= "1000";
when "1000" => display <= "0111";
when "0111" =>display <= "0110";
when "0110" => display <= "0101";
when "0101" => display <= "0100";
when "0100" => display <= "0011";
when "0011" => display <= "0010";when "0010" => display <= "0001";
when "0001" => display <= "0000";
when others => display <= "1001";
end case;
end if;
end if;
end process;
end a_CON;
tracking img