Ex.2. Projete um decodificador 3 \times 8 com enable utilizando um decodificador BCD para decimal do CI 7442.

Passo 1

O enunciado pede para projetar um decodificador 3\times8 com entrada de enable, usando o CI BCD-para-decimal 7442. Informações que temos e que o projeto deve satisfazer:
  • Devemos ter 3 entradas de seleção (vou chamar de \,x_2,x_1,x_0\,).
  • Devemos gerar 8 saídas mutuamente exclusivas (uma ativa por código), que chamarei de \,Y_0,\dots,Y_7\,.
  • Deve existir uma entrada de enable externa (vou chamar de \,EN\,) que permita ativar/desativar todo o decodificador.
  • Podemos usar o CI 7442, que é um decodificador BCD (4 bits) para decimal (10 saídas). (Mais à frente explico como adaptar o CI de 4 para 3 entradas.)
  • Não há figura nem pinagem específica do CI anexa ao enunciado; vou trabalhar com a operação lógica funcional típica do 7442 (veja observação sobre polaridades no Passo 3).

Passo 2

O que faz um decodificador 3\times8 (muito prático antes de ligar coisa no CI):
  • Tem entradas \,x_2,x_1,x_0 (onde \,x_2\, é o bit mais significativo).
  • Para cada combinação de entrada existe exatamente uma saída ativa entre \,Y_0,\dots,Y_7. Exemplo de mapeamento (verdadeiro para todo 3\times8):
    • \,x_2x_1x_0=000 \Rightarrow Y_0 ativo
    • \,x_2x_1x_0=001 \Rightarrow Y_1 ativo
    • \,x_2x_1x_0=111 \Rightarrow Y_7 ativo
  • A entrada de enable \,EN\, controla se a decodificação ocorre: quando \,EN\, está no nível que habilita, o decodificador responde às entradas; quando \,EN\, está no nível que desabilita, todas as saídas ficam inativas.
Essa é a especificação funcional que a solução deve cumprir.

Passo 3

Conhecendo o CI 7442 (comportamento lógico que vou usar):
  • O 7442 é um decodificador BCD-para-decimal com 4 entradas (normalmente rotuladas A,B,C,D ou D,C,B,A dependendo da literatura) e 10 saídas \,Y_0,\dots,Y_9.
  • Observação importante sobre polaridade (se houver diferença entre datasheets ou suas versões): é comum que as saídas do 7442 sejam ativas em nível baixo (ou seja, a saída correspondente ao número é 0 lógico, as demais ficam em 1 lógico). Também é comum existir uma entrada de enable cuja polaridade pode ser ativa-baixa; se o seu CI específico tiver polaridade diferente, deve-se adaptar com um inversor. Aqui vou assumir a convenção típica: saídas ativas-baixo e enable do CI também ativa-baixa. Caso você tenha um 7442 com polaridades diferentes, ajuste conforme eu indico nos passos finais.
  • Conclusão prática: o 7442 aceita 4 bits e gera um único Y_n ativo (nível baixo) para o código decimal n presente nas entradas.

Passo 4

Estratégia para usar o 7442 como um 3\times8:
  • Temos só 3 entradas \,x_2,x_1,x_0, e o 7442 precisa de 4 bits. A ideia natural é fixar o bit mais significativo do 7442 em um valor lógico fixo (por exemplo 0) para impedir que o CI produza saídas correspondentes a números maiores ou iguais a 8.
  • Nomeando as entradas do 7442 como \,D,C,B,A\, (com \,D\, o bit mais significativo): vamos fazer
    • \,D = 0 (ligado ao terra GND),
    • \,C = x_2, \,B = x_1, \,A = x_0.
      Assim as combinações válidas em D C B A serão 0\,x_2 x_1 x_0, que variam de 0000 (decimal 0) até 0111 (decimal 7), correspondendo exatamente às saídas \,Y_0 \dots Y_7\, do 7442. As saídas \,Y_8 e \,Y_9 nunca serão ativadas porque para ativá-las seria necessário D=1.
  • A entrada de enable do 7442 deve ser usada como a entrada de enable do 3\times8. Considerando a convenção assumida (enable do 7442 ativa-baixa):
    • Se a entrada externa \,EN\, for ativa-baixa (ou seja, \,EN=0 habilita), ligar \,EN diretamente ao pino de enable do 7442.
    • Se a entrada externa \,EN\, for ativa-alta ( \,EN=1 habilita), então colocar um inversor entre \,EN\, e o pino de enable do 7442 (porque o pino do 7442 é ativo-baixo). Em outras palavras, o pino de enable do 7442 deve receber \,\overline{EN} quando \,EN\, é ativo-alto.

