0% acharam este documento útil (0 voto)
76 visualizações76 páginas

Minicurso de Circuitos Digitais Básico

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
76 visualizações76 páginas

Minicurso de Circuitos Digitais Básico

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

CIRCUITOS DIGITAIS

Minicurso de Circuitos Digitais


Básico

Autores: Marco Antonio Chiodi Junior


Marlos Augustus Maciel Damasceno

Curitiba 2011

2
Sumário

1) Sistemas de numeração ...................................................................................... 4


2) Operações aritméticas com binários ................................................................. 8
3) Álgebra booleana ............................................................................................... 12
4) Operação NOT (NÃO) ou INVERSOR ........................................................... 15
5) Operação OR (OU) .......................................................................................... 15
6) Operação AND (E) .......................................................................................... 16
7) Tabela-verdade .................................................................................................. 17
8) Mapas de Karnaugh ......................................................................................... 21
9) Operação XOR ou Exclusive-OR ..................................................................... 26
10) CIs Digitais ...................................................................................................... 27
11) Flip-flops ...........................................................................................................
12) Apêndice A ......................................................................................................... 38
13) Apêndice B ......................................................................................................... 39
14) Apêndice C ........................................................................................................ 41

3
1. Sistemas de numeração

Sistemas de numeração é um conjunto de símbolos formando uma notação


consistente que representam quantidades de algo real, suprindo a necessidade histórica
do ser humano de medir. Esse conjunto de símbolos é chamado de algarismos ou dígitos,
que representam os números. Por exemplo, na antiga Roma o algarismo I definia o
número um 1 e sua combinação II o número dois 2 ou duas unidades no sistema decimal
atual, o que também é igual a 10 no sistema binário.
Para o estudo corrente os sistemas de interesse são três: o decimal 0, 1, 2, 3, 4,
5, 6, 7, 8 e 9, o binário 0,1 e o hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.
Estes são sistemas posicionais em relação à determinada base, ou seja, um mesmo
algarismo pode aparecer mais de uma vez na escrita do número, mas quando deslocado
de posição apresenta outro valor dependente da base do sistema. Por exemplo, no
sistema decimal quando escrevemos o número 203 temos a seguinte operação de
deslocamento da base dez:

2𝑥𝑥102 + 0𝑥𝑥101 + 3𝑥𝑥100 = 2𝑥𝑥100 + 0𝑥𝑥10 + 3𝑥𝑥1 = 200 + 0 + 3 = 203

Essa operação é realizada da direita para a esquerda, multiplicando-se o


respectivo algarismo pela base elevada a sua unidade de deslocamento começando em
zero, essa propriedade aritmética só foi possível com a invenção do zero que simboliza
o vazio. Para o sistema binário (base 2) o número 203 é 11001011 pela operação de
deslocamento temos:

1𝑥𝑥27 + 1𝑥𝑥26 + 0𝑥𝑥25 + 0𝑥𝑥24 + 1𝑥𝑥23 + 0𝑥𝑥22 + 1𝑥𝑥21 + 1𝑥𝑥20


= 128 + 64 + 0 + 0 + 8 + 0 + 2 + 1 = 203

Já no hexadecimal (base 16) temos que 203 é CB, ou

12𝑥𝑥161 + 11𝑥𝑥160 = 12𝑥𝑥16 + 11𝑥𝑥1 = 192 + 11 = 203

Com a possibilidade de apresentar o mesmo número de maneiras diferentes em


diversas bases foi necessário um meio de convertê-las. Para isso a tabela a seguir as

4
unidades básicas, ou seja, o conjunto de algarismos de cada sistema e suas respectivas
equivalências.

Decimal Hexadecimal Binário


0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
Tabela 1 - Conjunto de algarismo das bases decimal, hexadecimal e binário e suas equivalências.

Outra maneira de representar os binários, mas que não é um sistema é o Código


Gray organizando a seqüência binária, facilitando algumas operações como mapas de
Karnaugh. Essa codificação consiste em alterar apenas um dígito do número
subseqüente da seqüência. Por exemplo: 00, 01, 11, 10 para uma seqüência com dois
dígitos. 000, 001, 011, 010, 110, 111, 101, 100, para três dígitos. 0000, 0001, 0011,
0010, 0110, 0111, 0101, 0100, 1100, 1101, 1111, 1110, 1010, 1011, 1001, 1000, para
quatro dígitos.
Mas qual a necessidade dessas diversas representações? Basicamente porque as
operações aritméticas e lógicas são mais fáceis de projetar em componentes físicos
(hardware) no sistema binário do que no convencional sistema decimal. A representação
hexadecimal facilita a leitura de números binários, pois o agrupamento de quatro desses

5
formam um hexadecimal como mostrado na tabela acima, diminuindo a quantidade de
algarismos.
Para tanto serão apresentados alguns procedimentos para as conversões dessas
bases, mas antes uma definição importante em binários, seus algarismos são chamados
também de dígito ou bits e sua estrutura representativa possui dois bits de destaque, o
mais extremo a esquerda chamado de Most Significant Bit (MSB) e o mais extremo a
direita ou Least Significant Bit (LSB). Segue a figura como exemplificação.

Figura 1 - Estrutura de um número em binário.

Base decimal para binária ou hexadecimal, consiste basicamente em dividir


sucessivamente o número em decimal pela nova base que se pretende obter.
Exemplo:

Figura 2 - Convertendo o número 427 em hexadecimal.

Figura 3 - Convertendo o número 203 em hexadecimal.

Figura 4 - Convertendo o número 203 em binário.

6
Base binária ou hexadecimal para a base decimal é só realizar o procedimento
explicado anteriormente do deslocamento do dígito.
Exemplo:

111001010(2)
= 1𝑥𝑥28 + 1𝑥𝑥27 + 1𝑥𝑥26 + 0𝑥𝑥25 + 0𝑥𝑥24 + 1𝑥𝑥23 + 0𝑥𝑥22 + 1𝑥𝑥21 + 0𝑥𝑥20
= 256 + 128 + 64 + 0 + 0 + 8 + 0 + 2 + 0 = 458(10)

1𝐶𝐶𝐶𝐶(16)
= 1𝑥𝑥162 + 13𝑥𝑥161 + 10𝑥𝑥160 = 1𝑥𝑥256 + 12𝑥𝑥16 + 10
= 256 + 192 + 10 = 458(10)

Da base binária para a hexadecimal e vice-versa basta trocar o algarismo do


número pelo equivalente em sua outra base, seguindo a tabela 1, já que um hexadecimal
é composto por quatro algarismos binários.
Exemplo:

1CA(16) = 0001 1100 1010 = 111001010(2)


11001011(2) = 1100 1011 = CB (16)

Mas essas conversões não se limitam apenas a números inteiros, fracionários


também com apenas algumas limitações de truncamento. Se quisermos representar o
número 6,75 em binário, como devemos proceder? Para a parte inteira abordamos como
anteriormente, ou seja, dividimos o número 6 sucessivamente por 2. Para a parte
fracionária existe uma pequena diferença, em vez de divisão utilizamos a multiplicação,
assim 0,75 𝑥𝑥 2 = 𝟏𝟏, 5 − 1 = 0,5 𝑥𝑥 2 = 𝟏𝟏, 0 − 1 = 0 temos que 0,75(10) = 0,11(2),
portanto 6,75(10) = 110,11(2). Como prova real faremos a operação inversa:

110,11 (2) = 1 𝑥𝑥 22 + 1 𝑥𝑥 21 + 0 𝑥𝑥 20 + 1 𝑥𝑥 2−1 + 1 𝑥𝑥 2−2


= 4 + 2 + 0 + 0,5 + 0,75 = 6,75 (10)

Repare que o posicionamento da vírgula no número binário determina a


resolução na variação em decimal, assim se tivermos apenas um digito fracionário, a

7
variação em decimal é de 0,5 ou 2-1, para dois dígitos temos uma variação de 0,25 ou 2-2,
para instrumentos de medição digital isso é importante, pois determina o “Incremento
Digital” ou “Resolução” do equipamento.
Dessa maneira quando representarmos um número decimal com parte
fracionária diferente da resolução do equipamento haverá um erro de truncamento, por
exemplo, o número 14,7 é convertido para binário na figura abaixo.

Figura 5 - Conversão do número 14,7(10) para binário.

Logo 1110, 1011(2) é uma representação aproximada, seu valor real é:

1110,1011(2) = 1 𝑥𝑥 23 + 1 𝑥𝑥 22 + 1 𝑥𝑥 21 + 0 𝑥𝑥 20 + 1 𝑥𝑥 2−1 + 0 𝑥𝑥 2−2 + 1 𝑥𝑥 2−3


+ 1 𝑥𝑥 2−4 = 8 + 4 + 2 + 0,5 + 0,125 + 0,0625 = 14,6875(10)

O processo de conversão seria infinito se não fosse realizado o truncamento,


pois a sucessivas multiplicações por dois se repetem a partir da quinta casa decimal.
No apêndice A é mostrado como realizar conversões de base na HP 50G.

2. Operações aritméticas com binários

Assim como os números na base decimal possuem valores negativos os


