Você está na página 1de 27

Codificadores e Decodificadores

Nikolas Libert

Aula 6
Eletrônica Digital ET52C
Tecnologia em Automação Industrial
Codificadores e Decodificadores

Codificadores e Decodificadores

 Uma mesma informação pode ser representada de


formas diferentes.
– Exemplo: Um número negativo pode ser armazenado
na notação sinal-módulo ou complemento de 2.
 Muitas vezes é necessária a conversão entre as
diversas representações possíveis de um dado.
– Para isso são utilizados os circuitos codificadores e
decodificadores.

DAELT ● Nikolas Libert ● 2


Codificadores e Decodificadores

 Codificadores:
– Circuitos combinacionais.
– Recebem uma variável digital (de 1 ou mais bits) como
parâmetro de entrada.
– Fornecem na saída a mesma variável de entrada
representada de forma diferente.
 Exemplo:
– Codificador decimal binário.
Codificação Binária Codificação Decimal
0: 0b000 0: 0b00001
1: 0b001 1: 0b00010
2: 0b010 2: 0b00100
3: 0b011 3: 0b01000
4: 0b100 4: 0b10000

DAELT ● Nikolas Libert ● 3


Codificadores e Decodificadores

 Exemplo Decimal Binário


– Codificador decimal binário 0 0 0 0 0
1 0 0 0 1

Entrada
2 0 0 1 0
3
3 0 0 1 1
Codificador
4 0 1 0 0
7 8 9
5 0 1 0 1
4 5 6 Saída
6 0 1 1 0
1 2 3 0b0011
7 0 1 1 1
0
8 1 0 0 0
9 1 0 0 1
Ao pressionar uma tecla deve haver uma
conversão de decimal para binário. O 10 entradas x 4 saídas
processador da calculadora opera com
número binários.
DAELT ● Nikolas Libert ● 4
Codificadores e Decodificadores

7 8 9
4 5 6 Codificador Processador Decodificador
1 2 3 X Aritmético Y
0

Decimal Binário Binário 7 segmentos

 O decodificador converte o sinal do processador para


um formado compatível com o visor de 7 segmentos.
 A definição de codificador ou decodificador depende
apenas do ponto de vista. Para o processador, o
elemento Y é um codificador. Para o visor, Y poderia
ser considerado um decodificador.

DAELT ● Nikolas Libert ● 5


Codificador Decimal/BCD8421

Codificador Decimal/BCD8421
BCD=”Binary Coded Decimal”
1 0
Entrada Saída
9 8 7 6 5 4 3 2 1 0 3 2 1 0 E9
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 E8 S3
1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 E7 S2
2 0 0 0 0 0 0 0 1 0 0 0 0 1 0 E6 S1
3 0 0 0 0 0 0 1 0 0 0 0 0 1 1 E5 Codificador S0
Decimal /
4 0 0 0 0 0 1 0 0 0 0 0 1 0 0 E4 BCD
5 0 0 0 0 1 0 0 0 0 0 0 1 0 1 E3
6 0 0 0 1 0 0 0 0 0 0 0 1 1 0 E2
7 0 0 1 0 0 0 0 0 0 0 0 1 1 1
E1
8 0 1 0 0 0 0 0 0 0 0 1 0 0 0
E0
9 1 0 0 0 0 0 0 0 0 0 1 0 0 1

DAELT ● Nikolas Libert ● 6


Codificador Decimal/BCD8421

 Obtenção da função que representa a saída


– Cada saída é analisada separadamente
Entrada Saída Saída 3:
9 8 7 6 5 4 3 2 1 0 3 2 1 0
S3 = E8+E9
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 Saída 2:
2 0 0 0 0 0 0 0 1 0 0 0 0 1 0
S2 = E4+E5+E6+E7
3 0 0 0 0 0 0 1 0 0 0 0 0 1 1
4 0 0 0 0 0 1 0 0 0 0 0 1 0 0 Saída 1:
5 0 0 0 0 1 0 0 0 0 0 0 1 0 1
S1 = E2+E3+E6+E7
6 0 0 0 1 0 0 0 0 0 0 0 1 1 0
7 0 0 1 0 0 0 0 0 0 0 0 1 1 1 Saída 0:
8 0 1 0 0 0 0 0 0 0 0 1 0 0 0
S0 = E1+E3+E5+E7+E9
9 1 0 0 0 0 0 0 0 0 0 1 0 0 1

DAELT ● Nikolas Libert ● 7


Codificador Decimal/BCD8421

 Implementação do circuito digital S3 = E8+E9


S2 = E4+E5+E6+E7
E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 S1 = E2+E3+E6+E7
S0 = E1+E3+E5+E7+E9

S3

S2

S1

S0

DAELT ● Nikolas Libert ● 8


Codificador Decimal/BCD8421

 CI Dedicado
– 74LS147.
– Possui lógica mais completa.
– Se mais de uma entrada for ativada simultaneamente,
retorna o código para a entrada mais alta.

DAELT ● Nikolas Libert ● 9


Decodificador BCD8421/Decimal

Decodificador BCD8421/Decimal

