50 Sumário CAPÍTULO 4 CIRCUITOS SEQUENCIAIS II: CONTADORES ASSÍNCRONOS 4.1. Introdução... 52 4.2. Contadores Assíncronos Crescentes... 52 4.3. Contadores Assíncronos Decrescentes... 56 4.4. Contador Assíncrono Crescente / Decrescente de 3 bits... 59 4.5. Exercícios de Fixação... 60
51 CAPÍTULO 4 CIRCUITOS SEQUENCIAIS II: CONTADORES ASSÍNCRONOS Estudando outra aplicação de flip-flops em circuitos sequenciais, partimos agora para circuitos contadores. O primeiro tipo a ser estudado são os Contadores Assíncronos. Após esse capítulo você deverá ser capaz de: (1) Entender o funcionamento de circuitos contadores assíncronos e suas topologias; e (2) Projetar um contador assíncrono a partir das especificações necessárias.
52 4.1. Introdução Contadores são circuitos digitais que variam seus estados, sob comando de um clock, de acordo com uma sequência predeterminada. 1 São divididos em duas categorias: assíncronos e síncronos. 4.2. Contadores Assíncronos Crescentes Como características principais de contadores assíncronos temos: (1) Os FF não possuem as entradas clock em comum; (2) São arranjados de forma que a entrada clock do flip-flop de ordem n seja a saída do flip-flop de ordem n-1; (3) Possuem saída binária sequencial; e (4) O bit mais significativo da contagem (MSB) está sempre no último flip-flop, considerando como primeiro flip-flop o que recebe os pulsos de clock. Seu circuito básico apresenta um grupo de flip-flops tipo T em de estado de comutação (T=1), ou seja, cada transição ativa na entrada clock de um flip-flop causa uma inversão no estado lógico da saída desse flip-flop: Q = Q n+1 n Exemplo 1: Contador de pulsos de 4 bits, figura 4.1. Figura 4.1 Contador Assíncrono Crescente de 4 bits. 1 IDOETA, I. V. CAPUANO, F. Q. Elementos de Eletrônica Digital. Ed. Érica.
53 Assumindo inicialmente que Q0=Q1=Q2=Q3=0, aplicando pulsos na entrada CLK do sistema, temos o mapa de pulsos representado na figura 4.2, onde concluímos que a cada transição ativa do clock, o estado das saídas Q são incrementados. 16º clock CLK Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Q1 Q2 Q3 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 Figura 4.2 Mapa de pulsos de um contador assíncrono crescente de 4 bits. crescente: Avaliando as saídas a partir de Q3 (MSB), temos uma contagem binária sequencial Após X pulsos de clock Q3 (MSB) Q2 Q1 Q0-0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 16 0 0 0 0 17 0 0 0 1
54 Outro fator notável é que o contador assíncrono é mostrado a partir de um divisor de frequência, logo: onde n é a ordem do flip-flop, a partir de Q0. f f clk Qn = 2 n +1 Exemplo 2: Contador de década É o circuito que executa a contagem de 0 até 9 (0000 2 até 1001 2 ), ou seja, 10 algarismos. A base desse circuito é a mesma apresentada no Exemplo 1, porém, para que o circuito não ultrapasse o número 9, utiliza-se um arranjo externo de forma a acionar as entradas CLR dos flipflops quando o circuito assumir o caso 10 (1010 2 ), ou seja, quando a saída for 1010 2 (um valor acima do valor desejado), CLR =0. Observe: Após X pulsos de clock Q3 (MSB) Q2 Q1 Q0 CLR - 0 0 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 1 8 1 0 0 0 1 9 1 0 0 1 1 10 1 0 1 0 0 10 0 0 0 0 1
55 Logo, quando o circuito assumir, por um curtíssimo espaço de tempo, o valor 1010 2, a entrada CLR do sistema é ativada, forçando o circuito a retornar ao estado inicial 0000 2. Exemplo 3: Contador de década com reset inicial. Exercício: Implemente contadores assíncronos que executem as seguintes sequências: (a) de 0 a 8; (b) de 0 a 12, com reset inicial; (c) de 0 a 14, com reset inicial; (d) de 2 a 8; (e) de 3 a 12, com reset inicial; e (f) de 5 a 14, com reset inicial.
56 4.3. Contadores Assíncronos Decrescentes Existem dois métodos para se obter a contagem decrescente em contadores assíncronos. No exemplo abaixo verificamos o primeiro modo. Exemplo 4: Contador decrescente de F h à 0 h : Analisando a contagem a partir das saídas Q dos flip-flops teríamos: Q3 Q2 Q1 Q0 0 0 0 0 Enquanto nas saídas Q temos: 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0...... Podemos concluir que enquanto as saídas Q possuem saída sequencial crescente, as saídas Q possuem saída decrescente. Um grande inconveniente desse método acontece quando queremos resetar o contador em valores que não são os extremos do circuito (como 0 h e F h no caso anterior). Exemplo 5: Contador de E h às 2 h :
57 Observando o circuito acima, pode-se perceber que foi utilizada uma lógica inversa em todo o processo de reset do circuito. Isso se dá pelo fato de buscarmos valores nas saídas Q dos flipflops, ou seja, os valores complementares. Esse tipo de implementação pode acarretar em erros de projeto, pois facilmente confunde-se a lógica complementar com a lógica convencional utilizada em contadores assíncronos crescentes. Uma maneira de evitar esse tipo de erro é usando um segundo método de contagem decrescente. Esse método consiste em utilizar as saídas Q dos flip-flops como clock, no lugar das saídas Q. Exemplo 6: Contador de F h à 0 h, utilizando o segundo modo de contagem: Neste circuito, as saídas Q1, Q2 e Q3 trocam seus estados quando as saídas Q0, Q1 e Q2 transitam de 0 para 1, respectivamente. Analisando o mapa de pulsos abaixo, considerando inicialmente Q0=Q1=Q2=Q3=1, aplicando pulsos na entrada CLK do sistema, temos: 16º clock CLK Q0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Q1 1 0 1 0 1 0 1 0 1 Q2 Q3 1 0 1 0 1 0 1 1
58 Assim, para implementarmos um contador decrescente qualquer, utilizamos a mesma lógica implementada nos contadores crescentes. Exemplo 7: Contador de E h à 0 h, utilizando o segundo modo de contagem e reset inicial: Dessa maneira, utilizando essa mesma lógica podemos implementar um contador assíncrono crescente / decrescente com uma variável de controle.
59 4.4. Contador Assíncrono Crescente / Decrescente de 3 bits decrescente. No circuito acima, quando X = 0, a contagem é crescente e quando X = 1 a contagem é Exercício: Implemente contadores assíncronos que executem as seguintes sequências: (a) de 8 a 0, com o primeiro modo de contagem; (b) de 8 a 0, com o segundo modo de contagem e reset inicial; (c) de 9 a 2, com o primeiro modo de contagem e reset inicial; (d) de 9 a 2, com o segundo modo de contagem e reset inicial; e (e) contagem de 4 bits crescente / decrescente, com uma variável X de controle (se X = 0 contagem decrescente).
60 4.5. Exercícios de Fixação 1) Implemente um contador assíncrono de 4 bits crescente, com reset automático. 2) Implemente um contador assíncrono de módulo 8. 3) Implemente um contador assíncrono, com reset automático, de módulo 22. Qual é a frequência de saída do flip-flop do dígito MSB. 4) Implemente um contador assíncrono, com reset, automático, que conte de 12 até 31. 5) Implemente um contador assíncrono, que conte de 5 até 15. 6) Implemente um contador assíncrono decrescente de 4 bits. 7) Implemente um contador assíncrono, com reset automático, que conte de 21 até 2. 8) Implemente um contador assíncrono, com reset automático, que conte de 31 até 12. 9) Implemente um contador assíncrono, com reset automático, que conte de 15 até 5. 10) Implemente um contador de 4 bits, crescente / decrescente, com uma variável X de controle. 11) Implemente um contador assíncrono decrescente, que conte de 3 h à C h, com reset inicial. (Contagem: 3 2 1 0 F E D C 3)