binários também, um binário sem sinal é denominado de UNSIGNED e com sinal é
SIGNED. Para tanto é necessário um digito (chamado também de bit) reservado para
representar o sinal. Por exemplo: 0001 é o número 1, já 1001 é igual a -7, no caso o
primeiro bit da esquerda para direita, ou seja, o MSB (Most Significant Bit) é reservado
para determinar o sinal do número binário, para zero o número é positivo e um é
negativo. A tabela a seguir mostra alguns binários SIGNED.

8
Linhas Decimal Binário
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 -8 1000
9 -7 1001
10 -6 1010
11 -5 1011
12 -4 1100
13 -3 1101
14 -2 1110
15 -1 1111
Tabela 2 - Números binários SIGNED.

Quando trabalhamos com binários geralmente fazemos um agrupamento de


bits como 4bits ou 8bits (denominado byte). Dessa maneira determinamos o range desse
agrupamento, os limites decimais até qual o grupo pode atingir.
Como na tabela a cima, temos um range de 23 – 1 = 7 para o limite positivo e
“-23 = -8” no limite negativo, ou seja, -8 <= range <= 7, já que um dos bits é destinado
a tratar o sinal do número. Em regra geral o range pode ser determinado como “2(número
de bits sem considerar o de sinal)
- 1” no limite positivo, no negativo não é necessário diminuir
um, pois a contagem do zero já foi realizada.
Mas como se obtém o número negativo em binário? Com o método do
Complemento de 2. Para tanto é necessário o conhecimento das operações aritméticas
elementares em binário.
Para binários 1 + 1 = 0, isso parece estranho a primeira vista, mas é
completamente compreensível, pois 1 + 1 = 10(2) = 2(10) devemos imaginar o binário
como uma aplicação prática em hardware, portanto o número de bits é limitado à
arquitetura da aplicação, quando estamos trabalhando com apenas um bit o resultado
9
será 0, faltando o 1 que é chamado de carry (popularmente dito “vai um”) e será
armazenado para próxima operação ou então descartado. Quando não há possibilidade
de tratamento do bit de carry ocorreu overflow, ou seja, a operação resultou em um
número maior do que a máquina pode trabalhar, conforme visto na última conta da
figura 6. Por isso a necessidade de se determinar o range que foi explicado
anteriormente.

Figura 6 - Operações de soma com binários UNSIGNED.

A subtração de binários UNSIGNED não permite resultados negativos, já que


essa representação só é possível com binários SIGNED, portanto “0 – 1 = inexistente”.
A figura a seguir explica como realizar subtrações. Esse tipo de operação é utilizado no
complemento de 2.

Figura 7 - Operações de subtração com binários UNSIGNED.

O complemento de 2 é obtido subtraindo o binário do maior valor possível, de


acordo com a quantidade de bits, e somando 1. Dessa forma você encontra o equivalente
SIGNED negativo ou positivo do número, podendo realizar uma operação de subtração
através de uma soma. Por exemplo, um binário de 4bits, seu valor máximo é 1111(2)
(sem considerar o bit de sinal), quisermos encontrar o valor negativo de 0101(2) (igual a
5(10)) devemos fazer as seguintes etapas 1111(2) − 0101(2) = 1010(2) + 1 =
1011(2) = −5(10) , logo 1011(2) é o complemento de 2 de 0101(2), sendo um binário
SIGNED, seu valor é negativo. Podemos tirar a prova real aplicando o complemento de
2 novamente 1111(2) − 1011(2) = 0100(2) + 1 = 0101(2) = 5(10) .

10
Figura 8 - Exemplos de complemento de 2.

A representação de binários SIGNED pode conter uma extensão do sinal, se


tivermos que representar o número com mais bits que o necessário, pode-se acrescentar
“0s” à esquerda (após o MSB) quando positivo ou “1s” quando negativo, pois isto não
altera o valor do número. Como na figura 8 a última operação o número “-8(10) =
11000(2)”, no qual o bit em destaque é a extensão do sinal. Usa-se, por exemplo, em um
hardware que trabalhe com 8bits como valor fixo, todos os números que utilizem apenas
7bits na representação precisaram de dígitos extensores.

Figura 9 - Bits de extensão do sinal.

A adição de binários SIGNED pode ser tanto uma soma quanto uma subtração,
basta realizar a operação com número negativo. A figura a seguir mostra uma operação
com dois números positivos.

Figura 10 - Adição de dois números SIGNED positivos.

Repare que na última conta ocorreu overflow, devido a fato de o resultado ser
superior ao limite positivo do range (no caso 15(10)), por isso a importância de se
determinar o mesmo. Para realizar uma subtração faz-se o complemento de dois do
número e sua soma.

11
Figura 11 - Subtração de números SIGNED.

A adição de dois números SIGNED negativos também pode gerar overflow


como no exemplo abaixo.

Figura 12 - Adição de dois binários SIGNED negativos.

A multiplicação de binários UNSIGNED é a mesma que a realizada nos


decimais, porém quando se trata de binários SIGNED tem a particularidade de não se
trabalhar com negativos, para estes devem ser realizados o complemento de 2, tratando
do sinal após a operação, no caso se for negativo deve-se aplicar o complemento de 2
para o resultado. Simplificando toda multiplicação de binário é positiva.

Figura 13 - Multiplicação de binários.

No anexo B tem operações aritméticas com hexadecimal e uma simplificação


do complemento de 2.

3. Álgebra booleana

Diferente da álgebra aritmética, a booleana não trabalha com os binários sendo


números e sim com os estados true ou false, também chamados de níveis lógicos. Com

12
esses dois parâmetros existem inúmeras possibilidades de aplicações práticas, para
resoluções de vários problemas como funcionamento de um cronometro regressivo
parando na contagem zero, funcionamento de um display, do circuito lógico de um
elevador, entre outros.
As variáveis booleanas true e false são determinadas na prática por níveis de
tensão, por exemplo, um componente que realiza operações booleanas tem como false
os valores “0V” à “1,5V” e para seu valor true “3,5V” à “5V”, o valores entre “1,5V” e
“3,5V” são considerados indeterminados e não devem ocorrer na prática, segue uma
figura com exemplo.

Figura 14 - Níveis de tensão associados aos níveis lógicos.

A tabela a seguir possui os termos mais comuns utilizados para denominar os


níveis lógicos.

Nível Lógico 0 Nível Lógico 1


False True
Falso Verdadeiro
Low High
Baixo Alto
Não Sim
Aberto Fechado
Desligado Ligado
Abaixo Acima
Sem pulso Com pulso
Não excitado Excitado
Frio Quente
Sul Norte
Tabela 3 - Termos sinônimos para os níveis lógicos.

Como em um circuito digital a quantidade de variáveis booleanas são muitas é


comum a prática de se atribuir nomes a elas, geralmente sendo letras em maiúsculo

13
como “A, B, C e D”, para um circuito com quatro variáveis por exemplo. No mesmo
instante as variáveis podem assumir valores contrários no circuito (já que são apenas
dois valores possíveis), por exemplo, se em um segmento, “A” apresenta o valor false e
em outro diferente pode ser true. Por isso os valores negados são representados com
uma barra acima da letra ou uma apostrofe após ela, dessa maneira, 𝐴𝐴′ , 𝐵𝐵 ′ , 𝐶𝐶 ′ 𝑒𝑒 𝐷𝐷′ ou
𝐴𝐴̅, 𝐵𝐵� , 𝐶𝐶̅ 𝑒𝑒 𝐷𝐷
�.
Mas porque utilizar essas variáveis? Na eletrônica temos os circuitos digitais
combinacionais, que se define pela combinação das operações lógicas básicas,
permitindo que as mesmas realizem uma tarefa complexa, gerando a partir dos dados de
entradas (variáveis A, B, C...) o resultado ou resultados desejados.
Exemplificando, imagine um sistema de segurança composto por um sensor de
presença e um alarme sonoro para uma loja, o sensor de presença possui duas
possibilidades que alguém está ou não no estabelecimento, caso afirmativo é ativado o
alarme, caso contrário, nada acontece. Portanto temos uma variável de entrada A que é
determinada pelo sensor e ela pode admitir apenas dois estados, verdadeiro ou falso,
também temos a variável de saída B que é ativar ou não a sirene. Abaixo segue um
diagrama de bloco representativo.

Figura 15 - Diagrama de bloco de um sistema de segurança com circuito digital combinacional.

Mas imagine agora a segurança de um cofre de banco, ela provavelmente é


mais elaborada que isso, lembrando que não é abordada a realidade aqui e sim um
exemplo didático. Supondo que este cofre tenha um sensor sonoro e a qualquer ruído ele
dispara o alarme e ainda envia um alerta para uma central de segurança. Já teríamos
quatro variáveis a serem analisadas, duas de entrada e duas de saída, aumentado a
complexidade do circuito.

14
Figura 16 - Diagrama de bloco de um sistema de segurança com circuito digital combinacional com
quatro variáveis.

Se um circuito digital combinacional é composto por operações lógicas básicas,


quais são essas operações? Sãos as operações NOT (NÃO), OR (OU), AND (E) e FLIP-
FLOP (BIESTÁVEL), também conhecidas por “portas” nas aplicações práticas.

4. Operação NOT (NÃO) ou INVERSOR

