DI2022802 2022 1 AULA07

De MediaWiki do Campus São José
Revisão de 12h44min de 19 de maio de 2022 por Douglas (discussão | contribs) (Referências)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Codificadores e Decodificadores

Estes termos diferenciam-se por uma questão de referência dos circuitos combinacionais. O termo decodificador significa obter informação a partir de um código. O termo codificador significa gerar um código a partir de uma informação. A Figura 1 ilustra a diferença entre codificador e decodificador.


Fig45 DIG222802.png

Figura 1 - Exemplo de codificação e decodificação digital.

O teclado faz o papel de um codificador, transformando a linguagem natural (conhecida) em linguagem digital. O codificador transforma essa linguagem e códigos binários para serem utilizadas no processamento. Depois do processamento, essa linguagem binária é decodificada para a linguagem natural para ser exibida num display de 7 segmentos. Resumidamente o teclado converte um número em código decimal para uma número em código binário e depois do binário para decimal para mostrar no display. Mas antes de entrarmos mais a fundo nos codificadores e decodificadores, vamos apresentar alguns códigos (linguagens) utilizados em sistemas digitais.


Códigos Binários

O código binário é a forma de traduzir a necessidades de representação das informações em um sistema binário. Codificação é a solução padrão para estes casos, ou seja, cada informação pode ser associada a uma palavra binária. Dependendo a situação um código apresenta vantagens em relação a outros. Existem códigos muito difundidos para representar caracteres numéricos ou alfanuméricos tais como ASC e EBCDIC, sendo que ASC ou ASCII os mais conhecidos.


Código BCD 8421

A sigla BCD representa as iniciais de Binary-Coded Decimal, que significa decimal codificado em binário. Os dígitos 8421 representam o valor em decimal do correspondente dígito em binário (). A Tabela 1 mostra o código BCD.


Tabela 1 - Código BCD 8421
Decimal BCD 8421
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001




Código excesso 3

Este código é obtido transformando-se o número decimal no binário correspondente e somando-se três unidades a este.

Exemplo


Tabela 2 - Código Excesso 3
Decimal Excesso 3
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100




Código 2 entre 5

Este código sempre possui dois bits 1 dentre 5.


Tabela 3 - 2 entre 5
Decimal 2 entre 5
0 00011
1 00101
2 00110
3 01001
4 01010
5 01100
6 10001
7 10010
8 10100
9 11000




Código Johnson

Utilizado pelo contador deslocador em anel com saída invertida, conhecido como contador Johnson.


Tabela 4 - Código Johnson
Decimal Johnson
0 00000
1 10000
2 11000
3 11100
4 11110
5 11111
6 01111
7 00111
8 00011
9 00001




Código 9876543210

Este código utiliza 10 dígitos binários para representar um dígito decimal. Notem que o bit 1 vai na posição correspondente ao dígito binário da direita para esquerda começando do 0 (zero).


Tabela 5 - Código 9876543210
Decimal 9876543210
0 0000000001
1 0000000010
2 0000000100
3 0000001000
4 0000010000
5 0000100000
6 0001000000
7 0010000000
8 0100000000
9 1000000000




Código Gray

De todos os código estudados até aqui, esse é o mais conhecido e também o mais utilizado. Caracteriza-se pelo fato que entre um número e outro apenas um bit varia. Porém, é importante lembrar que esse código não é ponderado nem é um código aritmético, isto é, não há pesos específicos atribuídos às posições dos bits. O caráter importante do código Gray é que ele exibe só uma mudança de um bit de um número de código para o seguinte. Esta propriedade é muito importante em muitas aplicações, tais como codificadores, onde a suscetibilidade a erros se incrementa com o número de mudanças de bit em sequência entre números adjacentes. A Tabela 6 mostra o código Gray comparado ao binário.


Tabela 6 - Código Gray
Decimal Binário Gray
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000


A Tabela 6 representa o código Gray de quatro bits para números decimais de 0 a 15. Como os números binários, o código Gray pode ter qualquer número de bits. Note a mudança de único bit entre os números sucessivos do código Gray. Por exemplo, lendo do decimal 3 ao 4, o código Gray muda de 0010 a 0110, enquanto a mudança binária vai de 0011 para 0100, uma mudança de três bits. Em uma única mudança, no terceiro bit da direita, origina-se o código Gray, sendo que os bits restantes permanecem iguais.

Códigos Alfanuméricos

Para a representação de números em sistemas digitais, existem diversos códigos como os que estudamos até agora. Porém, a linguagem moderna precisa representar os símbolos, como texto, por exemplo. Ao longo do tempo, muitos códigos foram utilizados para representar letras, números e símbolos como BAUDOT, EBCDIC, TRANSCODE e ASCII. Este último foi universalmente adotado para a maior parte dos sistemas digitais.


Código ASCII

