Baixe o app para aproveitar ainda mais
Prévia do material em texto
CAPÍTULO 7 1 CONTADORES E REGISTRADORES 7.1- Contadores assíncronos (ondulantes) Contadores assíncronos: • Sinal de Clock aplicado apenas na entrada CLK para flip-flop A (LSB). • J e K são altos em todos os flip-flops. • A saída do flip-flop A é o clock do flip-flop B. • As saídas dos flip-flops D, C, B e A são um número binário de 4 bits, sendo o D o MSB. MSB LSB Contador binário assíncrono crescente 2 Figura 7.1 – Contador binário assíncrono (ondulante) de quatro bits MSB LSB Contador binário assíncrono crescente ↘ ↙↙↙ ↘↘ sinal de clock ↙ • Após a borda de descida do 15º pulso do clock, os flip-flops do contador estão na condição 1111. ↓ LSB 3 Figura 7.1 – Formas do contador binário assíncrono de 4 bits, crescente. MSB • O Módulo (MOD) de um contador binário básico é igual ao número de estados pelos quais o contador passa antes da reciclagem. Módulo Módulo = 2N , onde N = número de FFs Divisão de frequência 4 • Cada FF terá uma frequência de saída igual à metade da entrada. • A frequência de saída do último FF será a frequência do clock dividida pelo módulo (MOD) do contador. MOD f f CLKMSB ==== Contador módulo 16 pode ser chamado de contador divisor por 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 16 CLKCLK D f MOD f f == Ciclo de trabalho - CT Ciclo de trabalho (duty cycle) → é a razão entre a amplitude do pulso alto (tH ) e o período (T) e é expressa como uma porcentagem. ttT += ou ou %100x T t CT Q HQ ==== 6 Contador com MOD = 2N , sempre terão CT = 50% Contador com MOD < 2N , alguns sinais de saída não terão CT = 50% %x T t CT H 100= HL ttT += T 1 f = CT → ciclo de trabalho ↑ amplitude do pulso ↙ Para determinar o valor da contagem final (CF) de um contador de módulo M após N pulsos de clock que começa com um contagem inicial (CI): Determinando a contagem de um contador N → pulsos de clock M → módulo do contador CI → contagem inicial 7 CP = R + CI Se CP <<<< M → CF = CP → é a resposta em decimal da contagem final Se CP ≥≥≥≥ M → CF = CP - M → é a resposta em decimal da contagem final CI → contagem inicial CP → contagem parcial CF → contagem final Contador assíncronos decrescente de 3 bits MSB LSB 8 ↗ ↗ ↙ ↙ ↙ sinal de clock Exemplo 7.3 O primeiro passo envolvido na construção de um relógio digital é obter um sinal de 60 Hz e colocá-lo na entrada de um Schmitt-trigger, um circuito conformador de pulsos, para gerar uma onda quadrada conforme ilustrado na Figura 7.3. A onda quadrada de 60 Hz é então colocada na entrada de um contador de módulo 60, usado para dividir a frequência de 60 Hz exatamente por 60, gerando uma forma de onda de 1 Hz. Esta forma de onda entra em uma série de contadores, que contam os segundos, minutos, horas etc. Quantos FFs são necessários para implementar uma contador de módulo 60? 9 Resposta: O mais próximo é 26 = 64, mas funciona como um contador de módulo 64. Na seção 7.4 veremos como projetar um contador com módulo <<<< 2N . 7.2- Atraso de propagação em contadores assíncronos • Contadores ondulantes ou assíncrono são o tipo mais simples de contadores binários, visto que requerem poucos componentes para que uma determinada operação seja produzida. Eles apresentam uma grande desvantagem causada pelo príncipio básico de funcionamento, cada FF é disparado pela transição de saída do precedente. Devido o tpd dos FFs , tempo de atraso de propagação, o segundo FF atrasará tpd após o primeiro FF receber a transição ativa do clock, o terceiro atrasará 2xtpd após a transição ativa do clock, e assim por diante. • O atraso de propagação cumulativo pode causar problemas em altas frequências se o período entre os pulsos de clock de entrada (T ) é menor do que o atraso deperíodo entre os pulsos de clock de entrada (TCLK) é menor do que o atraso de propagação total do contador (Ntpd), onde N é o número de FFs. • Os problemas podem ser evitados se: Tclock ≥≥≥≥ N x tpd → Frequência máxima do clock: • Os contadores assíncronos não são muito úteis em altas frequências, especialmente para os contadores com grande número de bits. 10 pd CLK tN f × ≤ 1 pd CLKmax tN f × = 1 FF Q0 é o LSBFF Q2 é o MSB ↓ ↓ Contador assíncronos de 3 bits 11 Os problemas podem ser evitados se: Tclock ≥≥≥≥ N x tpd → Frequência máxima do clock: pd CLK tN f × ≤ 1 pd CLKmax tN f × = 1 Formas de onda de um contador assíncronos de 3 bits mostrando os efeitos dos atraso de propagação, tpd . tpd = 50 ns N = 3 FFs fclock = 1 MHz Tclock = 1000 ns Os problemas podem ser evitados se: Tclock ≥≥≥≥ N x tpd → pd CLK tN f × ≤ 1 12 Tclock > N x tpd N x tpd = 150 ns tpd = 50 ns MHz, ns f CLKmax 676 503 1 = × = Figura 7.4(a)- Formas de onda de um contador ondulante de três bit ilustrando os efeitos dos atrasos de propagação dos FFs para diferentes frequências de pulsos de entrada. fclock < N x tpd │ │ │ t = 50 ns N = 3 FFs fclock = 10 MHz Tclock = 100 ns Formas de onda de um contador assíncronos de 3 bits mostrando os efeitos dos atraso de propagação, tpd . Os problemas podem ser evitados se: Tclock ≥≥≥≥ N x tpd → pd CLK tN f × ≤ 1 13 100 ns │ │ │ │ │ │ 000 001 000 010 011 010 000 101 pulou 100 Tclock < N x tpd N x tpd = 150 ns tpd = 50 ns MHz, ns f CLKmax 676 503 1 = × = A contagem 100 nunca ocorrerá. Figura 7.4 (b)- Formas de onda de um contador ondulante de três bit ilustrando os efeitos dos atrasos de propagação dos FFs para diferentes frequências de pulsos de entrada. fclock > N x tpd 7.3- Contadores síncronos (Paralelos) • Em contadores síncronos ou paralelo, todos os FFs são disparados simultaneamente (em paralelo) pelos pulsos de clock da entrada. • Cada FF tem suas entradas J e K que são ALTAS apenas quando as saídas de todos os FFs de ordem inferior forem ALTAS. • O atraso de propagação total será o mesmo para qualquer número de FFs. Atraso total = tpd FF + tpd AND → é o tempo de resposta de um FF comutar mais o tempo para os novos níveis lógicos se propagarem por uma única porta AND para alcançar as entradas J e K. 14Figura 7.5 (a) - contador síncrono de módulo 16 AND para alcançar as entradas J e K. Tabela de estados do contador síncrono de módulo 16 15 O contador básico síncrono mostrado é limitado aos números de módulo iguais a potências de 2. Módulo = 2N , onde N = número de FFs Projeto de um contador síncrono crescente de 3 bits C B A 0 0 0 FF A →muda a cada descida do clock → JA= KA = 1 0 0 1 FF B →muda quando A=1 e ↓CLK → JB= KB = A 0 1 0 0 1 1 FF C →muda quando B=A=1 e ↓CLK → JC= KC =B.A 1 0 0 1 0 1 1 1 0 1 1 1 16 Problemas podem ser evitados se: Tclock ≥≥≥≥ tpd FF + tpd AND Frequência máxima do clock: Vantagem dos contadores síncronos sobre os assíncronos Atraso total = tpd FF + tpd AND pdANDpdFF CLK tt f + ≤ 1 f = 1 17 Frequência máxima do clock: Esse atraso total não depende do número de FFs do contador e geralmente é muito menor que o atraso de um contador assíncrono com o mesmo número de FFs. Assim, um contador síncrono pode operar com frequência de entrada muito maior. pdANDpdFF CLKmax tt f + = 1 O contador básico pode ser modificado para produzir módulo menor que 2N, fazendo com que o contador pule estados que normalmente são parte da sequência de contagem. 7.4- Contadores de Módulo < 2N Procedimento geral para projetar um contador síncrono de módulo < 2N - pag. 317 Para construir um contador que inicie a contagem a partir de todos os bits em nível BAIXO e que tenha um módulo X : 18 em nível BAIXO e que tenha um módulo X : 1. Determine o menor número de FFs, de modo que X ≤ 2N , e conecte-os como contador . Se X = 2N , dispense os passos 2 e 3. 2. Conecte a saída de uma porta NAND às entradas assíncronas CLEAR de todos os FFs. 3. Determine quais são os FFs em nível ALTO na contagem = X, então, conecte as saídas normais desses FFs às entradasda porta NAND. Projeto de um contador síncrono de Módulo < 2N Contador síncrono módulo 6 Para construir um contador que inicie na contagem zero e tenha módulo X : 1- Determine o menor número de FFs, de modo que X ≤ 2N . X = 6 → N = 3 FFs → 6 ≤ 23 Conecte os 3 FFs como contador síncrono. 2- Conecte a saída de uma porta NAND às entradas assíncronas CLEAR de todos os FFs. 3- Determine quais são os FFs em nível ALTO na contagem = X. contagem = 6 → C B A = 1 1 0 Conecte as saídas normais (Q) dos FFs C e B às entradas da porta NAND. 19 C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 (estado temporário) 6módulo clockclock fffC == Figura 7.5 – Contador síncrono de módulo 6 (110) ↘ ↗ Formas de ondas do contador módulo 6 O contador chega ao estado 110, mas ele se mantém nesse estado por apenas alguns nanossegundos, por isso que este estado é temporário, antes de retornar para 000. Portanto, esse contador conta de 000 a 101 e então recicla para 000. 1 0 0 1 20 A forma de onda de C não é simetricamente quadrada (não tem ciclo de trabalho 50% ) ↖glitch ←Spike ou glitch→ 1 1 ↖ ocorre na contagem 110 %100x T t CT H= %33,33100 6 2 == xCT 1 1 (MSB) Diagrama de estados para o contador de MOD-6 Figura 7.7 ↘ ↘ Não há seta para o estado 111 pois o contador não avança para esse estado. O estado 111 pode ocorrer quando o circuito é energizado, situação na qual os FFs pode cair em qualquer estado. Se isso ocorrer, a condição 111 gera um nível BAIXO na saída da porta NAND e imediatamente leva o contador para 000. Assim o estado 111 também é uma condição temporária que termina em 000. Cada círculo representa um dos possíveis estados do contador . As setas indicam uma mudança de estado para outro, em resposta a um pulso de clock de entrada. 21 A exibição dos estados do contador são muitas vezes realizados com um LED. Mostrando os estados do contador 22 Figura 7.7 – Os LEDs são frequentemente usados para mostrar os estados de um contador. Exemplo 7.6 – Determine o módulo do contador na Figura 7.8(a) e a frequência na saída D. Figura 7.8 (a)- Contador síncrono de módulo 14 - pag. 317 23 Entrada da NAND → DCB = 111 → 1110 → módulo 14 , conta de 0000 a 1101. Como a frequência de entrada é 30kHz , a frequência na saída D será Solução: kHz kHz MOD f f CLKD 14,2 14 30 === • Contador de módulo 10 também é conhecido como contador decádico. • Um contador de década é qualquer contador com 10 estados distintos, independentemente da sequência. • Um contador BCD é um contador decádico que conta em binário de 0000 a 1001. Contadores decádicos / Contadores BCD Exemplo 7.7 – Construa um contador síncrono de módulo 10 que conte de 0000 a 1001 24 Figura 7.8 (b) – contador síncrono módulo 10 (decádico) DCBA = 1010 contagem = módulo No Exemplo 7.3, um contador de módulo 60 foi necessário para dividir uma frequência da rede elétrica, 60 Hz, para obter 1 Hz. Construa o contador de módulo 60 apropriado. Exemplo 7.8 25 = 32 e 26 = 64 Necessita de 6 FFsSolução: 6010 = 1111002 → Q5Q4Q3Q2 = 1111 Hz Hz MOD f f CLKQ 1 60 60 5 ============ 25 7.5- Contadores síncronos decrescentes e crescentes/decrescentes Um contador síncrono decrescente é construído de forma semelhante a um contador crescente. Ele usa as saídas invertidas dos FFs para controlar as entradas J e K de ordem mais alta. D C B A 1 1 1 1 FF A muda a cada descida do clock → JA= KA = 1 1 1 1 0 Projeto de um contador síncrono decrescente de 4 bits 26 Fig. 7.10 - Contador síncrono decrescente de MOD-16 e ondas de saída. 1 1 1 0 1 1 0 1 FF B muda quando A = 0 e ↓CLK→ JB= KB = 1 1 0 0 1 0 1 1 FF C muda quando B = A = 0 e ↓CLK → JC= KC = 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 FF D muda quando C=B=A=0 e ↓CLK → JD= KD = 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 A AB. ABC .. Contador paralelo crescente/decrescente ↗ ↘ ↘ ↗ ↙ 27 A entrada de controle (Up/ ) controla se as entradas J e K dos FFs serão acionadas pelas saídas normais ou pelas saídas invertidas dos FFs. Down Diagrama de tempo ↓ 1 2 3 4 5 6 7 8 9 10 28 Nos primeiros cinco pulsos de clock o contador conta Up → Up / = 1 (crescente) Nos últimos cinco pulsos o contador conta Down → Up/ = 0 (decrescente) Down Down As setas representam transições de estado que ocorrem na borda de descida do sinal de clock. Há duas setas partindo de cada círculo de estado. O próximo estado para esse contador depende do nível lógico aplicado na entrada de controle. Diagrama de estados Up/Down ↓ 29(c) Diagrama de transição de estados Up/Down 7.6- Contadores com Carga Paralela Entradas paralelas de dados ↙ ↓ ↘ Contadores com carga paralela (pré-configurável) podem ser inicializados com qualquer contagem inicial desejada assincronamente ou sincronamente. Essa operação de inicialização do contador é denominada carga paralela. Figura 7.12 - Contador síncrono com carga paralela assíncrona. 30 LOAD 7.7- CIRCUITOS INTEGRADOS DE CONTADORES SÍNCRONOS As séries 74ALS160-163/74HC160-163 Clear assíncrono Clear assíncrono O contador contém quatro FFs. Os FFs são disparados por uma borda de subida na entrada CLK. Função CLEAR (CLR) - entrada ativa em nível BAIXO pode ser assíncrona ou síncrona. Função LOAD – entrada ativa nível BAIXO síncrono - carga paralela síncrona. 31 Clear síncrono Clear síncrono Clear assíncrono Esses contadores tem o pino de saída RCO ativo nível ALTO, cuja função é detectar o estado terminal do contador. O estado terminal de um contador BCD é 1001, o de módulo 16 é 1111. A entrada ENT também controla a operação de RCO. RCO vai para seu nível ativo ALTO quando ENT estiverRCO vai para seu nível ativo ALTO quando ENT estiver nível ALTO e o contador estiver no estado terminal (último estado). Esse recurso é muito útil na ligação entre dois ou mais CIs de contadores em um arranjo de múltiplos estágios para criar contadores maiores. 32 74ALS160 - 74ALS163 Tabela de funções 33 Exemplo 7.10 – Determine as formas de onda das saídas do contador. Tabela de função do 74ALS160 a 74ALS163 Função Componente L X X X X Clear assíncrono 74ALS160 e 74ALS161 L X X X ↑ Clear síncrono 74ALS162 e 74ALS163 H L X X ↑ Carga síncrona Todos H H H H ↑ contagem crescente Todos H H L X X Sem mudança Todos H H X L X Sem mudança Todos RCO (saída) → vai para o seu nível aOvo quando: ENT = 1 e o contador aOngir o seu último estado. 74ALS160 e 74ALS162 → módulo 10 74ALS161 e 74ALS163 → módulo 16 CLR LOAD ENP ENT CLK 74HC163 módulo 16 Solução Entrada de dados paralelos ↙ 34 74HC163 módulo 16 Clear síncrono Carga síncrona ↙ ↙ ↙ ↑ Clear síncrono ↑ Carga síncrona ↑ ↑ sem mudança ↑último estado 0 0 0 0 1 1 0 0 1 1 1 1 estado inicial 0000 Figura 7.14 Exemplo 7.11 – Determine as formas de onda das saídas do contador. Tabela de função do 74ALS160 a 74ALS163 CLR LOAD ENP ENT CLK Função Componente L X X X X Clear assíncrono 74ALS160 e 74ALS161 L X X X ↑ Clear síncrono 74ALS162 e 74ALS163 H L X X ↑ Carga síncrona Todos H H H H ↑ contagem crescente Todos H H L X X Sem mudança Todos H H X L X Sem mudança Todos RCO (saída) → vai para o seu nível aOvo quando: ENT = 1 e o contador aOngir o seu último estado. 74ALS160 e 74ALS162 → módulo 10 74ALS161 e 74ALS163 → módulo 16 74HC160 módulo 10 Solução ↙ Entrada de dados paralelos → carga 35 74HC160 módulo 10 Clear assíncrono Carga síncrona ↙ ↑ Clear assíncrono ↑ Carga síncrona ↑ sem mudança ↑ ↑ último estado ↑ sem mudança ↓ ↓ 1 0 1 0 0 0 0 0 0 1 1 1 estado inicial 0000 ↙ ↙ ↙ ↘ ↓ ↓ ← Figura 7.15 LOAD → carga 0 0 0 0 As séries 74ALS190-191/74HC190-191 - pag. 326 36 Tabela de função do 74ALS190 e 74ALS191 Função L X X X carga assíncronaH L L ↑ contagem crescente H L H ↑ contagem decrescente H H X X sem mudança Max/Min → vai para seu nível ativo quando o contador atinge o estado terminal → vai para seu nível ativo quando: =0 e contador estiver no estado terminal e CLK = 0 74ALS190 → módulo 10 e 74ALS191→ módulo 16 LOAD CTEN UD / CLK RCO CTEN Exemplo 7.12 – Determine as formas de onda das saídas do contador Tabela de função do 74ALS190 e 74ALS191 Função L X X X carga assíncrona H L L ↑ contagem crescente H L H ↑ contagem decrescente H H X X sem mudança Max/Min → vai para seu nível ativo quando o contador atinge o estado terminal → vai para seu nível ativo quando: = 0 e contador estiver no estado terminal e CLK = 0 74ALS190 → módulo 10 e 74ALS191→ módulo 16 LOAD CTEN UD / CLK RCO CTEN ↙ 37 74HC190 módulo 10 carga assíncrona Solução ↙ ↑ Carga assíncrona ↑ sem mudança↑ ↑ último estado 0000 ↑ último estado 1001 1 0 0 0 1 0 0 1 ↓ ↓ ↓ 0 0 0 0 1 0 1 0estado inicial 0000 Figura 7.17 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 LOAD → carga Exemplo 7.13 – Estudar 38 Exemplo 7.13 - cont.. 39 Muitas saídas de CI de contadores foram projetadas para tornar mais fácil conectar múltiplos CIs e criar circuitos com uma gama maior de contagem. Um arranjo de múltiplos estágios ou em cascata. Contadores de múltiplos estágios ↙ 74ALS163s em um arranjo de dois estágios para estender o alcance máximo de contagem. Conta de 0 a 255. Módulo 256. 40 ↙ Problema 7.21 (a) Desenhe o diagrama de transição de estados das saídas do contador. (b) Determine o módulo do contador. (c) Qual é a relação da frequência de saída do MSB com a frequência de entrada CLK? (d) Qual é o ciclo de trabalho da forma de onda da saída do MSB? 41 Figura 7.106 (a)Tabela de função do 74ALS160 a 74ALS163 CLR LOAD ENP ENT CLK Função Componente L X X X X Clear assíncrono 74ALS160 e 74ALS161 L X X X ↑ Clear síncrono 74ALS162 e 74ALS163 H L X X ↑ Carga síncrona Todos H H H H ↑ contagem crescente Todos H H L X X Sem mudança Todos H H X L X Sem mudança Todos RCO (saída) → vai para o seu nível aOvo quando: ENT = 1 e o contador aOngir o seu úlOmo estado. 74ALS160 e 74ALS162 → módulo 10 74ALS161 e 74ALS163 → módulo 16 QD QC QB QA 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 Tabela de estados Solução: Problema 7.21 (a) Diagrama de transição de estados 42 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 10 1 0 1 1 11 (b) Módulo 12 (c ) (d) 12 f MOD f f CLKCLKQD == %,x%x T t )Q(CT HD 333100 12 4 100 === 74ALS163 → Clear síncrono Módulo 12 → contém 12 estados diferentes QD fica 4 períodos do clock em nível alto o período da forma de QD é 12 períodos do clock Estado normal, clear síncrono não é uma onda quadrada simétrica Problema 7.22 (a) Desenhe o diagrama de transição de estados das saídas do contador da Figura 7.106 (b) (b) Determine o módulo do contador. (c) Qual é a relação da frequência de saída do MSB com a frequência de entrada CLK? (d) Qual é o ciclo de trabalho da forma de onda da saída do MSB? D C B A QD QB QA QC RCOCLK ENT ENP LOAD CLR 74161 10 9 2 5 7 1 6 3 4 15 11 12 13 14 CLK 1 7400 DQ 43 Figura 7.106 (b) Tabela de função do 74ALS160 a 74ALS163 CLR LOAD ENP ENT CLK Função Componente L X X X X Clear assíncrono 74ALS160 e 74ALS161 L X X X ↑ Clear síncrono 74ALS162 e 74ALS163 H L X X ↑ Carga síncrona Todos H H H H ↑ contagem crescente Todos H H L X X Sem mudança Todos H H X L X Sem mudança Todos RCO (saída) → vai para o seu nível aOvo quando: ENT = 1 e o contador aOngir o seu úlOmo estado. 74ALS160 e 74ALS162 → módulo 10 74ALS161 e 74ALS163 → módulo 16 DQ LOAD → carga os dados da entrada paralela (D C B A) nos FFs . QD QC QB QA 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 1 0 0 1 7 Tabela de estados Solução: D C B A QD QB QA QC RCOCLK ENT ENP LOAD CLR 74161 10 9 2 5 7 1 6 3 4 15 11 12 13 14 CLK 1 7400 QC QB (a) Diagrama de transição de estados QC carga 44 1 0 0 1 7 1 0 1 0 8 1 0 1 1 9 1 1 0 0 10 1 1 0 1 11 1 1 1 0 12 (b) Módulo 12 (c ) (d) 12 f MOD f f CLKCLKQD == %50100 12 6 %100)( === xx T t QDCT H 74161 → Carga síncrona DQ QC QB Estados normais, carga síncrona QD fica 6 períodos do clock em nível alto é uma onda quadrada simétrica o período da forma de QD é 12 períodos do clock Problema 7.23 - Figura 7.107 (a) LOAD → carga 45 Figura 7.107 (a) Exercício Extra Desenhe um esquema para criar um contador de módulo 8, auto-reciclável, que produz 50% de ciclo de trabalho na forma de onda da saída do MSB. Use o 74ALS161. Desenhe o diagrama de estados e o diagrama de tempo do contador projetado. Figura 7.107 (b) Problema 7.24 Tabela de função do 74ALS190 e 74ALS191 LOAD CTEN CLK Função (a) Descreva a saída do contador em QDQCQBQA se START estiver em nível BAIXO. (b) Descreva a saída do contador em QDQCQBQA se START estiver momentaneamente em nível BAIXO e depois retornar ao nível ALTO. (c) Qual é o módulo do contador? Ele é auto-reciclável ou não? Por que? UD / 46 Figura 7.107 (b)LOAD CTEN CLK Função L X X X carga assíncrona H L L ↑ contagem crescente H L H ↑ contagem decrescente H H X X sem mudança Max/Min → vai para seu nível ativo quando o contador atinge o estado terminal RCO → vai para seu nível ativo quando: CTEN = 0 e contador estiver no estado terminal e CLK = 0 74ALS190 → módulo 10 e 74ALS191→ módulo 16 UD / LOAD → carga Problema 7.25 Desenhe um esquema para criar um contador de módulo 6, autorreciclável, que use: (a) Um controle clear em um 74ALS160. (b) Um controle clear em um 74ALS162. D C QD Q RCOCLK ENT ENP LOAD CLR 74ALS160-74ALS163 47 Tabela de função do 74ALS160 a 74ALS163 CLR LOAD ENP ENT CLK Função Componente L X X X X Clear assíncrono 74ALS160 e 74ALS161 L X X X ↑ Clear síncrono 74ALS162 e 74ALS163 H L X X ↑ Carga síncrona Todos H H H H ↑ contagem crescente Todos H H L X X Sem mudança Todos H H X L X Sem mudança Todos RCO (saída) → vai para o seu nível aOvo quando: ENT = 1 e o contador aOngir o seu último estado. 74ALS160 e 74ALS162 → módulo 10 74ALS161 e 74ALS163 → módulo 16 C B A QB QA QC Solução 7.25 (a) Solução 7.25 (b) RCOCLK ENT ENP LOAD CLR 74ALS160 10 9 2 7 1 15CLK 1 RCOCLK ENT ENP LOAD CLR 74ALS162 10 9 2 7 1 15CLK 1 Clear assíncrono Clear síncrono (b) Um controle clear em um 74ALS162.(a) Um controle clear em um 74ALS160. (MSB) 48 D C B A QD QB QA QC5 6 3 4 11 12 13 14 7400 D C B A QD QB QA QC5 6 3 4 11 12 13 14 7400 Módulo 6 → estados de 0000 a 0101 Clear assíncrono → provoca estado temporário 0110 → estado temporário Módulo 6 → estados de 0000 a 0101 Clear síncrono → não provoca estado temporário (MSB) (MSB) Desenhe um esquema para criar um contador de módulo 6, autorreciclável, que produz a sequência de contagem: (a) 1, 2, 3, 4, 5, 6 e repita com um 74ALS162. (b) 5, 4, 3, 2, 1, 0 e repita com um 74ALS190. (c) 6, 5, 4, 3, 2, 1 e repita com um 74ALS190. Problema 7.26 Tabela de função do 74ALS160 a 74ALS163 CLR LOAD ENP ENT CLK Função Componente L X X X X Clear assíncrono 74ALS160 e 74ALS161 L X X X ↑ Clear síncrono 74ALS162 e 74ALS163 H L X X ↑ Carga síncrona Todos H H H H ↑ contagem crescente Todos H H L X X Sem mudança Todos Tabela de função do 74ALS190 e 74ALS191 CLK Função L X X X carga assíncrona H L L ↑ contagem crescente H L H ↑ contagem decrescente H H X X sem mudança Max/Min → vai para seu nível ativo quando o contador atinge o estado terminal LOAD UD /CTEN 49 HH L X X Sem mudança Todos H H X L X Sem mudança Todos RCO (saída) → vai para o seu nível aOvo quando: ENT = 1 e o contador atingir o seu último estado. 74ALS160 e 74ALS162 → módulo 10 74ALS161 e 74ALS163 → módulo 16 contador atinge o estado terminal → vai para seu nível aOvo quando: = 0 e contador estiver no estado terminal e CLK = 0 74ALS190 → módulo 10 e 74ALS191→ módulo 16 CTENRCO D C B A QD QB QA QC RCOCLK ENT ENP LOAD CLR 74ALS160-74ALS163 D C B A QD QB QA QC CLK LOAD D/ U CTEN RCO Máx/ Min 74ALS190-74ALS191 (a) 1, 2, 3, 4, 5, 6 e repita com um 74ALS162. Problema 7.26 Desenhe um esquema para criar um contador de módulo 6, autorreciclável, que produz a sequência de contagem: QD QC QB QA 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 Tabela de função do 74ALS160 a 74ALS163 CLR LOAD ENP ENT CLK Função Componente L X X X X Clear assíncrono 74ALS160 e 74ALS161 L X X X ↑ Clear síncrono 74ALS162 e 74ALS163 H L X X ↑ Carga síncrona Todos H H H H ↑ contagem crescente Todos H H L X X Sem mudança Todos H H X L X Sem mudança Todos RCO (saída) → vai para o seu nível aOvo quando: ENT = 1 e o contador atingir o seu último estado. 74ALS160 e 74ALS162 → módulo 10 50 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 10 1 0 1 1 11 D C B A QD QB QA QC RCOCLK ENT ENP LOAD CLR 74ALS160-74ALS163 Módulo 6 → estados de 0001 a 0110 Carga síncrona → não provoca estado temporário 74ALS160 e 74ALS162 → módulo 10 74ALS161 e 74ALS163 → módulo 16 Solução : Prob. 7.26(a) Tabela de função do 74ALS160 a 74ALS163 CLR LOAD ENP ENT CLK Função Componente L X X X X Clear assíncrono 74ALS160 e 74ALS161 L X X X ↑ Clear síncrono 74ALS162 e 74ALS163 H L X X ↑ Carga síncrona Todos H H H H ↑ contagem crescente Todos H H L X X Sem mudança Todos H H X L X Sem mudança Todos RCO (saída) → vai para o seu nível aOvo quando: ENT = 1 e o contador atingir o seu último estado. 0 1 51 atingir o seu último estado. 74ALS160 e 74ALS162 → módulo 10 74ALS161 e 74ALS163 → módulo 16 Módulo 6 → estados de 0001 a 0110 Carga síncrona → não provoca estado temporário 1 1 0 LOAD → carga (b) 5, 4, 3, 2, 1, 0 e repita com um 74ALS190. Tabela de função do 74ALS190 e 74ALS191 CLK Função L X X X carga assíncrona H L L ↑ contagem crescente H L H ↑ contagem decrescente H H X X sem mudança Max/Min → vai para seu nível ativo quando o contador atinge o estado terminal → vai para seu nível aOvo quando: = 0 e contador estiver no estado terminal e CLK = 0 74ALS190 → módulo 10 e 74ALS191→ módulo 16 LOAD UD /CTEN CTENRCO Desenhe um esquema para criar um contador de módulo 6, autorreciclável, que produz a sequência de contagem: Problema 7.26 QD QC QB QA 1 0 0 1 0 1 0 0 0 1 0 1 1 1 2 0 1 1 0 3 0 1 0 1 4 0 1 0 0 5 CLK LOAD D/ U CTEN RCO Máx/ Min 74ALS190-74ALS191 52 74ALS190 → módulo 10 e 74ALS191→ módulo 16 Módulo 6 → estados de 0101 a 0000 Carga assíncrona → provoca estado temporário 1001 → estado temporário LOAD → carga 0 1 0 0 5 0 0 1 1 6 0 0 1 0 7 0 0 0 1 8 0 0 0 0 9 D C B A QD QB QA QC Solução : Prob. 7.26 (b) D QD CLK LOAD 74ALS190 11 14 4 5 9 13 7 CLK 0 0 D/ U CTEN RCO Máx/ Min 12 1↘ ↘ ↘ 1 D Q CLK LOAD 74HC190 11 14 4 5 9 13 7 CLK 0 0 D/ U CTEN RCO Máx/ Min 12 1 Q ou 53 D C B A QD QB QA QC 10 15 1 6 2 3 0 1 0 1 Módulo 6 → estados de 0101 a 0000 Carga assíncrona → provoca estado temporário 1001 → estado temporário 1 0 0 1 LOAD → carga D C B A QD QB QA QC10 15 1 6 2 3 0 1 0 1 QD QC QB QA (c) 6, 5, 4, 3, 2, 1 e repita com um 74ALS190. Desenhe um esquema para criar um contador de módulo 6, autorreciclável, que produz a sequência de contagem: Problema 7.26 Tabela de função do 74ALS190 e 74ALS191 CLK Função L X X X carga assíncrona H L L ↑ contagem crescente H L H ↑ contagem decrescente H H X X sem mudança Max/Min → vai para seu nível ativo quando o contador atinge o estado terminal LOAD UD /CTEN CLK CTEN RCO Máx/ 74ALS190-74ALS191 QD QC QB QA 1 0 0 1 0 1 0 0 0 1 0 1 1 1 2 0 1 1 0 3 54 → vai para seu nível ativo quando: = 0 e contador estiver no estado terminal e CLK = 0 74ALS190 → módulo 10 e 74ALS191→ módulo 16 CTENRCO D C B A QD QB QA QC LOAD D/ U Máx/ Min 0 1 1 0 3 0 1 0 1 4 0 1 0 0 5 0 0 1 1 6 0 0 1 0 7 0 0 0 1 8 0 0 0 0 9 Tabela de função do 74ALS190 e 74ALS191 CLK Função L X X X carga assíncrona H L L ↑ contagem crescente H L H ↑ contagem decrescente H H X X sem mudança Max/Min → vai para seu nível ativo quando o contador atinge o estado terminal → vai para seu nível ativo quando: = 0 e contador estiver no estado terminal e CLK = 0 LOAD UD /CTEN CTENRCO Solução : Prob. 7.26 (c) 55 contador estiver no estado terminal e CLK = 0 74ALS190 → módulo 10 e 74ALS191→ módulo 16 Módulo 6 → estados de 0110 a 0001 Carga assíncrona → provoca estado temporário 0000 → estado temporário (estado terminal) LOAD → carga • Contadores digitais são frequentemente utilizados em aplicações nas quais a contagem representada pelo estado dos FFs, de alguma forma, deve ser exibida. • Um dos meios mais simples para exibir o conteúdo de um contador é conectar a saída do FF a um LED. 7.8- DECODIFICANDO UM CONTADOR O método que utiliza LEDs para visualização se torna inconveniente quando o tamanho (número de bits) do contador aumenta. É muito mais difícil decodificar a exibição mentalmente. 56 Um contador de módulo X possui X estados diferentes; cada estado é uma sequência de 0s e 1s armazenados nos flip-flops do contador. Uma malha de decodificação é um circuito lógico que gera X saídas diferentes, cada uma detecta (decodifica) a presença de um estado particular do contador. As saídas do decodificador podem ser projetadas para gerar nivel ALTO ou BAIXO quando a detecção ocorrer. Decodificação ativa em nível ALTO 57Figura 7.20- Usando portas AND para decodificar um contador de módulo 8. malha de decodificação Decodificação ativa em nível BAIXO São usadas portas NAND em vez de portas AND. Decodificação de um contador BCD Para decodificar as saídas de um contador BCD, geralmente, usa-se um decodificador BCD para 7 segmentos. As saídas desse decodificador controlam os 7 segmentos de um único dispositivo, um display, para mostrar os números decimais de 0 a 9. Uma classe de displays decimais contém sete segmentos feitos de um material (normalmente LEDs ou display de cristal líquido) que emite luz própria ou reflete a luz ambiente. Em vez de 10 LEDs separados, os contadores BCD geralmente têm sua contagem exibida em um único dispositivo de exposição. 58 luz própria ou reflete a luz ambiente. 7.15 CIRCUITOS INTEGRADOS DE REGISTRADORES Os vários tipos de registradores podem ser classificados de acordo com a maneira pela qual os dados são apresentados ao registrador para armazenamento e pelo modo como saem do registrador. As diversas classificações são relacionadas a seguir: 1. Entrada paralela/saída paralela 2. Entrada serial/saída serial 3. Entrada paralela/saída serial 4. Entrada serial/saída paralela • O fluxo de dados serial através de um registrador geralmente é chamado de deslocamento (shifting), tanto para a esquerda quanto para a direita. • Se o dado de saída serial é realimentado para a entrada serial do mesmo registrador, a operação é chamada de rotação de dados. • A entrada paralela de dados é usualmente descrita como carga (LOAD) no registrador. 4. Entrada serial/saída paralela 59 7.16 - CIs de REGISTRADORESEntrada paralela/ Saída paralela (PIPO) - 74ALS174/74HC174 60 Figura 7.67- (a) Diagrama do circuito do 74ALS174; (b) símbolo lógico MR = 0 → reseta assincronamente todos os FFs. Os dados paralelos são carregados na subida do clock, carga síncrona. (b) (a) MR → Reset Master entrada paralela de dados Exemplo 7.18 74ALS174 conectado para operar como um registrador de deslocamento. Q0 D5Entrada serial Saída serial 61 Problema 7.66 – Fazer Q0 Saída serial Entrada serial/ Saída serial (SISO) - 74ALS166/74HC166 Deslocamento ↓ ↑ carga Entrada paralela de dados 62 Figura 7.69- (a) Diagrama do circuito do 74HC166 ↙ ↙ ↗ ↗ Entrada serial de dados Saída serial de dados LOAD (LD) → carga Fig. 7.69 (b) - Símbolo lógico 74ALS166 é um registrador de 8 bits Entrada serial/ Saída serial - 74ALS166/74HC166 cont .. Inibe o clock → CLK INH = 1 Entrada paralela de dados Inibe o clock Carga (LOAD) → quando ativada e com uma transição do clock carrega os dados da entrada paralela nos FFs. Fig. 7.69 (c ) - Tabela de funções 63 Clear assíncrono Carga síncrona CLK INH = 1 → sem mudança Entrada serial e deslocamento CLK = 0 → sem mudança Entrada serial e deslocamento Exemplo 7.20 Entrada serial CLR assíncrono QAQB QC QD QE QF QG Entrada paralela de dados 64 O primeiro bit de entrada SER aparecerá à saída QH depois de 8 períodos do clock. ↓ ↓ ↘ 1 0 0 0 0 0 0 01 1 1 1 1 1 11 1 0 0 0 01 1 1 dd d d d d d d d d d d d Entrada paralela / saída serial (PISO) - 74ALS165/74HC165 CP = CLK ← Saída serial CP INH → entrada de inibição do clock CP INH= 1 → inibe o clock (CP) Entrada paralela de dados CLK DS CP INH SH/ LD 65 Carga paralela assíncrona CP INH = 1 anula os efeito dos pulsos de em CP As funções das entradas CP e CP INH podem ser invertidas. Isso ocorre porque esses dois sinais passam por uma porta OR dentro do CI → → → → CP INH= 1 → inibe o clock (CP) Exemplo 7.21 (7.19) Exemplo 7.22 (7.20) Determine Q7 se: DS = 0 e CP INH = 0 CP INH = 0 → habilita o CP 0 DS = 0 0101 0 0 1 1 1001 1010 1 Carga assíncrona Entrada paralela de dados 0 66 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 assíncrona 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 01 1 1 Entrada serial/ Saída paralela (SIPO) - 74ALS164/74HC164 67 MR = 0 → Reset master assíncrono A e B para produzir a entrada serial CLK → CP MR Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 CP Exemplo 7.23 (7.21) Valor inicial 00000000 . Determine a sequência de estados conforme os pulsos de clock são aplicados. ↘ 68 Reset assíncrono → gera estado temporário Problema 7.66 Complete o diagrama de tempo na Figura 7.115 para um 74HC174. Como o diagrama de tempo mostra que o reset master é assíncrono? 1 2 3 4 5 6 7 8 ↘ ↙ 69 MR = 0→ zera todos os FFs assincronamente Os dados paralelos são carregados na subida do clock Problema 7.67 – 74ALS166 Problema 7.68 - 74ALS166 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 70 10 0 1 1 00 0 1 01 1 0 0 1 1 Clear assíncrono CLK = 0 Carga síncrona Entrada serial e deslocamento Inibe o clock CLK INH = 1 Problema 7.69 – 74 HC165 71 Problema 7.70 – 74ALS166 72 7.17- CONTADORES COM REGISTRADORES DE DESLOCAMENTO Contador em anel Um contador em anel é um registrador de deslocamento circular conectado de maneira que o último FF desloque seu valor para o primeiro. Na maioria dos casos, um único 1 está no registrador e circula por ele enquanto pulsos de clock são aplicados. Módulo = N FFs N = número de FFs Contador em anel módulo 4 Estado inicial 1000 73 Figura 7.35 – contador em anel de 4 bits. 4 f MOD f ffff CLKCLK0Q1Q2Q3Q ===== Q3 Q2 Q1 Q0 CLK 1 0 0 0 0 0 1 0 0 1 0 0 1 0 2 0 0 0 1 3 Esse circuito não progride seguindo uma sequência de contagem , mas é um contador, porque cada contagem corresponde a um único conjunto de estados dos FFs. Decodificação do Contador em anel Diagrama de estados 74 O contador em anel pode ser decodificado sem a utilização de portas decodificadoras. O sinal decodificado para cada estado é obtido na saída de seu flip-flop correspondente. Ver formas de onda do contador em anel. Decodificação do Contador em anel 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 Q3 Q2 Q1 Q0 Partida de contador em anel Para funcionar adequadamente, um contador em anel deve começar com apenas um FF no estado 1 e todos os outros no estado 0. Como o estado de partida será imprevisível, o contador deve ser colocado no estado inicial desejado antes da aplicação dos pulsos dos clock. Um modo: de fazer isto é aplicar um pulso BAIXO na entrada assíncrona PRE de um dos FFs e na entrada CLR de todos os outros FFs. Outro método: mostrado na Figura 7.76. Ao energizar o circuito, o capacitor será carregado lentamente para +VCC . A saída do Inversor 1 permanecerá ALTO e a do Inversor 2 BAIXO até que a tensão do capacitor exceda a tensão de disparo (VT+ ≈ 1,7 V) do Inversor 1. Circuito para assegurar que o contador em anel inicie o estado de ligação em Q3Q2Q1Q0 = 1000 75 Figura 7.76 Antes do capacitor carregar → nível BAIXO na saída do INVERSOR 2. + VC - No contador Johnson ou em anel torcido, a saída invertida do último FF é conectada à entrada do primeiro FF. Contador Johnson Módulo = 2××××N N = número de FFs Contador Johnson módulo 6 6 f MOD f fff CLKCLK0Q1Q2Q ==== Estado inicial 000 → 76 → O contador Johnson usa uma porta lógica para decodificar cada contagem, mas necessita apenas de portas de duas entradas, independentemente do número de FFs no contador. Isso acontece porque, para cada contagem, dois dos três FFs estão em uma combinação única de estados. Decodificando um contador Johnson Módulo = 2N = 2x3 = 6 estados diferentes (N= número de FFs) 77 Q2 Q1 Q0 0 0 0 0 1 0 0 1 1 1 0 2 1 1 1 3 0 1 1 4 0 0 1 5 02 Q.Q 12 Q.Q 01 Q.Q 20 Q.Q 12 Q.Q 01 Q.Q Decodificando um contador binário de módulo 8 (3 bits) Para decodificar um contador 78 Para decodificar um contador binário devemos usar uma porta lógica para cada contagem e o número de entradas de cada porta vai depender do numero de bits do contador. Exemplo: para um contador de 3 bits → portas de 3 entradas. Para um contador de 4 bits → portas de 4 entradas. Problema 7.73 Módulo = 5 → nº de FFs = 5 Contador em anel → Módulo = N FFs 79 Q4 Q3 Q2 Q1 Q0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 2 0 0 0 1 0 3 0 0 0 0 1 4 Tabela de estados Não necessita de portas de decodificação, porque o sinal decodificado para cada estado é obtido na saída de seu FF correspondente. ou Contador em anel – módulo 5 80 ↘ Problema 7.74 Contador módulo 10 – formado por um contador em anel módulo 5 e um FF JK no modo comutado (módulo 2) → MOD 10 = MOD 5 x MOD 2 MOD 2 (Q5)MOD 5 (Q4 até Q0) 81 ↘↓ → Q4 Q3 Q2 Q1 Q0 Q5 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 2 0 0 0 1 0 0 3 0 0 0 0 1 0 4 1 0 0 0 0 1 5 0 1 0 0 0 1 6 0 0 1 0 0 1 7 Problema 7.74 - Tabela de estados para determinar a sequencia de estados 50.QQ 54.QQ 54.QQ 53.QQ 52.QQ 51.QQ 53.QQ .QQ ↓ 82 0 0 1 0 0 1 7 0 0 0 1 0 1 8 0 0 0 0 1 1 9 52.QQ 51.QQ 50.QQ repete ↓ Problema 7.75 Contador Johnson → Módulo = 2××××N onde N= n°°°° de FFs MOD 10 = 2 x 5 83 Solução do Prob. 7.75 84 Q0 Q1 Q2 Q3 Q4 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 2 1 1 1 0 0 3 1 1 1 1 0 4 1 1 1 1 1 5 0 1 1 1 1 6 0 0 1 1 1 7 Tabela de estados para determinar a sequencia de estados Contador Johnson 43 QQ . 40 QQ . 40 QQ . 10 QQ . 21 QQ . 32 QQ . 10 QQ . QQ . Solução do Prob. 7.75 85 0 0 1 1 1 7 0 0 0 1 1 8 0 0 0 0 1 9 Circuito decodificador– 10 portas AND de duas entradas 21 QQ . 32 QQ . 43 QQ . PROJETO DE CONTADORES SÍNCRONOS 86 Seção 7.10 Método que usa flip-flops J-K em uma configuração de contadores síncronos •Determinar o número desejado de bits (FFs) e a sequência arbitrária de contagem desejada. • Desenhar o diagrama de estado mostrando todos os estados possíveis, incluindo aqueles que não fazem parte da sequência de contagem desejada. • Usar o diagrama de estados para criar uma tabela que liste todos os estados ATUAIS e Projeto de contadores síncronos Procedimento de projeto 87 os PRÓXIMOS. • Adicionar uma coluna para cada entrada J e K e indicar os níveis necessários para produzir a transição para o PRÓXIMO estado. • Projetar os circuitos lógicos para gerar os níveis exigidos em cada entrada. • Implementação do contador. Tabela de transição do JK→ mostra uma abordagem diferente no modo de operação do FF JK . Transição na Estado ATUAL PRÓXIMO Estado saída do FF Qn Qn+1 J K 0 → 0 0 → 0 0 x 0 → 1 0 → 1 1 x J K J K 0 0 0 x 0 1 1 0 1 x 1 1 Tabela 7.3 - Tabela de transição JK Tabela de transição do JK 88 J K CLK Q 0 0 ↓ Qo 0 1 ↓ 0 1 0 ↓ 1 1 1 ↓ Tabela-verdade do FF J-K oQ Qn Qn+1 J K 0 → 0 0 x 0 → 1 1 x 1 → 0 x 1 1 → 1 x 0 0 → 1 0 → 1 1 x 1 → 0 1 → 0 x 1 1 → 1 1 → 1 x 0 1 1 0 1 x 1 1 1 0 0 x 0 1 0 ↓ Tabela de transição do JK Exemplo 1: Projete um contador síncrono cuja sequência de contagem é dada na tabela 7.4. Passo 1 – contador de 3 bits Sequência de contagem Passo 2 – diagrama de estados mostrando todos os estados possíveis, inclusive aqueles que não são parte da sequência. 89 Passo 3 – tabela que lista todos os Estados ATUAIS e os PRÓXIMOS Estado Atual → relaciona todos os estados possíveis, mesmo aqueles que não fazem parte da sequência. (Sempre segue a sequência binária exata.) PRÓXIMO estado → podem ser obOdos do diagrama de estados. Diagrama de estados 90 →→ → → → → Estado Atual → Sempre segue a sequência binária exata Nenhuma variável de entrada Três variáveis de estado C , B e A Para encontrar o Próximo Estado deve-se olhar no diagrama de estados Diagrama de estados Entradas de controle 1 2 3 Passo 4 – Acrescente uma coluna para cada entrada J e K. Para cada estado ATUAL , indique os níveis exigidos em cada entrada J e K a fim de produzir a transição para o PRÓXIMO estado. Os valores para cada coluna J e K são obtidos utilizando a tabela 7.3, tabela de transição do flip-flop JK. Tabela de excitação do circuito variáveis de excitação ou 91 Qn Qn+1 J K 0 → 0 0 x 0 → 1 1 x 1 → 0 x 1 1 → 1 x 0 7.3- Tabela de transição do FF JK 3 4 5 6 7 8 Estado Atual → Sempre segue a sequência binária exata Próximo Estado ou Estado seguinte Entradas de controle Variáveis do mapa K →estado atual Passo 5 – Projete os circuitos lógicos para gerar os níveis exigidos em cada entrada J e k CJ = → → 92 JB KB JC KC CJ A = 1=AK → CJ A = 1=AK BAJC = 1=CK ACJB = ACKB += Passo 6 – Implementação do contador A B 93 C A C A C Controle de um motor de passo Passo 1 e 2 - Para que o motor gire de modo correto, os A A B B Entrada de direção D → O contador fornece a sequência apropriada para acionar o motor Enrolamentos 4 Enrolamentos 3 Enrolamentos 1 Enrolamentos 2 4 3 2 1 A B 94 modo correto, os enrolamentos 1 e 2 devem estar sempre em estados opostos. Da mesma forma, os enrolamentos 3 e 4 devem estar sempre em estados opostos. Entrada de direção D → O motor pode girar em sentido horário ou anti- horário, por isso da entrada de direção , D. Passo 3 – tabela dos estados atuais e os próximos A entrada de direção D não muda do ATUAL para o próximo estado, isso acontece porque ela é uma entrada independente que é mantida em nível ALTO ou BAIXO à medida que o contador avança em sua sequência. variável de entrada D = 1 D = 0 95 Uma variável de entrada D Duas variáveis de estado B e A variável de entrada D = 1 D = 0 Para encontrar o Próximo Estado deve-se olhar no diagrama de estados Estado Atual → Sempre segue a sequência binária exata Passo 4 –Tabela de excitação do circuito→ Acrescente uma coluna para cada entrada J e K Tabela de excitação do circuito Entradas de controle ou variáveis de excitação 96 Tabela de transição do JK → Estado Atual → Sempre segue a sequência binária exata Próximo Estado ou Estado seguinte Passo 5 – Projete os circuitos lógicos para gerar os níveis exigidos em cada entrada J e k JB KB KAJA → 00 01 11 10 00 01 11 10 00 01 11 10 00 01 11 10 97 → Figura 7.31 – Mapas K Variáveis do mapa K →estado atual Estado Atual → Sempre segue a sequência binária exata Passo 6 – Implementação do contador ADADADJB ⊕=+= ADDAADKB ⊕=+= . BDDBBDJ A ⊕=+= . BDBDBDKA ⊕=+= . BD⊕ XNOR XOR 98 D D BD⊕ AD⊕ ↖ ↖ AD ⊕ BD⊕ AD ⊕ Projeto de contador síncrono com FFs D Os FFs JK têm sido usados para implementar contadores, porque os circuitos lógicos necessários para as entradas J e K costumam ser mais simples que os para controlar um contador síncrono equivalente usando FFs D. Os contadores projetados para serem implementados em PLDs, onde normalmente existe muitas portas lógicas disponíveis, são usado os FFs D em vez de JK. Exemplo de um projeto de contador síncrono usando FFs D. Os três primeiros passos do projeto de contador síncrono usando FF D são idênticos à técnica usada no JK. Será projetado a mesma sequência do Exemplo 1. Passo 1 – contador de 3 bits Passo 2 – diagrama de estados mostrando todos os estados possíveis, inclusive aqueles 99 Passo 1 – contador de 3 bits Sequência de contagem todos os estados possíveis, inclusive aqueles que não são parte da sequência. Passo 3 – tabela que lista todos os Estados ATUAIS e os PRÓXIMOS Para encontrar o Próximo Estado deve-se olhar no diagrama de estados Diagrama de estados 100 Estado Atual → Sempre segue a sequência binária exata Esta etapa do projeto de FF D é simples, já que as entradas D necessárias são as mesmas do PRÓXIMO estado desejado, ver Tabela 7.8. Passo 4 – Acrescente uma coluna para cada entrada D Tabela de excitação do circuito D CLK Q 0 ↓ 0 1 ↓ 1 Tabela-verdade do FF D 101 Qn Qn+1 D 0 → 0 0 0 → 1 1 1 → 0 0 1 → 1 1 Tabela de transição do FF D Entradas de controle (ou variáveis de excitação) são as mesmas do PRÓXIMO estado (ou Estado seguinte) para o FF D Passo 5 – Projete os circuitos lógicos para gerar as expressões lógicas a partir da tabela de Estado ATUAL/PRÓXIMO Estado para as entradas DC , DB e DA. A Figura 7.33 mostra os mapas K e as expressões simplificadas. → DC DB↓→ 102 → Figura 7.33 – Mapas K DA Variáveis do mapa K →estado atual Passo 6 – Implementação do circuito contador C A B 103 BACDC = ABCABCDB += . ACDA .= 011 100 Problema 7.43 (a) Projete um contador síncrono usando FFs JK que tenha a seguinte sequência: 000, 010, 101, 110 e repete. Os estados indesejáveis (não usados) 001, 011, 100 e 111 têm de levar o contador sempre para 000 no próximo pulso de clock. Solução: Estado Atual → Sempre segue a sequência binária exata 104 000 010 101 110 001 011 111 100 Tabela de transição do FF JK Problema 7.43 (b) Reprojete o contador do item (a) sem nenhuma restrição sobre os estados não usados; ou seja seus PRÓXIMOS Estados podem ser estados de irrelevância. Compare com o projeto do item (a). Solução: Estado Atual → Sempre segue a sequência binária exata 105 000 010 101110 001 011 111100 Tabela de transição do FF JK binária exata Est. Atual Prox. Est. Entradas de controle C B A C B A JC KC JB KB JA KA 0 0 0 0 1 0 0 x 1 x 0 x 0 0 1 x x x x x x x x x Problema 7.43(b) sem nenhuma restrição sobre os estados não usados→ significa que os próximos estados serão usados estados de irrelevância Tabela de transição do FF JK Estado Atual → Sempre segue a sequência binária exata Solução: 106 0 0 1 x x x x x x x x x 0 1 0 1 0 1 1 x x 1 1 x 0 1 1 x x x x x x x x x 1 0 0 x x x x x x x x x 1 0 1 1 1 0 x 0 1 x x 1 1 1 0 0 0 0 x 1 x 1 0 x 1 1 1 x x x x x x x x x Problema 7.44 Projete um contador síncrono auto-reciclável de módulo 5 que produza a seguinte sequência: 100, 011, 010, 001, 000 e repete. Use FFs JK. (a) Force os estados não usados a irem para 000 no próximo pulso de clock. (b) Para os estados não usados use como PRÓXIMOS Estados “estados de irrelevância”. Esse projeto é autocorretor? 107 Obs.:- Contador não autocorretor → é o contador que quando atinge um estado não usado não consegue retornar para a sequencia válida, ou seja, prossegue só por estados não válidos permanentemente. Est. Atual Prox. Est. Entradas de controle C B A C B A JC KC JB KB JA KA 0 0 0 1 0 0 1 x 0 x 0 x Problema 7.44 (a) Tabela de transição do FF JK Solução: Para encontrar o Próximo Estado deve-se olhar no diagrama de estados 108 0 0 0 1 0 0 1 x 0 x 0 x 0 0 1 0 0 0 0 x 0 x x 1 0 1 0 0 0 1 0 x x 1 1 x 0 1 1 0 1 0 0 x x 0 x 1 1 0 0 0 1 1 x 1 1 x 1 x 1 0 1 0 0 0 x 1 0 x x 1 1 1 0 0 0 0 x 1 x 1 0 x 1 1 1 0 0 0 x 1 x 1 x 1 Estado Atual → Sempre segue a sequência binária exata Est. Atual Prox. Est. Entradas de controle C B A C B A JC KC JB KB JA KA 0 0 0 1 0 0 1 x 0 x 0 x Problema 7.44 (b) Tabela de transição do FF JK Solução: sem nenhuma restrição sobre os estados não usados 109 0 0 0 1 0 0 1 x 0 x 0 x 0 0 1 0 0 0 0 x 0 x x 1 0 1 0 0 0 1 0 x x 1 1 x 0 1 1 0 1 0 0 x x 0 x 1 1 0 0 0 1 1 x 1 1 x 1 x 1 0 1 x x x x x x x x x 1 1 0 x x x x x x x x x 1 1 1 x x x x x x x x x Estado Atual → Sempre segue a sequência binária exata Para encontrar o Próximo Estado deve-se olhar no diagrama de estados Lista de Exercícios do Capítulo 7 – 11ª Edição SEÇÃO EXEMPLOS PROBLEMAS Introdução 7.1 1, 2, 3 1, 2, 3, 4 7.2 5, 6 7.3 4 7 7.4 5, 6, 7, 8 9, 10, 11, 12 7.5 9 13, 14, 15 7.6 16 7.7 10, 11, 12, 13 17, 18, 19, 20, 21, Esses são os exercícios mínimos recomendados do Capítulo 7 Lista de Exercícios do Capítulo 7 – 10ª Edição SEÇÃO EXEMPLOS PROBLEMAS Introdução 7.1 1, 2, 3 1, 2, 3, 4 7.2 5, 6 7.3 4 7 7.4 5, 6, 7, 8 9, 10, 11, 12 7.5 9 13, 14, 15 7.6 16 7.7 10, 11, 12, 13 17, 18, 19, 20, 21, 22, 110 7.7 10, 11, 12, 13 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 7.8 14, 15 35, 36 7.10 Estudar os exemplos 43, 44, 45, 46, 47,48 7.15 7.16 18, 19, 20, 21, 22, 23 66, 67, 68, 69, 70 7.17 73, 74, 75, 76 7.7 10, 11, 12, 13 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 7.8 14, 15 35, 36 7.10 Estudar os exemplos 43, 44, 45, 46, 47, 48 7.15 7.16 16, 17 66 7.17 18 67, 68, 69, 70 7.18 19, 20 7.19 21 7.20 73, 74, 75, 76 --------------------------------------------------------------------------------------
Compartilhar