A operação NOT consiste apenas de uma variável de entrada e uma de saída,


fazendo a saída o inverso da entrada, por isso também é chamada INVERSOR. Logo
quando a entrada é 1 (5 V) a saída será 0 (0 V), se 0 a saída é 1, invertendo o nível
lógico, na prática o nível de tensão para seu extremo oposto.
Como dito anteriormente no circuito seria o valor negado da variável sendo
representado por , uma identidade booleana é . As operações lógicas
também são representadas por símbolos, como na figura abaixo para a NOT.

Figura 17 - (a) Símbolo da porta NOT, o círculo após o triângulo representa a inversão. (b) Tabela-
verdade da operação NOT. (c) Formas de ondas.

5. Operação OR (OU)

A operação OR pode ter uma ou mais variáveis de entrada e apenas uma saída,
esta sendo igual à false apenas quando todas as entradas forem false, ou seja, basta uma
entrada ser true para que a saída também o seja. A operação utiliza o sinal “+” como
representação em expressões booleanas, lido como “ou”, assim “x = A + B”, deve ser

15
lido como “x igual a A ou B”. Diferente da adição aritmética onde “1 + 1 = 2” a “soma
booleana” é “1 + 1 = 1”.

Figura 18 - (a) Símbolo da porta lógica OR, com duas entradas. (b) Tabela-verdade da operação
OR, com duas variáveis de entrada.

Identidades booleanas com essa operação.


• Ā + A = 1 (0 + 1 ou 1 + 0)
• A + B + C = (A + B) + C = A + (B + C)
• A+B=B+A
• A + A = A (0 + 0 ou 1 + 1)
• A + 1 = 1 (0 + 1 ou 1 + 1)
• A + 0 = A (0 + 0 ou 0 + 1)

6. Operação AND (E)

A operação AND pode ter uma ou mais variáveis de entrada e apenas uma
saída, esta sendo igual à true apenas quando todas as entradas forem true, ou seja, basta
uma entrada ser false para que a saída também o seja. A operação utiliza o sinal “.”
(ponto, vezes, multiplicação) como representação em expressões booleanas, lido como
“e”, assim “x = A.B”, deve ser lido como “x igual a A e B”.

Figura 19 - (a) Símbolo da porta AND, com duas entradas. (b) Tabela-verdade para a operação
AND.

16
Identidades booleanas com essa operação.
• Ā.A = 0 (0.1 ou 1.0)
• A + Ā.B = A + B (“1 + 0B = 1, não importando B” ou “0 + 1B = B”)
• ABC = (AB)C = A(BC)
• AB = BA
• AA = A (0.0 ou 1.1)
• A1 = A (confira na tabela-verdade)
• A0 = 0
• A (B + C) = AB + AC
• A + AB = A (1 + B) = A

Com essas operações podem-se fazer várias combinações formando lógicas


mais complexas que a realizam tarefas pré-determinadas. A seguir um resumo das
operações booleanas.

NOT OR AND
0=1 0+0=0 0.0 = 0
1=0 0+1=1 0.1 = 0
1+0=1 1.0 = 0
1+1=1 1.1 = 1
Tabela 4 - Resumo das operações booleanas.

7. Tabela-verdade

Pelos diagramas de blocos apresentados anteriormente observamos que as


saídas do circuito digital dependem das variáveis de entrada, como são booleanas suas
combinações são limitadas, assim podemos representar todas as possibilidades do
circuito combinacional de uma maneira elegante e de fácil compreensão utilizando a
“Tabela-Verdade”, uma técnica que descreve a saída do circuito lógico dependendo dos
níveis lógicos presentes nas entradas do mesmo.
Para tornar mais fácil a compreensão usaremos aqui um exemplo que não se
trata de um circuito digital, mas sua lógica é a mesma. Temos uma lâmpada ligada a
uma fonte, com duas chaves liga-desliga em série conforme a figura abaixo.

17
Figura 20 - Circuito de acendimento da lâmpada.

As chaves liga-desliga nesse caso representariam as variáveis de entrada e seus


estados possíveis são “fechado ou aberto”, logo podemos interpretar como true ou false,
respectivamente. Para a lâmpada seus estados possíveis são “aceso ou apagado”, sendo
também uma configuração booleana. A análise de circuito é simples, apenas quando as
duas chaves estão fechadas (true) a lâmpada estará acesa (true) (o desenho acima é
apenas representativo por isso a lâmpada está acesa). Sendo então a chave A e B níveis
lógicos de entrada, assumindo os valores 0 ou 1, a lâmpada uma variável de saída x,
combinação das entradas, que são quatro no total, a tabela-verdade teria o aspecto a
seguir, veja que é a mesma tabela verdade que a operação AND.

A B x
0 (aberta) 0 (aberta) 0 (apagada)
0 1 0
1 0 0
1 (fechada) 1 (fechada) 1 (acesa)
Tabela 5 - Tabela-verdade referente à figura 16, entradas A e B, saída x.

Para o circuito de segurança descrito anteriormente (figura 15) com duas


variáveis de entrada e duas de saída, podemos montar uma tabela-verdade usando o
raciocínio lógico. Sabemos que quando ativado qualquer um dos sensores o alarme
sonoro ou o alerta para central deve ser ativado, supondo que apenas quando o sensor
sonoro é ativado o alarme sonoro também é, ficando inativo o sinal para central, mas
quando o sensor de presença detecta alguém no cofre é emitido o alerta para central,
sem disparar o alarme, permanecendo assim um sistema de segurança silencioso. Se os
dois sensores não detectarem nada, os alertas ficam inoperantes. Se ambos detectarem
algo, dispara todos alertas. Logo a tabela-verdade ficaria assim:

18
A B x y
0 0 0 0
0 1 1 0
1 0 0 1
1 1 1 1
Tabela 6 - Tabela-verdade para o exemplo do sistema de segurança.

Com a tabela-verdade você possui todo o conjunto possível de possibilidades


lógicas para o circuito, podendo prever qualquer situação e lidar com ela corretamente.
Essas possibilidades dependem da quantidade de variáveis de entrada do problema.
Mostramos até agora apenas duas variáveis e observamos um total de quatro
possibilidades. A seguir uma tabela-verdade com três variáveis como exemplo, repare
que o total de possibilidades passa a ser oito.

Linhas A B C x
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 1
4 1 0 0 1
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1
Tabela 7 - Tabela-verdade com três variáveis, A, B e C.

Se fossem quatro níveis lógicos no circuito teríamos dezesseis combinações


possíveis, logo a para formar o conjunto completo de possibilidades de um circuito
lógico elevamos dois pela quantidade de variáveis do mesmo ou 2número de variáveis, tendo
conseqüentemente o tamanho da tabela-verdade.
Mas a tabela-verdade não se limita apenas a organizar visualmente todas as
possibilidades possíveis de um circuito combinacional ela também facilita a projetar o
mesmo, dada a tabela-verdade a seguir encontraremos a sua lógica combinacional
equivalente.

Linhas A B x
0 0 0 1
1 0 1 1
2 1 0 0
3 1 1 0
Tabela 8 - Tabela-verdade de duas variáveis de entrada A e B.

19
Analisando a tabela-verdade vemos os resultados iguais à 1 são as duas
primeiras linhas, sabendo que a operação AND só resulta em 1 quando as duas variáveis
são 1 e que a operação OR (soma) só influência no resultado se alguma das variáveis for
1, obtemos todas as possibilidades possíveis fazendo a combinação das duas. A partir da
primeira linha com “A = B = 0”, para que o resultado x seja true fazemos A'B' = 1, pois
0'.0' = 1.1 = 1. Já na segunda linha “A = 0 e B = 1”, para que x seja true basta fazer o
negado de A com AND B ou A'B = 0'.1 = 1.1 = 1. Para as linhas cujo resultado é 0 não
é necessária aplicar essa lógica, visto que ela sai naturalmente, quando “A = 1 e B = 0”
se negarmos os dois e fazermos a operação AND o resultado será 0, isso já foi feito na
primeira linha, agora se negarmos apenas o A teremos “0.0 = 0”, ou seja, essa linha não
implica na lógica final. O mesmo ocorre para a última linha onde “A = B = 1”, se
negarmos os dois será “0.0 = 0”, se negarmos o A obtemos “0.1 = 0”, provando que
basta lidar com os resultados true. Logo a lógica final fica , abaixo
temos todas as combinações possíveis.

A B x
0 0 0' . 0 + 0' . 0' = 0 + 1 1
0 1 0' . 1 + 0' . 1' = 1 + 0 1
1 0 1' . 0 + 1' . 0' = 0 + 0 0
1 1 1' . 1 + 1' . 1' = 0 + 0 0
Tabela 9 - Expressão booleana que define todos os resultados possíveis.

A expressão obtida está correta, porém ela pode ser simplificada utilizando-se
das igualdades booleanas vistas anteriormente, assim:

x = A'B + A'B' = A'(B +B') = A'.1 = A'

Repare que a expressão se resumiu para Ā, não importando o valor de B, o que


é prudente vendo a tabela-verdade. Este método apresentado é chamado de
“Mapeamento por mintermos”, ele se resume a somar as linhas com saída 1 aplicando a
elas a operação AND devidamente modificada. Ao aplicar esse método a tabela 7,
temos a expressão A'B'C + A'BC + AB'C' + AB'C + ABC que ainda pode ser
simplificada:

20
• A'B'C + A'BC + AB'C' + AB'C + ABC, retirar o C em evidencia
• C(A'B' + A'B + AB' + AB) + AB'C', retirar os A ou A' em evidencia
• C[A'(B' + B) + A(B' + B)] + AB'C', sabendo que B' + B = 1
• C(A' + A) + AB'C', visto na etapa acima A' + A = 1
• C + AB'C', pela propriedade mostrada anteriormente A + Ā.B = A + B
• C + AB', expressão simplificada

Verificamos que essa expressão C + AB' é verdadeira analisando a tabela


verdade, quando C = 1 sempre teremos x = 1, pois 1 somado (OR) com qualquer parcela
sempre é 1, quando C = 0 e x = 1 na quinta linha a parcela AB' será igual a 1 (AB' = 1.0'
= 1.1 = 1), portanto todos os resultados 1 são satisfeitos e os zeros por conseqüência.
Com este método é possível fazer várias lógicas combinacionais, sua desvantagem é a
necessidade de simplificar a expressão final, para isso será mostrado outro mais
eficiente chamado “Mapas de Karnaugh”.

8. Mapas de Karnaugh

Uma ferramenta poderosa para projetar circuitos combinacionais é o “Mapa de


Karnaugh”, sua fácil aplicação e resultado simplificado facilitam na criação de
dispositivos práticos. Este método se baseia no “mapeamento por mintermos”, porém
seu resultado já sai simplificado e sua utilização é mais prática por se tratar de um
método visual. A seguir passo a passo como resolver um mapa de Karnaugh, usando
como exemplo a tabela 8.

B' (0) B (1) B' (0) B (1)


1 1 A' (0) 1 1
A' (0) 0 1
00 01
0 0 A (1) 0 0
A (1) 2 3
10 11
a) b)
Tabela 10 - Mapa de Karnaugh referente à “tabela-verdade 8”. a) A legenda interna na célula é a
combinação em binário dos títulos (cabeçalho da tabela), por exemplo, AB = 11 e AB' = 10. b) Nesta
a legenda é o número da linha da tabela-verdade em decimal, como AB = 3 e AB' = 2.

1) Organize uma estrutura em forma de tabela, com as variáveis de entrada em


código Gray nos títulos das colunas e linhas.

21
Segue os exemplos de estruturas para mapas de Karnaugh com duas, três e
quatro, variáveis respectivamente. Dentro dos quadrados deve-se colocar o
resultado da combinação feita entre a linha e a coluna para a célula em
questão. No caso dos mapas abaixo foram colocadas justamente essas
combinações dentro das células.

B' B
A' A'B' A'B
0 1

A AB' AB
2 3
Mapa de Karnaugh duas variáveis.

B'C' BC' BC B'C


A' A'B'C' A'B'C A'BC A'BC'
0 2 3 1

A AB'C' AB'C ABC ABC'


4 6 7 5
Mapa de Karnaugh três variáveis.

C'D' (00) C'D(01) CD(11) CD' (10)


A' B'(00) A'B'C'D' A'B'C'D A'B'CD A'B'CD'
0 1 3 2

A' B(01) A'BC'D' A'BC'D A'BCD A'BCD'


4 5 7 6

A B(11) ABC'D' ABC'D ABCD ABCD'


12 13 15 14

A B'(10) AB'C'D' AB'C'D AB'CD AB'CD'


8 9 11 10
Mapa de Karnaugh quatro variáveis.

2) Após montada a estrutura do mapa de Karnaugh, preencha com os


resultados de saída cada célula adequadamente, para facilitar o
preenchimento numere as linhas da tabela-verdade a partir do zero e
sinalize os quadrados do mapa com esse número, assim é só ir olhando na
tabela-verdade o valor de cada linha, conforme mostrado na ilustração
abaixo.

22
Linha A B C x
0 0 0 0 0
1 0 0 1 1 B'C' BC' BC B'C
2 0 1 0 0 A' 0 0 1 1
0 2 3 1
3 0 1 1 1
A 1 0 1 1
4 1 0 0 1 4 6 7 5
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1

Figura 21 - Preenchimento do mapa de Karnaugh.

3) Depois de preenchido, sua resolução é simples, basta formar grupos na


base 2 ou múltiplos qual o termo correto (1, 2, 4, 8, 16, 32...) dos termos
iguais a 1 adjacentes, termos apenas na diagonal não são válidos para
formar grupos. Quanto maior o tamanho do grupo, mais simplificada será
a expressão final. A seguir temos os agrupamentos possíveis de um mapa
de Karnaugh de três variáveis, repare que as células referentes às linhas 4 e
5 são adjacentes, assim como a 1 e 5, ou seja, os termos da primeira e
última linha do mapa são adjacentes e o mesmo vale para as colunas mais
externas.

B'C' BC' BC B'C


A' 0 0 1 1
0 2 3 1

A 1 0 1 1
4 6 7 5
Tabela 11 - Agrupamentos do mapa de Karnaugh.

4) Com os grupos prontos faz-se a operação AND das variáveis de entrada


que não variam no grupo, “somando-se” (operação OR) todos, isso é o
mesmo que aplicar o método dos mintermos, porém ele já simplifica a
expressão. Seguindo com o mapa acima, faremos o método do mintermos
e depois sua simplificação, provando a validade do método de Karnaugh
ao simplificar a expressão retirando a variável que altera o estado dentro
grupo, por isso a importância de se formar o maior agrupamento possível.

23
B'C' BC' BC B'C
AB'C' + AB'C = A(B'C' + B'C) =
A' 0 0 1 1
0 2 3 1 A[B'(C + C')] = AB'
A 1 0 1 1 1º agrupamento
4 6 7 5

A'BC + A'B'C + ABC + AB'C



B'C' BC' BC B'C
A' 0 0 1 1
0 2 3 1

A 1 0 1 1
4 6 7 5 C(A'B + A'B' + AB + AB') =
C[A'(B + B') + A(B + B')] =
C(A + A') = C
2º agrupamento

Figura 22 - Resolução do mapa de Karnaugh.

Logo expressão final é “x = AB' + C”, como visto anteriormente no


método dos mintermos. No primeiro agrupamento, apenas a variável C
altera o estado (destacado em vermelho), assim temos AB'. Já para o
segundo agrupamento de quatro termos, as variáveis A e B mudam de
estado, portanto a expressão fica reduzida a C.

5) Podem ocorrer também casos em que o valor da saída seja irrelevante


(indiferente, pode ser tanto 0 quanto 1), o que denominamos “don’t care”
representado por um “x”. O procedimento de resolução é o mesmo, após
alteradas as saídas don’t care por um valor válido que facilite na resolução
do mapa, normalmente troca-se por 1, pois melhora a simplificação do
resultado final. Segue um exemplo.

B'C' BC' BC B'C B'C' BC' BC B'C


A' 0 1 x 0 A' 0 1 1 0
0 2 3 1 0 2 3 1

A 0 x x 1 A 0 1 1 1
4 6 7 5 4 6 7 5
x = AC + B
Mapa de Karnaugh com saídas don’t care.

24
Se no mapa acima os “x” fossem trocados por 0 teríamos x = A'BC' +
AB'C, sendo maior que o obtido trocando-se por 1.

Para esclarecer melhor será feito o circuito combinacional do sistema de


segurança de um sistema de banco fictício, que possui três variáveis de entrada e duas
saídas. Neste exemplo possuímos duas variáveis de entrada e duas de saída, para tanto
faremos dois mapas, um para saída x outro para y.

Linhas A B C x y
0 0 0 0 0 0
1 0 0 1 1 0
2 0 1 0 0 1
3 0 1 1 1 1
4 1 0 0 1 1
5 1 0 1 0 1
6 1 1 0 0 1
7 1 1 1 0 1
Tabela 12 - Tabela-verdade do sistema de segurança do banco, com três variáveis.

B'C' BC' BC B'C B'C' BC' BC B'C


A' 0 0 1 1 A' 0 1 1 0
0 2 3 1 0 2 3 1

A 1 0 0 0 A 1 1 1 1
4 6 7 5 4 6 7 5
Mapa para saída x. Mapa para saída y.

x =AB'C' + A'C y=A+B


Figura 23 - Resolução de circuito combinacional de duas saídas.

A partir dessa expressão, obtemos o circuito combinacional com suas devidas


portas lógicas, na figura abaixo temos a representação desse circuito com os símbolos
das portas lógicas.

25
Figura 24 - Esquemático do circuito combinacional para o sistema de segurança.

Para forma a combinação AB'C' foram necessárias duas operações AND,


veremos mais adiante que o dispositivo prático que responsável por essa função pode ter
duas ou mais entradas, podendo ser combinado como na figura acima ou então realizar a
operação de uma só vez se componente possuir três conectores de entrada.
No anexo C, tem-se o circuito combinacional para o acendimento de um
display de 7 segmentos do digito 0 até o nove, junto com um pequeno tutorial para o
Multisim 10, software de simulação de circuitos.

9. Operação XOR ou Exclusive-OR

Como já conhecemos o método de mapa de Karnaugh e as operações lógicas


básicas, mostraremos agora a operação lógica XOR (EXCLUSIVE OR), que é uma
combinação das operações básicas (NOT, OR e AND), muito utilizada. A operação
XOR pode ter uma ou mais variáveis de entrada, assumindo true quando uma das
entradas são true e a outra false, ou seja, quando ambas as entradas são iguais a saída é 0.
Esta operação tem o sinal “⊕”como representação em expressões booleanas.

Figura 25 - (a) Símbolo da porta XOR, com duas entradas. (b) Tabela-verdade para a operação
XOR.

26
Com a tabela-verdade da XOR podemos obter a expressão que a define com
um mapa de Karnaugh.

B' B
A' 0 1
0 1

A 1 0
2 3
Figura 26 - Mapa de Karnaugh para a porta XOR.

A partir do mapa obtemos a combinação igual a x = A'B + AB' = A ⨁ B, a


figura abaixo apresenta o esquemático da porta XOR.

Figura 27 - Esquemático porta XOR.

10. CIs Digitais

CIs digitais são dispositivos reais que realizam as mais variadas funções,
inclusive as operações booleanas básicas. Sua constituição interna possui combinação
de resistores, diodos e transistores em apenas um pequeno substrato de silício,
conhecido como chip ou circuito integrado. Este chip é extremamente pequeno e
delicado, tornando o manuseio muito complexo, assim os fabricantes os colocam em
protetores das mais diversas formas. Um dos encapsulamentos mais comuns é o DIP
(dual-in-line-package), fabricado em plástico ou cerâmico, este dispositivo possui duas
linhas de pinos paralelos, numerados no sentido anti-horário a partir do primeiro, que é
marcado com um pequeno ponto (alguns ainda possuem um pequeno chanfro). Pelo seu
formato e tamanho, este dispositivo é muito utilizado para testes na protoboard.

27
Figura 28 - Foto de um encapsulamento DIP.

Figura 29 - a) Vista superior do CI de 14 pinos e suas dimensões. b) Vista isométrica.

