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:
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.
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).