O código ASCII (American Standart Code for Information Interchange) surgiu em 1963 é um dos códigos mais amplamente utilizados para representar informações textuais. Os caracteres do PC, e nos computadores mais modernos, ocupam um byte de 8 bits, de forma que pode haver , ou seja, 256 caracteres diferentes. A figura abaixo mostra cada um destes caracteres, e os seus códigos numéricos em decimal e respectivo valor em hexadecimal. Se observarmos mais atentamente para a tabela ASCII, veremos que ela começa com um grupo de caracteres bem estranho (os primeiros 32 caracteres, cujos códigos decimais vão de 0 a 31), seguidos por três colunas bem conhecidas: os dígitos de 0 a 9, as letras maiúsculas e minúsculas do alfabeto, e diversos sinais de pontuação. Estas quatro colunas constituem a primeira metade do conjunto de caracteres do PC, os caracteres ASCII, pois seguem um padrão universal em computadores. O ASCII propriamente dito são 128 caracteres, com códigos decimais de 0-127. Nosso conjunto de caracteres do PC tem o dobro, incluindo os códigos de 128 até 256. Em geral estes códigos maiores, que compõem a outra metade, são chamados caracteres ASCII estendidos. Estritamente falando, somente na primeira metade, os códigos 0-127, há códigos ASCII, mas ouviremos frequentemente as pessoas usando o termo ASCII como conjunto estendido, ou forma padrão de bits que representa um caractere. Desta forma, permite codificar cada letra e numero num código decimal que depois é armazenado no formato binário.

Um grupo de caracteres especiais

A metade ASCII de nosso conjunto de caracteres tem significado e definição que vão além da família PC - é um código universal usado por muitos computadores e outros equipamentos eletrônicos. Os caracteres ASCII estendidos, no entanto, constituem uma outra justificativa. Não há regras para esta metade de 128 a 255, e estes caracteres da figura foram especialmente criados para o PC. Por causa da importância e popularidade do PC, Os caracteres ASCII estendidos são usados não só pela família PC, mas também foram adotados no conjunto de caracteres de muitos computadores, parentes distantes do PC. Estes caracteres são organizados em três grupos principais: o grupo de caracteres estrangeiros, caracteres de desenho e os caracteres científicos. A Figura 2 mostra a tabela ASCII completa e seus respectivos códigos binário, octal e Hexadecimal.

Fig46 DIG222802.png

Figura 2 - Tabela ASCII e conversão para outros sistemas.

Caracteres ASCII comuns

Os caracteres convencionais da escrita possuem códigos de 32 a 127. Embora pareça que não há muito a falar sobre estes caracteres há diversos detalhes que podem ser extraídos com o intuito do entendimento. A tabela deixa bem claro que há uma separação entre letras maiúsculas e minúsculas, que A não é a mesma coisa que a. Então, quando se usa um programa que ordene em ordem alfabética o a aparecerá depois que o A ou o Z, por exemplo.

Caracteres de controle ASCII

Os primeiros 32 códigos no conjunto de caracteres ASCII, códigos de 0 a 31, têm um uso especial que não tem nada a ver com a aparência dos caracteres mostrados. Eles são utilizados para funções especiais de impressão e em protocolos de comunicação. Eles podem por exemplo ser utilizados para informar o final de uma linha ou final de uma página, etc. A tabela a seguir mostra estes caracteres de controle e seu significado.

Resumo
"A tabela ASCII existe dentro de todos os computadores do planeta terra!"


Permite codificar cada letra e numero num código decimal que depois é armazenado no formato binário.

Conversor de código BCD 8421 para 9876543210

Deseja-se encontrar o conversor que transforme as informações codificadas em BCD 8421 para 9876543210. A Tabela 7 mostra um processo de conversão BCD - Decimal - 9876543210.

Tabela 7 - BCD - Decimal - 9876543210
BCD 8421
ABCD
Decimal 9876543210
S9S8S7S6S5S4S3S2S1S0
0000 0 0 0 0 0 0 0 0 0 0 1
0001 1 0 0 0 0 0 0 0 0 1 0
0010 2 0 0 0 0 0 0 0 1 0 0
0011 3 0 0 0 0 0 0 1 0 0 0
0100 4 0 0 0 0 0 1 0 0 0 0
0101 5 0 0 0 0 1 0 0 0 0 0
0110 6 0 0 0 1 0 0 0 0 0 0
0111 7 0 0 1 0 0 0 0 0 0 0
1000 8 0 1 0 0 0 0 0 0 0 0
1001 9 1 0 0 0 0 0 0 0 0 0
1010 -- X X X X X X X X X X
1011 -- X X X X X X X X X X
1100 -- X X X X X X X X X X
1101 -- X X X X X X X X X X
1110 -- X X X X X X X X X X
1111 -- X X X X X X X X X X