Para as operações booleanas existem diversos CIs digitais, também chamados


de portas lógicas, cada qual recebe um código e possui um manual de funcionamento,
mais conhecido como datasheet. Essas portas lógicas são subdivididas em dois grandes
grupos ou família, os CIs TTL (lógica transistor-transistor) na qual a estrutura básica é
formada por transistores bipolares de junção e os CIs CMOS (complementar metal-
óxido-semicondutor) que usam transistores unipolares de efeito-de-campo.
A família TTL foi a pioneira e muito utilizada, sendo fundamental para o
desenvolvimento da tecnologia digital. Porém esta tem sido substituída pela família
CMOS, que possuem estrutura mais simples e menor podendo ser compactada muito
mais portas em um chip, além de possuir um desempenho melhor na maioria das vezes.
Lembrando que são os níveis de tensão que determinam os níveis lógicos (ver figura 31),
um dos pontos de importante diferença é a alta impedância de entrada
(aproximadamente 1012 Ω) da família CMOS, quanto na TTL é bem mais baixa, assim
os dispositivos CMOS não sofrem influência de quedas de tensão do restante do circuito.
Por exemplo, se na entrada de um pino existe um resistor de 100 kΩ e é
aplicado uma tensão de 5 V (nível lógico alto), a queda tensão neste resistor será
insignificante para a porta, pois ela é considerada um circuito aberto, logo o nível lógico
não sofrerá alteração ficando bem próximo do ideal. Caso a impedância de entrada da
porta fosse baixa, próxima do resto do circuito (imagine como um circuito fechado com

28
resistores em série), a queda de tensão seria significativa podendo alterar o nível lógico
de saída ou torná-lo indeterminado. Segue a ilustração abaixo para melhor entendimento.

Figura 30 - Diferenças na impedância de entrada.

De maneira geral os níveis lógicos dos CIs TTL e CMOS apresentam os


valores apresentados na ilustração abaixo.

Figura 31 - Niveis de tensão a) TTL b) CMOS.

As famílias TLL e CMOS possuem várias sub-famílias ou séries, que surgiram


ao longo do tempo e com elas os seus códigos, a seguir duas tabelas com as séries de
cada grupo.

Série TTL Prefixo (código de identificação)


TTL Padrão 74
TTL Schottky 74S
TTL Schottky de Baixa Potência 74LS
TTL Schottky Avançada 74AS
TTL Schottky Avançada de Baixa Potência 74ALS
Tabela 13 - Séries TTL.

29
Série CMOS Prefixo
CMOS com porta de metal 40
Porta de metal, compatível pino a pino com TTL 74C
Porta de silício, compatível pino a pino com TTL, alta velocidade 74HC
Porta de silício, alta velocidade, compatível pino a pino e eletricamente com
74HCT
TTL
CMOS de altíssimo desempenho, não é compatível pino a pino nem
74AC
eletricamente com TTL
CMOS de altíssimo desempenho, não é compatível pino a pino, mas é
74ACT
eletricamente compatível com TTL
Tabela 14 - Séries CMOS.

Fixaremos apenas nos grupos TTL Schottky de baixa potência (grupo LS) e na
CMOS de alta velocidade (grupo HC), pois essas duas são mais utilizadas no âmbito
didático. Apresentaremos a seguir as portas mais comuns que realizam as operações
booleanas básicas e algumas de suas combinações.

10.1 CIs NOT

A porta lógica ou CI NOT é encontrada no mercado pelo código 74LS04 para


TTL ou 74HC04 para CMOS. Sua característica básica é inserir um nível de tensão em
um do pino de entrada e utilizar a saída já invertida em outro pino. Essas configurações
são encontradas no datasheet do componente. A figura seguir apresenta os pinos de uma
porta lógica NOT e uma tabela com seus significados, isso foi retirado do datasheet da
Philips do ano de 2003. A característica básica de todas as portas é a alimentação
constituída pelo VCC e pelo ground (GND).

30
Figura 32 - Parte de um datasheet do CI NOT 74HC04.

A figura acima mostra a vista superior do CI com a numeração de seus pinos,


num total de quatorze. O pino 1 (1A) de acordo com a tabela ao lado representa uma
entrada de dado, ou seja, onde será aplicada o nível lógico de entrada. Já o pino 2 (2Y)
será a saída invertida do pino 1, realizando a operação NOT, conforme mostrado na
figura a seguir.

Figura 33 - Esquemático interno do CI NOT.

Nota-se que o CI 74HC04 pode realizar seis operações NOT, uma para cada
par de pinos, mas como é realizada essa operação, como um nível de alto de tensão vira
um nível baixo? Para saber isso é necessário visualizar internamente ao CI e também a
operação NOT é apenas matemática, na prática é necessário alimentar o dispositivo com
uma tensão adequada, pois é impraticável apenas aplicar uma tensão e na sua saída seu
valor for invertido (imagine aplicar uma tensão de 5 V em um fio e do outro lado obter

31
o ground). Para explicar o funcionamento da porta lógica NOT, será usada a figura a
seguir, apenas didática e extremamente simplificada.

Figura 34 - Porta lógica NOT funcionamento interno.

Primeiro deve saber o funcionamento do transistor de junção n-p-n Q1,


resumindo o transistor possui três regiões de funcionamento em corte, ativo e saturado.
Para o nosso estudo as regiões de interesse são as de corte e a ativa, ficando para a
eletrônica analógica o estudo da região ativa em aplicações como amplificadores, filtros,
entre outros.
Vamos fazer uma analogia a uma chave liga-desliga, quando aplicada uma
tensão diretamente polarizada entre a base (B) e o emissor (E) do transistor Q1, acima
da tensão limiar (em um transistor de silício é igual a 0,6 V), o transistor estará na
região de saturação e apresentará uma resistência muito baixa entre o coletor e o
emissor (da ordem de grandeza de 100 Ω) permitindo a corrente fluir, comportando-se
como uma chave fechada. Já se não é aplicada tensão entre a base e o emissor,
mantendo os dois em curto, o transistor estará na região de corte e sua resistência entre
o coletor e o emissor será extremamente elevada não permitindo a passagem de corrente,
funcionando assim como uma chave aberta.
Verificamos assim que quando aplicado um nível de tensão alto na entrada A
(+5 V), o transistor ficará saturado e a corrente da saída Y irá para o ground, mantendo
a saída aterrada. Se aplicado um nível de tensão baixo na entrada A (0 V ou ground), a
base do transistor ficará em curto com o emissor e este está em corte não permitindo que
a corrente flua do coletor para o emissor, assim a saída Y permanecerá em alta devido

32
ao resistor R2 ligado à alimentação. A figura a seguir ilustra as duas situações,
explicando o funcionamento prático da operação NOT, usando simulador Multisim.

Figura 35 - a) Aplicado 1 em A resultando 0 em Y. Transistor opera em saturação. b) Aplicado 0


em A resultando 1 em Y. Transistor opera em corte.

Ao observar a figura acima, verifica-se que a corrente que fornecida na saída Y