Entrada Saída
3 2 1 0 9 8 7 6 5 4 3 2 1 0 S9
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 E3 S8
0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 E2 S7
0 0 1 0 0 0 0 0 0 0 0 1 0 0 2 E1 S6
0 0 1 1 0 0 0 0 0 0 1 0 0 0 3 E0 Decodificador S5
BCD /
0 1 0 0 0 0 0 0 0 1 0 0 0 0 4 S4
Decimal
0 1 0 1 0 0 0 0 1 0 0 0 0 0 5 S3
0 1 1 0 0 0 0 1 0 0 0 0 0 0 6
S2
0 1 1 1 0 0 1 0 0 0 0 0 0 0 7
S1
1 0 0 0 0 1 0 0 0 0 0 0 0 0 8
S0
1 0 0 1 1 0 0 0 0 0 0 0 0 0 9

DAELT ● Nikolas Libert ● 10


Decodificador BCD8421/Decimal

 Obtenção da função que representa a saída


– Cada saída é analisada por mapa de Karnaugh
Entrada Saída Saída 9:
3 2 1 0 9 8 7 6 5 4 3 2 1 0 C C
0 0 0 0 B
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 A
0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 B
X X X X
0 0 1 0 0 0 0 0 0 0 0 1 0 0 2 A
0 1 X X B
0 0 1 1 0 0 0 0 0 0 1 0 0 0 3 D D D
0 1 0 0 0 0 0 0 0 1 0 0 0 0 4
5
S9 = AD
0 1 0 1 0 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 0 1 0 0 0 0 0 0 6 S9 = E3.E0
0 1 1 1 0 0 1 0 0 0 0 0 0 0 7 A codificação BCD só é definida
1 0 0 0 0 1 0 0 0 0 0 0 0 0 8 de 0 a 9. Outros valores são
irrelevantes (X) para o mapa de
1 0 0 1 1 0 0 0 0 0 0 0 0 0 9 Karnaugh.
A B C D
DAELT ● Nikolas Libert ● 11
Decodificador BCD8421/Decimal
Saída 8: Saída 7:
Entrada Saída C C C C
0 0 0 0 B 0 0 0 0 B
3 2 1 0 8 7 6 5 A A
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 B B
X X X X X X X X
0 0 0 1 0 0 0 0 A A
1 0 X X B 0 0 X X B
0 0 1 0 0 0 0 0 D D D D D D
0 0 1 1 0 0 0 0 S8 = E3.E0 S7 = E2.E1.E0
0 1 0 0 0 0 0 0
0 1 0 1 0 0 0 1 Saída 6: Saída 5:
0 1 1 0 0 0 1 0 C C C C
0 1 1 1 0 1 0 0 0 0 0 0 B 0 0 0 0 B
A A
1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0
B B
1 0 0 1 0 0 0 0 X X X X X X X X
A A
0 0 X X B 0 0 X X B
A B C D
D D D D D D
S6 = E2.E1.E0 S5 = E2.E1.E0
DAELT ● Nikolas Libert ● 12
Decodificador BCD8421/Decimal

Entrada Saída  Obtenha as funções para as


3 2 1 0 4 3 2 1 0 saídas S4, S3 e S1.
0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 1 0
0 0 1 0 0 0 1 0 0
0 0 1 1 0 1 0 0 0 C C
B
0 1 0 0 1 0 0 0 0 A
0 1 0 1 0 0 0 0 0 B
0 1 1 0 0 0 0 0 0 A
B
0 1 1 1 0 0 0 0 0 D D D
1 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0
A B C D

DAELT ● Nikolas Libert ● 13


Decodificador BCD8421/Decimal

 Implementação do circuito digital


E3 E2 E1 E0

S9 S9 = E3.E0
S8 = E3.E0
S8 S7 = E2.E1.E0
S7 S6 = E2.E1.E0
S6 S5 = E2.E1.E0
S4 = E2.E1.E0
S5
S3 = E2.E1.E0
S4 S2 = E2.E1.E0
S3 S1 = E3.E2.E1.E0
S2 S0 = E3.E2.E1.E0
S1
S0
DAELT ● Nikolas Libert ● 14
Decodificador BCD8421/Decimal

 CI Dedicado
– 74LS42

DAELT ● Nikolas Libert ● 15


Código Gray

Código Gray
 Sempre que há o incremento de uma unidade, apenas
1 bit muda de estado.
 Código criado quando os circuitos digitais eram
montados com válvulas.
– Mudanças de estado em vários bits simultaneamente
necessitavam de potência elevada e geravam ruído.
– Nos contadores digitais Gray, apenas um bit mudava
por vez, evitando problemas.

DAELT ● Nikolas Libert ● 16


Código Gray

 Tabela do Código Gray para número de 0 a 15.


