Cursos / Automação Industrial / Sistemas Digitais / Aula

arrow_back Aula 15 - Introdução a Microprocessadores, Microcontroladores e Processadores Digitais de Sinais

Atividade 07

Verifique o código simplificado do cronômetro a seguir e faça o que se pede:

AخA
1
         library ieee;                        
2
        use ieee.std_logic_1164.all;
3
                                
4
        entity cronometro is
5
            port (clk: in std_logic; 
6
                dezena: out integer;
7
                unidade: out integer);
8
        end cronometro;
9
                                
10
        architecture arquitetura of cronometro is
11
        begin 
12
                process (clk)
13
                variable contador: integer range 0 to 99 := 0;
14
                variable dezena_temporario: integer range 0 to 9 := 0;
15
                variable unidade_temporario: integer range 0 to 9 := 0;
16
                begin
17
                    contador := contador + 1;
18
                    dezena_temporario := contador/10;
19
                    unidade_temporario := contador - dezena_temporario*10;
20
                    
21
                    dezena <= dezena_temporario;
22
                    unidade <= unidade_temporario;
23
                end process;
24
                
25
        end arquitetura;
26
    
  1. Digite e compile o código no projeto criado anteriormente. Entenda o que ele está fazendo. Para melhorar o seu entendimento, monte a forma de onda do código. Somente siga para a próxima questão se entender completamente o que o código se propõe a fazer.
  2. Modifique as variáveis inteiras de entrada para que elas somente possuam números entre 0 e 9. Compile e teste.
  3. Modifique o código para que a contagem somente ocorra na borda de subida do clock. Compile e teste.
  4. Todo cronômetro necessita de um botão que permite parar a contagem para que ela possa ser retomada futuramente. Para tal, adicione uma variável de entrada chamada enable (habilitar, em tradução livre) que:

    - Caso enable seja '0': Não há contagem, independente da borda de subida do clock;

    - Caso enable seja '1': Existe contagem na borda de subida do clock.

    Compile e teste.

  5. Ainda que exista o botão de parar (feito na questão anterior), é necessário um botão que reinicie a contagem. Para tal, adicione uma variável de entrada chamada reset (reiniciar, em tradução livre) que:

    - Caso reset seja '0': A contagem do número acontece normalmente, conforme enable;

    - Caso reset seja '1': O número será zerado, independente de enable e clk.

    Compile e teste.

  6. A contagem deve ser impressa em um display de 7 segmentos. Utilize o decodificador BCD de 7 segmentos de aula passada para modificar o código de forma que, agora, ele possa mostrar os números do display de 7 segmentos.

    Compile e teste.

DICA: As saídas dezena e unidade deverão ser substituídas por outras que serão utilizadas na impressão da contagem no display de 7 segmentos.

Versão 5.3 - Todos os Direitos reservados