é maior quando seu nível lógico é zero, já que a corrente vai diretamente para o ground
sem a influência de nenhuma resistência no “caminho”. Quando a saída está em alta é
necessária uma resistência no “caminho” para fornecer essa tensão, tornando a corrente
menor. Isso é uma característica comum em CIs TTL, o que não acontece em CIs
CMOS, pois estes não possuem resistores em sua construção básica. A ilustração abaixo

33
(retirado do Millman) apresenta uma porta NOT CMOS simples, seu funcionamento é o
mesmo que o explicado anteriormente e difere apenas na utilização de transistores de
efeito-de-campo, onde o principio de chaveamento é outro.

Figura 36 - Inversor NOT CMOS.

Com isso vemos que as diferenças entre os CIs TTL e CMOS, baseiam-se nos
princípios de funcionamento de seus transistores. As tabelas a seguir mostram as
vantagens e desvantagens dos CIs TTL e CMOS.

TTL
Vantagens Desvantagens
Eliminação de resistores de entrada Tamanho
Eliminação de rede de diodos Custo
Maior velocidade de comutação Baixa impedância de entrada
Maior imunidade a ruídos Diferença nas correntes de saída alta e baixa.
Fácil manuseio
Tabela 15 - Vantagens e desvantagens dos CIs TTL.

34
CMOS
Vantagens Desvantagens
Fabricação simples e
Tempo de atraso de propagação
barata
Susceptibilidade a danos provocados por eletricidade
Não utiliza resistores
estática.
Alta impedância de Menor velocidade de operação em relação a outras famílias
entrada lógicas
Menor espaço ocupado
Tabela 16 - Vantagens e desvantagens de CIs CMOS.

Todas as portas lógicas funcionam com principio de chaveamento de


transistores, a diante serão mostradas as outras funções booleanas básicas e sua variação
negada, todas no CIs 74LS e 74HC.

10.2 CIs OR e NOR

O CI OR possui o código 74LS32 para TTL e 74HC32 para CMOS, sendo


esses de duas entradas e uma saída, seguindo o padrão de pinos mostrados na figura
abaixo, retirado do datasheet Renesas Technology, ano 2003 para o chip 74LS32.

Figura 37 - Diagrama de pinos da porta OR.

Existem ainda portas OR com mais de uma entrada, por exemplo, a 74HC4075
de três entradas.

35
Figura 38 - Parte do datasheet da 74HC4075.

Uma combinação muito usada da porta OR é a mesma com a saída negada,


chamada também de NOR, com o código 74HC02.

Figura 39 - Parte do datasheet da 74HC02.

Repare que essa porta possui uma configuração diferente dos pinos, a saída é
invertida em relação às outras portas vistas.

10.3 CIs AND e NAND

O CI AND possui o código 74LS08 e 74HC08, para TTL e para CMOS


respectivamente, sendo esses de duas entradas e uma saída, seguindo o mesmo padrão
da porta OR.

36
Figura 40 - Diagrama CI AND de duas entradas.

A seguir a porta NAND negada.

Figura 41 - Porta NAND 74HC00

Mais datasheets podem ser encontrados no site:


http://www.datasheetcatalog.com/
http://www.datasheetarchive.com/

11. Flip Flop

Antes de começar a explicar sobre o Flip Flop (FF), devemos entender o


funcionamento do Latch. O Latch é a mais básica estrutura de memória estática, os mais
conhecidos são os latchs set/clear (S/C) e o transparente, que são os que estudaremos
nesta apostila.

37
11.1 O Latch S/C

O Latch S/C é estruturado por duas portas NAND’s ou NOR’s, como nas
figuras abaixo. O latch formado por portas NAND’s é conhecido como ativo baixo e o
por NOR’s, como ativo alto.

Figura 42 - Latch S/C configuração básica.

Para simplificar a utilização, usaremos a seguinte notação:

Figura 43 - Simbolo do Latch S/C.

Tabela-verdade para Latchs S/C ativo alto e ativo baixo.

Tabela 17 - Tabela-verdade parao Latch S/C.

38
11.2 O Latch Transparente

De forma diferente do anterior que “setava” ou “resetava” a saída, o Latch


Transparente copia o dado da entrada. Este possui duas entradas, uma chamada D que
contem a informação e outra intitulada EN que habilita ou não a transferência do dado
para a saída. Também, é conhecido como Latch Tipo D.

Figura 44 - Latch do tipo D.

Para simplificar o seu uso, utiliza-se a seguinte representação:

Figura 45 - Simbolo do Latch D.

A Tabela-verdade para o Latch Transparente.

Tabela 18 - Tabela verdade do Latch transparente.


11.3 O Clock

Além do conhecimento sobre latchs, também é necessário entender o


funcionando do clock, este é um sinal que oscila entre nível alto e baixo, é usado para
coordenar ações de circuitos digitais. Os FF’s podem ser sensíveis às transições
positivas de clock ou negativas, também existem entradas assíncronas que independem
do pulso de clock, estas servem para que conheçamos o estado inicial da saída.
Circuito Detector de Borda Positiva.

Figura 46 - Detector de borda positiva.

Circuito Detector de Borda Negativa.

Figura 47 - Detector de borda negativa.

11.4 O Flip Flop S/C

O FF S/C possui um funcionamento muito parecido com o Latch S/C, porém,


este só é acionado com o pulso de clock se utilizarmos as entradas síncronas. Usando as
entradas assíncronas, o seu funcionamento é idêntico ao Latch S/C.

40
Figura 48 - Configuração do flip-flop tipo S/C.

As entradas S e C da figura acima são chamas de entradas síncronas (como já


mencionado), pois suas ações são sincronizadas com o clock. Assim como
anteriormente, há uma notação simples para FF’s.

Figura 49 - Simbolo do flip-flop S/C.

11.5 O Flip Flop JK

No FF S/C, assim como no Latch S/C, havia uma condição dita proibida ou ambígua
que seria o comando de set de reset ao mesmo tempo (S = 1 e C = 1 para ativo alto e S =
0 e C = 0 para ativo baixo), o FF JK surgiu justamente para aprimorar este “defeito”.

41
Figura 50 - Configuração do flip-flop JK.

Para facilitar o uso, é representado como:

Figura 51 - Simbolo dao flip-flop JK.

E sua Tabela-verdade é:

Figura 52 - Tabela-verdade para o flip-flop JK.

Existem mais dois tipos de FF’s, o Tipo D (“Data”) e o Tipo T (“Toggle”) que
são casos particulares do FF JK. No Tipo D, as entradas são negadas uma em relação a

outra ( J = K ), fazendo com que exista apenas uma entrada e esta seja transferida para a
saída a cada pulso de clock, é representado como:

42
Figura 53 - Simbolo do flip-flop JK.

No outro tipo, as entradas são iguais e permanecem em alto ( J = K = 1 ), a


cada pulso de clock, o valor da saída alterna.

43
Apêndice A

Procedimento para converter bases numéricas na HP 50G

1) Para facilitar altere a flag “117” da HP, → altere a flag “117” para
→ (OK)→ (OK).
2) No modo RPN digite o número que deseja converter na base decimal, vá ao
botão e no dígito “3” (verifique que está escrito “base” em laranja
acima desse número).
3) Selecione a base que deseja converter para hexadecimal, para
decimal, para octal e para binário. A base selecionada apresentará
uma indicação, neste caso está na base
binária.
4) Para converter basta ir em , note que o número convertido para a
nova base apresentara um formato diferente com # número (h –
hexadecimal; d – decimal; o – octal; b – binário), conforme as figuras a
seguir para o número 18 , , e .
5) A HP não converte números fracionários em binários, ela realiza um
arredondamento.

44
Anexo B

Método de conversão direto do decimal para o binário

Conforme a ilustração a seguir de modelo, realiza-se o método.

Dividido por 2 ........... 0 1 2 4 9 19 decimal


Resto ......................... 1 0 0 1 1 binário
Tabela 19 - Conversão direta decimal para binário. Fonte: Millman-Halkias, Eletrônica:
Dispositivos e Circuitos, vol. 1, página 150.

De acordo com o livro: “Coloque o número decimal (nesta ilustração, 19) na


extrema direita, a seguir divida por dois e coloque o quociente (9) à esquerda e indique
o resto (1) imediatamente abaixo dele. Repita o processo (para a próxima coluna 9 ÷ 2=
4 com o resto 1) até que o quociente zero seja obtido. O conjunto dos números um e
zero na segunda fileira é a representação binária do número decimal original. Neste
exemplo, decimal 19 = 10011 binário”.
Uma regra simples para obter o complemento de 2 de um número é a seguinte:
1) Copie da direita para a esquerda (a partir do LSB) todos os bits até
encontrar o primeiro 1, inclusive.
2) Inverta todos os demais bits.

Figura 54 - Método simplificado do complemento de 2.

Adição com hexadecimais é o mesmo processo que o realizado nos decimais, a


seguir alguns passo para realizar esse procedimento:
1) Some normalmente os dígitos em hexa equivalente aos decimais,
substituindo mentalmente o equivalente decimal para os dígitos maiores
que “9”.
2) Se a soma for menor ou igual a 15, o resultado dela pode ser expresso
como um dígito hexa.

45
3) Se a soma for maior ou igual 16, subtrai 16 e transporte um carry 1 para
a posição do próximo dígito.

