ELT2
"Para quem não crê, nenhuma explicação é possível. Para quem crê, nenhuma explicação é
necessária".
Pe. Donizete
Eng.º Lacyr João Sverzut - Reedição 02/2009
1
1. INTRODUÇÃO
Em nossos dias ouvimos falar muito na eletrônica digital ou sistemas digitais. Fica
óbvio que o desenvolvimento desta tecnologia veio trazer um volume imenso de
inovações em todas as áreas em que a eletrônica é necessária.
Buscaremos em nossos estudos e pesquisas trazer ao vosso conhecimento os
conhecimentos básicos e avançados que permitirão buscar uma evolução constante do
discente. Meu objetivo, como seu professor, é o de apontar o horizonte deste
conhecimento e auxiliá-lo na construção do mesmo. Eu disse auxiliá-lo, pois a minha
função será esta mesma já que um professor sabe que todo potencial emana de seu
aluno e não do próprio professor.
Todos os tópicos que estudaremos dentro dos sistemas digitais foram derivados a
partir de sistema analógicos já que nós somos “seres analógicos” por natureza.
Podemos ver no nosso cotidiano que muitos dos instrumentos analógicos foram
substituídos por instrumentos digitais, até mesmo o simples termômetro doméstico para
se medir a temperatura corporal.
2. Sinais Analógicos e Sinais Digitais
Todo sinal elétrico ou informação possui uma forma de representação, em nosso
caso iremos abordar os sinais analógicos e os sinais ou informações digitais.
2.1. Sinais Analógicos
Os sinais analógicos são representados por símbolos ou figuras que são
continuamente variáveis como, por exemplo, os ponteiros de um relógio cujas posições e
ângulos determinam a hora. Ou ainda o termômetro clínico com coluna de mercúrio cuja
altura irá mostrar a variação da febre.
A representação gráfica de um sinal analógico senoidal na frequência de 1 Hz (
onde 1 Hertz = 1 ciclo por segundo) pode ser vista na figura 1. Podemos ver que a
representação do sinal é continuamente variável, de acordo com a característica senoidal
e alternada do sinal. Pode-se notar que o sinal tem sua variação de tensão (amplitude)
em torno dos valores máximos de pico do sinal 1 Vp e -1Vp. Dentro dos tempos do ciclo
2
completo da onda a mesma poderá assumir valores correspondentes ao tempo de 0 a
V[volts]
1Vp
T2
T1 0,5
1
t[s]
-1Vp
1segundo.
Figura 1 -
Representação de um sinal analógico senoidal
Se o sinal for um sinal de áudio, mais complexo em termos de freqüências, a
representação seria da forma que se vê na figura 2, onde é representado um trecho de
uma música.
Figura 2 -
Representação de um sinal de áudio (trecho de música).
2.2. Sinais Analógicos
Sistemas analógicos são aqueles que manipulam quantidades ou variáveis físicas que
podem variar ao longo de uma faixa contínua de valores. Como exemplo podemos citar o
ajuste de luminosidade de uma lâmpada incandescente, ajustado por um potenciômetro
que pode selecionar qualquer nível de luminosidade da lâmpada desde apagada até o
máximo de luminosidade.
3
2.3. Sinais Digitais
Os sinais digitais tem seus níveis representados por símbolos discretos, denominados
dígitos, o que irá levar a uma representação discreta do sinal. Uma representação a níveis
discretos significa que as variações do sinal digital em função do tempo será discreta ou
em degraus ou passo a passo.
Alguns autores utilizam a analogia seguinte para diferenciar as representações analógica
e digital dos sinais.
Analógica /Amostragem contínua
Digital / Amostragem discreta (passo a passo)
Uma questão se apresenta: Qual a diferença entre a manipulação de dados analógicos e
digitais?
Podemos citar como exemplo a leitura de um velocímetro de auto analógico e um
velocímetro digital. Em um velocímetro analógico como o da figura 3 várias pessoas
poderão fazer a leitura de forma diferente frente a uma multa por excesso de velocidade.
Figura 3 -
Velocímetro analógico
O policial irá multá-lo em uma velocidade de 83 km/h e você irá jurar que estava a 80
km/h! E assim várias pessoas poderiam realizar leituras diferentes dependedo do ponto
de vista . Já em um velocímetro digital a leitura seria como no exemplo da figura 4.
4
Figura 4 -
Velocímetro digital
Este mesmo tipo de erro na leitura, conhecido como erro de paralaxe, ocorre entre uma
leitura em um multímetro analógico, um termômetro de mercúrio, etc.
2.4. Vantagens e Limitações das técnicas digitais
2.4.1. Vantagens
- Maior facilidade nos projetos pois são, basicamente, circuitos de chaveamento onde
são importantes as faixas de tensões e não a exatidão da tensão a ser aplicada.
- Facilidade de armazenamento de informações.
- Maior facilidade de manter a exatidão e precisão.
- Permitem a programação das operações.
- Menor suscetibilidade aos ruídos.
- Maior escala de integração visto que uma grande parte dos componentes utilizados
na eletrônica analógica não necessitam serem incluídos (capacitores, resistores de
precisão, transformadores).
2.4.2. Limitações
São poucas as limitações mas todo os problemas derivam do tempo necessário para a
conversão das grandezas analógicas em digitais. Posto que o mundo real é quase
inteiramente analógico e que grande parte de suas grandezas são analógicas...
5
3. SISTEMAS DE NUMERAÇÃO
Neste capítulo iremos estudar alguns dos sistemas de numeração mais utilizados no
estudo dos sistemas digitais. Estes são de importância fundamental para o conhecimento
e estudo da lógica digital.
3.1. Sistema de Numeração Decimal
O sistema decimal é composto pela base 10 e pelos símbolos (algarismos) 0, 1, 2, 3, 4,
5, 6, 7, 8 e 9. Com estes componentes podemos formar quaisquer números desejados.
Você verá que a “mecânica” de todo sistema numérico é a mesma: a base é X e os
algarismos vão de 0 a (X-1).
O valor de um número neste sistema, bem como nos outros sistemas de numeração que
veremos a seguir, depende da posição em que se encontra o algarismo pois, de acordo
com a posição do mesmo, este terá um determinado peso.
Este peso é obtido através da base (10) elevada a um expoente que depende de sua
posição, como podemos ver abaixo.
10n .........
104
103
102
101
100
,
......... Dezena de milhar milhar centena dezena unidade Vírgula
decimal
10-1 10-2 ....... 10-n
.......
Assim, quando queremos formar um número no sistema decimal, basta colocar o
algarismo na sua devida posição para que o mesmo determine o valor numérico do
algarismo:
Exemplo: Formação do número inteiro1.238.
103 102 101 100
1
2
3
8
Assim, o número é formado como pode ser visto a seguir:
1 x 103 = 1.000+
2 x 102 = 200+
3 x 101 =
30+
8 x 100 =
8+
Total
1.238
6
3.2. Sistema de Numeração Binário
O sistema de numeração binário é composto pela base 2 e pelos algarismos 0 e 1.
Da mesma forma que no sistema decimal, o valor de um determinado número depende da
posição de seus dígitos. No sistema binário as posições são obtidas, da mesma forma
que no sistema decimal, elevando-se a base a expoentes que vão de 0 até n.
n
2
.........
4
2
2
3
2
2
1
0
2
2
MSB .........
-1
,
2
-2
2
Vírgula
decimal
.......
-n
2
....... LSB
Cada uma das posições acima representa um peso para o numero binário, sendo que a
0
posição 2-n (ou 2 nos casos dos números inteiros)representa o dígito menos significativo
n
(LSB) e a posição 2 representa o dígito mais significativo (MSB).
Você vai ouvir falar muito em “bit” durante sua vida. Esta palavra muito utilizada nada
mais é do que uma abreviatura, na língua inglesa, de binary digit. Portanto dizer dígito ou
algarismo binário ou bit, dá na mesma. Portanto, quando se diz que um determinado
número possui 5 bits estamos dizendo que o mesmo possui 5 algarismos binários.
Tomemos o exemplo a seguir.
Pesos 23
22
21
20
1
0
1
1
,
2-1
2-2
2-3
1
0
1
MSB
LSB
Conversão de um número Decimal inteiro para Binário.
Para se converter um número decimal em binário devemos realizar sucessivas divisões
pela base 2 no número decimal. Ao final, basta escrevermos os restos das divisões como
nos mostra a figura do exemplo a seguir.
Exemplo: Realizar a conversão do número decimal 63 para binário.
63 2
62 31 2
1 30 15 2
1 14 7
2
6
3
2
1
2
1
2
1
0
0
1
7
1
A seta nos indica o sentido da leitura do resultado obtido.
Assim o número 63(10) será escrito como o binário 111111(2).
Exercício
Como exemplo realize a conversão do decimal 64 em binário.
3.2.1. Conversão de um número binário inteiro em um número decimal.
A conversão do número binário para número decimal é realizada multiplicando-se o dígito
pelo respectivo peso de sua posição em seguida somando-se com os outros produtos de
bits por peso do número. Podemos ver o procedimento no exemplo que segue.
Exemplo: Converter o binário 111111(2) em decimal.
25 24 23 22 21 20
1
1
1
1
1
1
Após colocar os pesos de cada posição do número, basta multiplicar o bit pelo peso e
somarmos aos outros produtos, ou seja;
1 x 25 + 1 x 24 + 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 1 x 32 + 1 x 16 + 1 x 8 + 1 x 4 +
1 x 2 + 1 x 1 = 32+16+8+4+2+1 = 63(10)
Cabe aqui ressaltar que, utilizando um número binário, com 4 bits poderemos representar
até o número decimal 15.
Por que motivo?
Sabemos que os 4 bits são representados na forma abaixo.
23 22 21 20
Ao escrevermos o número binário 1111(2), teremos:
8
8 4 2 1
1 1 1 1
Este é o maior número que podemos escrever com os 4 bits e corresponde ao decimal 15
(8+4+2+1)
Assim, com n bits em um número binário conseguiremos representar até o número
decimal de valor (2n-1).
Exercícios
1) Converter 1000000(2) em um número decimal.
2) Quantos bits são necessários para representar o decimal 1024 ?
3) Converter de decimal para binário os seguintes números:
a) 132(10)
b) 28(10)
c) 45(10)
d) 100(10)
e) 78(10)
4) Converter os números binários para decimais.
a) 1001100110(2)
9
b) 100000001(2)
c) 1010101(2)
d) 1001001(2)
e) 1111101(2)
Outra forma de conversão decimal inteiro para binário de forma muito mais facilitada é a
de utilizar a “cerca” e preencher a mesma com zero e um conforme a necessidade. Veja o
exemplo a seguir e repita todos os exercícios anteriores com a nova técnica.
Exemplo
Representar o número decimal 126 em binário.
- Determine o peso máximo a ser utilizado. Como? Veja a cerca:
28
27
256 128
26
25
24
23
22
21
20
64
32
16
8
4
2
1
Pela tabela, com os pesos em bases binária e convertidos para decimais, fica fácil ver
que a composição do número 126 não necessitará dos pesos 27 (128) e 28 (256). Assim,
a tabela necessária se reduz á seguinte. Por razões de facilidade passo a representar a
tabela com os valores dos pesos expressos em decimais.
64
32
16
8
4
2
1
- Preencha a tabela com 1 abaixo do peso que é necessário e 0 abaixo do peso
desnecessário.
64
32
16
8
4
2
1
1
1
1
1
1
1
0
Assim, 126(10) = 1111110(2)
10
Macetologia: Se “escondermos” uma posição qualquer da cerca dos pesos
veremos que a soma daquelas restantes à direita terá como resultado a
“escondida” menos 1.
Exemplo
64
32
16
8
4
2
1
Vê-se que a mão “esconde” a posição de peso 128, então a soma dos pesos à direita da
mão será 32+16+8+4+2+1=63. Que é o valor da posição escondida (64) menos 1!
3.3. Sistema de Numeração Octal
Apesar de pouco utilizado e já que estamos com a mão na massa vamos estudá-lo pois
conhecimento nunca é demais.
O sistema octal será formado por aquela “mecânica” já citada anteriormente, composto
por:
Base: 8
Algarismos: 0, 1, 2, 3, 4, 5, 6, e 7.
Como comentado anteriormente o processo de formação de qualquer sistema
numérico é fundamentado na base do sistema. Assim, no sistema octal, da mesma forma
que no sistema decimal, o valor de um determinado número depende da posição de seus
algarismos. No sistema octal os pesos das posições são obtidos elevando-se a base a
expoentes que vão de 0 até n
8n ......... 84 83 82 81 80
.........
Cada uma das posições acima representa um peso para a formação de um numero octal,
sendo que a posição 80 representa o algarismo menos significativo e a posição 8n
representa o algarismo mais significativo.
3.3.1. Conversão do Sistema Decimal para Sistema Octal.
11
Para se converter um número decimal em um número octal deveremos realizar
sucessivas divisões do número decimal pela base 8. Ao final, basta escrevermos os
restos das divisões como nos mostra o exemplo abaixo. Esta é a metodologia
ordináriamente utilizada e mais adiante veremos outra possibilidade mais eficaz e rápida.
Exemplo: Converter o número decimal 1752 em octal
1752 8
15 219 8
72
59 27
0
3
3
se
n ti
do
da
es
c ri
8
3
3
ta
Assim, teremos como resultado o número 1752(10) sendo representado pelo octal 3330(8).
Exercício: Realizar a conversão do número 230(10) para o sistema octal.
3.3.2. Conversão do Sistema Octal para o Sistema decimal
A conversão do número octal para número decimal é realizada multiplicando-se o
algarismo pelo respectivo peso de sua posição e somando-se com os outros produtos dos
algarismos pelo peso dos mesmos. Podemos ver o procedimento no exemplo que segue.
Exemplo: Converter o octal 300 em decimal.
82
81
80
3
0
0
Após colocar os pesos de cada posição do número, basta multiplicar o algarismo pelo
peso e somarmos aos outros produtos, ou seja;
3 x 82 + 0 x 81 + 0 x 80 = 3 x 64 + 0 x 8 + 0 x 1 = 192(10)
3.4. Sistema de Numeração Hexadecimal
12
Esse será um sistema de numeração extensivamente utilizado conjuntamente com o
decimal e o binário nos programas para microcontroladores já que números de linhas de
programação e os números são expressos em hexadecimal.
Neste sistema teremos:
Base: 16
Algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.
(10) (11) (12) (13) (14) (15)
Pode parecer estranho um sistema de numeração utilizar letras como algarismos, mas
isto é apenas uma estratégia para facilitar as conversões e evitar erros, como veremos a
seguir.
Mais uma vez o processo de formação é fundamentado na base do sistema. Assim, no
sistema hexadecimal, da mesma forma que no sistema decimal, o valor de um
determinado número depende da posição de seus dígitos. No sistema hexadecimal as
posições são obtidas elevando-se a base a expoentes que vão de 0 até n.
16n ......... 164 163 162 161 160
.........
Cada uma das posições acima representa um peso para o numero hexadecimal, sendo
que a posição 160 representa o dígito menos significativo e a posição 16n representa o
dígito mais significativo.
Por que são utilizadas letras no lugar dos algarismos que têm dois dígitos ?
A resposta é simples! Como iríamos saber se o número hexadecimal 110(16), por
exemplo, é 1-10 (um-dez) ou 11-0 (onze-zero) ou ainda 1-1-0 (um-um-zero) ?!?!?!?!?!?
Você poderia fazer nova pergunta: E qual é a diferença ??????
É simples:
a) Se o número for 1-10, quando formos colocar os pesos ele ficaria
161 160
1
10
dando um resultado.
b) Se o número fosse 11-0 , quando formos colocar os pesos ele ficaria
13
161 160
11
0
dando outro resultado.
c) Se o número fosse 1-1-0, quando formos colocar os pesos ele ficaria
162 161 160
1
1
0
dando um resultado ainda diferente.
Como solucionar o problema?
Arbitraram-se letras no lugar dos algarismos com dois dígitos, eliminando assim a
questão.
Assim, quando queremos escrever o hexadecimal 1-10(16) escrevemos 1A(16).
Quando queremos escrever o hexadecimal 11-0(16) escrevemos B0(16); e, para
escrevermos o hexadecimal 1-1-0(16) escrevemos 110(16).
3.4.1. Conversão do Sistema Decimal para o Sistema Hexadecimal.
Para converter um número decimal em hexadecimal deve-se realizar sucessivas
divisões,pela base 16, no número decimal. Ao final, basta escrevermos os restos das
divisões como nos mostra o exemplo abaixo.
Exemplo: Converter o número decimal 34 em hexadecimal
34
sen
2
tido
16
2
2
da
e
16
0
scr
ita
Assim o decimal 34(10) é o hexadecimal 22(16).
Realize como exercício a conversão do decimal 100(10) para hexadecimal.
14
3.4.2. Conversão do Sistema Hexadecimal para o Sistema Decimal
A conversão do número hexadecimal para número decimal é realizada multiplicando-se o
dígito pelo respectivo peso de sua posição e somando-se com os outros produtos dos
algarismos pelo peso dos mesmos. Podemos ver o procedimento no exemplo que segue.
Exemplo: Converter o hexadecimal 300(16) em decimal.
162 161 160
3 0 0
Após colocar os pesos de cada posição do número, basta multiplicar o algarismo pelo
peso e somarmos aos outros produtos, ou seja;
3 x 162 + 0 x 161 + 0 x 160 = 3 x 256 + 0 x 8 + 0 x 1 =768 (10)
Como exercício, converter o hexadecimal ABC(16) em decimal.
Exercícios
1. Converter para os sistemas de numeração solicitados.
a) 100(10) para N(2)
b) 100(10) para N(8)
c) 100(10) para N(16)
2. Converter os seguintes números para o sistema decimal.
a) 100101(2)
15
b) 1001100(2)
c) 9F(16)
d) FFA(16)
e) 18(8)
3.5. Conversão
entre
os
Sistemas
Octal/Hexadecimal
e
Hexadecimal/Octal
As conversões, entre os diversos sistemas vistos até o momento, poderão ser realizadas
de duas formas: uma delas utiliza o sistema decimal como intermediário:
N(16)
N(10)
N(8)
Outra forma utiliza o sistema binário como ferramenta.
N(16)
N(2)
N(8)
Conversão de Hexadecimal para Octal:
3.5.1. Conversão Hexadecimal/Octal utilizando o sistema decimal como
intermediário.
Como exemplo, utilizaremos o número hexadecimal 1FA para realizar a conversão para
octal.
162 161 160
1
F
A
1º passo: Converte-se o número para o sistema decimal, utilizando-se a cerca.
16
1x16²+15x16¹+10x160=256+240+10=506(10)
2º passo: Toma-se o número obtido e converte-se o mesmo para o sistema octal
dividindo-o sucessivamente pela base oito.
506 8
026 63 8
2 7 7 8
7 0
Assim chega-se ao valor do octal 772, equivalente ao hexadecimal 1FA.
3.5.2. Conversão
Octal/Hexadecimal
utilizando
o
sistema
decimal
como
intermediário.
Como exemplo, utilizaremos o número octal 772 para realizar a conversão para
hexadecimal.
82 81 80
7
7
2
1º passo: Converte-se o número para o sistema decimal, utilizando-se a cerca.
7x8²+7x8¹+2x80=448+56+2=506(10)
2º passo: Toma-se o número obtido e converte-se o mesmo para o sistema hexadecimal
dividindo-o sucessivamente pela base 16.
506 16
026 31
16
(10) (15) 1 16
A
F 1 0
Assim chega-se ao valor do hexadecimal 1FA equivalente ao octal 772.
17
3.5.3. Conversão
Hexadecimal/Octal
utilizando
o
sistema
Binário
como
intermediário.
Para facilitar as conversões podemos utilizar tabelas como as que são apresentadas a
seguir.
C B A OCTAL
0 0 0
0
0 0 1
1
0 1 0
2
0 1 1
3
1 0 0
4
1 0 1
5
1 1 0
6
1 1 1
7
D
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
A HEXA
0
0
1
1
0
2
1
3
0
4
1
5
0
6
1
7
0
8
1
9
0
A
1
B
0
C
1
D
0
E
1
F
1º passo: Representa-se o numero hexadecimal em um número binário, fazendo-se com
que cada algarismo do hexadecimal seja representando por um binário de 4 bits (dígitos).
Por exemplo, converter o hexadecimal 1FA para octal utilizando o decimal como
intermediário e depois utilizando o binário. Assim você poderá tirar suas conclusões de
qual metodologia você irá utilizar.
Farei aqui a conversão utilizando o binário como ferramenta.
1
F
A(16)
0 0 0 1 1 1 1 1 1 0 1 0(2)
18
2º passo: Agrupa-se, de 3 em 3 bits, o número binário encontrado. Fazendo-se a
conversão de cada grupo de 3 bits para o sistema decimal. O número encontrado será o
número octal desejado.
4 2 1 4 2 1 4 2 1 4 2 1
0 0 0 1 1 1 1 1 1 0 1 0
0
3.5.4. Conversão
7
Octal/Hexadecimal
7
2(8)
utilizando
o
sistema
Binário
como
intermediário.
Primeiramente converte-se o octal em binário, fazendo-se com que cada algarismo do
úmero octal seja representado por um binário de 3 bits. Tomemos como exemplo a
conversão do octal 772 para hexadecimal.
7
7
2(8)
1 1 1 1 1 1 0 1 0
2º Passo – Agrupe-se 4 em 4 bits, e faz-se a conversão de cada grupo de 4 bits para o
sistema decimal. O número encontrado é o hexadecimal.
0 0 0 1 1 1 1 1 1 0 1 0
1
F
A(16)
EXERCÍCIOS:
1) - Converter os hexadecimais para decimais:
a)AF
b)B01
c)CA1
d)110
19
2) - Converter os octais para decimais:
a)10
b)70
c)101
d)110
3) - Converter de octal para hexadecimais.
a)106
b)107
c)201
d)777
e)681
4) - Converter de hexadecimal para octal.
a)105
b)AF
c)B01
d)CAF
e)110A
3.6. Códigos
A representação de símbolos ordinários em grupos especiais são chamadas
de códigos. Exemplos corriqueiros de códigos diferentes são as diversas
línguas existentes. Embora muitas delas sejam escritas com as mesmas
letras produzem resultados diferentes e, às vezes, não inteligíveis para a
maioria das pessoas de outros países.
20
Até este momento vimos que qualquer número binário poderá ser
representado por um binário equivalente, porém a conversão que foi
mostrada anteriormente é considerada uma “codificação em binário puro”.
Uma conversão em binário poderá gerar um número binário extenso em
termos de bits, dependendo da grandeza do número decimal. Assim são
adotadas codificações,especificamente, para agregar características dos
sistemas de numeração binário e decimal.
3.6.1. Código BCD (Binary Coded Decimal) ou Decimal Codificado em binário
Este código irá representar, individualmente, cada algarismo decimal com 3 bits.
Ora, se o sistema decimal utiliza como símbolos os algarismos 0,1, 2, 3, 4, 5, 6, 7,
8 e 9; basta que tenhamos a cerca para vermos quantos bits serão necessários
para representá-los.
8
4
2
1
Sabe-se que 4 bits permitem escrever até o decimal 15 (8 + 4 + 2 + 1 = 15) portanto, para
se escrever até o 9 necessitaremos os 4 bits. Vejamos na tabela abaixo.
8
4
2
1
Decimal
0
0
0
0
0
0
0
0
1
1
0
0
1
0
2
0
0
1
1
3
0
1
0
0
4
0
1
0
1
5
0
1
1
0
6
0
1
1
1
7
1
0
0
0
8
1
0
0
1
9
21
Esta será a tabela de conversão entre o sistema de numeração decimal e o código BCD.
Como exemplo vejamos a conversão do decimal 874 em BCD.
8
7
4
0 1 0 0 0 1 1 1 0 1 0 0
Assim, o número 874(10) será representado pelo BCD 010001110100.
Qual diferença entre a representação em binário puro e no código BCD?
Tomemos como exemplo a representação do número decimal 127 em binário puro e em
BCD.
137(10)= 10001001(2)
(binário “puro”)
137(10)= 0001 0011 0111(BCD)
3.6.2. Código GRAY
Com a operação em altas velocidades dos sistemas digitais e as variações das entradas
simultâneamente existe a necessidade de garantir a redução da probabilidade de
interpretações errôneas pelo sistema.
O código Gray foi desenvolvido com a finalidade de representar uma sequência de
números em que apenas um bit irá mudar de estado na contagem sucessiva. A tabela
seguinte mostra os equivalentes do código Gray aos binários.
Para se conseguir o código Gray deve-se proceder o seguinte algoritmo:
•
Toma-se o bit mais significativo do binário (MSB) como MSB do código Gray.
•
Compare o MSB do nº binário com o o bit de posição adjacente (B1). Se forem
iguais faça G1=0 . Se diferentes faça G1=1.
•
Repita o procedimento comparando B1 com B0 para obter G0.
O fluxograma seguinte expressa de forma gráfica o algorítimo da conversão Binário-Gray.
22
Binário
B2
B1
Diferente?
G2
B0
Diferente?
G1
G0
Gray
O fluxograma seguinte expressa de forma gráfica o algorítimo da conversão Gray-Binário
Gray
G2
G1
Diferente?
B2
G0
Diferente?
B1
B0
Binário
Teremos como resultado a tabela seguinte com a equivalência entre númerosbinários de
três bits e o código Gray.
23
B 2 B 1 B 0 G2 G1 G 0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
Com a finalidade ilustrativa vejamos a tabela com a representação dos números decimais
em todas as formas vista anteriormente.
Decimal Binário Octal
Hexa
BCD
Gray
0
0
0
0
0000
0000
1
1
1
1
0001
0001
2
10
2
2
0010
0011
3
11
3
3
0011
0010
4
100
4
4
0100
0110
5
101
5
5
0101
0111
6
110
6
6
0110
0101
7
111
7
7
0111
0100
8
1000
10
8
1000
1100
9
1001
11
9
1001
1101
10
1010
12
A
0001 0000
1111
11
1011
13
B
0001 0001
1110
12
1100
14
C
0001 0010
1010
13
1101
15
D
0001 0011
1011
14
1110
16
E
0001 0100
1001
15
1111
17
F
0001 0101
1000
3.7. Códigos Alfanuméricos
24
Os computadores necessitarão não só das variáveis numéricas mas também as
alfanuméricas. Assim abordaremos o código mais significativo que é o ASCII.
3.7.1. Código ASCII – American Standard Code for Information Interchange
Este códigop foi proposto ao American National Standards Institute com a finalidade de
padronizar a troca de informações nos computadores. A proposta foi de Robert W. Bemer
e
sua
equipe.
O ASCII é “entendido pela quase totalidade de computadores, impressoras e programas;
é baseado no alfabeto romano. Somente 95 caracteres podem ser impressos e ocupam a
faixa de números de 32 a 126. Os códigos pertencentes à faixa de 0 a 31 são reservados
para caracteres de controle de funções e equipamentos tais como o comando FEED para
avanço de papel existente nas impressoras matriciais.
Tabela ASCII: Códigos de Controle (0 - 31):
Cód
Caractere
Cód
Caractere
SOH (Start of Heading / Início de
cabeçalho)
0
NULL (nulo)
1
2
STX (Start of TeXt / Início de Texto)
3
ETX (End of TeXt / fim de texto)
5
ENQ (ENQuiry / inquirição, consulta)
7
BEL (BELL, BEEP / Campainha)
9
HT (Horizontal Tab / Tabulação horizontal)
11
VT (Vertical Tab / Tabulação vertical)
13
CR (Carriage Return / retorno ao inicio da
linha)
15
SI (Serial In / Entrada Serial)
(Shift In / deslocamento para dentro)
4
6
8
10
12
14
16
18
20
22
EOT (End Of Transmission / fim de
transmissão)
ACK (ACKnowledge / confirmação,
entendido)
BS (Backspace / retorno de 1
caractere)
LF (Line Feed / alimentação,
mudança de linha)
FF (Form Feed / Alimentação de
formulário)
SO (Serial Out / Saída Serial)
(Shift Out / deslocamento para
fora)
DLE (Data Link Escape / escape de
conexão)
DC2 (Device Control 2 / controle de
dispositivo2)
DC4 (Device Control 4 / controle de
dispositivo4)
SYN (SYNchronous Idle / espera
síncrona)
17
19
21
23
DC1/XON (Device Control1/controle de
dispositivo1)
DC3/XOFF (Device Control3/controle de
dispositivo3)
NAK (Negative AcKnowledge /
confirmação negativa)
ETB (End Transm. Block/bloco de fim de
transmissão)
24
CAN (Cancel / cancelamento)
25
EM (End of Media / Fim do meio ou mídia)
26
SUB (SUBstitute, substituir)
27
ESC (ESCape / escape)
28
FS (File Separator / Separador de
arquivo)
29
GS (Group Separator / separador de
grupo)
25
30
RS (Request to Send, Record
Separator / requisição de envio,
separador de registro)
31
US (Unit Separator / separador de
unidade)
26
D
32
33
34
35
36
37
38
39
40
41
42
43
Binário
0010 0000
0010 0001
0010 0010
0010 0011
0010 0100
0010 0101
0010 0110
0010 0111
0010 1000
0010 1001
0010 1010
0010 1011
Tabela ASCII
2B
2A
29
28
27
26
25
24
23
22
21
20
H
Binário
+
*
)
(
'
&
%
$
#
"
!
0100 1011
0100 1010
0100 1001
0100 1000
0100 0111
0100 0110
0100 0101
0100 0100
0100 0011
0100 0010
0100 0001
vazio 0100 0000
G
H
75 4B
74 4A
73 49
72 48
71 47
70 46
69 45
68 44
67 43
66 42
65 41
64 40
D
Binário
0110 1001
K 0110 1011
J 0110 1010
I
H 0110 1000
G 0110 0111
F 0110 0110
E 0110 0101
D 0110 0100
C 0110 0011
B 0110 0010
A 0110 0001
@ 0110 0000
G
63
62
61
60
H
107 6B
106 6A
105 69
104 68
103 67
102 66
101 65
100 64
99
98
97
96
D
Binário
k 0011 1011
j 0011 1010
i 0011 1001
h 0011 1000
g 0011 0111
f 0011 0110
e 0011 0101
d 0011 0100
c 0011 0011
b 0011 0010
a 0011 0001
` 0011 0000
G
39
38
37
36
35
34
33
32
31
30
H
59 3B
58 3A
57
56
55
54
53
52
51
50
49
48
D
Binário
D
; 0101 1011 91
: 0101 1010 90
9 0101 1001 89
8 0101 1000 88
7 0101 0111 87
6 0101 0110 86
5 0101 0101 85
4 0101 0100 84
3 0101 0011 83
2 0101 0010 82
1 0101 0001 81
0 0101 0000 80
G
5B
5A
59
58
57
56
55
54
53
52
51
50
H
Binário
D
[ 0111 1011 123
Z 0111 1010 122
Y 0111 1001 121
X 0111 1000 120
W 0111 0111 119
V 0111 0110 118
U 0111 0101 117
T 0111 0100 116
S 0111 0011 115
R 0111 0010 114
Q 0111 0001 113
P 0111 0000 112
G
7B
7A
79
78
77
76
75
74
73
72
71
70
H
{
z
y
x
w
v
u
t
s
r
q
p
G
27
45
46
47
0010 1101
0010 1110
0010 1111
2F
2E
2D
2C
/
.
-
,
Tabela ASCII extendida
44
0010 1100
79 4F
78 4E
77 4D
76 4C
O 0110 1111
N 0110 1110
M 0110 1101
L 0110 1100
111 6F
110 6E
109 6D
108 6C
o 0011 1111
n 0011 1110
m 0011 1101
l 0011 1100
63
3F
62 3E
61 3D
60 3C
? 0101 1111 95
> 0101 1110 94
= 0101 1101 93
< 0101 1100 92
Caracteres ASCII Extendidos
Dec Char Dec Char Dec Char Dec Char Dec Char Dec Char Dec Char Dec Char
128 Ç
144 É
160 á
176 ░
192 └
208 ð
224 Ó
240
129 ü
145 æ
161 í
177 ▒
193 ┴
209 Ð
225 ß
241 ±
130 é
146 Æ
162 ó
178 ▓
194 ┬
210 Ê
226 Ô
242 ‗
131 â
147 ô
163 ú
179 │
195 ├
211 Ë
227 Ò
243 ¾
132 ä
148 ö
164 ñ
180 ┤
196 ─
212 È
228 õ
244 ¶
133 à
┼
213 ı
149 ò
165 Ñ
181 Á
197
229 Õ
245 §
134 å
150 û
166 ª
182 Â
198 ã
214 Í
230 µ
246 ÷
135 ç
151 ù
167 º
183 À
199 Ã
215 Î
231 þ
247 ¸
136 ê
152 ÿ
168 ¿
184 ©
200 ╚
216 Ï
232 Þ
248 °
137 ë
153 Ö
169 ®
185 ╣
201 ╔
217 ┘
233 Ú
249 ¨
138 è
154 Ü
170 ¬
186 ║
202 ╩
218 ┌
234 Û
250 —
139 ï
155 ø
171 ½ 187 ╗
203 ╦
219 █
235 Ù
251 ¹
140 î
156 £
172 ¼ 188 ╝
204 ╠
220 ▄
236 ý
252 ³
141 ì
157 Ø
173 ¡
189 ¢
205 ═
221 ¦
237 Ý
253 ²
142 Ä
158 ×
174 «
190 ¥
206 ╬
222 Ì
238 ‾
254 ■
143 Å
159 ƒ
175 »
191 ┐
207 ¤
223 ▀
239 ´
255
0100 1111
0100 1110
0100 1101
0100 1100
5F
5E
5D
5C
_
^ 0111 1110 126
] 0111 1101 125
\ 0111 1100 124
7E
7D
7C
~
}
|
28
Exercícios
1. Converter 0110100000111001BCD em 2. Idem para 011111000001 BCD
decimal.
3. Representar
o
número
binário e em BCD.
178(10)
em 4. Qual a quantidade de bits necessária
para representar um nímero decimal de
oito dígitos?
5. Converter o número 0101(2) em seu 6. Converter o número 0101Gray em seu
código Gray equivalente.
equivalente binário.
29
3.8. Palavras Binárias
As palavras binárias são compostas pelos já conhecidos Bits (Binary digit = Algarismo
binário) e são agrupadas em sequências de 8 bits que representarão dados ou
informações. Esses grupos de 8 bits são denominados Bytes.
As palavras binárias poderão ainda ser divididas em grupos de 4 bits e serão
denominadas NIBBLES. Estas serão úteis em sistemas ou códigos que envolvem
agrupamentos de 4 bits tais como o código BCD e a numeração hexadecimal.
Palavra com 8 bits
1 0 1 0 1 1 1 0
nibble
nibble
byte
Outra consideração a ser destacada é sobre o prefixo de grandeza de unidades [k],
normalmente utilizado para denotar a capacidade de armazenamento de informações nos
sistemas digitais. É muito comum vermos informações de memórias, por exemplo, quanto
à sua capacidade da ordem de Kb ou kbits ou maiores.
O alerta vai para que não confundamos o prefixo k (quilo...)do SI utilizado , por exemplo,
nos valores de resistores e o k (quilo...) dos sistemas digitais.
Por que?
Pelo fato de que no SI o prefixo quilo [k] é uma potência de 10 com peso 103 ou 1000
vezes, enquanto que nos sistemas digitais o prefixo quilo [k] é uma potência de 2 com
peso 210 ou 1024 vezes.
Então dizer que uma memória fictícia possui 1 kbyte ou 1kB de capacidade significa dizer
que a mesma pode armazenar 1024 palavras binárias de oito bits cada!
3.9. Detecção de erros.
A transmissão de dados de um local para outro é uma operação muito freqüente pois
após se digitalizar um determinado sinal o mesmo deverá ser “entregue”! a seu
destinatário com a maior fidelidade possível, sem erros que comprometam a qualidade da
informação.
30
Pode-se citar exemplos como:
•
Voz digitalizada em transmissão de telefonia celular
•
Leitura de dados armazenados em mídias magnéticas tais como HD
•
Transmissão de dados pela internet
A interferência de ruídos em sinais digitais pode ocorrer devido a distúrbios elétricos tais
como flutuações de tensão de rede, corrente elétrica, descargas atmosféricas etc.
Transmissor
Meio
Receptor
O ruíd,o grosseiramente representado, na figura acima poderá causar um interpretação
errada pois o nível a ser recebido seria o zero mas o ruído impulsivo poderá causar a
interpretação de nível 1.
Todo sistema digital é projetado de forma a evitar o tipo de situação visualizada na figura
anterior mas a maioria dos sistemas em operação fazem trocas de até milhões de bits por
segundo. Assim, mesmo com uma taxa muito baixa de erros, a taxa poderá ser
inaceitável mediante a quantidade eleveda de bits.
Alguns métodos de detecção de erros ou correção são utilizados para minimizar o
problema. A técnica mais simples e muito utilizada para a detecção de erros é o método
da paridade.
3.9.1. Bit de Paridade
Esta metodologia consiste em anexar um bit extra ao conjunto de bits do código a ser
transmitido de um ponto a outro. O bit de paridade poderá ser 0 ou 1 e isto irá depender
da quantidade de bits iguais a 1 presentes na palavra.
Duas metodologias diferentes são utilizadas que são a paridade par e a paridade impar.
Por ser a mais utilizada veremos a seguir o método da paridade par.
31
3.9.2. Paridade Par
O valor do bit de paridade será determinado para que o número total de bits 1 no conjunto
de bits do código, incluindo o bit de paridade, seja um número par.
Suponha que a palavra ou código a ser enviado seja o caractere “E” no código ACII que
é 100 0101 (despreza-se o zero à esquerda pois na tabela consta 0100 0101). Nota-se
que o conjunto de bits possui um número impar de 1’s; assim deve-se anexar um bit de
paridade 1 para que o numero de BITS 1 seja par.
Assim:
1100 0101
Bit de paridade
O bit de paridade poderá ser anexado tanto no início como no final do grupo do código.
Normalmente é colocado à esquerda do número.
Quando o número já possuir um número par de bits 1, o bit de paridade será o 0 (zero),
suponha o número 1000001 que corresponde ao caractere A no código ASCII, com o bit
de paridade será:
0100001
Ao ser recebido no destino será feita a verificação se o mesmo possui um número ímpar
de bits 1 no número, caso positivo será considerado que o código foi recebido
corretamente. Fica claro que , em caso de erro em dois bits a detecção não ocorrerá!
A paridade ímpar é análoga à paridade par onde a quantidade final de bits deverá ser
ímpar.
Exemplo
Dois computadores se comunicam remotamente e, em determinado momento, o
transmissor envia a palavra Oi em código ASCII.
Determinar as cadeias de bits a ser enviadas com paridade par.
32
O 1 1001111
i
0 1101001
Bit de paridade
33
34
Exercícios
1. Quantos bytes existem em uma sequência (cadei de caracteres) de 32 bits?
2. Se um número binário possui 2 bytes qual será o maior número decimal que
poderá ser representadso pelo mesmo?
3. Quantos bytes são necessários para representar, em código BCD, o valor decimal
846569?
4. Quantos nibbles existem em um byte?
5. Qual o valor do nibble menos significativo (LSB) no número 1001 0101(2)?
6. Quantos algarismos hexadecimais um nibble pode representar?
7. Quantos nibbles existem em um dígito BCD?
8. Anexe um bit de paridade ímpar ao código ASCII do símbolo $ e escreva o
resultado em hexadecimal.
9. Anexar o bit de paridade par ao código BCD relativo ao decimal 66.
10. Um CD-ROM típico pode armazenar 650 megabytes de dados digitais. Sendo 1
mega = 220 (lembre-se que 1k = 210), qual a quantidade de bits de dados que um
cdrom poderá armazenar?
11. Quando um microcontrolador é programado, em vários modelos as instruções são
armazenadas em uma forma conhecida como Intel-Hex. A informação hexadecimal
é codificada em ASCII para ser exibida no monitor do computador, ser impressa ou
ser transmitida a um caractere por vez por uma porta serial COM.
Vejamos uma linha: 10002000F7CFFFCF1FEF2FEF22A95F1F71A95D9F7EA
Sabendo-se que os primeiros caracteres a ser enviados serão os dois ponto seguidos
do número 1, com bits de paridade par anexados:
(a) Qual será a aparência do padrão binário, incluindo o bit de paridade, na
ordem MSB-LSB para os dois pontos e o número 1?
35
(b) O número 10, após os dois pontos, representa o número de bytes total
que deverá ser carregado na memória do micro. Qual é o número
decimal de bytes que será carregado?
(c) O número 020 é um valor hexadecimal de 4 algarismos que representa o
endereço no qual o primeiro byte será armazenado. Qual o maior
endereço possível? Quantos bits seriam necessários para representar tal
endereço?
(d) O valor do primeiro byte de dados é F7. Qual será o valor, em binário, do
nibble menos significativo desse byte?
12. Um computador de pequeno porte utiliza código hexadecimal para representar
endereços de memória de 16 bits. Pergunta-se:
(a) Quantos dígitos hexadecimais serão necessários?
(b) Qual a faixa de endereços em hexadecimal (início e fim)?
(c) Quantas posições de memória existirão?
13. Certos números são fornecidos em BCD para um sistema baseado em
microcontroladores, mas são armazenados em binários puros. Como programador
você deverá decidir se precisa de um ou dois bytes na posição de armazenamento.
(a) Quantos bytes serão necessários se o sistema contiver uma entrada
decimal de dois algarismos?
(b) E se forem necessários 3 algarismos?
14. Em toda transmissão de caracteres ASCII, entre modem e PC por exemplo, existe
a necessidade de “avisar” o receptor quando um novo caractere está entrando;
além da necessidade da detecção de possíveis erros.
O estado normal de repouso da linha de Tx é em nível lógico 1. Quando o transmisso
enviar um caractere ASCII este deverá ser “enquadrado” (framed) para que o receptor
“saiba” onde começam e terminam os dados.
36
Após o enquadramento o código ASCII é enviado na ordem de primeiro o LSB e por
último o MSB. Após o MSB é inserido um bit de parada (stop bit = nível lógico 1).
Na figura seguinte é possível ver uma transmissão assíncrona típica de um código
ASCII de 7 bits para o símbolo # (Hexa 23) com paridade par.
S/ Informação.
D0 D1 D2 D3 D4 D5 D6
I
N L
M
S
Í S
B
C B
I
O
P
A
R
I
D
A
D
E
P
A
R
A
D
A
37
Download

Apostila - Parte 01