Pontuação: 2 ptos. Usando o CI 74HC151 (multiplexador 8-1):
a) mostre a tabela verdade e
b) implemente o circuito que gera seguinte função lógica z=\bar{A} \cdot \bar{B} \cdot C+A \cdot \bar{B} \cdot \bar{C}
Passo 1
O enunciado pede duas coisas usando o CI 74HC151 (multiplexador 8‑1):
(a) mostrar a tabela verdade da função lógica \displaystyle z=\bar{A}\cdot\bar{B}\cdot C + A\cdot\bar{B}\cdot\bar{C};
(b) implementar essa função com o CI 74HC151 (ou seja, indicar como ligar os pinos S, D e enable para obter z na saída do multiplexador).
Informações dadas no enunciado (já anotadas):
Variáveis de entrada: A,\;B,\;C.
Função a implementar: \displaystyle z=\bar{A}\bar{B}C + A\bar{B}\bar{C}.
Passo 2
Breve explicação didática sobre o CI 74HC151 e a estratégia de implementação.
O 74HC151 é um multiplexador 8‑para‑1: tem oito entradas de dados D_0,\dots,D_7, três linhas de seleção S_2,S_1,S_0 e uma saída (além de um pino de habilitação/enable). Quando as linhas de seleção valem um código binário s_2s_1s_0, a saída recebe o valor de D_k com k igual ao valor decimal do binário s_2s_1s_0. Ex.: S_2S_1S_0=000 seleciona D_0; S_2S_1S_0=101 seleciona D_5; etc.
Assim, um multiplexador pode ser usado como uma tabela verdade programável: liga-se as entradas de seleção às variáveis da função e configura‑se cada D_k para ser 0 ou 1 conforme o valor desejado da função nessa combinação de entradas.
Observação prática: o 74HC151 tem pino de enable (geralmente ativo em nível baixo). Deve‑se manter o enable ativo (por exemplo \overline{E}=0) durante a operação. Se o CI disponível fornecer apenas a saída invertida, pode‑se inverter a lógica dos D_i ou usar um inversor externo; abaixo eu explicito as duas opções.
Passo 3
Construção da tabela verdade de \displaystyle z=\bar{A}\bar{B}C + A\bar{B}\bar{C}.
Vou listar todas as 2^3=8 combinações de (A,B,C) e calcular z. Lembrete: \bar{X} significa "não X" (complemento).
Conclusão da tabela: z=1 somente nas combinações (A,B,C)=(0,0,1) e (1,0,0). Em termos decimais (com índice k=4A+2B+C): k=1 e k=4 são os casos com saída 1.
Passo 4
Como programar o 74HC151 (mapeamento prático).
Decidimos ligar as linhas de seleção do mux diretamente às variáveis (A,B,C) no mesmo peso posicional: \displaystyle S_2 = A,\quad S_1 = B,\quad S_0 = C. Assim o índice selecionado é k=4A+2B+C e D_k determina z naquela combinação.
Pelo que calculamos na tabela verdade, os valores desejados dos D_i (onde D_0 corresponde a A B C = 000, D_1 a 001, …, D_7 a 111) são:
Habilitação: colocar o pino de enable em nível ativo (normalmente \overline{E}=0) para que o mux funcione. Se existir um pino \overline{E} (enable ativo em 0), ligue‑o ao terra (0 V). Se o pino for enable ativo em 1, ligue‑o a VCC conforme necessário — verifique o datasheet do seu encapsulamento.
Passo 5
Observações sobre saída invertida/não invertida (prática para montagem).
Alguns datasheets do 74HC151 mostram ambas saídas: a saída direta Y e a saída invertida \overline{Y}. Se na sua placa estiver disponível a saída não invertida Y, ela já dará z diretamente com os D_i configurados conforme acima.
Se na sua versão só estiver disponível a saída invertida \overline{Y} (ou você preferir usar \overline{Y}), então há duas opções:
Usar um inversor externo na saída para obter z.
Programar os D_i com valores complementares e usar a saída invertida diretamente. Nesse caso programar D_i' = \overline{D_i}, ou seja:
D_0=1,\; D_1=0,\; D_2=1,\; D_3=1,\; D_4=0,\; D_5=1,\; D_6=1,\; D_7=1,e então \overline{Y}=\overline{D_k} dará o valor correto de z.
Passo 6
Resumo prático de ligação (passo a passo para montar no protoboard)
Ligar S_2 \leftarrow A,\; S_1 \leftarrow B,\; S_0 \leftarrow C.
Programar entradas de dados D_0 a D_7 com os níveis lógicos: 0,1,0,0,1,0,0,0 respectivamente.
Manter o enable ativo (\overline{E}=0 se for ativo em 0).
Ler a saída não invertida Y como z. Se só houver saída invertida, inverter conforme explicado no Passo 5.
Pronto: o multiplexador passa a funcionar como uma ROM de 8 posições que implementa exatamente a função dada.
Implementação no 74HC151: ligar \;S_2=A,\;S_1=B,\;S_0=C\; e programar \;D_0=0,\;D_1=1,\;D_2=0,\;D_3=0,\;D_4=1,\;D_5=0,\;D_6=0,\;D_7=0\;.
Manter o enable ativo (\overline{E}=0) e usar a saída não invertida Y.