Figura 55 - Soma em hexadecimal.

46
Anexo C

Tutorial Multisim com display de 7 segmentos

Neste anexo desenvolvemos um exemplo didático de acendimento de um


display de 7 segmentos utilizando o software Multisim como apoio.
Primeiro mostramos o funcionamento de um display de 7 segmentos ânodo
comum e catodo comum. Uma maneira fácil de identificar os pinos do display é usando
um multímetro na função que verifica curto em diodo, pois nessa função o aparelho
serve como uma fonte de tensão de aproximadamente 1,5 V e baixa corrente, o ideal
para acender o LED do display sem danificá-lo.

Figura 56 - Foto do display de 7 segmentos.

Figura 57 - Nomes dos segmentos do display.

Display de 7 segmentos ânodo comum.

Figura 58 - Pinos do display anodo comum.

47
Usando o ponto como referencia no ânodo comum liga-se o VCC (+5 V) no
pino central, os outros vão ao GND (0 V) para serem ativados.
Display de 7 segmentos catodo comum.

Figura 59 - Pinos do display catodo comum.

Catodo comum liga o GND (0 V) no pino central, os outros vão no VCC (+5
V) para serem ativados.
Pronto com o “datasheet” do display, passamos para o Multsim.

Figura 60 - Tela inicial do Multsim 10.

→New Project , coloque o nome do projeto e o


Crie um novo projeto em File
diretório, o Multisim exige um diretório de backup diferente ao do projeto.

48
Na aba “Project View”, adicione um novo “Schematic” clicando com o botão
direito sobre o mesmo e indo em “Add file”, vá até o diretório do projeto e coloque um
nome no esquemático, o Multisim criará automaticamente o arquivo ao clicar em abrir.
Com o esquemático preparado começaremos a desenvolver o projeto.
Utilizaremos um display de ânodo comum, ou seja, é ativado quando o pino vai para 0,
faremos os números de zero a nove conforme a tabela-verdade abaixo. Nela a esquerda,
temos como irá aparentar o número no display e a direita os números das linhas.

Variáveis de entrada Segmentos do display Linhas


A B C D a b c d e f g
0 0 0 0 0 0 0 0 0 0 0 1 0
1 0 0 0 1 1 0 0 1 1 1 1 1
2 0 0 1 0 0 0 1 0 0 1 0 2
Valores mostrados no display (0-9)

3 0 0 1 1 0 0 0 0 1 1 0 3
4 0 1 0 0 1 0 0 1 1 0 0 4
5 0 1 0 1 0 1 0 0 1 0 0 5
6 0 1 1 0 0 1 0 0 0 0 0 6
7 0 1 1 1 0 0 0 1 1 1 1 7
8 1 0 0 0 0 0 0 0 0 0 0 8
9 1 0 0 1 0 0 0 0 1 0 0 9
1 0 1 0 1 1 1 1 1 1 1 10
1 0 1 1 1 1 1 1 1 1 1 11
1 1 0 0 1 1 1 1 1 1 1 12
1 1 0 1 1 1 1 1 1 1 1 13
1 1 1 0 1 1 1 1 1 1 1 14
1 1 1 1 1 1 1 1 1 1 1 15
Tabela-verdade para display de 7 segmentos ânodo comum, apresentando do zero ao nove.

Explicando melhor, temos quatro variáveis de entrada (A; B; C; D) que


representaram um número em binário, mais sete saídas referentes aos segmentos do
display (a; b; c; d; e; f; g). O circuito digital combinacional aqui elaborado fará a correta
conversão entre as entradas binárias para o decimal correspondente, apresentado no
display. Por exemplo, o número zero em binário é “0000(2)”, portanto acenderão no
display os segmentos “a; b; c; d; e; f”. Já para o número sete “0111(2)” acenderão apenas
os LEDs “a; b; c”. Assim na vertical têm-se todos os resultados possíveis para o
segmento, o qual será formado o mapa de Karnaugh. Na horizontal têm-se os segmentos
que serão acesos para apresentar o número no display.
Montado os mapas de Karnaugh e obtendo a expressão para cada segmento.

49
Mapa para o segmento a
C'D' C'D CD CD'
A'B' 0 1 0 0
0 1 3 2

A'B 1 0 0 0
4 5 7 6

AB 1 1 1 1
12 13 15 14

AB' 0 0 1 1
8 9 11 10
a = A'B'C'D + BC'D' + AB + AC

Mapa para o segmento b


C'D' C'D CD CD'
A'B' 0 0 0 0
0 1 3 2

A'B 0 1 0 1
4 5 7 6

AB 1 1 1 1
12 13 15 14

AB' 0 0 1 1
8 9 11 10
b = BC'D + BCD' + AB + AC

Mapa para o segmento c


C'D' C'D CD CD'
A'B' 0 0 0 1
0 1 3 2

A'B 0 0 0 0
4 5 7 6

AB 1 1 1 1
12 13 15 14

AB' 0 0 1 1
8 9 11 10
c = B'CD' + AB + AC

Mapa para o segmento d


C'D' C'D CD CD'
A'B' 0 1 0 0
0 1 3 2

A'B 1 0 1 0
4 5 7 6

AB 1 1 1 1
12 13 15 14

AB' 0 0 1 1
8 9 11 10
d = A'B'C'D + BC'D' + BCD + AB + AC

50
Mapa para o segmento e
C'D' C'D CD CD'
A'B' 0 1 1 0
0 1 3 2

A'B 1 1 1 0
4 5 7 6

AB 1 1 1 1
12 13 15 14

AB' 0 1 1 1
8 9 11 10
e = BC' + AC + D

Mapa para o segmento f


C'D' C'D CD CD'
A'B' 0 1 1 1
0 1 3 2

A'B 0 0 1 0
4 5 7 6

AB 1 1 1 1
12 13 15 14

AB' 0 0 1 1
8 9 11 10
f = A'B'D + B'C + AB + CD

Mapa para o segmento g


C'D' C'D CD CD'
A'B' 1 1 0 0
0 1 3 2

A'B 0 0 1 0
4 5 7 6

AB 1 1 1 1
12 13 15 14

AB' 0 0 1 1
8 9 11 10
g = A'B'C' + BCD + AB + AC

Agora iremos verificar no Multisim se as expressões dos mapas estão corretas,


montar o circuito e simular.
Simulate→Instruments→Logic Converter

Figura 61 - Conversor lógico.


Clique duas vezes com o botão esquerdo do mouse sobre o instrumento abrirá
uma janela, vimos nela oito variáveis de entrada e uma de saída.

51
Figura 62 - Janela do conversor lógico.

Ative as variáveis que serão utilizadas clicando sobre elas com o botão
esquerdo. No caso serão as variáveis A, B, C e D, após isso preencha as saídas da
tabela-verdade e clique no botão de simplificação da tabela para uma expressão
.

Figura 63 - Tabela-verdade para o segmento “a” e sua expressão booleana.

Como podemos ver isso confere com o mapa de Karnaugh realizado


anteriormente. Com esse resultado podemos gerar o circuito combinacional clicando
em . O circuito gerado está logo abaixo.

52
Figura 64 - Circuito gerado para o segmento a.

Os números que aparecem nas linhas correspondem às diferentes ligações ou


nós e são denominados “nets”, em “Edit→Properties→Circuit”, podemos alterar se
→Hide All ”. Além dessa
esses números aparecem ou não, em “Net Names
configuração, muitas outras são possíveis no “Sheet Properties”, como configuração da
cor de fundo da área de trabalho, mostra ou ocultar o grid, tamanho das linhas, fontes
do labels e textos, visibilidades dos atributos dos componentes, entre outros.

53
Figura 65 - Configurações das propriedades visuais.

Para alterar a cor dos componentes e linhas selecione os de interesse e clique


com o botão direito sobre um deles, vá em “Change color” e escolha a cor.

Figura 66 - Alterando as cores dos componentes.

54
Figura 67 - Cores já alteradas para o segmento a.

Esse circuito já está com todas as ligações feitas e funcionando corretamente,


as entradas A, B, C e D, são apenas labels (textos) e não conectores, a partir desse
circuito faremos um sub-circuito, vá em “Place→New Subcircuit”.

Figura 68 - Menu novo Subcircuit.

Figura 69 - Coloque o nome do sub-circuito

Repare que abrirá uma nova aba para a edição do segmento a. Outra maneira
de editar o sub-circuito é clicando duas vezes sobre o mesmo e indo em “Edit HB/SC”.

55
Figura 70 - Aba segmento “a”.

Figura 71 - Editar sub-circuito.

Copie e cole o circuito da aba “Display 7 seg” (para selecionar os componentes


use o mouse ou “Shift + cada componente”), para a aba do sub-circuito que ira conter o
segmento a. Substitua os labels A, B, C e D por “HB/SC Connector”, conectores que
iram representar as entradas e saídas do circuito.

Figura 72 - Conector HB/SC.

56
Coloque todas as conexões para as variáveis A, B, C, e D, para a saída coloque
uma conexão na saída da porta lógica OR. Mas antes inverta horizontalmente o conector
para facilitar a visualização.

Figura 73 - Após colocadas as conexões.