Passo 5

Verificação com um exemplo concreto (para ficar seguro e você poder justificar na prova):
  • Suponha \,x_2x_1x_0 = 101. Então ligamos \,D=0, C=1, B=0, A=1. O valor binário em D C B A é 0101 que é decimal 5. Logo o 7442 colocará \,Y_5 ativo (nível baixo) e as demais saídas Y_0,\dots,Y_4,Y_6,Y_7,Y_8,Y_9 inativas (nível alto). Isso corresponde ao comportamento desejado do 3\times8: a entrada 101 selecionou a saída Y_5.
  • Se \,EN\, estiver no estado que desabilita o circuito (dependendo da polaridade, por exemplo se o pino do 7442 for ativo-baixo e receber 1), então todas as saídas ficam inativas (nível alto) independentemente de \,x_2,x_1,x_0.

Passo 6

Sobre a polaridade das saídas (prática para quando a questão pedir “saídas ativas em nível alto”):
  • Como mencionado, o 7442 normalmente produz saídas ativas-baixas. Se o seu sistema exige saídas ativas-altas, você tem duas opções práticas:
    1. Inserir inversores nas 8 saídas usadas ( Y_0 a Y_7) — por exemplo um conjunto de inversores 74xx04 ou portas inversoras integradas — para obter saídas ativas-altas.
    2. Se as saídas do 7442 forem coletor aberto (dependendo da versão), usar pull-ups e lógica que interprete nível baixo como ativo (mas isso exige cuidado com compatibilidade).
  • Normalmente, para um exercício de projeto, basta mencionar que as saídas do 3\times8 serão as saídas Y_0 a Y_7 do 7442 e que elas estarão ativas em nível baixo; se for necessário nível alto, coloque inversores.

Passo 7

Resumo das ligações finais (tudo definido e pronto paraplantar no diagrama ou na placa):
  • Pinos de entrada do 7442:
    • \,D = 0 (ligado a GND).
    • \,C = x_2.
    • \,B = x_1.
    • \,A = x_0.
  • Enable do 7442:
    • Se o pino de enable do 7442 for ativo-baixo (convenção assumida) e sua \,EN\, for ativa-baixa, ligar \,EN diretamente ao pino de enable do 7442.
    • Se sua \,EN\, for ativa-alta, ligar \,\overline{EN} (usar um inversor) ao pino de enable do 7442.
  • Saídas do decodificador 3\times8: usar os pinos \,Y_0,\dots,Y_7\, do 7442. Lembrar que são ativas-baixo; se precisar ativas-alto, adicionar inversores em cada uma.

Passo 8

Notas práticas e dicas de prova (para garantir ponto e evitar armadilhas):
  • Sempre escreva no desenho que D foi fixado em 0 — isso justifica porque o 7442 não gera Y_8 nem Y_9.
  • Declare a polaridade do enable usada (ativa-baixa ou ativa-alta) e explique como foi tratada. Se você assumir a polaridade típica, diga isso explicitamente na prova.
  • Se perguntarem por circuito físico, desenhe as conexões (pinos A,B,C,D do 7442 com relação a \,x_2,x_1,x_0 e GND; pino de enable ligado a EN ou \overline{EN}; saídas Y_0..Y_7 como saída do 3\times8).
  • Se quiser otimizar: você só precisa de um 7442 e possivelmente um inversor (se polaridades de enable/saída não coincidirem com o exigido).

Resposta

Ligar o 7442 assim: D=0 (GND), C=x_2, B=x_1, A=x_0. Usar o pino de enable do 7442 como o EN do 3\times8 (se o 7442 tiver enable ativo-baixo e EN for ativo-alto, aplicar um inversor entre EN e o pino de enable). As saídas do 3\times8 são os pinos Y_0,\dots,Y_7 do 7442 (saídas ativas-baixo; inverter se forem necessárias ativas-alto).

Exercícios relacionados