– No bit menos significativo, se repete o padrão 0-1-1-0.
– No próximo bit mais significativo, cada elemento do
mesmo padrão é duplicado, e assim sucessivamente.
0-0-1-1-1-1-0-0.
Código Gray Código Gray
0 0 0 0 0 8 1 1 0 0
1 0 0 0 1 9 1 1 0 1
2 0 0 1 1 10 1 1 1 1
3 0 0 1 0 11 1 1 1 0
4 0 1 1 0 12 1 0 1 0
5 0 1 1 1 13 1 0 1 1
6 0 1 0 1 14 1 0 0 1
7 0 1 0 0 15 1 0 0 0

DAELT ● Nikolas Libert ● 17


Código Gray

 O Código Gray ainda é muito utilizado em


codificadores óticos. http://en.wikipedia.org/wiki/Rotary_encoder
– Leitura de posição em eixos de motores.
– Sem Código Gray, o mau alinhamento dos sensores
óticos geraria sinais espúrios na transição entre as
seções dos discos.
101 110 100 110

100 111 101 111

011 000 001 011

010 001 000 010


Codificação Convencional Codificação Gray
DAELT ● Nikolas Libert ● 18
Código Gray

 Erro de alinhamento nos sensores óticos.


– Entre a passagem da posição 5 para a posição 6,
haverá uma leitura espúria indicando que o disco está
na posição 7.

Leitura: Leitura: Leitura:


0b101 = 5 0b111 = 7 0b110 = 6

DAELT ● Nikolas Libert ● 19


Código Gray

 Exercício:
– Monte a tabela de conversão de BCD para Gray.
– Ache as funções mínimas para as 4 saídas.
– Desenhe o circuito resultante.

G3=A
G2=A+B
G1=B+C
G0=C+D

DAELT ● Nikolas Libert ● 20


Display de 7 Segmentos

Display de 7 Segmentos
 Formados por 7 LEDs:
– Dois tipos: Anodo Comum ou Catodo Comum
anodo
a
Ativado com
nível baixo
f b a b c d e f g
g

e c a b c d e f g
Ativado com
d nível alto
catodo

DAELT ● Nikolas Libert ● 21


Display de 7 Segmentos

 A combinação de entradas ativas necessárias para


formar um dígito pode ser considerada um código.
Dígito Código 7 Segmentos Considerando
a b c d e f g Catodo Comum:
Nível 1 = Aceso
0 1 1 1 1 1 1 0
1 0 1 1 0 0 0 0 a
2 1 1 0 1 1 0 1
3 1 1 1 1 0 0 1 f b
4 0 1 1 0 0 1 1
g
5 1 0 1 1 0 1 1
6 1 0 1 1 1 1 1
e c
7 1 1 1 0 0 0 0
8 1 1 1 1 1 1 1 d
9 1 1 1 1 0 1 1

DAELT ● Nikolas Libert ● 22


Decodificador BCD8421/7 Segmentos

Decodificador BCD8421/7 Segmentos


C C C C
Entrada Saída 1 0 1 1 B 1 1 1 1 B
(BCD) (7 Segmentos) A A
0 1 1 1 1 0 1 0
3 2 1 0 a b c d e f g B B
X X X X X X X X
0 0 0 0 0 1 1 1 1 1 1 0 A A
1 1 X X B 1 1 X X B
1 0 0 0 1 0 1 1 0 0 0 0 D D D D D D
2 0 0 1 0 1 1 0 1 1 0 1 a=A+C+BD+BD b=A+B+AD+CD
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1 C C C C
5 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 B 1 0 1 1 B
A A
6 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1
B B
7 0 1 1 1 1 1 1 0 0 0 0 X X X X X X X X
A A
8 1 1 X X B 1 1 X X B
1 0 0 0 1 1 1 1 1 1 1
D D D D D D
9 1 0 0 1 1 1 1 1 0 1 1
c=C+B+D d=A+BC+BD+CD+BCD
ABCD
DAELT ● Nikolas Libert ● 23
Decodificador BCD8421/7 Segmentos

 Achando as funções para as 7 saída, é possível


montar o circuito digital do decodificador.
a = A+C+BD+BD
b = A+B+AD+CD
c = C+B+D
d = A+BC+BD+CD+BCD
e = BD+CD
f = A+CD+BC+BD
g = A+BC+BC+CD

 CIs Dedicados
– 74LS47 (Anodo Comum)
– 74LS48 (Catodo Comum)

DAELT ● Nikolas Libert ● 24


Exercício: Dado digital

Exercício: Dado digital


 5 LEDs serão utilizados para montar um dado digital
 Os números serão representados conforme mostrado
abaixo. Utilize a nomenclatura indicada para os LEDs.

a b 0 1 2

d e 3 4 5

DAELT ● Nikolas Libert ● 25


Exercício: Dado digital

 Assim:
– Monte a tabela que relaciona um número em BCD com
os respectivos estados dos LEDs (considere que o
valor de entrada só pode estar entre 0 e 5).
– Ache as funções mínimas para cada LED de saída.
– Desenhe o diagrama do circuito final.

a=B+C
b=B
c=D
d=B
e=B+C

DAELT ● Nikolas Libert ● 26


Referências

 IDOETA, I. V., CAPUANO, F. G. Elementos de


Eletrônica Digital, 41ª Edição, Érica, São Paulo, 2013.

DAELT ● Nikolas Libert ● 27