Voltando a aba do display o Segmento_a estará como na figura a seguir.

Figura 74 - Semento a sem edição.

Porém os nomes dos conectores estão confusos, para mudá-los clique duas
vezes sobre o conector, irá aparecer à seguinte janela.

Figura 75 - Alterando o nome do conector.

57
Uma mensagem de popup pedira se a alteração passe a impactar todos os
outros lugares onde foi utilizado o conector, no nosso caso isso não é necessário,
clicando em “não”.

Figura 76 - Mensagem das instâncias do conector.

O novo layout do ícone ficará assim.

Figura 77 - Layout do icone do sub-circuito “a”.

Da maneira que se encontra o sub-circuito já está pronto para ser utilizado, mas
sua visualização não está muito boa, então iremos editar seu layout. Clique com o botão
direito sobre o ícone e vá em “Edit Symbol/Title Block”.

58
Figura 78 - Editar layout sub-circuito.

O Multisim abrirá a seguinte janela, nela você pode editar cores, tipos de fontes,
tipo das conexões, entre outros.

Figura 79 - Tela de edição de layout.

Iremos alterar os tipos dos pinos, para isso vá em “Shape” e coloque “Input
Wedge Pin” para os pinos de entrada A, B, C e D e “Output Wedge Pin”. Também
colocaremos a saída do lado direito do ícone, arrastando o label “Saída_a” para direita.

59
Figura 80 - Configurações dos pinos.

Figura 81 - Alterando o lado do pino de saída a.

O Multisim colocará algumas informações a mais no seu ícone, como na figura


abaixo.

Figura 82 - Layout com informações indesejadas.

Para alterar isso clique com o botão direito do mouse sobre o ícone e vá em
“Properties”. Na aba “Display”, desmarque “Use Schematic Global Setting” e
desmarque “Show Footprint Pin Names”. Nessa aba você pode configurar as opções que
apareceram ou não no seu layout.

60
Figura 83 - Labels que serão apresentadas.

Com isso nosso layout do ícone está pronto.

Figura 84 - Layout finalizado para o segmento “a”.

O mesmo procedimento será repetido para cada segmento, aqui será colocado
apenas como ficaram as configurações finais.

61
Figura 85 - Tabela-verdade para o segmento “b” e sua expressão booleana.

Figura 86 - Circuito combinacional para o segmento “b”.

Figura 87 - Icone para a saída “b”.

62
Figura 88 - Tabela-verdade para o segmento “c” e sua expressão booleana.

Figura 89 - Circuito combinacional para o segmento “c”.

Figura 90 - Icone para a saída “c”.

63
Figura 91 - Tabela-verdade para o segmento “d” e sua expressão booleana.

Figura 92 - Circuito combinacional para o segmento “d”.

Figura 93 - Icone para a saída “d”.

64
Figura 94 - Tabela-verdade para o segmento “e” e sua expressão booleana.

Figura 95 - Circuito combinacional para o segmento “e”.

Figura 96 - Icone para a saída “e”.

65
Figura 97 - Tabela-verdade para o segmento “f” e sua expressão booleana.

Circuito combinacional para o segmento “f”.

Figura 98 - Icone para a saída “f”.

66
Figura 99 - Tabela-verdade para o segmento “g” e sua expressão booleana.

Figura 100 - Circuito combinacional para o segmento “g”.

Figura 101 - Icone para a saída “g”.

Com isso encerra-se o circuito combinacional para o acendimento do display


de 7 segmentos. Agora iremos testar o seu funcionamento. Primeiro colocaremos um
referencial de terra, pois o Multisim exige isso para simulação. Na barra superior do
software há vários ícones para incluir componentes, clique em “Place Source”. Também
pode-se acessar pelo menu “Place→Component” (atalho Ctrl + W).

67
Figura 102 - Barra de componentes.

Abrirá uma janela chamada “Select a Component”, escolha “Ground”, clique


em OK e coloque-o na área de trabalho.

Figura 103 - Janela para selecionar componetes.

Depois de colocado o componente, a janela permanecerá aberta, coloque agora


uma fonte de tensão continua “DC_Power”. Veja na figura abaixo que também temos a
representação do VCC que são pontos de tensão positivos e do VEE que são tensões
negativas.

68
Figura 104 - Fonte de tensão continua.

Insira também um VCC. Depois disso colocaremos um resistor de 10 kΩ, para


isto mudamos o grupo de componentes na caixa de seleção “Group”, indo em “Basic”.
Para achar o componente desejado dentro do grupo, podemos digitar seu código na
caixa de texto “Component:”.

Figura 105 - Trocando o grupo de componentes e realizando uma busca básica.

Abaixo das opções de grupo, existem os subgrupos denominados “Family” (foi


omitido na etapa anterior propositalmente, o Family selecionado era “Resistor”), onde
você pode realizar uma busca rápida dentro do mesmo. Ainda no grupo Basic selecione
Family→Switch→DSWPK_4, que corresponde a uma chave de dip switch com quatro

69
botões. Dentro desse Family ainda estão outros dois tipos de botões muito utilizados o
PB_DPST equivalente a um push button , SPDT uma chave de dois estados.

Figura 106 - Dip switch de quatro botões.

Na seleção do componente tem também uma descrição de suas funcionalidades,


como no dip switch acima que é uma um grupo de quatro botões, no qual o estado
ligado está representado por um pequeno circulo preto. Agora colocaremos o último
componente que precisamos o display de 7 segmentos. Para isso mude para o grupo
Indicators→HEX_DISPLAY→ SEVEN_SEG_COM_A_BLUE, que é um display
anodo comum de sete segmentos.

Figura 107 - Display de sete segmentos anodo comum, na cor azul.

Com todos os componentes na área de trabalho e mais os sub-circuitos, basta


realizar corretamente as ligações. Ao clicar duas vezes sobre determinado elemento
você abre suas propriedades, a fonte de tensão geralmente vem com 12 V, mude para 5
V nas suas propriedades.

70
Figura 108 - Propriedades da fonte de tensão continua.

O funcionamento do dip switch é simples, sabe-se que a corrente flui pelo


caminho de menor resistência, assim a configuração mostrada a na ilustração abaixo
permite ligar e desligar o dip switch, ou seja, permite gerar os dois estados booleanos.
Lembre sempre de colocar os resistores, pois senão ocorrerá curto na fonte de tensão.

Figura 109 - Funcionamento do dip switch.

Realize essa configuração para os botões restantes do dip, para facilitar copie e
cole o resistor que já foi colocado, para completar os que faltam. Finalizando essa parte
ficara parecida com a figura abaixo, repare que muitas ligações passam umas sobre as

71
outras, apenas quando existe um nó (ponto) é que a linhas estão interligadas, ou seja, no
mesmo potencial. Feito isso temos nossas entradas A, B, C e D, adicione um texto para
identificá-las mais facilmente, indo a Place→Text.

Figura 110 - Entradas A, B, C e D.

Ligue as saídas do dip switch nas entradas dos sub-circuitos, já na saída do


sub-circuito coloque um resistor de 560 Ω, para isso copie e cole um resistor de 10 kΩ e
mude em suas propriedades o valor da resistência.

Figura 111 - Ligações nos sub-circuitos.

Faça isso para todos os sub-circuitos. Para finalizar ligue as saídas dos sub-
circuitos aos segmentos correspondentes do display. Ligue também o VCC (alterando
seu valor para 5 V) no CA (common anode).

72
Figura 112 - Ligações display.

Seu projeto está pronto, agora podemos simulá-lo clicando no botão que fica na
barra superior do programa.

Figura 113 - Projeto finalizado.

Figura 114 - Botão de execução.

A clicar no botão de execução o programa simula o funcionamento do circuito,


executando em uma linha do tempo que pode ser verificada no canto inferior direito da
tela do software. Este tempo não é equivalente ao real, sendo bem mais “lento”.

73
Figura 115 - Barra de tempo.

Agora vamos verificar o resultado do nosso projeto, colocando pontos de


leitura de tensão, denominados “Measurement Probe”, funcionando como uma ponta de
prova. Na barra do lado direito do software encontra-se uma série de instrumentos de
medição, que também podem ser acessados através do menu Simulate→Instruments.

Figura 116 - Ponta de prova.

Para colocar uma ponta de prova, basta arrastá-la e solta-la sobre a conexão
que se deseja realizar a medição. Ao fazer isso ira aparecer um pequeno triângulo verde
sobre a conexão. Altere nas propriedades da prova, os valores que iram aparecer na
leitura para apenas a tensão instantânea.

74
Figura 117 - Propriedades da ponta de prova, mostrar somenta a tensão.

Resultado do valor zero inserido na entrada, a ponta de prova está apenas sobre
o bit menos significativo, no caso o D. Repare que a tensão não chegou completamente
à zero, ficando em torno de alguns picos volts.

Figura 118 - Resultado zero.

Outros resultados, a seguir.

75
Figura 119 - Resultado um.

Figura 120 - Resultado nove.

Figura 121 - Resultado dez, o display fica apagado de agora em diante.

Finalizamos o projeto, com o auxilio do Multisim uma ferramenta poderosa


para montar esquemáticos e simulá-los, diminuindo erros ao montar na parte prática.

76

Você também pode gostar