Notem que não existe representação dos números 10, 11, 12, 13, 14 e 15 no código 9876543210 e nem no código BCD 8421, mas existe representação destes números quando da utilização de 4 dígitos binários. Assim a solução consiste em não permitir a ocorrência dos números de 10 até 15 e considerar o código 9876543210 irrelevante nestas condições, o que poderá resultar na simplificação das funções.

Exercício de fixação

Faça a simplificação da Tabela 8 utilizando os Mapas de Karnaugh considerando dos termos irrelevantes (10 a 15) para uma melhor simplificação.

Tabela 8 - Expresssões simplificadas pelo Mapa de Karnaugh
ABCD S9S8S7S6S5S4S3S2S1S0 Expressão
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001




Conversor BCD 8421 para Excesso 3

A Tabela 9 mostra o processo do circuito digital conversor do código BCD 8421 para Excesso 3.


Tabela 9 - BCD - Decimal - Excesso 3
BCD 8421
ABCD
Decimal Excesso 3
S3S2S1S0
0000 0 0011
0001 1 0100
0010 2 0101
0011 3 0110
0100 4 0111
0101 5 1000
0110 6 1001
0111 7 1010
1000 8 1011
1001 9 1100
1010 -- XXXX
1011 -- XXXX
1100 -- XXXX
1101 -- XXXX
1110 -- XXXX
1111 -- XXXX

Abaixo estão as funções simplificadas, utilizando o Mapa de Karnaugh e condições irrelevantes. Lembrando que, diferentemente da simplificação BCD - 9876543210, - onde apenas uma saída por vez era atvida, agora existem mais saídas que devem fazer parte da simplificação.

Solução


Conversor BCD 8421 para Display de 7 Segmentos

Este conversor é comumente chamado decodificador BCD para 7 segmentos. O display de 7 segmentos permite à escrita de números de 0 a 9 e alguns símbolos que podem ser letras ou sinais. A Figura 3 apresenta o um display de 7 segmentos com a identificação de cada um dos seus segmentos.

Fig47 DIG222802.png

Figura 3 - Display de 7 segmentos.


Existem dois tipos de display de 7 segmentos: cátodo comum e ânodo comum. Para acender qualquer dos segmentos é necessário ativar o referido segmento. No caso do cátodo comum a lógica é positiva ou ativo alto, ou seja, se acende segmento colocando em nível lógico alto, como por exemplo (na lógica TTL) coloca-se: +5V. Também é preciso de um resistor limitador de corrente para que o segmento do display não queime, a corrente máxima que passa em cada segmento, deve ficar entre 10 e 20mA. Sendo um valor muito utilizado um resistor de 330 ohms para cada segmento. No caso de ânodo comum a lógica é negativa ou ativo baixo. Para se acender um dos segmentos é necessário aplicar o nível lógico baixo (0V da lógica TTL). Mas lembres-se, também é preciso fazer uso do resistor limitador de corrente sobre pena de queimar o segmento do display. A Figura 4 mostra como é a representação de cada número conforme os LEDs acessos no display de 7 segmentos.


Fig48 DIG222802.png

Figura 4 - Representação dos números no Display de 7 segmentos.


Implementação do conversor BCD para 7 segmentos

A Tabela 10 mostra conversor do código BCD 8421 para display de 7 segmentos cátodo comum.


Tabela 10 - BCD - Decimal - 7 segmentos
BCD 8421
ABCD
Decimal 7 segmentos
a b c d e f g
0000 0 1 1 1 1 1 1 0
0001 1 0 1 1 0 0 0 0
0010 2 1 1 0 1 1 0 1
0011 3 1 1 1 1 0 0 1
0100 4 0 1 1 0 0 1 1
0101 5 1 0 1 1 0 1 1
0110 6 0 0 1 1 1 1 1
0111 7 1 1 1 0 0 0 0
1000 8 1 1 1 1 1 1 1
1001 9 1 1 1 1 0 1 1
1010 -- X X X X X X X
1011 -- X X X X X X X
1100 -- X X X X X X X
1101 -- X X X X X X X
1110 -- X X X X X X X
1111 -- X X X X X X X

As expressões simplificadas são:

Solução

Lista de Exercícios

  1. Desenhe os circuitos lógicos para o codificador e decodificador BCD 8421 e Exesso3.
  2. Projetar os seguintes conversores de código:
    1. Excesso 3 para BCD 8421;
    2. BCD 8421 para 2 entre 5;
    3. BCD 8421 para Johnson;
    4. BCD 8421 para Gray;
    5. Gray para BCD 8421.
  3. Desenhe o circuito do conversor BCD para 7 segmentos.

Referências

[1] CASAGRANDE, Jorge H. B.. Apostila: ELETRÔNICA DIGITAL 1 CAPÍTULO 3 – Circuitos Combinacionais. CEFET/SC, 2005.

[2] Mapa de Veitch-Karnaugh On-line



Icone voltar.png Icone menu.png Icone prox.png