Estoy escribiendo un código que cuando se presiona la tecla (0), la letra que se muestra en la pantalla de 7 segmentos cambia de una a la siguiente, como de a a, de b a b. Comienza a partir de A. Cuando la letra llega a H, vuelve a A. Sin embargo, cuando presiono la tecla, la letra cambia, pero vuelve a H cuando no se presiona. No entiendo cuál es el problema. Aquí está el código:
KEY : in std_logic_vector(1 downto 0);
HEX : out std_logic_vector(6 downto 0)
architecture behavioural of display is
signal counter : std_logic_vector(2 downto 0):= "000";
begin
process (KEY)
begin
if (KEY(0)= '1') then
counter <= counter + '1';
end if;
end process;
process(counter)
begin
case counter is
when "000" => HEX <= "0001000";
when "001" => HEX <= "0000011";
when "010" => HEX <= "1000110";
when "011" => HEX <= "0100001";
when "100" => HEX <= "0000110";
when "101" => HEX <= "0001110";
when "110" => HEX <= "0010000";
when "111" => HEX <= "0001001";
end case;
end process;
end behavioural;