Vous êtes sur la page 1sur 91

Habilitao tcnica em

Eletrnica

Eletrnica Digital

Eletrnica
Volume 4

Eletrnica
Eletrnica digital
Ronaldo Diago Valder Moreira Amaral
(autores)

Edson Horta
(coautor)

2011

Presidncia Joo Sayad Vice-presidncia Ronaldo Bianchi, Fernando Vieira de Mello


DIRETORIA DE PROJETOS EDUCACIONAIS Direo: Fernando Jos de Almeida Gerncia:  Monica Gardelli Franco, Jlio Moreno Coordenao Tcnica: Maria Luiza Guedes Equipe de autoria Centro Paula Souza Coordenao geral: Ivone Marchi Lainetti Ramos Coordenao da srie Eletrnica: Jun Suzuki Autores: Ronaldo Diago, Valder Moreira Amaral Coautor: Edson Horta Reviso tcnica: Marcos Vagner Zamboni Equipe de Edio Coordenao geral:  Carlos Tabosa Seabra, Rogrio Eduardo Alves Coordenao editorial: Luiz Marin Edio de texto: Roberto Matajs Secretrio editorial: Antonio Mello Reviso: Conexo Editorial Direo de arte: Bbox Design Diagramao: LCT Tecnologia Ilustraes: Adilson Secco Pesquisa iconogrfica: Completo Iconografia Capa Fotografia:  Eduardo Pozella, Carlos Piratininga Tratamento de imagens: Sidnei Testa Abertura captulos: Lize Streeter/Dorling Kindersley/ Getty Images

Governador Geraldo Alckmin Vice-Governador Guilherme Afif Domingos Secretrio de Desenvolvimento Econmico, Cincia e Tecnologia Paulo Alexandre Barbosa

Presidente do Conselho Deliberativo Yolanda Silvestre Diretora Superintendente Laura Lagan Vice-Diretor Superintendente Csar Silva Chefe de Gabinete da Superintendncia Elenice Belmonte R. de Castro Coordenadora da Ps-Graduao, Extenso e Pesquisa Helena Gemignani Peterossi Coordenador do Ensino Superior de Graduao Angelo Luiz Cortelazzo Coordenador de Ensino Mdio e Tcnico Almrio Melquades de Arajo Coordenadora de Formao Inicial e Educao Continuada Clara Maria de Souza Magalhes Coordenador de Desenvolvimento e Planejamento Joo Carlos Paschoal Freitas Coordenador de Infraestrutura Rubens Goldman Coordenador de Gesto Administrativa e Financeira Armando Natal Maurcio Coordenador de Recursos Humanos Elio Loureno Bolzani Assessora de Comunicao Gleise Santa Clara Procurador Jurdico Chefe Benedito Librio Bergamo

O Projeto Manual Tcnico Centro Paula Souza Coleo Tcnica Interativa oferece aos alunos da instituio contedo relevante formao tcnica, educao e cultura nacional, sendo tambm sua finalidade a preservao e a divulgao desse contedo, respeitados os direitos de terceiros. O material apresentado de autoria de professores do Centro Paula Souza e resulta de experincia na docncia e da pesquisa em fontes como livros, artigos, jornais, internet, bancos de dados, entre outras, com a devida autorizao dos detentores dos direitos desses materiais ou contando com a permissibilidade legal, apresentando, sempre que possvel, a indicao da autoria/crdito e/ou reserva de direitos de cada um deles. Todas as obras e imagens expostas nesse trabalho so protegidas pela legislao brasileira e no podem ser reproduzidas ou utilizadas por terceiros, por qualquer meio ou processo, sem expressa autorizao de seus titulares. Agradecemos as pessoas retratadas ou que tiveram trechos de obras reproduzidas neste trabalho, bem como a seus herdeiros e representantes legais, pela colaborao e compreenso da finalidade desse projeto, contribuindo para que essa iniciativa se tornasse realidade. Adicionalmente, colocamo-nos disposio e solicitamos a comunicao, para a devida correo, de quaisquer equvocos nessa rea porventura cometidos em livros desse projeto.

O Projeto Manual Tcnico Centro Paula Souza Coleo Tcnica Interativa, uma iniciativa do Governo do Estado de So Paulo, resulta de um esforo colaborativo que envolve diversas frentes de trabalho coordenadas pelo Centro Paula Souza e editado pela Fundao Padre Anchieta. A responsabilidade pelos contedos de cada um dos trabalhos/textos inseridos nesse projeto exclusiva do autor. Respeitam-se assim os diferentes enfoques, pontos de vista e ideologias, bem como o conhecimento tcnico de cada colaborador, de forma que o contedo exposto pode no refletir as posies do Centro Paula Souza e da Fundao Padre Anchieta.

Dados Internacionais de Catalogao na Publicao (CIP) (Bibliotecria Silvia Marques CRB 8/7377)
D536 Diago, Ronaldo Eletrnica: eletrnica digital / Ronaldo Diago, Valder Moreira Amaral (autores); Edson Horta (coautor); Marcos Vagner Zamboni (revisor); Jun Suzuki (coordenador). -- So Paulo: Fundao Padre Anchieta, 2011. (Coleo Tcnica Interativa. Srie Eletrnica, v. 4) Manual tcnico Centro Paula Souza ISBN 978-85-8028-048-7 1. Eletrnica digital I. Amaral, Valder Moreira II. Horta, Edson III. Zamboni, Marcos Vagner IV. Suzuki, Jun V. Ttulo CDD 607

Sumrio
13 Captulo 1 Sistemas numricos
1.1 Sistema numrico decimal . . . . . . . . . . . . . . . . . . . 14 1.2 Sistema numrico hexadecimal . . . . . . . . . . . . . . . 15 1.3 Sistema numrico octal . . . . . . . . . . . . . . . . . . . . . 17 1.4 Sistema numrico binrio. . . . . . . . . . . . . . . . . . . . 18 1.5 Converso de sistemas numricos (em nmeros inteiros positivos) . . . . . . . . . . . . . . 20 1.5.1 Converso de binrio em decimal. . . . . . . . 20 1.5.2 Converso de decimal em binrio. . . . . . . . 21 1.5.3 Converso de hexadecimal em decimal. . . . 22 1.5.4 Converso de decimal em hexadecimal. . . . 22 1.5.5 Converso de octal em decimal. . . . . . . . . . 22 1.5.6 Converso de decimal em octal. . . . . . . . . . 23 1.5.7 Converso de octal em binrio. . . . . . . . . . 23 1.5.8 Converso de binrio em octal. . . . . . . . . . 24 1.5.9 Converso de hexadecimal em binrio. . . . 24 1.5.10 Converso de binrio em hexadecimal . . . 24 1.5.11 Converso de octal em hexadecimal. . . . . 25 1.5.12 Converso de hexadecimal em octal. . . . . 25 1.5.13 Resumo de converso de sistemas. . . . . . . 25 2.3 Descrio de funes lgicas. . . . . . . . . . . . . . . . . 41 2.3.1 Circuito lgico . . . . . . . . . . . . . . . . . . . . . . . 41 2.3.2 Tabela verdade 2 . . . . . . . . . . . . . . . . . . . . . 41 2.3.3 Simplificao de funes lgicas. . . . . . . . . . 43

53 Captulo 3 Circuitos combinatrios


3.1Codificadores/decodificadores. . . . . . . . . . . . . . . . 54 3.1.1 Codificador de M-N (M entradas e N sadas). . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.1.2 Exemplo de codificador decimal-binrio. . . 54 3.2Multiplexadores/demultiplexadores. . . . . . . . . . . . 62 3.3 Circuitos aritmticos. . . . . . . . . . . . . . . . . . . . . . . 74 3.3.1 Meio somador. . . . . . . . . . . . . . . . . . . . . . . . 79 3.3.2 Somador completo. . . . . . . . . . . . . . . . . . . . 80 3.3.3Subtrator . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Capa: Larissa Gabrielle Rizatto, aluna do Centro Paula Souza Foto: Eduardo Pozella e Carlos Piratininga

85 Captulo 4 Circuitos sequenciais


4.1 Elementos de memria . . . . . . . . . . . . . . . . . . . . . 86 4.2 Contadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.2.1 Contadores assncronos. . . . . . . . . . . . . . . . 96 4.2.2 Contadores sncronos . . . . . . . . . . . . . . . . . 99 4.3 Registradores de deslocamento. . . . . . . . . . . . . . 111 4.3.1 Informao srie e informao paralela. . . 111 4.3.2 Registrador de deslocamento para a direita. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

29 Captulo 2 Funes lgicas


2.1 Portas lgicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2 lgebra booleana. . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.2.1 Propriedades e teoremas da lgebra booleana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Sumrio
4.4 Registrador de deslocamento para a esquerda. . 113 4.4.1 Circuito registrador de deslocamento entrada srie ou paralela. . . . . . . . . . . . . . 115 4.4.2 Associao de registradores registrador de maior capacidade. . . . . . . . . . . . . . . . . . 117 4.4.3 Registrador como multiplicador ou divisor por 2. . . . . . . . . . . . . . . . . . . . . . . . 117 4.4.4 Registrador de deslocamento em anel. . . . 118 B.2 Conversor analgico-digital. . . . . . . . . . . . . . . . . 160 B.2.1 Converso A/D usando comparadores. 161 B.2.2 Conversor A/D usando contador e conversor D/A . . . . . . . . . . . . . . . . . . . . . . 161

163 Apndice C MPLAB


C.1 Criao de um projeto . . . . . . . . . . . . . . . . . . . . 165 C.2Compilao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 C.3Simulao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 C.4IC-PROG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 C.4.1 Configurao do IC-PROG. . . . . . . . . . . . 168 C.5PICDEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

121 Captulo 5 Sistemas microprocessados


5.1Processadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.1.1 Estrutura interna do PIC16F628A . . . . . . . 126 5.2Programao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 5.2.1Fluxograma. . . . . . . . . . . . . . . . . . . . . . . . . 128 5.2.2 Linguagens de programao. . . . . . . . . . . . 130 5.2.3Linguagem assembly. . . . . . . . . . . . . . . . . . . 132

171 Referncias bibliogrficas

143 Apndice A Famlias de circuitos integrados


A.1 Famlia TTL (transistor transistor logic). . . . . . . 144 A.2 Famlia CMOS (complementary metal-oxidesemiconductor) . . . . . . . . . . . . . . . . . . . . . . . . . . 148

149 Apndice B Conversores A/D e D/A


B.1 Conversor digital-analgico. . . . . . . . . . . . . . . . . 151 B.1.1 Conversor D/A com resistores de peso binrio . . . . . . . . . . . . . . . . . . . . . . . . 152 B.1.2 Conversor D/A tipo escada R-2R . . . . . . . 157

Captulo 1

Sistemas numricos

eletrnica 4

CAPTULO 1

Nesse sistema, os nmeros so representados de dez em dez; uma dezena igual a 10 unidades, uma centena igual a 100 unidades e um milhar igual a 1000 unidades. Em funo dessa representao, dizemos que o sistema decimal um sistema de base 10. Exemplos 1. Nos nmeros decimais a seguir, quais os valores dos pesos dos algarismos 3, 4 e 5? a) 30469 b) 179531 Soluo: a) 30469=9100+6101+4102+0103+3104

s sistemas numricos so usados para representar a quantidade de determinados elementos. O mais utilizado atualmente pela maioria das pessoas chamado decimal. Esse nome foi adotado porque a base empregada composta por dez algarismos, com os quais possvel formar qualquer nmero por meio da lei da formao. Existem outros sistemas mtricos que so utilizados em reas tcnicas, como eletrnica digital e programao de computadores. Nas prximas sees sero detalhadas as bases mais usadas nessas duas reas: decimal, hexadecimal, octal e binria. Tambm veremos os mtodos empregados para converso de nmeros entre essas bases.

3 tem peso (104=10000) 4 tem peso (102 = 100)

b) 179531 = 1100 + 3101 + 5102 + 9103 + 7104 + 1105 5 tem peso (102 = 100) 3 tem peso 10

1.1 Sistema numrico decimal


Os sistemas de numerao surgiram da necessidade de representar por meio de smbolos as contagens e associaes de quantidades que as pessoas realizavam. Os egpcios, os babilnios, os chineses, os maias, os romanos e vrios outros povos criaram sistemas de numerao prprios. O que utilizamos o indo-arbico. No sistema numrico decimal, os smbolos so representados por dez algarismos, que so: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Para compor um nmero, associamos um ou mais algarismos e, dependendo da posio deles, obtemos nmeros com valores diferentes. A posio que o algarismo ocupa no nmero determina quantas so as unidades, as dezenas e as centenas desse nmero. Observe na figura 1.1 a representao do nmero 5738. Figura 1.1
Exemplo do nmero 5738 no sistema numrico decimal.
pesos dos algarismos do nmero 5738

2. Qual algarismo no nmero decimal 54781 tem peso 1000? Soluo: 54781 = 1100 + 8101 + 7102 + 4103 + 5104 O algarismo 4 tem peso 1000.

1.2 Sistema numrico hexadecimal


O sistema numrico hexadecimal possui 16 smbolos, representados por 16 algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. possvel fazer correspondncia entre os algarismos do sistema hexadecimal e os algarismos do sistema decimal: Algarismos hexadecimais 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

5738

unidades dezenas centenas milhares 8100 = 3101 = 7102 = 5103 = 8 30 700 5000 5738 8 tem peso 1 3 tem peso 10 7 tem peso 102 5 tem peso 103

Algarismos decimais

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14, 15

potncias de base 10

Para representarmos um nmero hexadecimal no sistema decimal, devemos proceder como mostra a figura 1.2. 15

14

eletrnica 4

CAPTULO 1

Figura 1.2
43BCH no sistema numrico hexadecimal equivale ao nmero 17340 no sistema decimal. H somente indica que um nmero hexadecimal pesos dos algarismos do nmero 43BCH 4 3 BC H 12 C tem peso 1 12160 = 11161 = 176 B tem peso 16 3162 = 768 3 tem peso 162 4163 =16384 4 tem peso 163 17340 potncias de base 16

1.3 Sistema numrico octal


O sistema numrico octal possui oito algarismos, representados pelos smbolos: 0, 1, 2, 3, 4, 5, 6, 7. possvel fazer correspondncia entre os algarismos do sistema octal e os algarismos do sistema decimal: Algarismos octais
43bch = 17340
hexadecimal decimal

0, 1, 2, 3, 4, 5, 6, 7

Algarismos decimais 0, 1, 2, 3, 4, 5, 6, 7 Para representarmos um nmero octal no sistema decimal, devemos proceder como mostra a figura 1.3. Figura 1.3
(4 3 7 8)8
ndice 8 somente indica que nmero octal pesos dos algarismos no nmero (4378)8

Dizemos que o sistema hexadecimal um sistema de base 16. Exemplos 1. Nos nmeros hexadecimais a seguir, quais os valores dos pesos dos algarismos 2, B e C? a) 32CH b) B3CH Soluo: a) 32CH = 12 160 + 2161 + 3162

0 1

8 8 tem peso 1 880 = 56 7 tem peso 8 781 = 382 = 192 3 tem peso 82 483 = 2048 4 tem peso 83 2304 potncias de base 8

Representao do nmero (4378)8 no sistema numrico octal. Esse nmero equivale ao 2304 no sistema decimal.

2 tem peso 16 C tem peso (160 = 1)


2

b) B3CH = 1216 + 316 + B16


Dizemos que o sistema octal um sistema de base 8. Exemplos 1. Nos nmeros octais a seguir, quais os valores dos pesos dos algarismos 2 e 7? a) (327)8 b) (271)8 Soluo: a) (327)8 = 780 + 281 + 382

B tem peso (162 = 256) C tem peso 1

2. Encontre o equivalente decimal dos nmeros hexadecimais a seguir usando os pesos de cada algarismo. a) A2CH b) 52H Soluo: a) A2CH = 1216 + 216 + 1016 = 12 + 32 + 2560 = 2604 A2CH = (2604)10 = 2604
0 1 2

2 tem peso 8 7 tem peso (80 = 1)

b) 52H = 2160 + 5161 = 2 + 80 = 82 52H = (82)10 = 82 O nmero decimal pode ser representado sem parnteses e sem ndice. 16

b) (271)8 = 180 + 781 + 282


2 tem peso (82 = 64) 7 tem peso 8 17

eletrnica 4

CAPTULO 1

2. Encontre o equivalente decimal dos nmeros octais a seguir usando os pesos de cada algarismo. a) (34)8 b) (206)8 Soluo: a) (34)8 = 480 + 381 = 4 + 24 = 28 b) (206)8 = 680 + 081 + 282 = 6 + 0 + 128 = 134

Na representao dos nmeros binrios (figura 1.5), o primeiro dgito direita chamado dgito menos significativo (LSB, least significant bit), e o primeiro dgito esquerda diferente de zero, dgito mais significativo (MSB, most significant bit). Figura 1.5 0101 1100
LSB MSB Representao do nmero 01011 100 no sistema numrico binrio.

1.4 Sistema numrico binrio


O sistema de numerao binrio possui dois smbolos, representados pelos algarismos: 0 e 1. possvel fazer correspondncia entre os algarismos do sistema binrio e os algarismos do sistema decimal: Algarismos binrios 0, 1

O sistema binrio utilizado principalmente na eletrnica digital, na computao, nas telecomunicaes, na robtica, na automao etc., ou seja, nas reas que usam circuitos digitais, que, por sua vez, tm como entradas e sadas somente valores 0 e 1. Exemplos 1. Nos nmeros binrios a seguir, qual o valor do peso (em decimal) dos algarismos assinalados? a) 0011 0111 b) 1111 1101

Algarismos decimais 0, 1 Para representar um nmero binrio no sistema decimal, devemos proceder como mostra a figura 1.4. Figura 1.4
Representao do nmero (1101)2 no sistema numrico binrio. Esse nmero equivale ao 13 no sistema decimal. (1 1 0 1)2
ndice 2 somente indica que nmero binrio pesos dos algarismos no nmero (1101)2

Soluo: a) 0011 0111


1 1 tem peso 1 120 = 0 0 tem peso 2 021 = 4 1 tem peso 22 122 = 3 8 1 tem peso 23 12 = 13 potncias de base 2

tem peso 2 tem peso (25 = 32)

(1101)2 = 13
binrio decimal

b) 1111 1101

tem peso (22 = 4) tem peso (26 = 64)

Dizemos que o sistema binrio um sistema de base 2. Nesse sistema de numerao, os algarismos podem ser chamados de dgitos. Cada dgito em um sistema binrio denominado bit (binary digit). Os nmeros binrios so representados em grupos de quatro dgitos, completando-se com zero(s) esquerda, se necessrio. 18

2. Encontre o equivalente decimal dos nmeros binrios a seguir usando os pesos de cada algarismo. a) 1011 0110 b) 01000010 19

eletrnica 4

CAPTULO 1

Soluo: a) 1 0 1 1 0 1 1 0 = 21 + 22 + 24 + 25 + 27 = 2 + 4 + 16 + 32 + 128 = 182


Exemplos 1. Converta (1010)2 em decimal. Soluo: 1 0 1 0 23 2 (8 + 2) = 10, portanto (1010)2 = 10

b) 0 1 0 0 0 0 1 0 = 21 + 26 = 2 + 64 = 66

2. Converta (10111001)2 em decimal. Soluo: 1 0 1 1 1 0 0 1 27 25 24 23 20 (128 + 32 + 16 + 8 + 1) = 185 (10111001)2 = 185

3. Responda. a) George Boole nasceu no sculo XIX em uma dcada cuja dgito LSB 5. Estabelea, com base nessa informao, qual o menor intervalo de tempo em que ele nasceu. Observe que foi omitido na informao o MSB da dcada. Soluo: Sculo XIX 1801 a 1900. Como no podemos estabelecer a dcada, o menor intervalo de tempo em que com certeza ele nasceu de 01/01/1801 a 31/12/1900. Portanto, pela informao dada, conclumos que o menor intervalo de 100 anos. b) O primeiro computador digital eletrnico de grande escala (ENIAC) foi apresentado no sculo passado na dcada de 1940. Estabelea, com base nessa informao, o menor perodo de tempo em que com certeza, surgiu o ENIAC. Observe que foi omitido na informao o LSB da dcada. Soluo: Pela informao dada, o ENIAC surgiu entre 01/01/1940 e 31/12/1949. Portanto, podemos garantir um intervalo mnimo de 10 anos. Como o enunciado da questo forneceu o MSB da dcada, foi possvel estabelecer um intervalo de tempo mais preciso.

1.5.2 Converso de decimal em binrio


Para convertermos nmero decimal em binrio, agrupamos os restos das divises sucessivas do nmero por 2, at que a ltima diviso tenha quociente igual a zero. Exemplo Converta o decimal 56 em binrio. Soluo: Observe como foram agrupados os bits da coluna correspondente aos restos das divises, para formar o binrio equivalente. Depois de determinar os restos das divises, eles so ajustados para representar dois grupos de quatro bits. 56 16 0
LSB

2 28 08 0 2 14 0 2 7 1 2 3 1 2 1 1
MSB

1.5 Converso de sistemas numricos (em nmeros inteiros positivos)


1.5.1 Converso de binrio em decimal
Para convertermos nmero binrio em decimal, somamos os pesos somente para os bits de valor 1, obtendo, assim, o equivalente decimal. 20

2 0

111000

56 = (111000)2 21

eletrnica 4

CAPTULO 1

1.5.3 Converso de hexadecimal em decimal


Para convertermos nmero hexadecimal em decimal, somamos os pesos multiplicados pelos nmeros correspondentes em decimal, obtendo, assim, o equivalente decimal. Exemplo Converta (A8E6H) em decimal. Soluo: A8E6H = 10163 + 8162 + 1416 + 6160 = = 40960 + 2048 + 224 + 6 = 43238 A8E6H = 43238

Soluo: (2075)8 = 283 + 781 + 580 = 1024 + 56 + 5 = 1085 (2075)8 = 1085

1.5.6 Converso de decimal em octal


O processo semelhante ao da converso de decimal em binrio. Exemplo Converta (1085) em octal. Soluo: 1085 28 45 5 LSB 8 135 55 7 8 16 0

1.5.4 Converso de decimal em hexadecimal


O processo semelhante ao da converso de decimal em binrio. Exemplo Converta (2470) em hexadecimal. Soluo: 2470 16 87 70 6 LSB 9A6 154 10 16 9 9 MSB 2470 = 9A6H 16 0

8 2 2 MSB

8 0

2075

1085 = (2075)8

1.5.7 Converso de octal em binrio


Para convertermos nmero octal em binrio, convertemos dgito a dgito de octal em binrio, da direita para a esquerda, em grupos de trs bits. O ltimo grupo completamos com zero(s) esquerda, se necessrio. Exemplo Converta (32075)8 em binrio. Soluo: 3 011 2 010 0 000 7 111 5 101

Observe que 6, 10 e 9 so os restos das divises; 10 foi substitudo por seu equivalente hexadecimal A.

1.5.5 Converso de octal em decimal


Exemplo Converta (2075)8 em decimal.

(32075)8 =(0011 0100 0011 1101)2 Aps a converso, fazemos a representao usual em grupos de quatro bits, completando com zeros esquerda. Agora, calcule o equivalente decimal de (32075)8 e o equivalente decimal de (0011 0100 0011 1101)2. Compare esses valores.

22

23

eletrnica 4

CAPTULO 1

1.5.8 Converso de binrio em octal


Para convertermos nmero binrio em octal, separamos o nmero binrio em grupos de trs bits, da direita para a esquerda, completando o ltimo grupo com zero(s), se necessrio. Convertemos em octal cada grupo. Lembre-se de que de 0 a 7 os valores octais e decimais so representados pelos mesmos dgitos. Exemplo Converta (1011 0010)2 em octal. Soluo: 010 2 110 6 010 2

Soluo: 0001 1 1010 A 1101 D

(0001 1010 1101)2 = 1ADH

1.5.11 Converso de octal em hexadecimal


Para convertermos nmero octal em hexadecimal, realizamos duas etapas: octal binrio hexadecimal

1.5.12 Converso de hexadecimal em octal


Para convertermos nmero hexadecimal em octal, realizamos duas etapas: hexadecimal binrio octal

(10110010)2 = (262)8

1.5.9 Converso de hexadecimal em binrio


Para convertermos nmero hexadecimal em binrio, fazemos a converso dgito a dgito de hexadecimal em binrio, da direita para a esquerda, em grupos de quatro bits. O ltimo grupo esquerda completamos com zero(s), se necessrio. Exemplo Converta (1ADH) em binrio. Soluo: 1 0001 A 1010 D 1101

1.5.13 Resumo de converso de sistemas


Na converso de qualquer outro sistema em decimal, usamos o peso do dgito. Na converso de decimal em qualquer outro sistema, efetuamos divises sucessivas. A figura 1.6 apresenta o resumo de converso. No se preocupe em decor-la pois ela poder ser consultada sempre que necessrio. Entretanto, a associao dos lembretes escritos com o processo de converso deve estar bem clara. Figura 1.6
dgito a dgito H B agrup. de 4 . . 16

Resumo de converso de sistemas.

1ADH = (000110101101)2

peso

peso

. .2 . .8 peso

agrup. de 3

dgito a dgito

1.5.10 Converso de binrio em hexadecimal


Para convertermos nmero binrio em hexadecimal, separamos o nmero binrio em grupos de quatro bits, da direita para a esquerda, completando o ltimo grupo com zero(s), se necessrio. Convertemos em hexadecimal cada grupo. Exemplo Converta (0001 1010 1101)2 em hexadecimal. 24

A tabela 1.1 tambm no precisa ser memorizada. Sua construo pode ser feita rapidamente observando na coluna dos valores binrios o avano dos nmeros 1 da direita para a esquerda, ao passar de uma linha para a seguinte. Tente reproduzir a tabela sem consult-la pois isto importante. 25

eletrnica 4

CAPTULO 1

Tabela 1.1
Resumo das equivalncias entre os nmeros binrios, decimais e hexadecimais (de 0 a 15 em decimal). 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 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 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

H
0 1 2 3 4 5 6 7 8 9 A B C D E F

2. Converta o decimal (0,296875) em binrio. Soluo: 0,2968752 = 0 + 0,59375

0,593752 = 1 + 0,1875

0,18752 = 0 + 0,375 0,3752 = 0 + 0,75 0,752 = 1 + 0,5 0,52 = 1 + 0


22 = 0,250000 25 = 0,031250 + 26 = 0,015625 = 0,296875
pesos dos bits com valor "1"

0,296875 = (0,0 1 0 0 1 100)2

Observe que o lado direito da igualdade a decomposio do resultado em parte inteira e parte fracionria. O processo deve cessar quando a parte fracionria da decomposio do nmero for zero ou quando a aproximao obtida for suficiente. O agrupamento de quatro bits ajustado com o acrscimo de zero(s) direita. 3. Converta (A8E6,39H) em decimal. Soluo: A8E6,38H = 10163 + 8162 + 1416 + 6160 + 316-1 + 8162 = 40960 + 2048 + 224 + 6 + 0,1875 + 0,03125 = 43238,21875 A8E6,38H = 43238,21875

Os exerccios a seguir so exemplos de converso de nmeros positivos no inteiros, apresentados como complemento, uma vez que esto alm dos objetivos deste livro. Exemplos 1. Converta (1011,1001)2 em decimal. Soluo: 1 0 1 1, 1 0 0 1 23 21 20 21 24 (8 + 2 + 1 + 0,5 + 0,0625) = 11,5625 (1011,1001)2 = 11,5625

26

27

Captulo 2

Funes lgicas

eletrnica 4

CAPTULO 2

As variveis utilizadas nos circuitos so representadas pelas letras A, B, C, ..., N. Uma barra sobre uma varivel booleana significa que seu valor sofrer inverso. Assim, se A = 0, A = 1, e se A = 1, A = 0, em que A l-se: no A, A barra, A barrado ou complemento de A. As funes booleanas apresentam resultados fornecidos pelas combinaes possveis devido a suas variveis. Esses resultados so normalmente representados em forma de tabela. Chamamos tabela verdade de uma funo booleana a tabela que apresenta, geralmente de maneira ordenada, os valores da funo y = f(A, B) para todas as combinaes possveis dos valores das variveis. Consideremos y uma funo booleana das variveis A e B, cuja tabela verdade apresentada na tabela 2.1.
A 0 0 1 1 B 0 1 0 1 y 1 0 1 1

G
Figura 2.1
Circuito eltrico com duas chaves e uma lmpada.

eorge Boole (1815-1864), matemtico e filsofo britnico, criou um sistema matemtico de anlise lgica chamado lgebra de Boole ou lgebra booleana. Esse sistema permitiu elaborar expresses conhecidas como funes lgicas, que possibilitaram o desenvolvimento da eletrnica digital. Para iniciar o estudo, vamos analisar o circuito da figura 2.1. Sejam as variveis S1, S2 e L, tais que:

Tabela 2.1
Tabela verdade de y = f(A, B)

S1 = S2 = 0 S1 = S2 = 1 L = 0 L = 1

chaves abertas chaves fechadas lmpada apagada lmpada acesa

ch S1 V

ch S2 Lamp

A tabela verdade uma das maneiras de estabelecer a correspondncia entre os valores da funo e os das variveis. A penltima linha da tabela, por exemplo, informa que, nas condies A = 1 e B = 0, y = 1. Outra forma de estabelecer a correspondncia a expresso booleana da funo, que ser abordada mais adiante.

Assim, por exemplo: Se S1 = 1 (chave S1 fechada) e S2 = 1 (chave S2 fechada) L = 1 (lmpada acesa) Se S1 = 1 (chave S1 fechada) e S2 = 0 (chave S2 aberta) L = 0 (lmpada apagada) A condio da lmpada (acesa/apagada) funo (depende) da condio de cada uma das chaves (aberta/fechada) do circuito. Nessa funo, no so consideradas quantidades (nmeros), e sim os estados de variveis, em que somente duas condies so possveis: 0 ou 1. Essas variveis, que podem assumir apenas dois estados (0/1, aberto/fechado, sim/no, verdadeiro/falso etc.), so chamadas variveis booleanas, e os estados, estados lgicos, associados s variveis. Quando esto atuando nessas condies, as variveis booleanas so conhecidas como funes booleanas, que podem ser simples ou complexas. As funes booleanas simples so obtidas por meio de um conjunto de circuitos eletrnicos denominados portas lgicas. Associando portas lgicas, possvel implementar circuitos eletrnicos definidos por funes booleanas mais complexas. 30

2.1 Portas lgicas


Portas lgicas so circuitos eletrnicos bsicos que possuem uma ou mais entradas e uma nica sada. Nas entradas e na sada, podemos associar estados 0 ou 1, ou seja, variveis booleanas. Em eletrnica digital, quando utilizamos portas lgicas, atribumos s entradas e s sadas valores de tenso. Nos circuitos exemplos de portas lgicas, associaremos ao 5 V o estado 1 e ao 0 V, o estado 0. A porta lgica mais simples denominada inversora. Nela, a sada igual ao complemento da entrada (figura 2.2).
smbolo A y tabela verdade A 0 1 PORTA INVERSORA tem somente 1 entrada y 1 0 A entrada e y sada expresso booleana y=A

Figura 2.2
Smbolo, tabela verdade e expresso booleana da porta inversora.

31

eletrnica 4

CAPTULO 2

A porta OU (OR, em ingls) possui duas ou mais entradas. A sada sempre ser igual a 1 quando uma das entradas for igual a 1 (figura 2.3). A sada ser 0 somente se todas as entradas forem 0. Figura 2.3
Smbolo, tabela verdade e expresso booleana da porta OU.
smbolo A y B tabela verdade A 0 0 1 1 B 0 1 0 1 y 0 1 1 1 AeB y entradas sada expresso booleana

A porta NE (NAND) corresponde a uma porta E com a sada invertida (figura 2.6). A sada ser 0 somente se todas as entradas forem 1.
smbolo A y B tabela verdade A 0 0 1 1 B 0 1 0 1 y 1 1 1 0 A sada 0 somente se todas as entradas forem 1 y = AB ou y = A B expresso booleana

Figura 2.6
Smbolo, tabela verdade e expresso booleana da porta NE.

y = A + B (l-se A OU B)

A sada 0 somente se todas as entradas forem zero

O smbolo + representa OU lgico e no significa uma soma aritmtica, pois 0 e 1 no so nmeros, mas estados lgicos das variveis. A porta NOU (NOR) corresponde uma porta OU com a sada invertida (figura 2.4). A sada ser 1 somente se todas as entradas forem 0. Figura 2.4
Smbolo, tabela verdade e expresso booleana da porta NOU.
A y B smbolo tabela verdade A 0 0 1 1 B 0 1 0 1 y 1 0 0 0 A sada 1 somente se todas as entradas forem zero y=A+B expresso booleana

A porta OU EXCLUSIVO (XOR) possui uma ou mais entradas e fornecer uma sada igual a 1 somente quando as entradas forem diferentes (figura 2.7). Figura 2.7
smbolo A y B tabela verdade A 0 0 1 1 B 0 1 0 1 y 0 1 1 0 Sada 1 se as entradas forem diferentes y=A+B expresso booleana

Smbolo, tabela verdade e expresso booleana da porta OU EXCLUSIVO.

A porta NOU EXCLUSIVO (XNOR), tambm chamada de COINCIDNCIA, equivalente a uma porta XOR com a sada invertida (figura 2.8). A sada ser 1 se as entradas forem iguais. Figura 2.8
smbolo A y B tabela verdade A 0 0 1 B 0 1 0 1 y 1 0 0 1 Sada 1 se as entradas forem iguais y=A

Observe que a bolinha no smbolo nega (complementa) a sada, equivalente barra na expresso booleana, indicando que a porta NOU tem uma sada que corresponde ao complemento da sada da porta OU. A porta E (AND) possui uma ou mais entradas e sua sada ser 1 somente quando todas as entradas forem iguais a 1 (figura 2.5). Figura 2.5
Smbolo, tabela verdade e expresso booleana da porta E.
A y B smbolo tabela verdade A 0 0 1 1 B 0 1 0 1 y 0 0 0 1 A sada 1 somente se todas as entradas forem 1 y = AB ou y = A B expresso booleana

expresso booleana

Smbolo, tabela verdade e expresso booleana da porta NOU EXCLUSIVO.

2.2 lgebra booleana


Vimos que na lgebra booleana o estudo de circuitos lgicos baseado em apenas dois valores (0/1, aberto/fechado, sim/no, verdadeiro/falso etc.), que tambm podem ser representados por dois nveis distintos de tenso, chamados, por 33

32

eletrnica 4

CAPTULO 2

exemplo, nvel alto (H high) e nvel baixo (L low) ou simplesmente 0 (zero) e 1 (um). A anlise das expresses tambm obedece a esse princpio e, portanto, perfeitamente aplicvel a nosso estudo. Os smbolos H/L ou 0/1 podem ser empregados para representar situaes do tipo: sim/no; verdadeiro/falso; ligado/desligado (on/off ); aceso/apagado. Obviamente, essas representaes devem estar relacionadas a suas respectivas variveis. Por exemplo, suponhamos que a uma chave do tipo liga/desliga seja atribuda a varivel K. Com base nessa atribuio, podemos representar o estado da respectiva chave em um circuito como: K = 0 (zero) para a condio chave desligada (aberta); K = 1 (um) para a condio chave ligada (fechada). Alm disso, as funes booleanas so expresses que representam as relaes entre as variveis envolvidas em determinado processo por meio dos operadores lgicos AND () e OR (+). Exemplo Um sistema de alarme dever soar quando os sensores A e C estiverem ativados ao mesmo tempo ou quando a chave B estiver ligada e pelo menos um dos sensores estiver ativado. Um modo de encontrar a soluo para o problema a tabela verdade. Para isso, constri-se a tabela verdade com as variveis de entrada envolvidas no problema proposto (no caso, A, B, C) e verificam-se, de acordo com a expresso, os nveis que a varivel de sada (S) dever possuir (tabela 2.2). Tabela verdade
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 0 0 0 1 0 1 1 1

A forma cannica disjuntiva obtida da tabela verdade de acordo com o seguinte procedimento: a) Escreva um termo (operao lgica E) para cada linha em que a funo igual a 1. b) Junte os termos obtidos no item anterior com a operao OU (+). Obs.: as variveis sero barradas ou no conforme seu valor seja 0 ou 1 naquela linha. Exemplo Seja a tabela verdade a seguir Tabela verdade

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

F 1 0 0 1 1 0 0 1 ABC ABC ABC 1 linha: A B C 4 linha: A B C 5 linha: A B C 8 linha: A B C ABC

F = ABC + ABC + ABC + ABC A forma cannica conjuntiva obtida da tabela verdade de acordo com o seguinte procedimento: a) Escreva um termo (operao lgica OU) para cada linha em que a funo tem valor 0. b) Junte os termos obtidos no item anterior com a operao E (). Obs.: as variveis sero barradas se naquela linha seu valor for 1 e no barrada se seu valor for 0. Exemplo Na tabela verdade do exemplo anterior, verifica-se que a funo igual a 0 na segunda, terceira, sexta e stima linhas. 35

Toda funo booleana de N variveis pode ser escrita na forma cannica disjuntiva ou conjuntiva. 34

eletrnica 4

CAPTULO 2

Tabela verdade
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 0 0 1 1 0 0 1 2 linha: A + B + C 3 linha: A + B + C 6 linha: A + B + C 7 linha: A + B + C

Propriedade da tautologia
vlida para portas E e portas OU e pode ser verificada nos seguintes casos: AA = A A+A=A Essa propriedade vlida para um maior nmero de variveis. Exemplo AB + AB + C = AB + C

Palavra de origem grega usada em lgica para descrever uma proposio que verdadeira quaisquer que sejam os valores de suas variveis.

F = (A + B + C)(A + B + C)(A + B + C) + (A + B + C)

Propriedade dos complementos


Se aplicarmos um sinal lgico e seu complemento a uma porta lgica, simultaneamente a sada ser 0 ou 1, dependendo do tipo de porta. Exemplos AA = 0 A+A=1

2.2.1 Propriedades e teoremas da lgebra booleana


Os teoremas e propriedades da lgebra booleana permitem a simplificao de circuitos lgicos, objetivo final de todo projeto de circuitos digitais. As propriedades mais importantes so apresentadas a seguir.

Propriedade da interseco
Est relacionada com as portas E. Os casos possveis so: A1 = A A0 = 0 Obs.: essa propriedade aplicvel a um maior nmero de variveis de entrada. Exemplos AB1 = AB AB0 = 0

Propriedade da dupla negao


Essa propriedade afirma que o complemento do complemento de uma vari vel igual a ela prpria. Em forma de expresso matemtica, temos, como exemplo: A=A

Propriedade comutativa
Essa propriedade semelhante da lgebra convencional e pode ocorrer nos seguintes casos: AB = BA A+B=B+A

Propriedade da unio
Est relacionada com as portas OU e divide-se em dois casos: B + (1) = 1 B + (0) = B Essa propriedade tambm vlida para portas OU com mais de duas entradas. Exemplos A + B + (1) = 1 A + B + (0) = A + B 36

Propriedade associativa
outra propriedade semelhante da lgebra convencional. Os casos possveis so: (AB)C = A(BC) = ABC A + (B + C) = (A + B) + C = A + B + C

37

eletrnica 4

CAPTULO 2

Propriedade distributiva
Tambm semelhante da lgebra convencional. Exemplos A(B + C) = AB + AC A + BC = (A + B)(A + C)
A 0 0 1 1 B 0 1 0 1 A 1 1 0 0 B 1 0 1 0 A B A B A+B 0 0 0 1 1 1 1 0 1 1 1 0

Tabela verdade para uma porta NAND

Propriedade da absoro
Os casos mais elementares so: A + AB = A A + AB = A + B (A + B)B = AB Em decorrncia dessas identidades, podemos encontrar outras um pouco mais complexas: AB + AB = A (A + B)(A + B) = A A(A + B) = A A(A + B) = AB AB + AC = (A + C)(A + B) 2o teorema de De Morgan O complemento da soma igual ao produto dos complementos A + B = AB Esse teorema tambm pode ser comprovado pela tabela verdade. Como consequncia dos teoremas de De Morgan as funes lgicas j conhecidas podem ser reescritas por um bloco equivalente, permitindo, assim, redesenhar os circuitos lgicos caso seja conveniente. As equivalncias bsicas so: a)Portas NAND (figura 2.9).
A B equivalente a AB

Dualidade
Seja F uma funo booleana. Define-se a funo dual de F como aquela obtida quando mudamos os operadores + porepor + e os valores 0 por 1 e 1 por 0. Postulados da dualidade:

Figura 2.9
AB

Equivalncia entre as portas NAND.

A A+B

1a) X = 0 se x 1 1b) X = 1 se X 0 2a) X = 1 se x = 0 2b) X = 0 se X = 1 3a) 00 = 0 3b) 1 + 1 = 1 4a) 11 = 1 4b) 0 + 0 = 0 5a) 10 = 01 = 0 5b) 0 + 1 = 1 + 0 = 1
1o teorema de De Morgan O complemento do produto igual soma dos complementos

AB = A + B

Ou seja (figura 2.10):


A B

A B

Figura 2.10
S

Representaes simplificadas das portas NAND.

AB = A + B
Podemos comprovar esse teorema pela tabela verdade a seguir: 38

b)Portas NOR (figura 2.11).


A B

A B

Figura 2.11
S

Representaes simplificadas das portas NOR.

39

eletrnica 4

CAPTULO 2

Exemplo Consideremos a seguinte expresso lgica: (A + (BC)) O circuito lgico correspondente implementado com portas lgicas E, OU e INVERSORAS ter o aspecto ilustrado na figura 2.12. Figura 2.12
Representao do circuito lgico com portas lgicas E, OU e INVERSORAS.
A B C A BC A + BC

2.3 Descrio de funes lgicas


Os circuitos lgicos podem ser representados por funes booleanas, ou seja, admite-se que todos os circuitos lgicos estabelecem as relaes entre entradas e sada obedecendo funo booleana que os representa. Quando necessrio, possvel obter a funo booleana por meio da tabela verdade do circuito. Alm disso, o circuito lgico pode ser descrito pela conexo de portas lgicas bsicas, independentemente de sua complexidade. A seguir, so descritas as relaes entre as formas de representao de um circuito lgico.

2.3.1 Circuito lgico


Consideremos o circuito lgico da figura 2.15. Vamos obter a funo lgica S = f(A, B, C, D), da sada do circuito. Figura 2.15

a + bc

Quebrando a barra superior (adio se transforma em multiplicao)

A B C D

(A B)* (A B) + (C + D)* S S = (A B) + (C + D) (C + D)* circuito lgico funo booleana

Representao da funo y = A, B, C, D.

abc Aplicando a identidade x = x abc

abc

Pela aplicao das identidades do circuito da figura 2.12, o circuito lgico reduz-se conforme apresenta a figura 2.13. Figura 2.13
Representao simplificada do circuito lgico com portas lgicas E, OU e INVERSORAS.
A B C A ABC

Analisando esse circuito, podemos notar que colocamos na sada de cada porta lgica a expresso booleana correspondente (*), que ser a entrada de outra porta lgica, e assim repetimos o procedimento sucessivamente at a expresso booleana da sada. Vamos analisar outra situao, considerando a funo booleana y = AB + C. (B + D). Como se trata de uma expresso algbrica (lgebra booleana), devemos respeitar na implementao do circuito a ordem das operaes, associando a multiplicao operao E e a soma operao OU. As operaes entre parnteses devem ser feitas agrupadas (figura 2.16). Figura 2.16
y = A B + C (B + D) B D C A B circuito lgico y

Reaplicando os teoremas de De Morgan para substituir os blocos lgicos da figura 2.13 pelos equivalentes, obtemos a figura 2.14. Figura 2.14
Representao simplificada do circuito lgico com portas lgicas E, OU e INVERSORAS com substituio dos blocos lgicos da figura 2.13 por seus equivalentes.
A A ABC ABC B C B C B C

Representao da funo y = AB + C(B+D).

E E OU

OU

funo booleana

2.3.2 Tabela verdade 2


Vamos obter a tabela verdade da funo booleana y = ABC + AC + BC. Para isso, adotamos o seguinte procedimento: 41

40

eletrnica 4

CAPTULO 2

Os clculos referentes s colunas das parcelas da funo booleana, em geral, so feitos mentalmente ou em rascunho.

1) Montamos a coluna completa de todas as combinaes possveis das variveis (nmero de linhas = 2n + 1, n = nmero de variveis). 2) Montamos as colunas auxiliares em quantidade igual ao nmero de parcelas da funo booleana. 3) Montamos a ltima coluna para y. Tabela verdade de y = ABC + AC + BC
Tabela da verdade de y = A B C + AC + BC A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 A B C 0 0 0 1 0 0 0 0 AC 0 0 0 0 1 0 1 0 BC 0 0 0 1 0 0 0 1 y 0 0 0 1 1 0 1 1

3) Fazemos OU dos valores obtidos y = ABC + ABC + ABC + ABC Obs.: a numerao das linhas registradas esquerda no necessria; serve somente como referncia para a explicao.

2.3.3 Simplificao de funes lgicas


O mapa (ou diagrama) de Karnaugh uma forma ordenada utilizada para minimizar uma expresso lgica, que geralmente produz um circuito com configurao mnima. construdo com base na tabela verdade e pode ser facilmente aplicado em funes envolvendo duas a seis variveis. No caso de sete ou mais variveis, o mtodo torna-se complicado e devemos usar tcnicas mais elaboradas. Representa-se o mapa de Karnaugh por uma tabela em forma de linhas e colunas. Essa tabela, de acordo com o nmero de variveis, dividida em clulas obedecendo proporo 2n, em que n o nmero de variveis de entrada envolvidas.

possvel obter a expresso booleana por meio da tabela verdade. Para isso, vamos considerar a tabela verdade a seguir:.
Tabela verdade A 1 2 3 4 5 6 7 8 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 y 0 0 1 0 1 1 0 1

Mapa para uma varivel de entrada (figura 2.17)


Figura 2.17
A
0 1

Mapa para uma varivel de entrada.

(a)

(b)

(c)

A
0

0
1

o Linha n

A 0 1

f (A)

0 1

Para montarmos a funo booleana a partir dos valores da tabela verdade, adotamos o seguinte procedimento: 1) Consideramos somente as linhas da tabela em que y = 1. 2) Fazemos E das variveis que tm valor 1 com os complementos das que tm valor 0, por exemplo: linha 3 A=0, B=1 e C=0 ABC linha 5 A=1, B=0 e C=0 ABC linha 6 A=1, B=0 e C=1 ABC linha 8 A=1, B=1 e C=1 ABC 42

Mapa para duas variveis de entrada (figura 2.18)


Figura 2.18
B A 0 B 1
0

0
2

A 1

o Linha n

A 0 0 1 1

B 0 1 0 1

f (A, B)

Mapa para duas variveis de entrada.

0 1

2 3

43

eletrnica 4

CAPTULO 2

A figura 2.19 apresenta a tabela verdade e o mapa de Karnaugh correspondente para duas variveis.

Mapa para quatro variveis de entrada (figura 2.22)


Figura 2.22
AB

Mapa para quatro variveis de entrada.


00 01 11 10

Linha n 0 1 2 3

A 0 0 1 1 (a)

B 0 1 0 1

f (A, B) 1 0 0 1

A 0 0 1
0

1
2

A 0 0 1
0

1
2

A 0 0
0 2

CD

00 01 11 10

1 0

0 1

(b)

(c)

(d)

Figura 2.19
Representao do mapa para duas variveis de entrada.

Mapa para trs variveis de entrada (figura 2.20)


A 00 0 C 1
0 2

A figura 2.23 apresenta um exemplo de como deve ser representado o mapa para quatro variveis, a partir da tabela verdade correspondente. Figura 2.23

AB 01
6

11
4

10
A B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 X 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 ABCD ABCD X = ABCD + ABCD + ABCD + ABCD ABCD AB AB AB AB CD CD CD CD ABCD

Mapa para quatro variveis de entrada.

0 0

Figura 2.20
Mapa para trs variveis de entrada.

0 0 0

A figura 2.21 apresenta um exemplo de como deve ser representado o mapa para trs variveis, a partir da tabela verdade correspondente. Figura 2.21
Mapa para trs variveis de entrada.
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 X 1 1 1 0 0 0 1 0 ABC (b) ABC ABC ABC X = ABC + ABC + ABC + ABC AB AB AB AB C C

0 0 0 1 1 1 1 1 1

0 0 0 0

1 1 1 0

0 0 1 0

0 0 0 0

1 1 1 0

1 0 0 0

1 1

44

45

eletrnica 4

CAPTULO 2

Mapa para cinco variveis de entrada (figura 2.24)


Figura 2.24
Mapa para cinco variveis de entrada.
BC DE 00 01 11 10 A=0 00
0

1) Identificar as clulas nas quais os nveis de sada so iguais a 1. 2) Formar enlaces ou agrupamentos de clulas logicamente adjacentes cujos nveis de sada so iguais a 1.
11
28

A=1 10
8

01
4

11
12

00
16

01
20

10

BC DE 00 01 11 10

24

13

17

21

29

25

Obs.: duas clulas so adjacentes se apenas uma das variveis de entrada correspondentes troca de valor; portanto, as clulas localizadas nos vrtices do mapa tambm so adjacentes entre si. 3) Os agrupamentos formados devem conter o maior nmero possvel de clulas logicamente adjacentes, mas esse nmero tem sempre de ser uma potncia de 2, ou seja, agrupamentos que tenham 1, 2, 4, 8, 16, 32, ... elementos.
Agrupamentos possveis HEXA 16 quadros 8 quadros 4 quadros 2 quadros 1 quadro

15

11

19

23

31

27

14

10

18

22

30

26

Na figura 2.25, podemos observar a representao do mapa para seis variveis de entrada. Figura 2.25
Mapa para seis variveis de entrada.
EF 00 01 A=0 11 10 CD B=0 00
0

OITAVA QUADRA PAR TERMO ISOLADO

B=1 10
8

01
4

11
12

00
16

01
20

11
28

10

CD EF 00 01 11 10

24

13

17

21

29

25

Nota: sempre que um grupo formado, a varivel que muda de estado a eliminada. Por exemplo: se o grupo engloba parte da regio A e parte da regio A , a varivel A eliminada. 4) Cada agrupamento assim formado corresponde a uma funo lgica E envolvendo as variveis de entrada entre uma clula e outra que mantm o nvel lgico. 5) A expresso lgica final corresponde a uma funo OU envolvendo os agrupamentos anteriormente mencionados. Exemplos de minimizao Exemplos para trs variveis de entrada 1. Z = f (A, B, C) = A B C + AB + ABC + AC (figura 2.26) Figura 2.26
AB 0 1

15

11

19

23

31

27

14

10

18

22

30

26

00 01 A=1 11 10 EF CD

32

36

44

40

48

52

60

56

00 01 11 10 EF

33

37

45

41

49

53

61

57

35

39

47

43

51

55

63

59

34

38

46

42

50

54

62

58

00

01

11

10

00

01

11

10

CD

00

01

11

10

A seguir, vamos analisar o processo de minimizao utilizando os diagramas de Karnaugh e, depois, ver alguns exemplos.

Simplificao das trs variveis de entrada para o exemplo 1.

1 1

1 1 1

Minimizao de funes utilizando o mapa de Karnaugh


Para realizarmos a minimizao de funes lgicas utilizando o mtodo do mapa de Karnaugh, devemos obedecer s seguintes regras: 46

A expresso lgica minimizada B + AC + AC

47

eletrnica 4

CAPTULO 2

2. Z = f(A, B, C) = AB + BC + BC + AB C (figura 2.27) A expresso lgica minimizada B + AC. Figura 2.27


Simplificao das trs variveis de entrada para o exemplo 2.
C AB 0 1 00 01 11 10

De acordo com os enlaces anteriores, a expresso obtida seria: f = ABCD + ACD + BC + A Mas ser essa a expresso mnima? Se selecionarmos adequadamente os enlaces de acordo com as regras expostas anteriormente, obteremos a figura 2.30.
II 00 01 11 I 10

1 1

1 1

1
AB CD 00 01

Figura 2.30
Nova representao com os trs enlaces.

1 1

1 1 1

1 1 1 1

Exemplos para quatro variveis de entrada 1. Dado o diagrama de Karnaugh da figura 2.28, obtenha a expresso lgica minimizada. Figura 2.28
Simplificao das quatro variveis de entrada para o exemplo 1.
AB CD 00 01 11 10 00 01 11 10

III 11 10

1 1

1 1 1

1 1 1 1

Considerando esses novos enlaces, obteremos a seguinte expresso mnima: f = D + BC + A 2. Minimize a expresso lgica dada a seguir (figura 2.31). f = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + + ABCD + ABCD

Soluo: Para ilustrar o processo, primeiramente no de forma ideal, suponhamos que tivssemos selecionado os agrupamentos apresentados na figura 2.29. Figura 2.29
Representao dos quatro enlaces.
AB CD 00 01 11 10 IV 00 II 01 11 I 10 AB CD 00 01 11 00 01 11 10

Figura 2.31
Representao com os quatro enlaces.

1 1 1 1 1 1 1

1 1

1 1 1

1 1 1 1

Enlace I Enlace II Enlace III Enlace IV

A BC ACD ABCD

10

1
III

Soluo: Expresso lgica minimizada: F(A,B,C,D) = BCD + AD + ACD + BCD

48

49

eletrnica 4

CAPTULO 2

Exemplo para cinco variveis de entrada Considere as figuras 2.32 e 2.33. Figura 2.32
Mapa para cinco variveis de entrada.
DE 00 01 11 10 A=0 BC 00 01 11 10 00 A=1 01 11 10 BC DE 00 01

CD EF 00 01 A=0 11 10

B=0 00 01 11 10 00

B=1 01 11 10

Figura 2.34
CD EF 00 01

Mapa para seis variveis de entrada.

1 1

1 1 1 1

1 1

1 1

11 10

1 1

1 1 1 1

1 1

1 1

11 10

00 01 A=1 11 10 EF CD 00 01

00

1 1 1
11

01 11 10 00 01 11 10 EF CD

1
10

Figura 2.33
Representao dos quatro enlaces.
DE 00 01 11 10 BC 00

A=0 I 01 11 10 00

IV

A=1 01 11 10 BC DE 00 CD 01 11 10 A=0 11 EF 00 01 00 B=0 01 11 10 I 00 B=1 01 V 11 10 CD EF 00 01

1 1

1 1 1

1 1 1 1

Figura 2.35
Representao dos cinco enlaces.

1 1

1 1
III

1
II

1 1

1 1 1 1
II

1 1

1 1

11 10

10

O resultado obtido : f = ACDE + BDE + BCDE + ACD Exemplo para seis variveis de entrada Considere as figuras 2.34 e 2.35.
A=1

00 01 11 10 EF CD 00

IV

00

1 1 1 1
10 III 00 01 11 10

01 11 10 EF CD

01

11

F = ACE + BCEF + ABCDE + ABDEF + ABDEF

50

51

Captulo 3

Circuitos combinatrios

eletrnica 4

CAPTULO 3

Por exemplo, acionando a tecla 6 (A6 = 1), teremos o binrio de sada 0110, ou seja, S3 = 0, S2 = 1, S1 = 1 e S0 = 0 (figura 3.2). Figura 3.2
Codificador decimal-binrio.
Processamento aritmtico Binrio CODIFICADOR

7 4

8 5 2 0
Decimal

9 6 3

ircuitos combinatrios so aqueles cujas sadas dependem apenas da combinao dos valores das entradas em determinado instante. Neste captulo sero vistos os principais circuitos combinatrios utilizados em sistemas digitais: codificadores, decodificadores, multiplexadores, demultiplexadores e circuitos aritmticos.

3.1 Codificadores/decodificadores
Os sistemas digitais trabalham com informaes representadas por nveis lgicos zeros (0) e uns (1), conhecidos como bits (binary digits, ou dgitos binrios). Portanto, todas as informaes correspondentes a sinais de som, vdeo e teclado (nmeros e letras), por exemplo, devem ser convertidas em bits para que sejam processadas por um sistema digital. Devido ao nmero de cdigos diferentes criados para a representao de grandezas digitais, fez-se necessrio desenvolver circuitos eletrnicos capazes de converter um cdigo em outro, conforme a aplicao. Um codificador um circuito lgico que converte um conjunto de sinais de entrada em determinado cdigo, adequado ao processamento digital.

O diagrama em blocos do codificador pode ser representado conforme a figura 3.3. Figura 3.3
CH0 CH 1 CH 2 CH 9 CODIFICADOR OU DECODIFICADOR A B C D

Diagrama em blocos do codificador.

3.1.1 Codificador de M-N (M entradas e N sadas)


Figura 3.1
Codificador M entradas e N sadas.
Codi cador de M - N (M - Entradas e N - Sadas)
M Entradas A0 A1 A2 CODIFICADOR N Cdigos O0 O1 O2
CH 0 0 1 1 1 CH 1 1 0 1 1 1 1 1 1 1 1 CH 2 1 1 0 1 1 1 1 1 1 1 CH 3 1 1 1 0 1 1 1 1 1 1 CH 4 1 1 1 1 0 1 1 1 1 1 CH 5 1 1 1 1 1 0 1 1 1 1 CH 6 1 1 1 1 1 1 0 1 1 1 CH 7 1 1 1 1 1 1 1 0 1 1 CH 8 1 1 1 1 1 1 1 1 0 1 CH 9 1 1 1 1 1 1 1 1 1 0 A 0 0 0 0 0 0 0 0 1 1 B 0 0 0 1 1 1 1 1 0 0 C 0 0 1 1 0 0 1 1 0 0 D 0 1 0 1 0 1 0 1 0 1

Para esse codificador, temos a tabela verdade reproduzida a seguir:

...

...

A m1

On1

1 1 1 1

3.1.2 Exemplo de codificador decimal-binrio


Um codificador decimal para binrio possui dez entradas e quatro sadas. A qualquer momento, somente uma linha de entrada tem um valor igual a 1. 54

1 1

55

eletrnica 4

CAPTULO 3

Codificador com prioridade


Se observarmos com cuidado o circuito do codificador apresentado na figura 3.3, reconheceremos as seguintes limitaes: se mais do que duas entradas forem ativadas simultaneamente, a sada ser imprevisvel ou ento no aquela que espervamos. Essa ambiguidade resolvida estabelecendo uma prioridade de modo que apenas uma entrada seja codificada, no importando quantas estejam ativas em determinado instante. Para isso, devemos utilizar um codificador com funo de prioridade. A operao desse codificador tal que, se duas ou mais entradas forem ativadas ao mesmo tempo, a entrada que tem a prioridade mais elevada ter precedncia. Exemplo de circuito integrado 74147: codificador com prioridade decimal-BCD A figura 3.4 identifica os pinos do CI 74147 e a tabela verdade correspondente. Tabela verdade Figura 3.4
Circuito integrado 74147: codificador com prioridade decimal-BCD.
U1 11 12 13 1 2 3 4 5 10 1 2 3 4 5 6 7 8 9 74147N A B C D 9 7 6 14 1 1 X X X X X X X X 0 2 1 X X X X X X X 0 1 3 1 X X X X X X 0 1 1

Figura 3.5
CIRCUITO LGICO
1 (11) 146, LS 147

Circuito lgico: configurao das portas lgicas do circuito integrado da figura 3.4.

(12) (9) A

(13)

(1)

(2)

(7)

Entradas
4 1 X X X X X 0 1 1 1 5 1 X X X X 0 1 1 1 1 6 1 X X X 0 1 1 1 1 1 7 1 X X 0 1 1 1 1 1 1 8 1 1 0 1 1 1 1 1 1 1 9 1 0 1 1 1 1 1 1 1 1 D 1 0 0 1 1 1 1 1 1 1

Sadas
C 1 1 1 0 0 0 0 1 1 1 B 1 1 1 0 0 1 1 0 0 1 A 1 0 1 0 1 0 1 0 1 0

(3)

(4) (6) C

(5)

(10)

(14)

Exemplo de aplicao do CI 74147 em um teclado Observando a tabela verdade do circuito integrado da figura 3.4, conclumos que nove linhas de entrada ativas (ativas em nvel baixo) representam os nmeros decimais de 1 a 9. A sada do CI sugerido o cdigo BCD invertido, correspondente entrada de maior prioridade. Caso todas as entradas estejam inativas (inativas em nvel alto), ento as sadas estaro todas em nvel alto. As sadas ficam normalmente em nvel alto quando nenhuma entrada est ativa (figura 3.5). 56 Se as chaves estiverem abertas, todas as entradas estaro em nvel alto e as sadas em 0000. Se qualquer chave estiver fechada, a entrada correspondente estar em nvel baixo e as sadas assumiro o valor do cdigo BCD do nmero da chave. O CI 74147 um exemplo de circuito com prioridade. Dessa maneira, a sada ativa ser relativa chave de maior prioridade entre aquelas que estiverem fechadas em determinado momento (figura 3.6). 57

eletrnica 4

CAPTULO 3

Figura 3.6
Exemplo de aplicao do CI 74147.
Ch9 Ch8 Ch7 Ch6 Ch5

+5 V

Resistor pull-up em cada chave de sada

Quando queremos, por exemplo, acender o nmero 0, polarizamos diretamente os LEDs (segmentos) que formam o dgito 0 no display, ou seja, os segmentos a, b, c, d, e, f, para ser possvel visualizar o dgito, conforme ilustrado na figura 3.8. Figura 3.8
Representao do LED indicando o nmero zero.

1 k

O3

O2 Codi cador 74147 Normal BCD

Ch4 Ch3 Ch2 Ch1 Ch0

O1

Para acionar adequadamente o display de sete segmentos a fim de visualizarmos o cdigo hexadecimal, necessrio um decodificador com as caractersticas apresentadas na figura 3.9 e na tabela verdade correspondente. Figura 3.9
Representao do display e tabela verdade para cada um dos segmentos.
b g

O0
a D C B A D C B A > CLOCK Decodi cador BCD para 7 segmentos b c d e f g a b c d e f g e d c f a

O decodificador tambm um circuito combinacional, normalmente usado para habilitar uma, e somente uma, dentre m sadas por vez, quando aplicada uma combinao binria especfica em suas n entradas. Exemplo de decodificador HEX/BCD sete segmentos O display de sete segmentos apresenta sete LEDs dispostos de modo que se observe uma estrutura em forma de oito, conforme mostra a figura 3.7. Figura 3.7
Display de sete segmentos.
g f comum a b

Display LED de 7 segmentos

Entradas Binary Inputs BCD


D C 1 1 1 1 B 1 1 1 1 A 1 1 1 1 1 a 1 1 1 1 1 1 1 1

Decoder Sadas Outputs


b 1 1 1 1 1 1 1 1 c 1 1 1 1 1 1 1 1 1 d 1 1 1 1 1 1 1 e 1 1 1 1 f 1 1 1 1 1 1 g 1 1 1 1 1 1

Segment Display Outputs


0 1 2 3 4 5 6 7 8 9

a f g b

e d

1 1

d comum

pto

58

59

eletrnica 4

CAPTULO 3

Resolvendo os diagramas de Karnaugh correspondentes aos sete segmentos, obtemos o circuito lgico conforme mostra a figura 3.10. Figura 3.10
Representao do circuito lgico do decodificador de sete segmentos.

Exemplo de decodificador BCD sete segmentos A maior parte das aplicaes com displays requer que trabalhemos com o cdigo decimal (BCD). Uma possibilidade utilizar o CI 4511, que um decodificador BCD 7 segmentos. A figura 3.11 mostra a representao dos pinos desse circuito e a tabela verdade detalhada. Figura 3.11
Representao dos pinos do CI 4511 e tabela verdade para cada um dos segmentos.

DECODIFICADOR BCD - 7 SEGMENTOS


g

Tabela verdade

Entradas BCD
D 0 0 0 C 0 0 0 0 1 1 1 1 0 0 B 0 0 1 1 0 0 1 1 0 0 A 0 1 0 1 0 1 0 1 0 1 a 1 0 1 1 0 1 1 1 1 1 b 1 1 1 1 1 0 0 1 1 1 c 1 1 0 1 1 1 1 1 1 1

Sadas
d 1 0 1 1 0 1 1 0 1 1 e 1 0 1 0 0 0 1 0 1 0 f 1 0 0 0 1 1 1 0 1 1 g 0 0 1 1 1 1 1

Display tipo ctodo comum

B C LT BI LE D A VSS

1 2 3 4 5 6 7 8

16 15 14 13 12 11 10 9

VDO f g a b c d e f e d a g b c

0 0 0

4511

c
0 0 1 1 0 1 2 3

DISPLAY

0 1 1

Entrada D = MSB e entrada A = LSB

Para os cdigos binrios correspondentes aos dgitos maiores do que 9 (1010 at 1111), todas as sadas so colocadas em nvel 0 e, consequentemente, todos os segmentos do display ficam apagados (funo blank).

60

61

eletrnica 4

CAPTULO 3

Sinais de controle
Para visualizarmos os cdigos, conectamos as entradas LT (lamp test) e BI (ripple blanking input) em nvel lgico 1 e a entrada LE (latch enable) em nvel lgico 0. Para testarmos os segmentos do display, conectamos a entrada LT em nvel lgico 0 (todos os segmentos do display devero acender, independentemente do cdigo presente nas entradas D, C, B e A). A entrada LE pode ser utilizada (quando em nvel lgico 1) para armazenar o cdigo presente nas entradas BCD. O display permanecer inalterado at que se aplique nvel lgico 0 na entrada LE para um novo cdigo presente nas entradas BCD.
BLOCO 1
Entradas IM 0 IM 1 IM 2 IM 3 Sada OM0 ID 0 Entrada

BLOCO 2
Sadas OD 0 OD 1 OD 2 OD 3 OD 4 OD 5 OD 6 OD 7

Conexes externas
Figura 3.12
CI com display de sete segmentos ctodo comum.

O diagrama da figura 3.12 ilustra a utilizao do CI com display de sete segmentos ctodo comum.
4 Comb. dif.

CM 1 CM 0 0 0 1 1 0 1 0 1 IM 0 IM 1 IM 2 IM 3

CD2 0 0 0 0 1 1

CD1 0 0 1 1 0 0 1 1

CD0 0 1 0 1 0 1 0 1 OD 0 OD 1 OD 2 OD 3 OD 4 OD 5 OD 6 OD7 8 Comb. dif.

Entradas binrias

LT BI A B C D

Udd a b c d e f g Terra

470R cada

Display 7 segmentos a f g e d Catodo c b 2 variveis de controle (CM0 e CM1) 2


2

1 1

3 variveis de controle (CD0, CD1 e CD2) 2


3

4511

4 combinaes de 0's e 1's diferentes e que igual ao nmero de entradas (IM0, IM1, IM2, e IM3)

8 combinaes diferentes de 0's e 1's e que igual ao nmero de sadas (OD0, OD1, OD2 ........OD7)

9V

10 k cada

LE

Figura 3.13 Na figura 3.13, o bloco 1 apresenta a ideia bsica de um multiplexador (MUX), ou seja, de vrias entradas, uma selecionada e direcionada para a sada. A seleo representada na figura por uma chave; no circuito real, a seleo feita por meio das variveis de controle (seleo). Nesse exemplo, o multiplexador tem quatro entradas (IM0, IM1, IM2, IM3) e, portanto, precisamos de duas variveis de controle, pois possvel com elas obter quatro combinaes de 0 e 1 diferentes.
Transferncia de dados entre os blocos 1 e 2.

Terra

3.2 Multiplexadores/demultiplexadores
Consideremos a seguinte situao: queremos transferir dados lgicos (0, 1) de quatro entradas para oito sadas, com a possibilidade de qualquer entrada se comunicar com qualquer sada, tendo para isso uma nica via de transferncia de dados (figura 3.13).

O bloco 2 apresenta a ideia bsica de um demultiplexador (DEMUX), ou seja, a entrada nica de dados direcionada para uma das vrias sadas, para a sada selecionada. A tabela 3.5 registra, em cada linha, o caminho de determinada entrada at certa sada por meio das variveis de controle de entrada no MUX e das variveis de controle de sada no DEMUX.

62

63

eletrnica 4

CAPTULO 3

Tabela 3.1
Tabela verdade

ENTRADA CONTROLE DADOS MUX CM1


IM2 IM0 IM2 IM3 IM1 IM0 IM0 IM1 1 0 1 1 0 0 0 0

Variveis de controle CM2 SADA CD0


1 0 0 1 1 0 0 1 OD3 OD6 OD6 OD1 OD7 OD4 OD2 OD5T 0 0 0 0 1 1 1 1

Sada OM0
IM0 IM1 IM2 IM3 IM4 IM5 IM6 IM7

Tabela 3.2 Produtos das variveis de controle


CM2.CM1.CM0 CM2.CM1.CM0 CM2.CM1.CM0 CM2.CM1.CM0 CM2.CM1.CM0 CM2.CM1.CM0 CM2.CM1.CM0 CM2.CM1.CM0 Tabela verdade

CM1
0 0 1 1 0 0 1 1

CM0
0 1 0 1 0 1 0 1

DEMUX CD2
0 1 1 0 1 1 0 1

CM0
0 0 0 1 1 0 0 1

CD1
1 1 1 0 1 0 1 0

A figura 3.14 representa um multiplexador de n entradas de dados, m entradas de controle (seleo) e uma sada. Figura 3.14
Multiplexador.
n entradas de dados
IM0 IM1 IM2 IMn 1

Observe na tabela verdade que a coluna Sada corresponde s entradas selecionadas pelas variveis de controle, como deve ocorrer em um MUX, ou seja, OM0 = IM selecionada. Sabemos que, se todas as entradas de uma porta E forem 1, exceto uma, que poder ser 1 ou 0, a sada da porta ser 1 ou 0. Ento, temos, por exemplo, a figura 3.15. Figura 3.15
Porta E com trs entradas.
CM2 Se IM5 = 0 OM0 = IM5 OM0 = 0

sada MUX OM0

CM1 CM0 IM5

2m = n CMm 1 CM2 CM1 CM0

Se IM5 = 1 OM0 = 1, pois o produto cannico das variveis que selecionam IM5 tambm resulta 1.

m entradas de seleo

Vamos implementar um MUX de oito entradas. Para isso, necessitamos de trs variveis de controle, pois 23 = 8, que corresponde ao nmero de entradas (tabela verdade).

Assim, podemos implementar o MUX de oito entradas e trs variveis de controle como apresentado na figura 3.16.

64

65

eletrnica 4

CAPTULO 3

Figura 3.16
MUX de oito entradas e trs variveis.
CM2 CM1 CM0

Exemplos 1. Seja a funo y = ABC + ABC + ABC.


E0

IM0

IM1

E1

Escolhemos um multiplexador com trs entradas de controle (seleo), pois a funo possui trs variveis independentes (figura 3.17). Fazemos uma tabela verdade, relacionando as variveis de controle e as de dados. Figura 3.17

IM2

E2

Tabela verdade y=ABC+ABC+ABC A B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 ABC ABC ABC y Dados I0 = 0 I1 = 1 I2 = 0 I3 = 0 I4 = 1 I5 = 1 I6 = 0 I7 = 0

+5V

IM3

E3 OM0 E4

0 0 0

IM4

IM5

E5

0 1

I0 I1 I2 I3 I4 I5 I6 I7 A B C G

Multiplexador com trs entradas de controle e tabela verdade correspondente.


7 4 1 5 1

IM6

E6

1 1

variveis de entrada

IM7

E7

A bolinha () indica que a entrada foi complementada, substituindo, na representao, a porta inversora. Podemos implementar o MUX por meio da tabela verdade. Para isso, devemos considerar que a tabela verdade ter como entrada oito variveis de dados e trs variveis de controle assim, em princpio, uma tabela verdade com 211 = 2048 combinaes. Somente as linhas em que a varivel de dados selecionada 1, a sada 1 e essa condio independe das demais variveis de dados. Para isso, temos de levar em considerao oito linhas das 2048, e, portanto, a funo booleana de sada a soma do produto dessas oito linhas: OM0 = IM0CM2CM1CM0+IM1CM2CM1CM0+IM2CM2CM1CM0+ IM3CM2CM1CM0+IM4CM2CM1CM0+IM5CM2CM1CM0+ IM6CM2CM1CM0+IM7CM2CM1CM0 Essa funo booleana executada pelo circuito da figura 3.16 (oito portas E e uma porta OU). possvel implementar funes lgicas diretamente em um multiplexador. Os exemplos a seguir ilustram essa tcnica. 66

As variveis de dados I1, I4, e I5 so levadas para nvel 1, pois correspondem s entradas do MUX que so selecionadas pelas variveis de controle e que aparecero na sada conforme estabelecido pela funo. As demais variveis so levadas para o nvel 0. As variveis de controle so as dependentes da funo booleana. A varivel independente representada pela sada do multiplexador. Para implementarmos o circuito da figura 3.17, podemos usar o CI TTL 74151 multiplexador digital de oito canais (figura 3.18). Figura 3.18
D0 a D7 1 I3 I2 I1 I0 Y W G 8 GND VCC I4 I5 I6 I7 A B C 9 16 Y W =Y A, B e C G entrada de dados sada sada entradas de controle strobe

Pinagem do CI TTL 74151 multiplexador digital de oito canais (16 pinos).

67

eletrnica 4

CAPTULO 3

Analisando a figura 3.18, temos: Y apresenta o valor da varivel selecionada; W = Y; G ativo em nvel baixo (indicado com a bolinha na representao da figura), o que significa que em G = 0 o MUX est liberado para funcionamento normal; para G = 1, Y = 0 independentemente dos valores das entradas A, B e C. Agora, vamos analisar o CI TTL 74150 (figura 3.19) multiplexador digital de 16 canais (24 pinos) e a tabela verdade correspondente. Figura 3.19
Pinagem do CI TTL 74150 e tabela verdade correspondente.
Tabela verdade strobe G 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 X seleo B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 X C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 X D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 X sada Y D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 0 8 7 6 5 4 3 2 1 23 22 21 20 19 18 17 16 15 14 13 11 9 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 A B C D G 12 GND 1 5 0 10 Y 7 4 24 5V

Figura 3.20
Tabela verdade y=ABC+ABC+ABC A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 ABC ABC ABC ABC ABC y Dados I0 = 0 I1 = 1 I2 = 0 I3 = 1 I4 = 0 I5 = 1 I6 = 1 I7 = 1 G variveis de entrada +5V I0 I1 I2 I3 I4 I5 I6 I7 A B C

Pinagem do CI 74151 referentes funo utilizada e a tabela verdade correspondente.


7 4 1 5 1

Pela associao de multiplexadores, possvel aumentar o nmero de entradas do circuito original, conforme mostra a figura 3.21, e montar um multiplexador de 16 canais utilizando multiplexadores de oito canais cada. Para isso, vamos utilizar o CI 74151, que j conhecemos. Figura 3.21
IF0 IF1 IF2 IF3 IF4 IF5 IF6 IF7 I0 I1 I2 I3 I4 I5 I6 I7 A B C G

Associao de multiplexadores utilizando CI 74151.


7 4 1 5 1 I0 I1 I2 I3 I4 I5 I6 I7 D E F

D A B C IF8 IF9 IF10 IF11 IF12 IF13 IF14 IF15 I0 I1 I2 I3 I4 I5 I6 I7 A B C G G

7 4 1 5 1

YF

Analisando a figura 3.19, temos: a sada Y complemento da entrada selecionada (ver representao tem bolinha); o strobe ativo em 0 (ver representao tem bolinha); G = 1 Y = 0, independentemente de A, B, C e D. 2. Seja, na figura 3.20, a funo y = A B C + A BC + A B C. A tabela verdade representa a funo utilizada. 68

7 4 1 5 1

69

eletrnica 4

CAPTULO 3

Analisando a figura 3.21, podemos notar que D o bit MSB (bit mais significativo) dos bits de seleo. Assim, temos como exemplos dois endereos: D A B C 0 1 0 1 IF5 D = 0 seleciona as entradas IF0 a IF7 1 0 1 1 IF11 D = 1 seleciona as entradas IF8 a IF15 O demultiplexador realiza a funo inversa do multiplexador, ou seja, a informao recebida em uma nica entrada de dados enviada para uma sada selecionada por variveis de controle (seleo). O demultiplexador representado na figura 3.22 tem m entradas de controle e n sadas. Figura 3.22
Representao do DEMUX.
entrada de dados ID0 DEMUX

Figura 3.23
Exemplo para anlise da condio estabelecida no DEMUX de oito sadas.

OD3 = ID0 . CD0 . CD1 . CD2 produto cannico das variveis de controle para seleo de OD3

Com a expresso booleana de cada sada obtida de maneira semelhante, podemos implementar o circuito do DEMUX com portas lgicas (figura 3.24). Figura 3.24

OD0 OD1 OD2

ODn 1

CD 2 CD 1 CD 0

OD0

CDm 1

CD1 CD0

ID0

OD1

Vamos implementar um DEMUX de oito sadas. Para isso, necessitamos de trs variveis de controle, pois 23 = 8, que corresponde ao nmero de sadas. Como so oito sadas, h oito tabelas verdades, que podem ser montadas em uma s com as mesmas entradas e as respectivas sadas.

OD2

OD3

OD4

Entradas
CD2 0 0 ... CD1 0 0 ... CD0 0 0 ... ID0 0 1 ... OD7 0 1 ... OD6 0 0 ... OD5 0 0 ...

Sadas
OD4 0 0 ... OD3 0 0 ... OD2 0 0 ... OD1 0 0 ... OD0 0 0 ...
OD6 OD5

OD7

Tabela 3.3
Tabela verdade para um DEMUX de oito sadas (representao parcial)

Analisando cada sada, sem a necessidade de montar a tabela verdade completa, conclumos que ela somente ser 1 se a entrada de dados for 1, uma vez que o produto cannico correspondente a essa sada ser 1. Qualquer outra condio levar a sada para 0. A figura 3.23 apresenta um exemplo. 71

70

eletrnica 4

CAPTULO 3

Entradas
G1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 G2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Y0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 Y1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Y2 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 Y3 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 Y4 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 Y5 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 Y6 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 Y7 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1

Sadas
Y8 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 Y9 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 Y10 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 Y11 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 Y12 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 Y13 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 Y14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 Y15 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
A B C D E

y = A BCD + ABCD + ABCD + A BCD

Figura 3.25

1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 1

Analisando a figura 3.25, podemos perceber que, como Y sada de uma porta NE, se uma das entradas for 0, Y ser igual a 1. Isso s acontece se uma das sadas corresponder a um dos termos da funo booleana de Y, selecionada pelas variveis de controle (A, B, C, D). Da mesma forma como foi feito com os multiplexadores, possvel a combinao de demultiplexadores para aumentar a capacidade do circuito, conforme exemplo da figura 3.26. Utilizando o 74154, vamos montar um demultiplexador de 32 sadas. Figura 3.26
A B C D G1 G2 Y0 Y1


A B C D G1 G2 Y2 Y9 Y11 Y15

Y11 Y9 Y2 Y15

DEMUX de 32 sadas.

16 sadas selecionadas E = 0

0 1 1

1 0 1

X X X

X X X

X X X

X X X

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

1
G

Y15

1 1
A B Y0 Y1

Tabela 3.4
Tabela verdade (CI 74154)

Observando a tabela verdade da figura 3.24, podemos notar que as duas entradas strobe G1 e G2 so ativas em nvel baixo, e, para seu funcionamento normal, elas devem estar em nvel baixo. Se G1 e G2 no estiverem em nvel baixo, todas as sadas vo para nvel alto. Observe que, em funcionamento normal, somente a sada selecionada est em nvel baixo; as demais encontram-se em nvel alto. Vamos usar o CI 74154 (figura 3.25) para executar a funo. y=A BCD + ABCD + ABCD+A BCD

C D G1 G2

16 sadas selecionadas E = 1

Y15 G=0 G=1 func. normal Y = 1 (todas)

72

73

eletrnica 4

CAPTULO 3

3.3 Circuitos aritmticos


O microprocessador, componente fundamental de um computador, tem em sua arquitetura interna uma ULA (unidade lgica aritmtica), na qual so realizadas as operaes lgicas e aritmticas. Associando portas lgicas de maneira conveniente, podemos obter circuitos que realizam operaes aritmticas. Devemos lembrar que portas lgicas tm como entrada estados lgicos que foram associados aos smbolos 0 e 1, e circuitos aritmticos tm como entrada nmeros. A adio, a subtrao e a multiplicao de nmeros binrios e decimais so efetuadas de modo semelhante, lembrando que o vai um em binrio ocorre quando a soma dos dgitos 2 e no 10 como em decimal. Por exemplo:
1 + 1 = 0 e "vai um" para a coluna seguinte

Vamos analisar outro exemplo com nmeros decimais, aplicando, agora, a regra usada no exemplo anterior generalizada: X = 743 571. Somamos ao minuendo o complemento 9 do subtraendo mais 1 e desprezamos o ltimo dgito esquerda, resultando X = 743 + (428 + 1) = 1172. Assim, temos X = 172 e chegamos ao resultado correto fazendo um clculo diferente do usual. Vamos retornar ao primeiro exemplo: X = 85 37 (estamos subtraindo do nmero positivo 85 o nmero positivo 37) equivalente a X = 85 + (37) (estamos somando ao nmero positivo 85 o nmero negativo 37) Observe que, ao desenvolvermos o clculo no exemplo, tnhamos chegado a X = 85 + 63 e desprezamos o ltimo algarismo da esquerda. Comparando X = 85 + (37) com X = 85 + 63 (desprezando o ltimo algarismo), o nmero 63 poderia ser interpretado como o negativo de 37, pois o resultado foi igual. Com o mesmo raciocnio, poderamos interpretar no segundo exemplo o nmero 429 como o negativo de 571. No processo usado para obtermos o resultado, a complementao do subtraendo foi feita para 9, ou seja, para o valor da base tirando 1 (sistema decimal 10 1 = 9). Procedimento similar usado na base 2 para transformar uma operao de subtrao em uma adio. No caso de binrios, que so base 2, a complementao do subtraendo seria para 1, e complementaramos o processo somando 1, obtendo, assim, a representao complemento 2 do binrio a ser subtrado. Complementar dgitos binrios para 1 no difcil, uma vez que se trata de circuito numrico correspondente a porta lgica inversora com entradas numricas (0 ou 1). Somar com circuitos digitais tambm simples. Portanto, a ideia exemplificada em decimais usada em sistemas binrios. O objetivo transformar operaes de subtrao em adio, que mais fcil de implementar com circuitos digitais. Em binrio, quando necessrio trabalhar com nmeros negativos, o primeiro bit da esquerda reservado para definio do sinal. Assim, quando trabalhamos com binrio com sinal, precisamos saber o nmero de dgitos com que os nmeros sero apresentados. Os binrios negativos tm o primeiro bit da esquerda igual a 1, e os binrios positivos, igual a 0. Usando esse critrio, ou seja, ter bem definida a posio do bit de sinal, podemos representar os binrios negativos pelo complemento 2 de seu valor positivo. Trabalhando com nmeros de oito bits, temos, por exemplo: 1001 1101 corresponde a um nmero negativo em representao binria. 0010 0110 corresponde ao decimal 38 positivo.

1 + 00 00 00 + 00 01 01 1 + 10 10 00 + 11 11 1 + 1 = 0 e vai um

1 10

Agora, vamos calcular: B1 = (0101 0011 + 0110 1001) e B2 = (0101 1101 + 1000 1110): 1 1 1 os vai um 0101 0011 0110 1001 1011 1100 11 1 0101 1101 1000 1110 1110 1011

BI = 1 0 1 1 1 1 0 0

B2 = 1 1 1 0 1 0 1 1

Os microprocessadores no possuem circuitos de subtrao, porm essa operao pode ser realizada por meio da adio usando nmeros na forma complemento 2. Para isso, vamos primeiro considerar ,por exemplo, o clculo de X = 85 37, ou seja, uma subtrao em decimal. Somando 100 e subtraindo 100 do segundo membro da equao, o valor de X no se altera. Portanto, temos X = 85 37 + (100 100) = 85 + (100 37) 100 = 85 + 63 100. O valor (100 37) poderia ser obtido complementando os algarismos de 37 para o valor 9 e somando 1, resultando (62 + 1) = 63. Assim, temos X = (85 + 63) 100 = 148 100. Nesse caso, subtrair 100 equivale a desprezar o ltimo algarismo do 148, resultando X = 48, que o resultado procurado. 74

75

eletrnica 4

CAPTULO 3

Vamos representar com oito dgitos, em binrio, os nmeros decimais 37, 6, 19 e 97 em representao complemento 2. Binrio (+37) 0 0 1 0 0 1 0 1 Binrio (-6) Binrio (+6) Somamos 1 0000 0110 0000 0001 + Achamos complemento 1 1 1 1 1 1 0 0 1 Binrio (-6) 1 1 1 1 1 0 1 0 Binrio (-19) Binrio (+19) Somamos 1 0001 0011 0000 0001 + Achamos complemento 1 1 1 1 0 1 1 0 0 Binrio (-19) 1 1 1 0 1 1 0 1 Binrio (-97) Binrio (+97) Somamos 1 0110 0001 1 + Achamos complemento 1 1 0 0 1 1 1 1 0 Binrio (-97) 1 0 0 1 1 1 1 1 Qual o valor decimal que corresponde ao binrio com sinal B1 = 1001 1101 representado em complemento 2? B1 representa um binrio negativo, pois o primeiro dgito esquerda 1; portanto, o correspondente decimal do complemento 2 dele com sinal negativo o valor procurado. Binrio B1 Complemento 1 de B1 Somando 1 Representao complemento 2 de B1 Convertendo em decimal Portanto 1001 1101 0110 0010 1 0110 0011 -B1 = (64 + 32 + 1)10 = (-99)10 B1 = (-99)10 +

A tabela 3.5 apresenta alguns nmeros binrios com sinal representados com oito dgitos e seu respectivo valor decimal. Tabela 3.5

decimal
+ 99 + 46 + 21 + 19

binrio
0110 0011 0010 1110 0001 0101 0001 0011

decimal
6 19 21 99

binrio
1111 1010 1110 1101 1110 1011 1001 1101

Observe os clculos representados em nmeros decimais usando os correspondentes binrios e confira os resultados tendo como referncia os valores decimais. Exemplos 1. 21 19 Soluo: 21 19 = 21 + (19) (0001 0101) (0001 0011) = (0001 0101) + (1110 1101)

Transformamos a subtrao em uma adio substituindo 19 pelo complemento 2 de +19, que corresponde ao valor negativo. 1111 1 1 0001 0101 1110 1101 10000 0010 0 0 0 0 0 0 1 0 = (2)10 O nono bit, ltimo esquerda, desconsiderado, pois, conforme estabelecido no incio deste estudo, estamos trabalhando com binrios com sinal representados por oito dgitos. Conferindo a conta em decimal, o resultado bate. 2. 46 21 Soluo: 46 21 = 46 + (21) (0010 1110) (0001 0101) = (0010 1110) + (1110 1011) 77 os vai um +

A representao complemento 2 de um binrio significa o valor negativo do binrio, independentemente de ele ser positivo ou negativo. 76

eletrnica 4

CAPTULO 3

Transformamos a subtrao em uma adio substituindo 21 pelo complemento 2 de +21. 11 1 11 os vai um 0010 1110 + 1110 1011 10001 1001 0 0 0 1 1 0 0 1 = (25)10 O nono bit, ltimo esquerda, desconsiderado, pois, conforme estabelecido no incio deste estudo, estamos trabalhando com binrios com sinal representados por oito dgitos. Conferindo a conta em decimal, o resultado bate. 3. 21 99 Soluo: 21 99 = 21 + (99)

1 1 1 0 1 0 1 1 complemento 1 0 0 0 1 0 1 0 0 1

complemento 2 0 0 0 1 0 1 0 1 = (+21)10 Portanto, o binrio (1110 1011) corresponde ao decimal 21.

3.3.1 Meio somador


Vamos observar as tabelas do oU exclusivo, do E, e da soma aritmtica de dois binrios de um dgito cada um (um bit).
Porta lgica E e OR EXCLUSIVO entrada A + B A 0 0 1 1 B 0 1 0 1 S 0 1 1 1 0 0 0 1 AB SOMA ARITMTICA entrada A 0 0 1 1 B 0 1 0 1 (A + B) C 0 0 0 1 S 0 1 1 1 (decimal) 0 1 1 2

Tabela 3.6
Porta lgica E e OU EXCLUSIVO e SOMA ARITMTICA

(0001 0101) (1001 1101) = (0001 0101) + (1001 1101)

Transformamos a subtrao em uma adio substituindo 99 pelo complemento 2 de +99. 11 1 1 0001 0101 + 1001 1101 1011 0010 Como espervamos, a operao resultou um nmero negativo. Para encontrarmos esse nmero em decimal, devemos calcular seu complemento 2, obtendo o binrio positivo correspondente, e depois converter em decimal e trocar o sinal. 1 0 1 1 0 0 1 0 complemento 1 0 1 0 0 1 1 0 1 1 + os vai um

As colunas assinaladas mostram que podemos usar o circuito da porta OU EXCLUSIVO para obter os dgitos menos significativos da soma aritmtica (A + B), tendo como entradas variveis numricas binrias A e B. Podemos tambm usar o circuito da porta lgica E para obter o dgito seguinte, dgito vai um, tendo como entradas variveis numricas binrias A e B (figura 3.27). Figura 3.27
A

Circuito meio somador.


S = AB + AB

complemento 2 0 1 0 0 1 1 1 0 = (78)10 Portanto, o resultado da operao em decimal 78. 4. Determine o correspondente decimal do binrio (1110 1011), em que o primeiro bit da esquerda o bit de sinal. Soluo: Determinamos o complemento 2 de (1110 1011), obtendo o valor positivo, convertemos em decimal e trocamos o sinal. 78
A 0 0 1 1 + + + + + B 0 1 0 1

B meio somador

C=AB

C 0 0 0 1

S 0 1 1 0 "vai um"

79

eletrnica 4

CAPTULO 3

O meio somador tambm conhecido como half adder (ingls), e o dgito de transporte C, como carry (ingls). Representando o meio somador em um nico bloco, temos a figura 3.28. Figura 3.28
Circuito meio somador.
A S

Na tabela: A e B so dgitos dos binrios somados; Ci o carry in, vai um da coluna anterior entrada no somador; Co o carry out, vai um sada no somador; Ci sada do somador anterior; Co entrada do somador seguinte. Analisando a tabela, temos: S = A B Ci + A B Ci + A B Ci + A B Ci C0 = A B Ci + A B Ci + A B Ci + A B Ci Passando para o mapa de Karnaugh (figura 3.29).
S A Ci B 00 01 11 10 0 1 A Ci B 00 01 11 10 0 Co 1

Co

meio somador

No possvel somar mais de dois algarismos com o meio somador. Para atendermos a essa condio, devemos utilizar o somador completo.

3.3.2 Somador completo


Consideremos a soma de dois nmeros binrios (1000 1011) + (0101 0111), representada no exemplo: 11 111 C A B S

Figura 3.29
Mapa de Karnaugh para S e Co.

0 1 0 1

1 0 1 0

0 0 1 0

0 1 1 1

1000 1011 0101 0111 1110 0010

Os bits da primeira coluna direita e o vai um podem ser obtidos com o meio somador. A partir da segunda coluna, o meio somador no suficiente, pois h a possibilidade de haver trs bits envolvidos na soma caso ocorra vai um da coluna anterior. Portanto, precisamos de um circuito aritmtico com trs entradas e duas sadas. O circuito com a tabela verdade representada a seguir resolve o problema.
Entradas
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Ci 0 1 0 1 0 1 0 1

Meio Somador (Ver Figura 3.27) Analisando o mapa de Karnaugh da figura 3.29, podemos notar que esse caso no admite simplificao, pois temos o OU EXCLUSIVO das trs entradas: S = A B Ci Co = AB + BCi + ACi Simplificado pelo mapa de Karnaugh da figura 3.30, temos o AND da combinao duas a duas das entradas. Figura 3.30
A B Ci S

Sadas
Co 0 0 0 1 0 1 1 1 S 0 1 1 0 1 0 0 1

Somador completo (SC).

Co

somador completo (SC)

80

81

eletrnica 4

CAPTULO 3

Podemos representar a sada S = A + B + Ci por uma nica porta OU EXCLUSIVO de trs entradas, em nada alterando o circuito em si, apenas sua representao (figuras 3.31 e 3.32). Figura 3.31
Somador completo (SC).
A B Ci

Podemos substituir o meio somador por um somador completo tendo Ci = 0. Dessa maneira, o funcional do circuito continua o mesmo, pois o MS equivale ao CS se Ci = 0.

3.3.3 Subtrator
S

Vamos relembrar na tabela seguir a tabela verdade da porta OU EXCLUSIVO.


OU EXCLUSIVO

Co

A 0 0

B 0 1 0 1

S 0 1 1 0

somador completo (SC)

1 1

Figura 3.32
Representao simplificada do somador completo (SC).

entradas A B Ci SC Co S

sadas

B = 0 B = 1

S=A S=A

Para somarmos dois binrios, cada um formado por vrios bits, podemos usar para a primeira coluna um meio somador, pois para essa coluna no existe carry in (vai um anterior). Para as demais colunas, empregamos somadores completos. A figura 3.33 apresenta como exemplo a soma dos binrios A + B, sendo A = (1000 0111) e B = (0011 1110). Figura 3.33
Associao de meio somador com somador completo.
0111 1000 0011 1100 1 0 1 010 0111 1110 0101 0 0 1 0 1 1 0 1 0 + os vai um A B

Analisando a tabela, podemos constatar que, se uma entrada mantida em 0, a sada corresponde a outra entrada e, se uma entrada mantida em 1, a sada corresponde ao complemento da outra entrada (porta INVERSORA). Consideremos o circuito da figura 3.34, em que o MS foi substitudo por um SC. Os bits do binrio B so mantidos ou complementados, dependendo da varivel de controle V. Figura 3.34
A7 B7 A6 B6 A5 B5 A0 B0 V

Somador ou subtrator depende do valor de V.

Ci SC Co7 S7 Co6 SC

Ci SC S6 Co5

Ci S5

Ci SC Co0 S0

A7 B7 Ci SC Co7 0 1 S7

A6 B6 Ci SC Co6 1 1 S6

A5 B5 Ci SC Co5 1 0 S5 1

A0 B0 MS Co0 0 1 S0
somador ou subtrator - depende do valor de V

Quando V = 0, o circuito um somador com o mesmo funcional do circuito da figura 3.33, pois a entrada dos blocos do circuito a mesma. Se V = 1, as en83

82

ELETRNICA 4

tradas dos SCs que correspondem ao binrio B tm agora o complemento de B. Observemos que V = 1 coloca Ci do primeiro SC em 1, o que equivale a somar 1 ao resultado final. Por exemplo: S = A + (complemento 1 de B) + 1 = A + complemento 2 de B Como na representao de binrio com sinal o complemento 2 corresponde ao negativo de um binrio positivo, conclumos que o circuito da figura 3.34 pode ser um circuito somador ou subtrator, dependendo da varivel de controle V.

Captulo 4

Circuitos sequenciais

84

eletrnica 4

CAPTULO 4

Analisando a figura 4.2, podemos notar que as entradas S (set) e R (reset) ficam normalmente em nvel 0, sendo ambas ativas em nvel lgico 1. Fazendo S=1, obtm-se Q = 1. Esse nvel mantido aps a retirada do nvel 1 da entrada S e permanece at que seja aplicado nvel 1 na entrada R. Fazendo R=1, obtm-se Q = 0. Esse nvel mantido aps a retirada do nvel 1 da entrada R e permanece at que seja aplicado nvel 1 na entrada S.

O
Figura 4.1
Dispositivos de memria elementar.

A tabela verdade referente ao latch RS (figura 4.3) considera as entradas ativas em nvel lgico alto. Figura 4.3
Tabela verdade Reset 0 0 Set 0 1 0 1 Q /Q S Q

s circuitos lgicos combinacionais permitem funes como decodificao, soma e subtrao, comparao e muitas outras. Entretanto, funes mais avanadas (que dependem do tempo, memorizao de dados, sequncia de operaes etc.) no podem ser implementadas com o mesmo princpio. Nesse caso, devemos recorrer ao projeto de circuitos lgicos sequenciais. Em um circuito sequencial, os valores das sadas em determinado instante dependem no s da combinao das variveis de entrada, mas tambm do valor anterior, isto , do valor que a sada tinha antes da aplicao da nova combinao de valores nas entradas. Para isso, necessrio utilizar dispositivos de memria elementares capazes de armazenar as variveis de sada internamente a cada transio de estado (figura 4.1).

mantm 1 0 0 1

Representao do latch RS mostrando somente as entradas e sadas e a tabela verdade correspondente.

1 1

invlido

Analisando a tabela, podemos notar que S = 1 e R = 1 invlido. Isso acontece porque: Nesse caso particular, as duas sadas Q e Q seriam iguais a 0, o que implicaria de imediato a inconsistncia com a teoria das sadas Q e Q. Outro ponto crtico ocorre quando passamos desse estado para S = 0 e R=0. Nesse caso, seguindo a tabela verdade e o comportamento do latch, a sada deveria permanecer inalterada, o que no acontece, gerando um estado indefinido para Qn + 1 e Qn + 1. Devido a essa ambiguidade, a condio S = 1 e R = 1 no usada para latch RS.

Circuito Combinacional

Entradas Estado interno

Sadas

4.1 Elementos de memria


O latch RS um elemento de memria simples com capacidade de armazenamento temporrio de um bit. Esse dispositivo consiste em duas portas NOR acopladas por realimentaes cruzadas (figura 4.2). Figura 4.2
Detalhe interno do latch RS mostrando duas portas NOR acopladas por realimentaes cruzadas.
S Q

O circuito do latch RS com portas NAND mostrado na figura 4.4. Figura 4.4
S Q

Detalhe interno do circuito do latch RS com portas NAND.

O circuito da figura 4.4 equivalente ao apresentado no item anterior, portanto sua tabela verdade e smbolo lgico no se alteram (figura 4.5). 86 87

eletrnica 4

CAPTULO 4

Figura 4.5
Representao do latch RS mostrando somente as entradas e sadas e tabela verdade correspondente.
Tabela verdade Reset 0 0 1 1 Set 0 1 0 1 Q Q S Q

mantm 1 0 0 1

Um latch controlado (tipo D) implementado colocando-se um inversor entre os terminais S e R de um latch RS. Nessa configurao, impede-se que as variveis de entrada assumam valores idnticos, isto , S = R = 0 ou S = R = 1. Assim, a entrada D passa a ser nica, e os pontos correspondentes a S e R, a assumir sempre valores distintos (figura 4.7): Se D = 1, ento S = 1 e R = 0. Se D = 0, ento S = 0 e R = 1. Figura 4.7
D Q C Q

invlido

Analisando a tabela, podemos notar que S = 1 e R = 1 invlido. Isso acontece porque: Nesse caso particular, as duas sadas Q e Q seriam iguais a 1. Quando passamos desse estado para S = 0 e R = 0, estamos novamente gerando um estado indefinido para Qn + 1 e Qn + 1. Um latch controlado possui uma entrada enable que diz quando o latch poder armazenar um valor. Caso enable = 0, o latch permanece em seu estado anterior, mantendo armazenado o bit. Somente quando enable = 1 o latch funcionar como antes. A entrada enable tambm pode ser denominada clock (CK), ou relgio, quando ela receber um sinal de sincronismo, por isso em alguns diagramas utiliza-se a notao CK (figura 4.6). Figura 4.6
Identificao das entradas S, R e clock em um latch.
S Q CK Q R

Detalhe interno de um latch para D = 0 e D = 1.

Observe que o problema da inconsistncia foi eliminado, uma vez que impossvel aplicar sinais iguais nas entradas S e R. A figura 4.8 e sua respectiva tabela verdade possibilitam uma anlise dessa configurao. Figura 4.8
D S relgio R (a) Diagrama lgico
(c) Tabela verdade Relgio 0 1 D X 0 1 Q mantm 0 1

/Q

relgio /Q (b) Smbolo

Representao do latch RS: (a) diagrama lgico, (b) smbolo e em (c) tabela verdade.

A tabela verdade a seguir demonstra as condies das sadas, considerando as entradas R, S e clock.
R X 0 0 1 1 S X 0 1 0 1 Relgio 0 1 1 1 1 Q Q

Analisando a tabela verdade, podemos entender o funcionamento, pois: se enable = 0, o latch permanece no estado anterior; se enable = 1 e D = 1, temos S = 1 e R = 0; portanto, a sada Q ser Q = D (Q = 1); se enable = 1 e D = 0, temos S = 0 e R = 1; portanto, a sada Q ser Q = D (Q = 0). Concluindo, se enable = 1, a sada Q acompanha a entrada D e, se enable = 0, a sada do latch permanece inalterada, ou seja, mantm o estado anterior. 89

mantm mantm 1 0 0 1

erro lgico

Observe que a condio de ambiguidade (ou erro lgico) ainda existe quando S = R = 1. 88

eletrnica 4

CAPTULO 4

Figura 4.9
Formas de onda dos sinais para um latch tipo D.
D

t0

t1

t2

t3

t4

A figura 4.11 mostra detalhes das ligaes internas do circuito. Figura 4.11
Detalhe interno de um flip-flop J-K (mestre-escravo).
J 1 3 5 7 Q

Q
6 8 Q

As formas de onda dos sinais para um latch tipo D so apresentadas na figura 4.9, em que:
CK 9

D a entrada de dados; C, o sinal de habilitao ou clock; Q, a sada do latch. Os circuitos latches R, S e D apresentados anteriormente so sensveis ao nvel do sinal aplicado em sua entrada de habilitao (enable). Agora, analisaremos dispositivos que dispem de entradas de sincronismo sensveis s transies de nvel lgico, de 0 para 1 ou de 1 para 0. Esses dispositivos so conhecidos pela terminologia disparados por borda (do sinal de relgio) e podem ser de dois tipos: Disparados por borda de subida (transio positiva do sinal de clock): sensveis s transies de nvel lgico do sinal de clock, de 0 para 1. Disparados por borda de descida (transio negativa do sinal de clock): sensveis s transies de nvel lgico do sinal de clock, de 1 para 0. Vamos iniciar analisando o flip-flop J-K mestre-escravo. Esse dispositivo possui duas entradas de dados (J e K) e tem como caracterstica principal seus dois estgios internos, denominados mestre e escravo (figura 4.10) com a tabela verdade correspondente. Figura 4.10
Flip-flop J-K (mestre-escravo) e tabela verdade correspondente.
J CK K S CK R S CK R Q Q J 0 0 1 1 D 0 1 0 1 Estado futuro Q futuro Q 0 1 Q

Analisando a figura 4.11, podemos notar que: Se J = 0 e K = 0, as portas 1 e 2 estaro desabilitadas; portanto, aps a aplicao do pulso de clock, o flip-flop no mudar de estado. Se J = 1 e K = 0 e Q = 0, a porta 1 habilitar (J = 1 e Q = 1) e a porta 2 desabilitar (K = 0 e Q = 0); portanto, aps a aplicao do pulso de clock, o estado de sada Q mudar para Q = 1. Se J = 1 e K = 0 e Q = 1, a porta 1 desabilitar (J = 1 e Q = 0) e a porta 2 desabilitar (K = 0 e Q = 1); portanto, aps a aplicao do pulso de clock, o estado de sada permanecer inalterado (Q = 1). Se J = 0 e K = 1 e Q = 0, a porta 1 desabilitar (J = 0 e Q = 1) e a porta 2 desabilitar (K = 1 e Q = 0); portanto, aps a aplicao do pulso de clock, o estado de sada permanecer inalterado (Q = 0). Se J = 0 e K = 1 e Q = 1, a porta 1 desabilitar (J = 0 e Q = 0) e a porta 2 habilitar (K = 1 e Q = 1); portanto, aps a aplicao do pulso de clock, o estado de sada Q mudar para Q = 0. Se J = 1 e K = 1, para J = K = 1, a cada ciclo de clock o estado do flip-flop J-K se complementa; portanto, aps a aplicao do sinal de clock, teremos: se Q = 0, a sada Q mudar para Q = 1; se Q = 1, a sada Q mudar para Q = 0. Podemos tambm incluir as entradas de preset e clear nesse circuito, que passa a ter a configurao da figura 4.12. A tabela verdade inclui as entradas de preset (PR) e clear (CLR). 91

90

eletrnica 4

CAPTULO 4

Figura (a) Flip-Flop JK sensvel borda de descida

Figura 4.12
Detalhe interno de um flip-flop J-K (mestre-escravo) com as entradas clear e preset e a tabela verdade correspondente.
PR

Figura (b) Flip-Flop JK sensvel borda de subida

Figura 4.14
(a) Flip-flop J-K sensvel borda de descida e (b) flip-flop J-K sensvel borda de subida.

J
J Q Clock Q K

SET

J >

SET

> K Q RESET

Q RESET

(a)

(b)

Figura 4.15
CI 4027B com dois flip-flops J-K sensveis borda de subida com entradas de clear e preset e a tabela verdade correspondente.

CLR

As figuras 4.15 e 4.16 apresentam dois exemplos de circuito integrado com dois flip-flops J-K: um da famlia CMOS e outro da TTL e suas tabelas verdade.

CLR

PR

J X

K X X X

CLK X X X

Qn 1 Qn 1 1 1 1 1 Qn Qn 1 1
Q2 Q2 CLOCK2 RESET2 K2 J2 SET2 1 2 3 4 5 6 7 8 F/F 2 F/F 1 16 VDD 15 Q1 14 Q1 13 CLOCK1 12 RESET1 11 K1 10 J1 9 SET1 Tabela verdade

Entradas
CLEAR PRESET CLOCK 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 X X X J X X X 0 1 0 1 X X K X X X 0 0 1 1 X X

Sadas
Q 0 1 1 Q0 1 0 Q 1 0 1 Q0 0 1

1 1 1 1 1 1 1 1 1 1

X X

1 1 1 1

Qn

Qn

TOGGLE Q0 Q0 Q0 Q0

O exemplo da figura 4.12 corresponde a um flip-flop J-K mestre-escravo sensvel transio negativa do sinal de relgio com entradas de preset e clear inversoras. A figura 4.13 apresenta o circuito de preset e clear e a tabela verdade corres pondente. Figura 4.13
Configurao do flip-flop J-K mestre-escravo com entradas clear e preset e tabela verdade resumida.
Tabela verdade PRESET J > CLK K Q Q PRESET CLEAR 1 0 1 0 CLEAR 1 1 0 0 Resposta do FF Operao com clock* Q=1 Q=0 No usada
1 16

VSS

Tabela verdade

Entradas
CLEAR PRESET CLOCK 15 14 13 12 11 10 9 0 1 J CLR Q > CK K PR Q J PR Q 0 1 1 1 2 3 4 5 6 7 8 1 1 1 1 0 0 1 1 1 1 1 1 1 0 X X X J X X X 0 1 0 1 X X K X X X 0 0 1 1 X X

Sadas
Q 0 1 1 Q0 1 0 Q 1 0 1 Q0 0 1

> CK K CLR Q

*Q ir responder a J, K e CLK

TOGGLE Q0 Q0 Q0 Q0

Existem outras configuraes de entradas, que variam conforme o tipo de CI e o fabricante, tais como exemplificadas na figura 4.14. 92

Figura 4.16 CI 7476 com dois flip-flops J-K sensveis borda de descida e tabela verdade correspondente. 93

eletrnica 4

CAPTULO 4

Implementao de um flip-flop D a partir do J-K Um flip-flop tipo D sensvel borda pode ser obtido com um inversor entre as entradas J e K, como se pode observar na figura 4.17. Nesse tipo de flip-flop, a sada Q assume o nvel lgico presente na entrada D toda vez que ocorre transio do sinal de clock (nesse exemplo, as transies de estado ocorrem no instante de subida do sinal de clock, conforme ilustram os grficos). Figura 4.17
(a) Flip-flop tipo D a partir do J-K e (b) as formas de onda da entrada e da sada em funo do clock.
(a) Clock (b) D (input)

7474 Dois flip-flops tipo D sensveis borda de subida com entradas de preset e clear inversoras A figura 4.19 apresenta esse dispositivo, e tabela verdade correspondente.

Figura 4.19
CI 7474 com dois flip-flops tipo D sensveis borda de subida com entradas de preset e clear inversoras.

Tabela verdade Vcc 14 CLR 13 D 12 CK 11 PR 10 Q 9 Q 8

Entradas
PRESET CLEAR CLOCK 0 1 0 0 1 1 1 1 0 1 X X X D X X X 1 0 X X

Sadas
Q 1 0 1 1 0 Q0 Q0 Q 0 1 1 0 1 Q0 Q0

> CK

1 0

> CK

1 1

Q (output)

1 CLR

2 D

3 CK

4 PR

5 Q

6 Q

7 GND

1 1

D CLK

J > CLK K

Implementao de um flip-flop T a partir do J-K


Q

O flip-flop T ou toggle muda sua sada a cada transio do sinal de clock (ver exemplo na figura 4.20, na transio positiva). Consequentemente, a frequncia do sinal de sada metade da frequncia do sinal de entrada aplicado na entrada T. Figura 4.20
Representao da mudana da sada para um flip-flop T.

Figura 4.18
Dois flip-flops tipo D sensveis borda de subida com entradas de preset e clear e a tabela verdade correspondente.

Exemplos de circuitos integrados de flip-flops tipo D CMOS e TTL


4013 Dois flip-flops tipo D sensveis borda de subida com entradas de preset e clear A figura 4.18 apresenta esse dispositivo, e a tabela verdade correspondente.
T

Tabela verdade Q1 Q2 CLOCK1 RESET1 D1 SET1 VSS 1 2 3 4 5 6 7 F/F 1 F/F 2 14 VDD 13 Q2 12 Q2 11 CLOCK2 10 RESET2 9 D2 8 SET2

Entradas
CLEAR PRESET CLOCK 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 X X X D X X X 0 1 X X

Sadas
Q 1 0 1 0 1 Q0 Q0 Q 0 1 1 1 1 Q0 Q0

O flip-flop T obtido a partir do flip-flop J-K aplicando nvel lgico alto tanto na entrada J como na K (figura 4.21). Figura 4.21
Pulsos de entrada do relgio 1 J > CLK 1 K X0

Representao mostrando como um flip-flop T obtido a partir do flip-flop J-K.

A figura 4.22 mostra as formas de onda correspondentes nas sadas Q e Q, a partir do clock. 95

94

eletrnica 4

CAPTULO 4

Figura 4.22
Formas de onda correspondentes nas sadas Q e Q, a partir do clock.
1 CLK 0 1 Q 0 1 Q 0
PRESET CLOCK J > CK K Q PR CLEAR 1 CLR Q J > CK K Q PR CLR Q J > CK K Q PR CLR Q J > CK K Q PR CLR Q D C B A

Figura 4.23 As formas de onda nas sadas em funo do sinal de clock so apresentadas na figura 4.24.
Representao de um Contador de pulsos.

4.2 Contadores
Contadores so circuitos digitais que geram determinada sequncia de estados, sob o comando de um sinal de clock. So utilizados na contagem de pulsos provenientes de chaves e de sensores, na construo de temporizadores e relgios digitais, para gerar sequncias de pulsos e medir frequncia, e tambm fazem parte de circuitos eletrnicos como conversores analgico-digital e digital-analgico, geradores de endereos de matrizes de memria etc. Os contadores so basicamente divididos em duas categorias assncronos e sncronos e podem ser classificados de acordo com a sequncia (crescente ou decrescente) e com o mdulo (binrio, decimal, mdulo n).

CK

4.2.1 Contadores assncronos


Os contadores assncronos no possuem entradas comuns de sinal de clock. O sinal inicial aplicado no primeiro estgio; os demais recebem o sinal do estgio anterior.

Figura 4.24
Formas de onda nas sadas em funo do sinal de clock.

Contador binrio
Um contador binrio pode ser construdo a partir de flip-flops J-K conectando a sada de uma clula entrada de clock da clula seguinte. As entradas J e K de todos os flip-flops so mantidas em nvel lgico 1 para produzir o efeito toggle a cada pulso de clock. Para cada dois pulsos de clock na entrada de determinada clula produzido um pulso na respectiva sada. Isso resulta uma sequncia binria quando o nmero de flip-flops igual a quatro. Esse dispositivo geralmente chamado de contador de pulsos (ripple counter). 96

Contador de dcada (BCD counter)


Uma das representaes de dados numricas mais utilizadas o decimal codificado em binrio (BCD binay coded decimal ). Nessa codificao, cada nmero decimal inteiro representado por um cdigo binrio de quatro dgitos, conforme a tabela 4.1. 97

eletrnica 4

CAPTULO 4

Tabela 4.1

Decimal
0 1 2 3 4 5 6 7 8 9

BCD 8421
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Anlise do funcionamento
Observando a figura 4.26, podemos analisar o funcionamento do contador BCD. Vamos considerar a situao: uma vez que o pulso seguinte levaria ao estado correspondente ao binrio 1010, bastaria conectarmos os dois bits altos (Q3 e Q1) s entradas de uma porta NAND cuja sada ligada entrada assncrona de clear dos flip-flops. Isso provocaria um reset automtico nos flip-flops aps o nmero 9, reiniciando, assim, a contagem. Observe na figura 4.27 as formas de onda para o flip-flop da figura 4.26.

Figura 4.27
Formas de ondas na sada em funo do clock inicial.

1
Clock pulses

10

11

12

13

14

15

16

17

Observe, no exemplo da figura 4.25, a equivalncia entre um nmero decimal e sua representao em BCD. Figura 4.25
Equivalncia entre o nmero 247 e sua representao em BCD.
0 0 1 0

QA

(l.s.b.)

2 4 7
0 1 0 0 0 1 1 1

Nmero decimal

QB

QC
Representao em BCD (Binary Coded Decimal)

QD

(m.s.b.)

Figura 4.26
Circuito lgico do contador BCD.
SV +V

Um contador BCD ou contador de dcadas (figura 4.26) pode ser construdo a partir de um contador binrio capaz de encerrar a transmisso de pulsos quando a contagem atinge o estado correspondente ao nmero decimal 9 (1001 em binrio).

Reset Pulse CLR


0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 0001 0010 0011 0100 0101 0110

Q0

Q1

Q2

Q3

4.2.2 Contadores sncronos


PRESET

J CLOCK CP K

J CP

J CP

J CP

Nesse tipo de contador, o sinal de clock comum a todos os flip-flops que o compem, ou seja, todos os estgios so sincronizados simultaneamente.
Q

possvel projetar um contador sncrono utilizando flip-flops tipo D. Para isso, devemos seguir as etapas:
R Q

Q 7476

Q 7476

1) Especificar a sequncia do contador. Por exemplo, a sequncia : 5, 7, 3, 2, 6 repetidamente, ou seja, em binrio: 101, 111, 011, 010, 110.

74LS00

98

99

eletrnica 4

CAPTULO 4

2) Gerar a tabela de estados (tabela 4.2)


C C 1 x 0 0 1 DB 00 01 11 10 0 x 1 0 x 1 x 1 1 1 DC 00 AB 01 11 10 0 x 0 1 x DC = A C 1 x 0 1 1

Figura 4.28
DA 00 01 11 10 0 x 1 1 x

Tabela 4.2

Estado Atual

Estado Futuro

Diagramas de Karnaugh para as funes DA, DB e DC .

A
0 1 2 3 4 5 6 7 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

B
0 1 0 1 0 1 0 1

C
X X 6 2 X 7 5 3 X X 1 0 X 1 1 0

A
X X 1 1 X 1 0 1

B
X X 0 0 X 1 1 1

AB

AB

DA = B + C

DB = A + C

Dessa maneira, podemos montar um circuito lgico que atenda a essas funes (figura 4.29).

Figura 4.29
Circuito lgico para as funes DA, DB e DC .

D Clock clock

Q Q

D clock

Q Q

D clock

Q Q

3) Determinar quais os sinais de entrada necessrios para forar os flip-flops a assumir os valores desejados na sequncia (tabela 4.3). Tabela 4.3
Estado Atual Estado Futuro

Entradas dos Flip-Flops

A
0 1 2 3 4 5 6 7 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

B
0 1 0 1 0 1 0 1

C
X X 6 2 X 7 5 3

A
X X 1 0 X 1 1 0

B
X X 1 1 X 1 0 1

C
X X 0 0 X 1 1 1

DA
X X 1 0 X 1 1 0

DB
X X 1 1 X 1 0 1

DC
X X 0 0 X 1 1 1
Caso I II III IV J 0 0 1 1 J 0 1 0 1 Q Qa 0 1 Qa J > CLK K Q Clear Preset Q

Implementao do circuito utilizando flip-flops tipo J-K A figura 4.30 apresenta um flip-flop J-K e a tabela verdade correspondente. Observe que Qa o valor anterior da sada Q antes da aplicao dos valores das entradas J e K. As mudanas somente ocorrem na variao (descida) de 1 para 0 dos pulsos aplicados na entrada de clock. Figura 4.30
Flip-flop J-K.

De acordo com a tabela 4.3, h trs funes a serem implementadas: DA , DB e DC, que podem ser apresentadas conforme a figura 4.28. 100

101

eletrnica 4

CAPTULO 4

Com base nas informaes da tabela verdade, podemos elaborar uma tabela de transio de estados do J-K (tabela 4.4). Tabela 4.4
AB

Figura 4.31
C JA 00 01 11 10 0 x 1 x x 1 x 0 x x JB 00 01 11 10 0 x x x x C 1 x x x 1 JC 00 01 11 10 0 x 0 1 x JC = A C 1 x x 1 0 KB 00 01 11 10 0 x 0 1 x 1 x 0 0 x KC 00 01 11 10 0 x x x x KC = A C 1 x 1 0 0 C 1 x x x x

Casos
I e II III e IV II e IV I e III

Qa
0 0 1 1

Q
0 1 0 1

J
0 1 X X

K
X X 1 0

AB

AB

Diagramas de Karnaugh para as funes JA, JB, JC, KA, KB e KC .

JA = C C KA 00 01 11 10 0 x x 0 x

JB = 1

AB

AB

AB

Tabela 4.5
Estado Atual

A tabela de transies (tabela 4.5) apresenta as entradas necessrias para forar os valores nas sadas dos flip-flops a ir para a sequncia desejada. .
Estado Futuro Entradas dos Flip-Flops

KA = BC

KB = A + C

Dessa maneira, podemos montar um circuito lgico que atenda a essas funes (figura 4.32).

A
0 1 2 3 4 5 6 7 0 0 0 0 1 1 1 1

B
0 0 1 1 0 0 1 1

C
0 1 0 1 0 1 0 1 X X 6 2 X 7 5 3

A
X X 1 0 X 1 1 0

B
X X 1 1 X 1 0 1

C
X X 0 0 X 1 1 1

JA
X X 1 0 X X X X

KA
X X X X X 0 0 1

JB
X X X X X 1 X X

KB
X X 0 0 X X 1 0

JC
X X 0 X X X 1 X

Kc
X X X 1
J Q Q J clock K Q Q J clock K Q Q Vcc QA QB QC

X 0 X 0

Clock

clock K

De acordo com a tabela 4.5, podemos elaborar o mapa de Karnaugh identificando as funes a serem implementadas, conforme mostra a figura 4.31.

Figura 4.32

Projeto: contador decimal (BCD) sncrono


As informaes necessrias para montar um contador decimal (BCD) sncrono so as seguintes: 102

Circuito lgico para as funes JA, JB, JC, KA, KB e KC .

103

eletrnica 4

CAPTULO 4

Tabela 4.6

1) Tabela de estados. Sadas Futuras Q0


0 1 0 1 0 1 0 1 0 1

3) Circuito lgico (figura 4.34). Entradas dos flip-flops Q0


1 0 1 0 1 0 1 0 1 0

Sadas Atuais Estados


1 2 3 4 5 6 7 8 9 10

Q3
0 0 0 0 0 0 0 0 1 1

Q2
0 0 0 0 1 1 1 1 0 0

Q1
0 0 1 1 0 0 1 1 0 0

Q3
0 0 0 0 0 0 0 1 1 0

Q2
0 0 0 1 1 1 1 0 0 0

Q1
0 1 1 0 0 1 1 0 0 0

J3
0 0 0 0 0 0 0 1 x x

K3
x x x x x x x x 0 1

J2
0 0 0 1 x x x x 0 0

K2
x x x x 0 0 0 1 x x

J1
0 1 x x 0 1 x x 0 0

K1
x x 0 1 x x 0 1 x x

J0
1 x 1 x 1 x 1 x 1 x

K0
x 1
2 1 5 4 10 9

x 1 x 1 x 1 x 1
BAT1
5V 2 4 1 16 3

U3:A
7408

U3:B
7408

U3:C
7408

U1:A
15 9 6 14 74LS76 12

U1:B
11 4 1 10 74LS76 16

U2:A
11 9 5 10 74LS76 12

U2:B
11

S Q

S Q

S Q

S Q

> CLK K R Q

> CLK K R Q

> CLK K R Q

> CLK K R Q
10

74LS76

R1
330

R2
330

R3
330

R4
330

D1

LED-RED

D2

LED-RED

D3

LED-RED

D4

LED-RED

Figura 4.33
Diagramas de Karnaugh e expresses lgicas.

2) Diagramas de Karnaugh e expresses lgicas (figura 4.33).

Exemplo de circuito integrado CMOS 4510 BCD counter


Pin Description

Figura 4.34
Circuito lgico contador decimal (BCD) sncrono.

Q1

Q1

Q1

Q1

Q1

Q1

Q1

Q1

0
Q3

0 0 X X
Q0

0 1 X X

0 0 X X
Q0

Q2 Q3

X X

X X X 1
Q0

X X X X

X X X X
Q0

Q2 Q3

0 X

0 X X 0
Q0

1 X X X

0 X X X
Q0

Q2 Q3

X 0

X 0 X X
Q0

X 1 X X

X 0 X X
Q0

Q2

Pin no
1

Symbol
PL D0 to D3 CE Q0 to Q3 TC GND MR UP/DN CP VCC

Name and Function


parallel load input (active HIGH) parallel inputs count enable input (active LOW) parallel outputs terminal count output (active LOW) ground (0V) asynchronous master reset input (active HIGH) up/down control input clock input (LOW-to-HIGH, edge-triggered) positive supply voltage

0 X
Q3

Q2 Q3

X 0
Q0

Q2 Q3 Q2

X 0
Q0

Q2 Q3 Q2

X X
Q0

Q2

4, 12, 13, 3 5 6, 11, 14, 2 7

X
Q0

Q2

Q2

J3 = Q2 Q1 Q0
Q1 Q1

K3 = Q0
Q1 Q1

J2 = Q1 Q0
Q1 Q1

K2 = Q1 Q0
Q1 Q1

0
Q3

1 1 X 0
Q0

X X X X

X X X X
Q0

Q2 Q3

X X

X X X 1
Q0

1 1 X X

0 0 X X
Q0

Q2 Q3

1 1

X X X X
Q0

X X X X

1 1 X X
Q0

Q2 Q3

X X

1 1 X 1
Q0

1 1 X X

X X X X
Q0

Q2

8 9 10

0 X
Q3

Q2 Q3

X X
Q0

Q2 Q3 Q2

X 1
Q0

Q2 Q3 Q2

X X
Q0

Q2

0
Q0

Q2

Q2

15 16

Tabela 4.7
Descrio dos pinos do circuito integrado CMOS 4510 BCD counter.

J1 = Q3 Q0

K1 = Q0

J0 = 1

K0 = 1

104

105

eletrnica 4

CAPTULO 4

Figura 4.35
Identificao dos pinos do circuito integrado CMOS 4510 BCD counter.
MR L L L L H PL H L L L X UP/DN X X L H X CE X H L L X X CP X X MODE parallel load no change count down count up reset 1 2 3 4 5 6 7 8 PL O3 P3 P0 CE O0 TC VSS VDD CP O2 P2 P1 O1 UP/DN MR 16 15 14 13 12 11 10 9

Exemplo de circuito de teste para o contador de dcadas 4510.


.
CP CE UP/ON MR PL D0 D1 D2 D3 GND VCC

Figura 4.36
Detalhe das ligaes internas do circuito integrado CMOS 4510 BCD counter.

.
4 9 MR P0 O0 6 12 P1 11 O1 P2 13 O2 14 P3 3 O3 2

O0 O1 O2

1 PL 15 CP 7 TC P PL Q CP T Q P PL Q CP T Q P PL Q CP T Q P PL Q CP T Q

O3 TC 0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0 0 9 6 7 0

Figura 4.37
Diagrama de tempos do circuito integrado CMOS 4510 BCD counter.

6 CE

10

UP/ON

VDD = Pin 16 VSS = Pin 8 O = Pin Number

106

107

eletrnica 4

CAPTULO 4

DISPLAY
680 x4

Um contador crescente/decrescente tem a lgica interna apresentada na figura 4.39.

Vdd

a A B C D k BC457B x4

Q0

Q1

Q2

Q3

Up/Down

J C K >

J C >

J C >

J C >

9 V 14 4093 Schmilt trigger NAND 5 6 4 47 k 4 + 680 47 F 0V

Figura 4.39

Contador em anel
Contador em anel um conjunto de flip-flops conectados em cascata sada do ltimo estgio conectado entrada do primeiro, fechando um anel. Um uso comum desse circuito consiste em um nico bit = 1, que circula atravs das sadas. Por exemplo, se forem utilizados quatro flip-flops, haver quatro estados de sada (0001 / 0010 / 0100 / 1000), e cada um deles se repetir a cada quatro ciclos de clock. Nesse caso, ele pode ser usado como um contador cclico de n estados. O circuito da figura 4.40 mostra um contador em anel mdulo 4.

Detalhes internos de um contador crescente/ decrescente.

1M

16 A

11 B C

14

2 D

7 carry out enable reset UP/DM 8 5 9 10 10 k

1 2

outputs 3 15 clock Input load Inputs A B C 7 4 12 13 4510

1 F

D 3

load 1

Figura 4.40
4-bit Output Feedback Loop Preset to Logic 1 QA QB QC QD

Contador em anel mdulo 4.

ASTABLE

BCD COUNTER

Figura 4.38
Detalhes internos de circuito de teste para o contador de dcadas 4510.

FFA CLK CLR

Q Q

FFB CLK CLR

Q Q

FFC CLK CLR

Q Q

FFD CLK CLR

Q Q

Clock Clear

A tabela 4.8 apresenta a sequncia de estados do circuito de contador em anel mdulo 4. 108 109

eletrnica 4

CAPTULO 4

Tabela 4.8

Pulso de Clock
0 1 2 3

Q3
0 0 0 1

Q2
0 0 1 0

Q1
0 1 0 0

Q0
1 0 0 0

4.3 Registradores de deslocamento


Registrador um circuito formado por interligaes de flip-flops com a finalidade de armazenar informao binria (nmero binrio) pelo tempo que for necessrio. Os registradores so utilizados em operaes aritmticas de complementao, multiplicao e diviso, em converso de uma informao srie em paralela e tambm em vrios outros tipos de circuitos digitais.

Contador Johnson
Contador Johnson (ou contador de anel torcido) um contador em anel modificado, no qual a sada do ltimo estgio invertida realimentada para a entrada do primeiro estgio. O circuito da figura 4.41 mostra um contador Johnson mdulo 4. Figura 4.41
Contador Johnson mdulo 4.
D Q Q QA QB QC QD

4.3.1 Informao srie e informao paralela


Uma informao chamada informao srie quando os bits so apresentados sequencialmente, um aps o outro, necessitando somente de uma via para o transporte dos bits. Esse modo de transferir informao conhecido como deslocamento em srie. Uma informao chamada informao paralela quando os bits so apresentados simultaneamente; assim, a transferncia da informao acontece em um nico instante. necessria uma quantidade de vias para transmisso igual ao nmero de bits da informao. Esse modo conhecido como deslocamento paralelo. A entrada e a sada de um registrador podem ser configuradas nesses dois modos, resultando em quatro possibilidades: entrada srie sada srie, entrada srie sada paralela, entrada paralela sada srie, entrada paralela sada paralela (figura 4.42). Figura 4.42
Configuraes da entrada e da sada de um registrador: (a) entrada srie sada srie, (b) entrada srie sada paralela, (c) entrada paralela sada srie e (d) entrada paralela sada paralela.

FFA CLK CLR

FFB CLK CLR

Q Q

FFC CLK CLR

Q Q

FFD CLK CLR

Q Q

Clock Clear

A tabela 4.9 apresenta a sequncia de estados gerada pelo circuito do contador Johnson mdulo 4. Tabela 4.9 Pulso de Clock
0 1 2 3 4 5 6 7 0 0 0 1 1 1 1 1

a) Entrada srie sada srie Entrada de dados em srie REGISTRADOR Sada de dados em srie Entrada de dados em srie

b) Entrada srie sada paralela REGISTRADOR

Q3
0 0 0 1 1 1 1 0

Q2
0 0 1 1 1 1 0 0

Q1
0 1 1 1 1 0 0 0

Q0

Sada de dados em paralelo

c) Entrada paralela sada srie Entrada de dados em paralelo

d) Entrada paralela sada paralela Entrada de dados em paralelo

REGISTRADOR

Sada de dados em srie

REGISTRADOR

Classi cao entrada/sada

Sada de dados em paralelo

110

111

eletrnica 4

CAPTULO 4

4.3.2 Registrador de deslocamento para a direita


O circuito da figura 4.43 mostra como o registrador de deslocamento pode ser montado usando flip-flops tipo D. Figura 4.43
Registrador de deslocamento para a direita usando flip-flop tipo D e tabela verdade.
Q3 Entrada srie CLK D3 Q3 Q3 D2 Q2 Q2 Q2 D1 Q1 Q1 sada paralela Q1 D0 Q0 Q0 Q0

Em um flip-flop mestre-escravo, a atualizao da sada devido transio do clock s ocorre imediatamente aps o fim da transio do clock. No circuito figura 4.43, observamos que o clock ocorre simultaneamente em todos os flip-flops. No momento da transio negativa do clock, D2 tem como entrada o valor de Q3 anterior transio do clock, pois Q3 somente ter seu valor atualizado aps o fim da transio. Vamos verificar como progride o primeiro bit 1 de entrada nos flip-flops do registrador em anlise. Acompanhe pelas formas de onda na figura 4.44. Aps o segundo pulso, o bit 1 colocado na sada Q3 do ff3. Aps o terceiro pulso, o bit 1 colocado na sada Q2 do ff2. Aps o quarto pulso, o bit 1 colocado na sada Q1 do ff1. Aps o quinto pulso, o bit 1 colocado na sada Q0 do ff0. Aps o sexto pulso, o bit 1 perdido, ou seja, no est na sada de nenhum flip-flop do circuito. Como podemos observar, o primeiro bit 1 deslocou-se para a direita a cada pulso de clock. O deslocamento que ocorreu com o bit 1 ocorre com os demais bits. Esse deslocamento que os bits de entrada apresentam a cada pulso de clock deu origem ao nome registrador de deslocamento.

> CLK ff3

> CLK ff2

> CLK ff1

> CLK ff0

Tabela verdade FFD D 0 1 CK Q 0 1

No smbolo dos flip-flops (ffs) da figura 4.43, a bolinha na entrada do clock indica sensibilidade borda negativa. Os flip-flops desse circuito so do tipo D, sensvel borda negativa, como podemos observar pelos smbolos dos ffs. Na tabela verdade, a seta apontando para baixo indica sensibilidade borda negativa. Figura 4.44
Formas de onda do registrador de quatro bits.

4.4 Registrador de deslocamento para a esquerda


Para obter o registrador de deslocamento para a esquerda, basta mudar a ordem dos flip-flops e a entrada do registrador passar a ser no primeiro flip-flop da direita (figura 4.45).
sada paralela

As formas de onda de entrada e sada do registrador de quatro bits so apresentadas na figura 4.44.

1
CK

10

Figura 4.45
Q1 Q0 Entrada srie

Q3

Q2

Registrador de deslocamento para a esquerda.

entrada (D 3)

D3 CLK

Q3 Q3

D2

Q2 Q2

D1

Q1 Q1

D0

Q0 Q0

> CLK ff3

> CLK ff2

> CLK ff1

> CLK ff0

sadas Q 3(ff3)

Q 2(ff2)

Q 1(ff1)

Q 0(ff0)

No incio as sadas de todos os IOLSIORSV esto em 0

112

113

eletrnica 4

CAPTULO 4

CI 7491 Registrador de deslocamento de oito bits entrada srie e sada srie (figura 4.46)
Figura 4.46
Registrador de deslocamento de oito bits: (a) identificao dos pinos do CI 7491, (b) tabela verdade e (c) detalhe do circuito interno do CI.

CI 74164 Registrador de deslocamento de oito bits com entrada de reset (figura 4.47)
Figura 4.47
(a) VCC QH QG QF QE Reset CK

GND CK

NC

Tabela verdade

Entradas t = tn
A 0 B 0 1 0 1

Sadas t = tn+8
Q 0 0 0 1

14 1

13 2

12 3

11 4

10 5

9 6

8 7

14

13

12

11

10

Registrador de deslocamento de oito bits: (a) identificao dos pinos do CI 74164 e (b) detalhe do circuito interno do CI 74164.

0 1

QA

QB

QC

QD TERRA

NC (a)

NC

NC

NC

VCC

NC

NC (b)

sada paralela (b) QH QG QA

(A)

(B)

A B
A B S7 Q7 S6 Q6 S0 Q0

S7

Q7

S6

Q6

S0

Q0

> CLK ff7 R7 CK Q7

> CLK ff6 R6 Q6

> CLK ff0 R0 Q0

> CLK ff7 R7 CLK (c) Q7

> CLK ff6 R6 Q6

> CLK ff0 R0 Q0

(C)

CLR

Se uma das entradas for 0, ser transferido 0 para a sada do registrador aps oito pulsos de clock, independentemente da outra entrada. Se uma das entradas for 1, o valor da outra entrada (0 ou 1) ser transferido para a sada do registrador aps oito pulsos de clock. Podemos usar uma entrada como controle e a outra como entrada de dados.

O CI 74164 um registrador de deslocamento s para a direita, podendo ser utilizado como entrada srie e sada srie ou paralela. sensvel transio negativa do clock e normalmente usado com uma das entradas sries (A ou B) alta e os dados so enviados para outra entrada.

4.4.1 Circuito registrador de deslocamento entrada srie ou paralela


Os dados em paralelo transferidos para o registrador no devem ser colocados diretamente nas sadas dos flip-flops, pois com a ao do clock eles se deslocam, ocorrendo conflito. Assim, os dados em paralelo podem ser carregados no registrador pelo terminal preset. Para obtermos um registrador com entrada paralela, necessitamos de flip-flops com clear e preset. Como sabemos, o terminal clear serve para colocar todas as sadas dos flip-flops internos em 0, ou seja, zerar (setar) as sadas, e o preset, para colocar todas as sadas em 1 , ou seja, setar todas as sadas. O clear e o preset no podem estar ativos ao mesmo tempo, pois haveria conflito nas sadas. Vamos avaliar como atuam o clear e o preset para que possamos obter um registrador com entrada paralela. Para isso, admitamos que o clear e o preset sejam ativos em 0.

114

115

eletrnica 4

CAPTULO 4

Primeiro, ativamos o clear (CLR = 0) zerando as sadas. Uma vez zeradas as sadas, desativamos essa funo, dando condio de funcionamento normal ao registrador. Colocamos bit a bit nos presets dos flip-flops a informao que corresponde entrada paralela, ou seja, os terminais de preset esto sendo usados como entradas paralelas. Nos presets em que o valor colocado 1, o flip-flop correspondente mudar a sada de 0 para 1 e ser possvel, portanto, transferir para o registrador os dados da entrada atravs dos presets. Isso feito, desativamos os presets, dando condio de funcionamento normal ao registrador (ver figura 4.48 terminal enable). Assim preparado, o registrador deslocar normalmente, com a ao do clock, os dados nele inseridos. Vamos considerar o registrador de deslocamento para a direita da figura 4.43 e nele acrescentar preset e clear ativados em 0, com acesso possvel ao preset de cada flip-flop interno. Os clears so interligados zerando simultaneamente, quando ativados, todos os flip-flops (figura 4.48). Figura 4.48
Registrador de deslocamento entrada srie ou paralela; sada srie ou paralela.
entrada paralela E7 enable sada paralela Q7 PR PR QG PR Q0 E6 E0

Assim, um trem de pulsos na entrada se reproduzir em Q0 com atraso igual a (n 1)T, em que T o perodo de relgio (clock).

4.4.2 Associao de registradores registrador de maior capacidade


A figura 4.49 apresenta dois registradores entrada srie, A1 A 2 - - - - - D3 D4 com quatro bits de sada colocados em cascata para a obteno de um registrador sada com oito bits. Figura 4.49
A1 entrada srie A2 A3 A4 B1 B2 B3 B4

Dois registradores entrada srie.

DA >

REG A

DA >

REG B

clock

A sada srie de REG A (A4) direcionada para a entrada srie de REG B (D4). O arranjo equivale a um registrador entrada srie com sada paralela de oito bits. Podemos usar qualquer Ai ou Bi como sada srie; a escolha depender do atraso desejado.

entrada srie

S7

Q7

S6

Q6

S0

Q0

4.4.3 Registrador como multiplicador ou divisor por 2


Consideremos um nmero natural binrio de oito bits, por exemplo: 1100 0110. Vamos supor que esse nmero esteja carregado em um registrador de deslocamento e sofra deslocamento para a direita. Perde-se o bit 0 e fica indefinido o bit 7, que consideramos 0 (figura 4.50). Figura 4.50
b7 b0

> CLK ff7 R7 CLR clock clear Q7

> CLK ff6 R6 CLR Q6

> CLK ff0 R0 CLR Q0

O terminal enable controla a funo do PR, selecionando-o para ser entrada ou funcionamento normal de PR. O terminal Q0 ou outro da sada paralela pode ser considerado sada srie, dependendo do atraso desejado na transferncia do sinal ou outra condio especfica do caso em questo. O referido atraso aquele ocasionado na passagem do sinal da entrada do flip-flop interno para sua sada que leva um perodo de relgio.

Registrador como multiplicador ou divisor por 2. (102)10 deslocamento para a direita (51)10 :2

1
b7

0
b0

116

117

eletrnica 4

CAPTULO 4

A operao de deslocamento para a direita, como vimos, pode ser associada diviso por 2. Inversamente, um deslocamento para a esquerda pode ser associado multiplicao por 2.

4.4.4 Registrador de deslocamento em anel


No circuito da figura 4.51, vamos conectar Q0 entrada srie (A e B interligadas). Figura 4.51
Registrador de deslocamento em anel de quatro bits.
Q7 Q6 Q0

Para concluir, observamos que, embora os flip-flops internos sejam sensveis transio negativa, devido ao inversor, na transio positiva do clock que as mudanas ocorrem, lembrando tambm que, a partir do segundo flip-flop, o valor efetivo da entrada o anterior transio do clock, pois os flip-flops tm como base o flip-flop J-K mestre-escravo.

A B

S3

Q3

S2

Q2

S0

Q0

> CLK ff7 R3 CK Q3

> CLK ff6 R2 Q2

> CLK ff0 R0 Q0

reset

Vamos avaliar o circuito da figura 4.51, admitindo a condio inicial Q3 = Q2 = Q1 = 0 e Q0 = 1. Na primeira transio positiva do clock (CK), Q3 vai para 1, e Q0, para 0; as demais sadas permanecem em 0. Na segunda transio positiva, Q2 vai para 1, e Q3, para 0; portanto, Q0 = Q1 = 0. Assim, 1 vai deslocando-se para a direita at Q0 = 1 e as demais sadas = 0. Eventos distintos podem ser comandados (controlados) pelas sadas, obedecendo a uma sequncia bem definida e em intervalos de tempo determinados pelo clock. Cada evento ser comandado pela sada que estiver com valor 1. Na figura 4.52 esto registradas as formas de onda de dois ciclos completos.

Figura 4.52
Formas de onda de dois ciclos completos.

clock

Q3

Q2

Q1(ff1)

Q0(ff0)

118

119

Captulo 5

Sistemas microprocessados

eletrnica 4

CAPTULO 5

Entrada e sada So compostas de todos os dispositivos que interligam as informaes externas ao computador. por meio desses dispositivos que podemos inserir informaes no computador (entrada) ou receber informaes dele (sada). So dispositivos de entrada: teclados, sensores, chaves etc. So dispositivos de sada: impressoras, motores, painis etc. Os dispositivos de entrada e sada so ligados UCP por interfaces apropriadas a cada dispositivo. Memria O conjunto de memrias basicamente constitudo de memrias RAM e ROM. As memrias RAM, por serem de leitura e escrita, armazenam dados que podem variar no decorrer do programa. As memrias ROM, apenas de leitura, armazenam dados fixos ou programas, ou seja, dados que no podem mudar durante toda a execuo do programa.

I
Figura 5.1
Organizao bsica de um computador.

nicialmente, vejamos o conceito de computador, microprocessador e microcontrolador.

5.1 Processadores
Os dois tipos de arquitetura mais comuns utilizados em microprocessadores e microcontroladores so Von-Neumann e Harvard. A arquitetura Von-Neumann tem um nico barramento por onde circulam os dados e instrues, tornando necessria maior quantidade de ciclos de mquina para executar uma instruo uma simples soma de dois nmeros, por exemplo, gasta trs ciclos de mquina. Essa arquitetura utilizada na famlia de microcontroladores 8051. Nela, as instrues so estruturadas com base na tecnologia CISC, a qual envolve maior complexidade na execuo da instruo. Comparada com a tecnologia RISC, usada na arquitetura Harvard, gasta mais ciclos de mquina. Em geral, para uma mesma capacidade de processamento, o microprocessador com tecnologia CISC tem um set de instrues bem maior; assim, possvel executar programas menores com CISC. O mesmo programa em tecnologia RISC ficar bem maior, pois as instrues disponveis em CISC no esto em RISC, sendo necessrio criar as instrues faltantes com as RISC existentes. A arquitetura Harvard tem dois barramentos distintos, um para dados e outro para instrues, possibilitando maior rapidez no processamento para fazer uma operao de soma de dois nmeros, por exemplo, necessrio apenas um ciclo de mquina. Uma grande vantagem dessa arquitetura o fato de que, enquanto uma instruo processada, outra j pode estar executando seu ciclo de busca, carregando a prxima instruo. Tal processo de busca/ execuo conhecido como pipeline. Essa a arquitetura da famlia PIC , cujas instrues so estruturadas com base na tecnologia RISC, conforme j comentado.

Computador
Computador uma mquina que pode armazenar e processar informaes. Hoje consideram-se computadores as mquinas digitais que operam com informaes binrias. Basicamente, um computador constitudo de entrada, UCP (unidade central de processamento), memria e sada (figura 5.1).

de fora

entrada

UCP

sada

para fora

Sigla em ingls de complex instruction set computer, computador com conjunto de instrues complexas. Sigla em ingls de reduced instruction set computer, computador com conjunto de instrues reduzidas.

memria

Registrador um conjunto de posies (circuitos flip-flops) formando uma unidade que armazena uma informao binria. Os locais de memria contidos na UCP chamam-se registradores. Eles podem ser constitudos de diferentes nmeros de bits, dependendo da quantidade de bits que armazenam.

UCP Coordena todas as tarefas e executa os clculos. composta de trs partes: unidade de controle, unidade lgico-aritmtica (ULA) e um conjunto de registradores. a) Unidade de controle de onde partem os sinais de controle de todo o sistema, estabelecendo a sincronizao correta das tarefas que esto sendo realizadas. b) ULA onde se realizam as operaes lgicas e aritmticas determinadas pela unidade de controle. So operaes aritmticas: subtrair, incrementar, setar bit etc. So operaes lgicas: lgica E, lgica OU, comparao etc. c) Conjunto de registradores constitudo de registradores com vrias finalidades, entre elas: contador de programa, armazenamento de dados processados pela UCP, armazenamento de endereos etc.

Sigla em ingls de programmable interface controller, controlador de interface programvel.

Microprocessador
O microprocessador MPU um chip que substitui a UCP de um computador. As caractersticas tcnicas do MPU basicamente definem as caractersticas do computador.

Sigla em ingls de microprocessor unit.

122

123

eletrnica 4

CAPTULO 5

Antes dos microprocessadores, a UCP era construda com transistores e CI digitais discretos, o que tornava os computadores maiores e mais caros. Os microprocessadores de oito bits comearam a ser desenvolvidos em 1972. O pioneiro foi o 8008, que era capaz de enderear 16 kB de memria e possua 45 instrues e velocidade de 300000 operaes por segundo. Com o passar dos anos, surgiram o 8080 (Intel), o 6800 (Motorola) e, em 1976, o famoso Z80 (Zilog), considerado na poca um microprocessador com grande capacidade de processamento. O Z80 podia enderear 64 kB de memria, possua 176 instrues, alm de executar todos os programas escritos para o 8080. Com essas vantagens, ganhou a preferncia do mercado.

A figura 5.4 representa a estrutura interna de um microcontrolador constitudo dos seguintes blocos internos: UCP Memria Entrada e sada
Temporizador

Comunicao serial Watchdog

Figura 5.4
sada entrada referncia registro de entrada e sada reg. de entrada dados reg. de sada dados

Microcontrolador: estrutura bsica.

Microcontrolador
O microcontrolador (tambm designado por MCU) um chip que contm, alm da UCP, memrias RAM e ROM, oscilador interno de clock, I/O e outros recursos, o que o torna um verdadeiro computador em uma nica pastilha. Atualmente, existe grande variedade de MCUs, como os das famlias 8051, PIC, COP, AVR etc. O poder de processamento dos microprocessadores maior que o dos microcontroladores. Por isso, os microprocessadores so usados em sistemas que necessitam de UCP mais sofisticada e com funes mais complexas (figuras 5.2 e 5.3). Figura 5.2
Bloco microprocessador.
ROM UCP (MCU) RAM componentes externos

SERIAL

posio 0 posio 1

dados

I/O registrador 1 registrador 2 registrador 3

MEMRIA endereos posio n R/ W linhas de controle CPU

contador

contador independente WATCHDOG

TEMPORIZADOR

I/O

Comunicao serial Nesse tipo de comunicao, so necessrias somente trs linhas para enviar e/ou receber os dados: uma apenas para enviar dados, uma s para receber dados e uma para estabelecer o protocolo. Protocolo a regra estabelecida para que receptor e emissor se entendam; assim, na terceira linha colocado um sinal informando quem deve estar preparado para receber e quem deve estar preparado para enviar. Temporizador Permite usar intervalos de tempo para controlar eventos, informaes de tempo gasto etc. A base dessa unidade o contador, que um registrador que aumenta em uma unidade seu valor em determinado tempo. Watchdog (WDT) um contador incrementado automaticamente com um clock independente. O clock do WDT provm de um temporizador RC s para ele; portanto, seu incremento independe do clock da mquina. Essa caracterstica do WDT possibilita us-lo para evitar o travamento do programa, da seguinte maneira: o tempo normal de estouro do WDT de 18 ms; quando ocorre o estouro, gerado um reset forado e esse reset usado para evitar o travamento. O programador, ao longo do programa, zera o WDT, evitando seu estouro e mantendo, assim, o desenvolvimento normal do programa. Nessa condio, caso ocorra

Figura 5.3
Bloco microcontrolador mnimo simplificado.
de fora entrada UCP sada

para fora

O estouro (overflow, em ingls) corresponde situao em que o contador WDT atingiu o ltimo estado de sua sequncia de contagem. Ao fazer uso de um WDT, necessrio escrever o programa de maneira a redefinir o WDT com frequncia suficiente (menor que 18 ms) para impedi-lo de atingir o ltimo estado (estouro). Se isso acontecer porque, por algum motivo, o programa travou.

memria

124

125

eletrnica 4

CAPTULO 5

travamento, o WDT no zerado e o WDT estoura, gerando um reset e saindo do travamento. O WDT pode ser desligado como opo de configurao. Os demais blocos da figura 5.4 (UCP, memria, entrada e sada) foram explicados anteriormente. importante ressaltar a ao das linhas de controle gerenciadas pela UCP existente entre ela e as unidades de memria, temporizao e WDT. Figura 5.5
PIC16F628A: estrutura interna.
13

A estrutura interna apresentada na figura 5.5 encontra-se no datasheet da Microchip, que sua fabricante. Observe que o registrador W (work) aparece em destaque e est diretamente ligado ULA. A mais importante funo desse registrador sua utilizao na troca de dados entre registradores, pois no possvel trocar diretamente dados entre registradores SFR e GPR, como veremos mais adiante. A memria de dados conectada a um barramento de oito bits, enquanto a memria de programa, devido arquitetura Harvard, pode ser conectada a um barramento de 14 bits, possibilitando o processo de execuo pipeline. Na figura 5.5, notamos tambm blocos que representam circuitos (memrias, timers, comparadores, porta serial) que no so encontrados em microprocessadores, porm por ser um microcontrolador o modelo 16F628A inclui esses circuitos. O PIC16F628A pode ter seu clock gerado por oscilador externo de no mximo 20 MHz ou por oscilador interno programado para 4 MHz ou 37 kHz. Em todos os casos, o clock gerado dividido internamente por 4. Vamos considerar um clock de 4 MHz. Aps a diviso interna por 4, temos um clock interno de 1 MHz e, portanto, um perodo de 1 s, que o tempo denominado ciclo de mquina, no qual cada etapa da instruo executada. O diagrama da figura 5.6 consta do manual da Microchip.

5.1.1 Estrutura interna do PIC16F628A


A figura 5.5 apresenta a estrutura interna do microcontrolador PIC16F628A.
8 RA0 /AN0 8 Level Stack (13 bits) RAM les registers 9 Adress 7 8 FSR RA1 /AN1 PORTA RA2 /AN2 /VREF RA3 /AN3 /CMP1 RA4 / TOCK1 /CMP2 RA5 /MCLR/MCLR RA6 /OSC2 /CLKOUT RA7 /OSC1 /CLKIN

FLASH Program Memory 14 Instruction

Program

Figura 5.6
Diagrama das fases internas do clock para o PIC16F628A.

PORTB

Instructin Decode & Control

Power Up timer Oscilator Start Up Timer Power-On Reset

MUX

RB0 /INT RB1 /RX/DT RB2 /TX/CK RB3 /CCP1 RB4 /PGM RB5 RB6 /T1OSO/T1CKI/PGC RB7 /T1OSI/PGD

STATUS 3 ULA 8 W reg

Timing generation

Watchdog Timer Brown-Out Reset

Q1 OSC1 Q1 Q2 Q3 Q4

Q2

Q3

Q4

Q1

Q2

Q3

Q4

Q1

Q2

Q3

Q4

OSC2 /CLKOUT

OSC1 /CLKIN

Low-Voltage Programmin MCLR VDD VSS

Fases internas do clock


PC PC + 0 PC + 2

PC

Extrair INST (PC) Executar INST (PC 1) Extrair INST (PC + 1) Executar INST (PC) Extrair INST (PC + 2) Executar INST (PC + 1)

Timer 0

Timer 1

Timer 2

comparator

VREF

CCP1

USART

Data EEPROM

126

127

eletrnica 4

CAPTULO 5

Analisando a figura 5.6, podemos notar que durante um ciclo (composto de quatro fases: Q1, Q2, Q3, Q4), enquanto uma instruo executada, a prxima buscada para ser executada no ciclo seguinte; assim, cada instruo executada em um nico ciclo. Essa execuo em pipeline facilmente realizada pelo microcontrolador devido arquitetura Harvard. Em geral, as instrues so executadas em apenas um ciclo de mquina, exceto as que geram salto, como as chamadas de rotina e os saltos para outros endereos que no os da sequncia normal do programa. Dessa maneira, para um clock externo de 4 MHz, temos uma instruo simples que leva 1 s para ser executada e aquelas que produzem salto levam 2 s.

A figura 5.8 exemplifica a elaborao de um fluxograma para um evento simples: acender uma lmpada sempre que um boto estiver pressionado. Figura 5.8
incio

boto pressionado?

Fluxograma simples para acender uma lmpada sempre que o boto estiver pressionado.

S acender lmpada acender lmpada

um boto/um LED

5.2 Programao
Para que o processador execute tarefas, necessrio fazer a programao, especificando os passos que devem ser seguidos. Essa sequncia inicialmente descrita em um fluxograma e, depois, transformada em comandos de uma linguagem de programao.

5.2.1 Fluxograma
O fluxograma descreve a lgica do programa de acordo com a sequncia em que as tarefas ocorrem; por isso, uma ferramenta valiosa na execuo do programa, qualquer que seja a linguagem utilizada. A figura 5.7 apresenta os blocos que usaremos para fazer o fluxograma de um evento. Figura 5.7
Blocos do fluxograma.
terminal processo incio ou m do programa o que deve ser executado (operaes, clculos etc.) processo pr-de nido

Exemplo Faa o fluxograma do seguinte evento: a) Inicialmente dois LEDs esto apagados. b) Ao pressionar o boto A, mantendo o boto B solto, o LED A acende e o LED B permanece apagado. c) Ao pressionar o boto B, mantendo o boto A solto, o LED B acende e o LED A permanece apagado. d) Os dois botes pressionados acendem os dois LEDs. e) Os dois botes no pressionados mantm os dois LEDs apagados. f) O segundo boto deve somente ser considerado pressionado se for pressionado no mximo 2 segundos aps o primeiro. Soluo: A figura 5.9 mostra o fluxograma solicitado.

sub-rotina

deciso

testa determinada condio, dependendo do resultado segue um dos caminhos.

conector

indica que o uxograma continua em outro ponto. indica o sentido do uxo em que o evento est ocorrendo.

setas

128

129

eletrnica 4

CAPTULO 5

Figura 5.9
Fluxograma dois botes/dois LEDs.
incio

A figura 5.10 mostra a aparncia de um programa em linguagem de mquina. Figura 5.10


endereos
apaga LED A

dados 0000 1001 1001 0010 0100 1001 1000 0010 --------------

apaga LED B

0000 0011 0011 0000 0000 0011 1101 0010 0000 0011 0110 0100 0000 0011 0001 1110 -----------------------------

Aparncia dos endereos e dados na linguagem de mquina.

acende LED A

boto A press.? S

apaga LED B

tempo 2s

tempo 2s

Como podemos observar, um programa escrito desse modo pode se tornar confuso, de difcil compreenso, pois no indica o que o microcontrolador est executando, e a correo de erros trabalhosa. Enfim, uma linguagem somente para a mquina. Esse tipo de linguagem chamado de linguagem de baixo nvel.
N

boto B press.? S acende LED A

boto B press.? S apaga LED A

Para facilitar o trabalho de programao e eliminar uma srie de inconvenientes para o programador, foi desenvolvida a linguagem assembly. Embora seja considerada linguagem de baixo nvel, facilitou muito esse trabalho. A linguagem assembly substitui cdigos binrios por mnemnicos, isto , nomeia os cdigos, permitindo fazer fcil associao com a funo do cdigo. O microcontrolador no entende diretamente um programa escrito em linguagem assembly; necessrio convert-la em linguagem de mquina. O compilador assembler ou programa assembler faz essa transformao (figura 5.11). Com o passar dos anos, surgiram linguagens classificadas como de alto nvel. Elas apresentavam um conceito mais geral, podendo ser usadas para programar praticamente qualquer microcontrolador, independentemente de sua linguagem de baixo nvel especfica. Para converter um programa fonte escrito em linguagem de mdio ou alto nvel em linguagem de mquina, utiliza-se um programa compilador (figura 5.12). Figura 5.11
LINGUAGEM ASSEMBLY Compilador assembler COMPILADOR ASSEMBLER LINGUAGEM DE MQUINA

acende LED B

acende LED B

O bloco tempo 2 s representado como sub-rotina, pois um programa predefinido, ou seja, quando o programa principal necessita de um intervalo (delay) de 2 segundos, chama essa sub-rotina. A sub-rotina executada e retorna posio imediatamente seguinte no programa principal; assim, o programa da sub-rotina escrito uma nica vez.

5.2.2 Linguagens de programao


Linguagem de mquina ou cdigo objeto um conjunto de informaes na forma binria dispostas em uma condio previamente definida de maneira que o microcontrolador possa process-las. Elaborar um programa dessa maneira trabalhoso e cansativo, pois as instrues, os dados e todas as demais informaes necessrias para a mquina devem estar em binrio. A linguagem de mquina prpria de cada microcontrolador, sendo definida pelo fabricante; portanto, em geral, o cdigo objeto de uma mquina no compatvel com o de outra. 130

Compilador assembler.

Figura 5.12
Programa compilador.
LINGUAGEM DE ALTO NVEL Programa compilador PROGRAMA COMPILADOR LINGUAGEM DE MQUINA

131

eletrnica 4

CAPTULO 5

Existem diversos tipos de compiladores, dependendo da linguagem: compilador C, compilador Pascal etc. O programa compilador transforma primeiro todo o programa em linguagem de mquina e depois o executa. Existe tambm o programa interpretador, no qual cada instruo transformada em linguagem de mquina e em seguida executada antes de a prxima instruo ser transformada. Portanto, a execuo de um programa compilado mais rpida que a de um programa interpretado. Podemos testar e corrigir um programa por meio de programas que simulam sua execuo; esse procedimento chamado de depurao.

O conjunto de instrues do microcontrolador PIC


Vejamos alguns termos utilizados no conjunto de instrues do microcontrolador PIC: Work Registrador acumulador temporrio, representado pela letra W. File Referncia a um registrador (posio de memria) representado pela letra F. Literal Um nmero qualquer em binrio, decimal ou hexadecimal, representado por L nas instrues e por K nos argumentos. Destino Onde o resultado de uma operao ser armazenado. S existem duas possibilidades para o destino: em F no registrador passado como argumento ou em W no registrador work. Tambm podemos representar 0 para W e 1 para F no destino. Exemplo de como fazer a construo do nome das instrues Somar uma unidade ao valor armazenado em um registrador chamado REGX. Soluo: Incrementar (INC) registrador (F) REGX = INCF REGX Tabela 5.1
Conjunto de instrues retirado do original em ingls.

5.2.3 Linguagem assembly


A linguagem que utilizamos para nos comunicar com o microcontrolador a linguagem assembly. O assembly composto de um conjunto de instrues especfico para cada processador. Ocorre, porm, que o sistema digital somente entende uma linguagem composta por 0 e 1, sendo necessrio, portanto, que o cdigo assembly seja traduzido para o cdigo binrio. A linguagem assembly corresponde a um conjunto de regras e instrues necessrias para escrever um programa que ser utilizado em determinada CPU, microprocessador ou microcontrolador. Assembler um programa que, executado em um sistema digital microprocessado ou microcontrolado, traduz o cdigo escrito em linguagem assembly para um cdigo equivalente de 0 e 1, ou seja, em linguagem de mquina. O programa fonte uma sequncia de instrues escritas conforme as regras do assembly do processador ou qualquer outra linguagem de programao de microcontroladores (por exemplo: linguagem C para PICmicros), que normalmente gravado em disco para ser carregado na RAM. Vamos considerar, por exemplo, a instruo return que um microcontrolador utiliza para retornar de uma sub-rotina. Quando o programa assembler faz a traduo, obtemos uma srie de 0 e 1 correspondente a 14 bits que o microcontrolador PIC pode reconhecer, nesse caso: 00 0000 0000 1000. Quando o programa assembler realiza a compilao do cdigo fonte, tambm gerado um arquivo com extenso HEX. Esse nome provm de uma representao hexadecimal do programa em linguagem de mquina. Uma vez concludo o processo de montagem e compilao, o arquivo em cdigo de mquina gerado inserido no microcontrolador por um programador. Um programa em linguagem assembly pode ser escrito originalmente em qualquer editor de textos e depois copiado na tela do editor do ambiente de programao ou, ento, editado diretamente no prprio ambiente de programao, como o MPLAB (ver Apndice C). 132

Mnemonic, Operands

Description

Cycles

14-Bit Instruction Word Msb Lsb

Status Affected

Notes

Byte-Oriented File Register Operations ADDWF ANDWF f, d f, d Add W and f AND W with f Clear f Clear W Complement f Decrement f Decrement f, Skip if 0 Increment f Increment f, Skip if 0 Inclusive OR W with f Move f Move W to f 1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 00 0111 dfff ffff 00 0101 dfff ffff 00 0001 lfff ffff 00 0001 0xxx xxxx 00 1001 dfff ffff 00 0011 dfff ffff 00 1011 dfff ffff 00 1010 dfff ffff 00 1111 dfff ffff 00 0100 dfff ffff 00 1000 dfff ffff 00 0000 lfff ffff Z Z Z C,DC,Z Z Z Z Z Z 1,2 1,2 1,2,3 1,2 1,2,3 1,2 1,2 1,2 1,2 2

CLRF f CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF f, d f, d f, d f, d f, d f, d f, d

MOVWF f

133

eletrnica 4

CAPTULO 5

Mnemonic, Operands
NOP RLF RRF SUBWF SWAPF XORWF f, d f, d f, d f, d f, d

Description
No Operation Rotate Left f through Carry Rotate Right f through Carry Subtract W from f Swap nobbles in f Exclusive OR W with f

Cycles
1 1 1 1 1 1

14-Bit Instruction Word Msb Lsb


00 0000 0xx0 0000 00 1101 dfff ffff 00 1100 dfff ffff 00 0010 dfff ffff 00 1110 dfff ffff 00 0110 dfff ffff

Status Affected

Notes

O conjunto de instrues dos microcontroladores PIC da Microchip que utilizaremos em nosso curso consiste em um pequeno repertrio de apenas 35 instrues de 12 bits, que podem ser agrupadas em cinco grupos ou categorias. Essas cinco categorias so definidas de acordo com a funo e o tipo de operandos envolvidos: Instrues que operam com bytes e envolvem algum registrador da memria interna. Instrues que operam apenas sobre o registrador W e que permitem carregar uma constante implcita ou includa literalmente na instruo (literal). Instrues que operam sobre bits individuais dos registradores da memria interna. Instrues de controle de fluxo do programa, ou seja, aquelas que permitem alterar a sequncia de execuo das instrues. Instrues especiais cujas funes ou tipos de operandos so muito especficos e no se encaixam nas descries anteriores.

C C C,DC,Z

1,2 1,2 1,2 1,2

1,2

Bit-Oriented File Register Operations BCF BSF BTFSC BTFSS f, b f, b f, b f, b Bit Clear f Bit Set f Bit Test f, Skip if Clear Bit test f, Skip if Set 1 1 1(2) 1(2) 01 00bb bfff ffff 01 01bb bfff ffff 01 10bb bfff ffff 01 11bb bfff ffff 1,2 1,2 3 3

Instrues que operam com registradores


Essas instrues podem ser de operando de origem simples ou duplo. O primeiro operando de origem ser o registrador selecionado na instruo e o segundo, se existir, o registrador W. O destino, onde ficar armazenado o resultado, ser o registrador selecionado ou W. As instrues a seguir so operaes lgicas de duplo operando: ANDWF F,d: operao lgica AND entre F e W, destino = W ou f IORWF F,d: operao lgica OR entre F e W, destino = W ou f XORWF F,d: operao lgica XOR entre W e F, destino = W ou f Essas instrues correspondem a operaes de simples operando: MOVF F,d: movimento de dados, destino = F ou W COMF F,d: complemento lgico, destino = F ou W INCF F,d: incremento aritmtico, destino = F ou W DECF F,d: decremento aritmtico, destino = F ou W Nas sete instrues anteriores, o nico bit afetado do registrador de status o Z (bit de zero), que assumir nvel lgico 1 se o resultado da operao for 00000000 e nvel lgico 0 se o resultado for qualquer outro valor. As instrues de rotao de bits atravs do bit C (carry) do registrador de status so: RLF F,d: rotao de bits esquerda, destino = F ou W RRF F,d: rotao de bits direita, destino = F ou W Nas operaes Rotate Left File e Rotate Right File, os bits so deslocados de cada posio seguinte, para a esquerda ou para a direita. O deslocamento fechado, formando um anel com o bit C do registrador de status. 135

Literal and Control Operations ADDLW k ANDLW k CALL k CLRWDT GOTO k IORLW k MOVLW k RETFIE RETLW k RETURN SLEEP SUBLW k XORLW k Add literal and W AND literal with W Call subroutine Clear Watchdog Timer Go to address Inclusive OR literal with W Move literal to W Return from interrupt Return with literal in W Return from Subroutine Go into standby mode Subtract W from literal Exclusive OR literal with W 1 1 2 1 2 1 1 2 2 2 1 1 1 11 111x kkkk kkkk 11 1001 kkkk kkkk 10 0xxx kkkk kkkk 00 0000 0100 0100 10 1kkk kkkk kkkk 11 1000 kkkk kkkk 11 00xx kkkk kkkk 00 0000 0000 1001 11 01xx kkkk kkkk 00 0000 0000 1000 00 0000 0110 0011 11 110x kkkk kkkk 11 1010 kkkk kkkk TO,PD C,DC,Z Z Z TO,PD C,DC,Z Z

Note 1: When an I/O register is modified as a function of itself (e.g., MOVF, PORTB, 1) the value used will be that value present on the pins themselves. For example, if the data latch is 1 for a pin configured as input and is driven low by an external device, the data will be written back with a 0. 2: If this instruction is executed on the TMRO register (and, where applicable, d = 1), the prescaler will be cleared if assigned to the Timer0Module. 3: If Program Counter (PC) is modified or a conditional test is true, the instruction requires two cycles. The second cycle is executed as a NOP.

134

eletrnica 4

CAPTULO 5

Nessas duas instrues, o nico bit afetado do registrador de status o bit C, que assumir o valor que estava no bit 7 ou no bit 0, de acordo com o sentido de deslocamento. A instruo seguinte realiza a troca de posio entre os quatro bits menos significativos e os quatro mais significativos (nibble baixo e nibble alto): SWAPF F, d: troca nibbles, destino = F ou W

Registrador de status Esse registrador armazena o estado atual da unidade lgico-aritmtica, do reset e do banco de memria utilizado.
Bit de Bit de Bit de escrita/ escrita/ escrita/ leitura leitura leitura
IRP bit 7 RP1 bit 6 RP0 bit 5

Bit de leitura
TO bit 4

Bit de leitura
PD bit 3

Bit de Bit de Bit de escrita/ escrita/ escrita/ leitura leitura leitura


Z bit 2 DC bit 1 C bit 0

A instruo SWAP File no afeta nenhum bit do registrador de status. As duas operaes que se seguem so a soma e a subtrao aritmticas: ADDWF F, d: soma aritmtica, destino = F ou D SUBWF F, d: subtrao aritmtica, destino = F ou D As operaes ADD WF e SUBtract W de F afetam trs bits do registrador de status: C, DC e Z. O bit Z assumir nvel lgico 1 se o resultado da operao for 00000000 e nvel lgico 0 se o resultado for qualquer outro valor. Os bits do registrador de status C e DC assumem o valor normal correspondente soma de F com o complemento 2 de W. Dessa maneira, o significado para a operao de subtrao resulta invertido, ou seja, C (carry) ser 1 se no houver estouro na subtrao (se o contedo de W for menor que o de F). O bit DC se comporta de modo similar, isto , DC ser 1 se no houver estouro na metade menos significativa, o que equivale a dizer que o nibble baixo do contedo de W menor que o nibble baixo do contedo do registrador F. As instrues a seguir so de simples operando, mas trata-se de casos especiais, pois o destino ser sempre o prprio registro selecionado: CLRF F: zera todos os bits de F MOVWF F: copia contedo de W em F, destino = F A instruo CLRF (CLeaR File) afeta somente o bit Z, que resulta sempre 0. A instruo MOVWF (MOVe W para F) no afeta nenhum bit do registrador de status.

Bit 7 IRP Esse registro no utilizado pelo PIC16F84 ou PIC16F628A, lido sempre como 0. Bits 6, 5 RP1, RP0 Registros de seleo do banco de registros: 00 = banco 0 (00H 7FH) 01 = banco 1 (80H FFH) Bit 4 TO (Time-out) 1 = Aps power-up (ligar), instruo CLRWDT (limpar co de guarda) ou instruo SLEEP (dormir). 0 = Um time-out do WDT ocorreu. Bit 3 PD (Power-down) 1 = Aps power-up (ligar) ou instruo CLRWDT (limpar co de guarda). 0 = Execuo da instruo SLEEP (dormir). Bit 2 Z (Zero) 1 = O resultado da operao aritmtica ou lgica igual a zero. 0 = O resultado da operao aritmtica ou lgica no zero. Bit 1 DC (Digito Carry/borrow) 1 = Ocorreu transbordamento do quarto bit menos significativo. 0 = No ocorreu transbordamento do quarto bit menos significativo. Bit 0 C (Carry) 0 = No ocorreu transbordamento do stimo bit mais significativo.

136

137

eletrnica 4

CAPTULO 5

Instrues que operam com registrador W e literais


Essas instrues se referem ao registrador W, isto , um dos operandos de origem e o operando de destino sero sempre o registrador W. Nas instrues desse grupo que tm um segundo operando de origem, este ser sempre uma constante includa na instruo, chamada literal. As instrues a seguir so as operaes lgicas tradicionais, similares s que vimos anteriormente, porm realizadas entre a constante de programa e o registrador W: IORLW K: operao lgica OR entre W e L, destino = W ANDLW K: operao lgica AND entre W e L, destino = W XORLW K: operao lgica XOR entre W e L, destino = W Nessas trs instrues (Inclusive OR Literal W, AND Literal W e XOR Literal W), o nico bit afetado do registrador de status Z, que assumir nvel lgico 1 se o resultado da operao for 00000000 e nvel lgico 0 se o resultado for qualquer outro valor. A instruo que se segue utilizada para armazenar uma constante no registrador W: MOVLW K: armazena constante em W, destino = W A instruo MOVe Literal W no afeta nenhum bit do registrador de status. A instruo seguinte (CLeaR W) um caso especial da instruo CLRF, com destino = W: CLRW: zera todos os bits de W Como na instruo CLRF, o nico bit do registrador de status afetado Z, que assumir nvel lgico 1. As instrues so operaes aritmticas entre W e uma constante. ADDLW K: soma W e K, destino = W SUBLW K: subtrai W de K As operaes ADD LW e SUBtract W de K afetam trs bits do registrador de status: C, DC e Z.

As instrues Bit Clear File e Bit Set File no afetam nenhum bit do registrador de status.

Instrues de controle
GOTO K: salta para a posio K do programa Essa uma instruo tpica de salto incondicional para qualquer posio de memria de programa. A constante literal K corresponde ao endereo de destino do salto, isto , o novo endereo de memria de programa a partir do qual sero executadas as instrues aps a execuo de uma instruo GOTO. Essa instruo simplesmente armazena a constante K no registrador PC (contador de programa). A instruo seguinte chamada de sub-rotina: CALL K: salta para a sub-rotina na posio K O comportamento dessa instruo muito similar ao da instruo GOTO, salvo que, alm de saltar, armazena no stack o endereo de retorno da sub-rotina (que ser usado pela instruo RETURN e RETLW). Isso realizado armazenando no stack uma cpia do PC incrementado, antes que ele seja carregado com o novo endereo K. As instrues a seguir so de retorno de sub-rotina: RETURN: retorno de sub-rotina Retorna para o endereo de programa imediatamente posterior ao de chamada da referida sub-rotina. RETLW K: retorno de sub-rotina com constante K armazenada em W Essa instruo (RETurn with Literal in W) permite o retorno de sub-rotina com uma constante literal K armazenada no registrador W. A operao que essa instruo realiza consiste simplesmente em retirar do stack um valor e carreg-lo no PC. Esse valor o PC antes de realizar o salto incrementado, proveniente da ltima instruo CALL executada; portanto, ser o endereo da instruo seguinte ao CALL. RETFIE: retorno de interrupo Retorna de uma interrupo, recuperando o ltimo endereo colocado no stack. A seguir encontram-se as nicas instrues de salto (skip) condicional, os nicos meios para implementar desvios condicionais em um programa. Elas so genricas e muito poderosas, pois permitem ao programa tomar decises em funo 139

Instrues que operam com bits


Essas instrues operam somente sobre o bit especificado; todos os outros bits do registrador no so alterados. Elas no tm especificao de destino, j que este ser sempre o prprio registrador selecionado. BCF BSF 138 F, b: zera o bit b de F F, b: seta o bit b de F

eletrnica 4

CAPTULO 5

de qualquer bit de qualquer posio de memria interna de dados, incluindo os registradores de perifricos, as portas de entrada/sada e o prprio registrador de status do processador. Essas duas instrues substituem e superam todas as instrues de saltos condicionais dos processadores convencionais (salto por zero, por no zero, por carry etc.). BTFSC BTFSS F, b: salta se bit = 0 F, b: salta se bit = 1

A instruo seguinte resseta o contador do watch dog timer. Esse registrador no est acessvel como memria e essa a nica instruo que o modifica. CLRWDT: resseta o watch dog timer Essa instruo tambm afeta os bits PD ( power-down) e TO (time-out) do registrador de status. A instruo seguinte um controle especial do microcontrolador que o coloca no modo power down, no qual: o microcontrolador suspende a execuo do programa; o oscilador fica em estado constante; os registradores e portos conservam seu estado; e o consumo se reduz ao mnimo. A nica maneira de sair desse estado por meio de um reset ou por time-out do watch dog timer. SLEEP: coloca o MC em modo sleep Essa instruo zera o bit PD ( power-down) e seta o bit TO (time-out) do registrador de status.

A instruo BTFSC (Bit Test File and Skip if Clear) salta a prxima instruo se o bit b do registrador F for 0, e a instruo BTFSS (Bit Test File and Skip if Set), se o bit b do registrador F for 1. Essas instrues podem ser usadas para realizar ou no uma ao conforme o estado de um bit, ou, em combinao com a instruo GOTO, para realizar um desvio condicional. As instrues a seguir so casos especiais de incremento e decremento vistos anteriormente, mas estas afetam o fluxo do programa: DECFSZ F, d: decrementa F e salta se 0, destino = F ou W INCFSZ F, d: incrementa F e salta se 0, destino = F ou W Essas duas instrues (DECrement File and Skip if Zero e INCrement File and Skip if Zero) se comportam de maneira similar a DECF e INCF, salvo que no afetam nenhum bit do registrador de status. Uma vez realizado o incremento ou decremento, se o resultado for 00000000, o processador saltar a prxima instruo do programa. Essas instrues so utilizadas geralmente em combinao com uma instruo de salto (GOTO), para o projeto de ciclos ou laos (loops) de instrues que devem ser repetidas determinado nmero de vezes.

Instrues especiais
Nesse grupo esto as instrues que controlam funes especficas do microcontrolador ou que atuam sobre registradores especiais no endereados como memria interna normal. A instruo a seguir a tpica NO OPERATION, existente em quase todos os processadores: NOP: no faz nada, consome tempo utilizada apenas para introduzir um atraso (delay) no programa, equivalente ao tempo de execuo de uma instruo. No afeta nenhum bit do registrador de status.

140

141

Apndice A

Famlias de circuitos integrados

eletrnica 4

APNDICE A

Tipos de TTL
TTL padro (normal) Potncia por porta: 10 mW Nomenclatura: 74XXX (normal) Velocidade de operao: 20 MHz (tpico) Fan-out (quantidade de entradas que podemos ligar na sada):

s circuitos integrados (CIs) que implementam as funes lgicas so construdos com pastilhas de silcio. A maneira como a funo implementada fisicamente em cada CI define o que denominado famlia de CIs. As duas famlias principais so: TTL e CMOS.

10 entradas TTL padro 40 entradas TTL de baixa potncia 6 entradas TTL de alta potncia 6 entradas TTL Schottky 20 entradas TTL Schottky de baixa potncia TTL de baixa potncia Potncia por porta: 1 mW Nomenclatura: 74LXXX Velocidade de operao: 3 MHz Fan-out: 2 entradas TTL normais 10 entradas TTL de baixa potncia 1 entrada TTL de alta potncia 1 entrada TTL Schottky 5 entradas TTL Schottky de baixa potncia TTL de alta potncia Potncia por porta: 22 mW Nomenclatura: 74HXXX Velocidade de operao: 50 MHz Fan-out: 12 entradas TTL normais 40 entradas TTL de baixa potncia 10 entradas TTL de alta potncia 10 entradas TTL Schottky 40 entradas TTL Schottky de baixa potncia TTL Schottky Potncia por porta: 19 mW Nomenclatura: 74SXXX Velocidade de operao: 125 MHz

A.1 Famlia TTL (transistor transistor logic)


Os circuitos integrados TTL apresentam as seguintes vantagens: a) baixo custo; b) relativamente alta velocidade de operao (20 MHz tpico); c) disponibilidade comercial de centenas de tipos diferentes. Existe uma linha comercial (74XXX) utilizvel de 0 a 70 C e uma linha militar (54XXX) utilizvel de 55 a +125 C. Os dgitos XXX determinam qual o tipo de TTL, por exemplo: 7400 quatro portas NAND de duas entradas 74121 multivibrador monoestvel Nveis de tenso e de corrente (74XXX) Tenso de alimentao 5 V 5% Mxima corrente de sada em nvel baixo.............................16 mA Mxima corrente de sada em nvel alto..............................1,6 mA Mxima tenso de entrada garantindo nvel baixo ................0,8 V Mnima tenso de sada garantindo nvel alto .......................2,4 V As sadas TTL so maiores que 2,4 V e por volta de 3,3 V para alimentao de +5 V. Para termos uma sada TTL mais alta do que 3,3 V, conectamos um resistor ( pull up) de 2,2 k da sada para a alimentao de +5V. Uma entrada TTL no conectada (flutuando) reconhecida pelo CI como 1, mas esse procedimento no deve ser praticado devido a rudos. Para que uma entrada permanea em 1, temos de conect-la diretamente alimentao +5 V; para que permanea em 0, ligamos ao terra.

144

145

eletrnica 4

APNDICE A

Fan-out: 12 entradas TTL normais 40 entradas TTL de baixa potncia 10 entradas TTL de alta potncia 10 entradas TTL Schottky 40 entradas TTL Schottky de baixa potncia TTL Schottky de baixa potncia Potncia por porta: 2 mW Nomenclatura: 74LSXXX Velocidade de operao: 45 MHz Fan-out: 5 entradas TTL normais 20 entradas TTL de baixa potncia 4 entradas TTL de alta potncia 4 entradas TTL Schottky 10 entradas TTL Schottky de baixa potncia TTL sada coletor aberto Alguns CIs da famlia TTL tm suas sadas em coletor aberto, isto , o fabricante no completa o circuito internamente, deixando para que o projetista o complete externamente. No circuito da figura A.1 esto representadas duas das sadas em coletor aberto de um TTL. Os transistores trabalham como chave (corte/saturao). Os resistores de coletor devem ser ligados externamente a uma fonte de tenso, que poder ser a de alimentao do CI ou outra de valor diferente. Figura A.1
Circuito com duas sadas coletor aberto de um TTL.
+VF R
S1

Se VF = 5 V (alimentao do CI), o valor usual para R 2,2 k. No circuito da figura A.1, os resistores R podem ser substitudos por um nico resistor R1, conforme figura A.2. Figura A.2
+5V R1 S

Circuito com um resistor R1.

CI

Se VF = 5 V, o valor usual para R1 2,22 k. Esse procedimento coloca em curto as duas sadas sem gerar conflito, pois, se ambos os transistores estiverem cortados ou saturados, seus coletores estaro no mesmo potencial e, portanto, o curto no trar problemas. A saturao de um deles leva o coletor de ambos para 0 sem problema, devido ao resistor R1. Se as sadas no fossem coletor aberto, no poderiam ser conectadas, pois haveria conflito de tenses. Analise o circuito da figura A.2 e conclua que a sada S a sada de uma porta E, que tem como entradas as sadas interligadas do CI. TTL sada em alta impedncia (three-state) Alguns TTL tm um terminal para colocar a sada em alta impedncia, o que, na prtica, equivale a desconectar a sada do CI do circuito externo em que ela est conectada. Esse recurso interessante nos casos em que vrios CIs compartilham o mesmo barramento, evitando conflito no envio dos dados. TTL entrada em Schmitt trigger
S1

O smbolo da figura A.3 de uma porta inversora com entrada Schmitt trigger. Figura A.3
A S

CI

S2

CI

S2

Smbolo de porta inversora com entrada Schmitt trigger.

Schmitt trigger significa que a entrada tem dois valores diferentes para a transio lgica entre 0 e 1: um para valores ascendentes da tenso de entrada 146 147

ELETRNICA 4

e outro para valores descendentes da tenso de entrada. O valor que resulta na transio de 0 para 1, tenso de entrada ascendente, maior que o valor que resulta na transio de 1 para 0, tenso de entrada descendente. Assim, uma entrada de tenso ascendente com rudo dentro de certos valores VA , VS limites no apresentar mudana indesejvel na sada, desde que o valor de rudo no faa a entrada diminuir para o valor de transio de comutao para tenso descendente (figura A.4). Figura A.4
Porta inversora com entrada Schmitt trigger tenso de entrada com rudo.
V A, V S VS entrada 0 1 1 0 V T01 V T10 t

Apndice B

VA

Se VA for uma tenso senoidal, obtemos uma onda quadrada com a mesma frequncia da senoidal.

A.2 Famlia CMOS (complementary metal-oxidesemiconductor)


Em geral, a srie CMOS normal (srie 4000) tem velocidade menor que a dos TTLs, e a srie H-CMOS apresenta velocidade equivalente da srie TTL normal. A tenso de alimentao da srie 4000 e 74C de 3 V a 15 V e faixa de temperatura de 40 a +85 oC. Para a srie 4000B, temos: corrente mxima na entrada em nvel 0 corrente mxima na sada em nvel 0 corrente mxima na entrada em nvel 1 corrente mxima de sada em nvel 1 Para os CMOS, temos, em geral: 0 lgico entre 0 V e 30% de VDD 1 lgico entre 70% de VDD e VDD As verses mais recentes dessa famlia possuem internamente diodos de proteo para evitar a ao destrutiva da eletricidade esttica. A potncia dissipada muito baixa, caracterizando uma grande vantagem da famlia CMOS. 1 A 0,4 mA 1 A 0,4 mA

Conversores A/D e D/A

148

eletrnica 4

APNDICE B

B.1 Conversor digital-analgico


Quando necessitamos converter um sinal digital em analgico, usamos um circuito chamado conversor digital/analgico ou simplesmente D/A. Esse circuito recebe como entrada o sinal na forma digital codificado, em geral em binrio comum ou no cdigo BCD 8421, e o converte para um valor proporcional ao valor binrio da entrada, (como mostra a figura B.2), em que k a constante de proporcionalidade que est associada ao ganho do circuito conversor D/A. VS chamada de sada analgica do valor da entrada. Figura B.2
A B C D

O
Figura B.1
(a) Sinal analgico e (b) sinal digitalizado.

s sinais que nos interessam so grandezas eltricas, em geral tenso em funo do tempo. Os sinais podem ser analgicos ou digitais (figura B.1). Sinais analgicos so aqueles que variam continuamente com o tempo; portanto, entre dois valores distintos do sinal existem infinitos valores. Em um sinal digital, a variao do valor do sinal com o tempo no contnua; entre dois valores distintos do sinal, o total de valores no intervalo finito.

Conversor digital/analgico.
CONVERSOR D/A VS = k (ABCD)

No exemplo a seguir, consideramos k = 0,4.


A 0 0 B 0 0 0 0 1 C 0 0 1 1 0 D 0 1 0 1 0 V S = k (ABCD) 0V 0,4V 0,8V 1,2V 1,6V
(0,4 . 0) (0,4 . 1) (0,4 . 2) (0,4 . 3) (0,4 . 4)

A 0 0 0 1 1

B 1 1 1 0 0

C 0 1 1 0 0

D 1 0 1 0 1

V S = k (ABCD) 2,0V 2,4V 2,8V 3,2V 3,6V


(0,4 . 5) (0,4 . 6) (0,4 . 7) (0,4 . 8) (0,4 . 9)

t (a) sinal analgico (b) sinal digitalizado

0 0 0

Processar um sinal de modo totalmente analgico, dependendo do nvel de qualidade exigido nesse processo, implica utilizar quantidade de componentes interligados de maneira complexa e muitas vezes apresenta resultado final insatisfatrio. Atualmente, devido evoluo da eletrnica, o processamento de um sinal feito em sua forma digital. Assim, um sinal analgico digitalizado e depois sofre a transformao necessria. A transformao desse sinal em sua forma analgica poder ser feita ou no, dependendo do objetivo com que esse sinal foi modificado. So exemplos de aplicao de processamento digital a compactao de uma informao analgica, a produo de eco em udio (provocado pela defasagem do sinal e a soma do sinal defasado ao prprio sinal), a transmisso do sinal digitalizado em velocidade muito maior que a original e o uso de sensores com sada digital, minimizando as distores da informao por rudos. A converso de um sinal digital em analgico (D/A) e a de analgico em digital (A/D) de fundamental importncia no processamento de sinais, e esse assunto que estudaremos neste apndice. 150

Nesse exemplo consideramos k = 0,4

Em um conversor D/A, a sequncia de valores de sada resultante de uma se quncia de valores digitais na entrada no um sinal analgico, pois este no tem variao contnua com o tempo. Para obtermos uma sada analgica, devemos filtrar a sada, transformando-a em um sinal de variao contnua. Quando h interesse em modificar um sinal analgico, muitas vezes necessrio convert-lo para a forma digital, modific-lo na forma digital e por fim convert-lo para um sinal analgico. Esse processo representado na figura B.3. Consideremos um sinal analgico de frequncia de 1 Hz. Um perodo desse sinal, portanto, de 1 segundo. Se digitalizarmos esse sinal, o trem de bits que o representa poder ser transmitido em muito menos tempo por exemplo, em 1 ms. O sinal ser transmitido com uma velocidade mil vezes maior que a transmisso em tempo real. Essa tcnica usada em telefonia digital, na TV digital e em muitas outras aplicaes. Em uma viso simplificada, podemos dizer que o conversor A/D prepara o sinal analgico por meio da converso para digital a fim de que seja processado convenientemente e ento entregue a um conversor D/A, possibilitando o retorno forma analgica nas novas condies. 151

eletrnica 4

APNDICE B

A/D sinal analgico com rudo

Sinal transf.

D/A

sinal analgico modi cado ltro

Note que a frao seguinte a anterior dividida por dois. Utilizando matemtica para clculo de progresses geomtricas, temos:
1 2 = Re q R

ltro sinal modi cado conforme interesse Apresentado em BCD8421

Portanto, Re q =
valores analgicos VS = k (valor BCD8421)

R 2

para o nmero de resistores tendendo a infinito.

sinal analgico sem rudo

sinal analgico digitalizado em BCD8421

Dessa maneira, para uma quantidade finita de resistores em paralelo nas condies estabelecidas, temos sempre a seguinte expresso:

Figura B.3
Converses em um sinal analgico com a finalidade de alter-lo.

R <Req <R 2
A concluso Req > R /2 permite dimensionar o resistor RT de modo que ele no influa no circuito. Como o resistor RT est em srie com o resistor equivalente Req, o valor de RT deve ser muito menor que o de Req. Em geral, em eletrnica, dez vezes menor bem menor e cem vezes menor muito menor. Em nosso caso, a condio mais forte, de cem vezes, importante. Assim, devemos garantir o correto funcionamento do circuito da figura B.4, independentemente do nmero de resistores RT << R /2. Exemplo Calcule VS no circuito da figura B.4. Soluo: VS = IRTRT
IA R IB 2R IC 4R ID 8R VS RT

Processar o sinal digital, ou seja, a operao intermediria entre os conversores A/D e D/A, tornou-se de grande importncia nos diversos ramos da eletrnica, e hoje existem componentes programveis para essa finalidade, os DSPs (sigla em ingls de processadores digitais de sinais).

B.1.1 Conversor D/A com resistores de peso binrio


Observe a figura B.4. As entradas digitais so definidas pelas chaves SA at SD. O valor 1 o valor de V e o valor 0 representado pela tenso 0 V. Figura B.4
Conversor D/A com resistores de peso binrio.
SA SB SC +V

SD (LSB)

Como RT << (R/2), RT pode ser desconsiderado no clculo da corrente de cada resistor, estando a chave correspondente fechada ou aberta (considerando fechada para clculo). IRT = ( IA + IB + IC + ID) = (

V V V V Vs = RT + + + ) R 2R 4R 8R

Usando a frmula para clculo do resistor equivalente de resistores em paralelo, temos:


1 1 1 1 1 1 = + + + + + Re q R 2R 4R 8R 16R

V V V V + + + ) R 2R 4R 8R RT V V V ( V+ + + ) R 2 4 8 VS = RT V 0 (2 + 21 + 22 + 23 ) R

Vs=

152

153

eletrnica 4

APNDICE B

A soma cujas parcelas so potncias de 2 representa um nmero binrio. Cada parcela existir somente se a chave Si correspondente ao resistor que d origem a essa parcela estiver fechada. Da frmula

Ao verificarmos alguns valores, confirmamos que VS proporcional ao valor binrio determinado pela chave, o que caracteriza o circuito como conversor D/A. Vamos acrescentar sada do circuito um amplificador de tenso e, com isso, ter mais liberdade de alterar a constante de proporcionalidade. Usaremos o 741C na configurao de amplificador de tenso inversor, conforme representado nas figuras B.5.
R1 +15V R1 G = R2
6

VS =

RT V 0 (2 + 21 + 22 + 23 ) , R

podemos afirmar que VS proporcional ao valor binrio determinado pela posio de cada chave (aberta ou fechada). A constante de proporcionalidade :

Figura B.5
Amplificador de tenso inversor.

RT V . R
+

R2

2 3

741C +

Assim, conclumos que o circuito da figura B.4 um conversor D/A. Consideremos os resistores e a tenso V no circuito da figura B.4 com os valores: R = 200 k; RT= 1 k e V = 10 V

15V

+V

Figura B.6
Conversor D/A com amplificador de tenso inversor na sada.

Vamos antes comparar RT com seu valor mximo, segundo o critrio estabelecido.
SA SB B IB 2R IC SC C 4R ID SD (LSB) D 8R + 15V VS terra virtual R1 +15V

RT << R RT 2

max

= ( 1 ) R RT 100 2

max

= 200k RT 200

max

= 1 k
IA

A R

RT = 1 k satisfaz a condio.

VS =

RT V 0 (2 + 21 + 22 + 23 ) chave fechada 0 V 0 R
chave aberta 10 V 1 No circuito da figura B.6

SA SB SC SD decimal VS 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 154 0 0 mV

(1k)10 2 12,5 mV VS = (0,25) = 12,5mV 200k


3 8,75 mV VS = 6 37,5 mV VS = 15 93,75 mV VS =

VS = (

R1V R1V R1V R1V , caso todas as chaves estejam ligadas. + + + ) R 2R 4R 8R

(1k)10 (0,375) = 18,75mV 200k (1k)10 (0,75) = 37,5mV 200k (1k)10 (1,875) = 93,75mV 200k

Vamos manter os mesmos valores do circuito anterior, R = 200 k e V =10 V, e considerar R1 = 160 k, aplicando esses valores na seguinte expresso:

VS =

R1V 0 (2 + 21 + 22 + 23 ) R

A frmula a mesma, mas o circuito da figura B.4 apresenta condio de valor mximo para RT, limitando o valor da constante de proporcionalidade do 155

eletrnica 4

APNDICE B

conversor. Para o circuito da figura B.6, o RT na frmula substitudo pelo resistor R1 = 160 k. Os valores calculados para o circuito anterior, multiplicados por 160, valem para esse circuito em estudo. Para o valor binrio 1, que no foi calculado, pegamos o valor calculado para o binrio 2, dividimos por 2 e multiplicamos por 160, obtendo como resultado 1 V. Para o valor binrio 15 pegamos o valor 93,75 do circuito anterior e multiplicamos por 160, obtendo 15 V. Como alimentamos o amplificador operacional 741C com fonte simtrica 15 V, o mximo resultado confivel na sada 13 V, pois na prtica o amplificador operacional vai saturar. Podemos substituir as chaves mecnicas por um contador de dcada, obtendo na sada do 741C uma tenso em escada (staircase), que varie de 0 a 9.

vezes mais corrente que o terminal correspondente ao bit LSB. De maneira geral, temos para um conversor de N bits:

I LSB =

V 2
N 1

, IMSB =

V R

IMSB = 2N1 ILSB

IMSB = 2N1ILSB

(ver circuito da figura B.4) Essa situao, no conversor D/A com resistores de peso binrio, dependendo do nmero de dgitos, pode inviabilizar o projeto. bom lembrar que esse tipo de conversor tem a vantagem de usar somente um resistor por dgito.

Figura B.7
(a) Circuito que substitui as chaves no circuito da figura B.6 e (b) tenso escada no circuito da figura B.6 com a substituio das chaves Si o contador 7490 sensvel borda positiva do clock.

B.1.2 Conversor D/A tipo escada R-2R


O circuito da figura B.8 utiliza dois resistores por bit, o dobro do circuito conversor D/A visto anteriormente. No entanto, ele apresenta a vantagem de cada terminal correspondente a um bit fornecer o mesmo valor de corrente, independentemente do nmero de dgitos do conversor. A figura B.8 apresenta a rede de resistores usada no conversor D/A tipo escada R-2R.
R R R

CI 7490 contador de dcada (decade counter)


Observe o contador de dcada da figura B.7.

(a)

para o conversor D/A

(b) 8 6 4

VS (volts)

+5V

Figura B.8
Rede de resistores no conversor D/A tipo escada R-2R.

1 12 9

8 11

2 clock 0 t

VS

2R

2R A (MSB) B

2R C

2R D

2R

2R

2 +5V

7 10

14

clock zerar 220

Na figura B.9, vamos considerar o binrio de entrada 0010, ou seja, somente C = 1 (tem tenso +V). Figura B.9
R R R

Circuitos com resistores equivalentes.


2R 2R

2R

2R

2R +V

2R

Note, na figura B.7a, que as ligaes no 7490 foram feitas de modo que ele conte at 9 e ento zere, repetindo o ciclo indefinidamente. Na sada do conversor D/A, teremos a tenso escada de 0 a 9 V, como mostrado no grfico da figura B.7b. Nos conversores D/A com resistores de peso binrio, como o que vimos at o momento (figura B.6), o resistor correspondente ao dgito MSB tem de suprir mais corrente que o correspondente ao LSB, e a relao entre essas correntes depende do nmero de dgitos de sada do conversor. Por exemplo, se tivermos um conversor de 10 bits, o terminal correspondente ao bit MSB deve fornecer 512 156

substituindo pelo resistor equivalente 2R IC +V 2R 2R

substituindo pelo resistor equivalente

157

eletrnica 4

APNDICE B

valor equivalente dos resistores em paralelo de valor 2R cada, aterrados 2R +V R V IC = 3R

Verificamos somente para o binrio 1000, mas pode-se afirmar que

VS = (

V ) ( valor binrio de entrada) para todo valor binrio de entrada. 24

O valor encontrado para IC equivale ao maior valor de corrente que um terminal correspondente a um bit fornece. Tal condio ocorre quando esse for o nico bit com valor 1. Quando um ou mais bits estiverem com valor 1, a corrente fornecida pela terminal ser igual para esses terminais e ser menor que o valor encontrado para um nico terminal ligado ao bit de valor 1. A condio necessria de fornecimento de corrente pelos terminais correspondentes a bits no conversor D/A tipo escada bem mais vantajosa que a necessria no conversor D/A com resistores de peso binrio, conforme conclumos da anlise feita. O bit MSB de entrada est posicionado ao lado da tenso de sada na rede resistiva. Na figura B.10, vamos verificar o valor analgico de sada do conversor para o binrio 1000 = (8)10 voltando ao circuito da figura B.8. Figura B.10
Trs modelos de redes resistivas.
VS 2R +V
Neste tipo de rede resistiva, fcil constatar que o resistor equivalente esquerda e direita de um resistor ligado ao +V, estando todos os demais aterrados, de valor 2R.

Como podemos constatar, os valores das resistncias no influem no valor de k, sendo a relao precisa entre elas (R e 2R) o fator mais importante. Se V = 24 V, temos k = 1; nessa condio, o valor de sada VS corresponde ao equivalente decimal do binrio de entrada. Vamos acrescentar um amplificador de tenso na sada da rede de resistores do conversor, conforme circuito da figura B.11.
R1 VS1 R R R 2R + V D C B A (MSB) VS +V

Figura B.11
Amplificador de tenso na sada da rede de resistores do conversor.

2R

2R

2R

2R

2R

2R

2R

2R

2R

2R

Analisando a figura B.11, podemos notar que a rede resistiva exatamente a mesma, porm o resistor de 2R da direita est ligado ao terra virtual do amplificador operacional. Portanto, a tenso de sada da rede a indicada em cima do 2R e o bit MSB o mais prximo a esse resistor.

VS

2R

IC +V

2R

2R

VS = VS1

R VR1 R1 V = ( valor binrio da entrada) 1 = ( valor binrio da entrada) 2R 24 2R 48R

VS = VS1

R VR1 R1 V = ( valor binrio da entrada) 1 = ( valor binrio da entrada) 2R 24 2R 48R VS = VR1 ( valor binrio da entrada) 48R

VS

R +V

2R

V V R= VS = IC R = 3R 3 V VS = 3

em que V a tenso aplicada aos resistores correspondentes aos bits de entrada. Observe na equao anterior que por meio do resistor R1 podemos ajustar o ganho do amplificador, definindo a constante de proporcionalidade do conversor. No caso de converso de binrios em cdigo BCD 8421, a converso da casa das unidades pode ser feita ajustando a constante de proporcionalidade de maneira que as sadas de 0 at 9 V correspondam aos binrios de 0 at 9 em decimal. importante ressaltar que o amplificador de tenso inversor soma os valores de 159

Esse valor corresponde sada para 1000 = (8)10, portanto:

V = k 8 3

k=

V 24

em que k a constante de proporcionalidade do conversor. 158

eletrnica 4

APNDICE B

tenso ligados a sua entrada; assim, podemos construir as redes de resistores de modo a somar os valores da casa das unidades com os da casa das dezenas, centenas e assim por diante, desde que o ganho do amplificador corresponda casa correta, tendo como referncia a casa das unidades (figura B.12). Figura B.12
Redes de resistores de modo a somar os valores da casa das unidades com os da casa das dezenas e centenas.
rede R - 2R centenas rede 10R - 20R dezenas + V rede 100R - 200R unidades VS R1 +V

B.2.1 Converso A/D usando comparadores


Nessa converso, usamos uma srie de comparadores, sendo uma das entradas para todos os comparadores o valor analgico que queremos digitalizar (figura B.13). Figura B.13
Srie de comparadores.
+V R + 3V 4 R VE entrada analgica + V 2 R + V 4 R comparadores de tenso D > Q C D > Q B D > Q A (MSB) V , 2V, 3V 4 4 4 valores referncias para os comparadores Para V = 12, temos: A B C 0 0 0 <3 0<V E 0 0 1 3<V <6 E 0 1 1 6<V <9 E 1 1 1 <9 9<V E clock

Para o bloco das unidades, o amplificador tem ganho

G=-

R1 , 200R

pois, observando a rede de resistores, o resistor de 200R aquele conectado ao terra virtual do amplificador operacional, fazendo parte do aumento de tenso deste. O bloco das dezenas tem seu ganho multiplicado por 10 em relao ao das unidades, pois o resistor ligado ao terra virtual vale 20R, e o bloco das centenas tem seu ganho multiplicado por 100 em relao ao bloco das unidades.

Com o aumento do nmero de bits, aumenta na mesma proporo o nmero de comparadores, o que pode tornar o processo de converso inconveniente para uma quantidade de bits maior que quatro. Esse tipo de conversor bastante rpido.

B.2.2 Conversor A/D usando contador e conversor D/A


Observe a figura B.14. O contador de dcadas e o conversor analgico geram uma tenso escada (ver figura B.7b) que a entrada referncia para o comparador. O comparador permanece com a sada 1 enquanto a tenso escada no atinge o valor da entrada analgica. Nessa condio, a sada do comparador permite a passagem do clock para o contador, atravs da porta E, resultando em avano na tenso escada. Quando o valor da tenso escada atinge o valor analgico de entrada, o comparador vai para 0 e a sada do contador permanece no valor digital correspondente ao valor analgico de entrada, pois o clock fica bloqueado na porta E com o 0 do comparador. Ao ir para 0, a sada do comparador dispara o clock dos flip-flops, transferindo o valor digital do contador para a sada. A partir desse instante, o sistema no progride, pois no h alterao na sada do comparador para que os clocks sejam acionados. A reinicializao do processo feita zerando o contador. 161

B.2 Conversor analgico-digital


Converter analgico em digital consiste em passar o valor de uma tenso analgica para um valor digital equivalente. Esse processo basicamente um problema de amostragem do sinal, ou seja, medir periodicamente o sinal que queremos digitalizar e apresentar os valores medidos na forma digital. A taxa com que se repetem as medidas chamada de frequncia de amostragem. intuitivo que, quanto maior for a frequncia de amostragem, mais precisa ser a reproduo do sinal em sua forma digital. A frequncia mnima de amostragem , segundo o teorema de Nyquist, duas vezes maior que a frequncia existente no sinal a ser digitalizado. Para melhor digitalizao do sinal, devemos amostr-lo em uma frequncia de amostragem dez vezes maior que a citada no teorema de Nyquist. 160

ELETRNICA 4

sada decimal D > CLR CK entrada analgica Contador de dcadas D > Q B Q A (MSB)

Apndice C

>

+ comparador tenso em escada Conversor D/A D > Q C

D >

Figura B.14
Conversor A/D usando contador e conversor D/A.

Podemos transformar o circuito da figura B.14 em um simples voltmetro digital adicionando um decodificador, um display e um clock conveniente para zerar o contador de dcada automaticamente. A frequncia de clock do contador determinar o tempo de atualizao do valor da tenso mostrada no display.

MPlAB

162

eletrnica 4

APNDICE C

Figura C.3

O
Figura C.1

MPLAB uma importante ferramenta no desenvolvimento de programas com PIC, pois o gerenciamento de projetos, a compilao, a simulao e a gravao so executados em um mesmo ambiente. Assim que abrimos o MPLAB, a tela 1 exibida (figura C.1). Inicialmente, selecionamos o chip com que vamos trabalhar (PIC16F628A) utilizando o comando Configure > Select Device (figura C.2). Uma vez selecionado o PIC, no comando Configure > Configuration Bits (figura C.3), configuramos os hardwares internos na posio de endereo 2007 da memria de programa. Essa configurao estabelecida conforme as condies do projeto e de acordo com o comportamento do microcontrolador.

Vamos considerar que o MPLAB j esteja instalado, lembrando que ele est disponvel gratuitamente no site da Microchip: <http://www.microchip.com> (figuras C.1 at C.3).

C.1 Criao de um projeto


Para criar um projeto, usamos o comando Project > New. Na tela New Project, em Project Name, damos a ele um nome (figura C.4) e, em Project Directory, especificamos o diretrio (figura C.5). Se o nome dado no de um diretrio existente, o programa solicita permisso para cri-lo. Figura C.4 Figura C.2

164

165

eletrnica 4

APNDICE C

Figura C.5

Figura C.7

Clicando na linha do erro, volta-se para o programa assembly, no qual indicada a linha do erro (figura C.8). Agora, podemos criar o arquivo de trabalho com extenso .asm. Para isso, adicionamos o arquivo (programa) selecionado ao projeto, que passa a ter extenso .asm. Ento, usamos o comando Project > Add Files Project, e a tela reproduzida na figura C.6 exibida. Figura C.6 Figura C.8

C.3 Simulao
Agora vamos testar o programa. Para isso, chamamos o programa, usamos o comando Debugger > MPLAB SIM e configuramos o clock para 4 MHz utilizando o comando Debbuger > Setting (figuras C.9 e C.10). Figura C.9

Observando a figura C.6, percebemos que o programa selecionado foi INT_ EXT_RBO, que passa a ter no Proj35 extenso .asm.

C.2 Compilao
Compilar um programa significa passar as instrues em linguagem assembly (asm) para binrios, para que possam ser interpretadas pelo microcontrolador. Para compilar um programa, devemos usar o comando Project > Set Active Project > None (Quickbuild Mode) e, em seguida, Project > Quickbuild (seguido do nome do programa). Caso existam erros no programa, abre-se uma janela indicando quais so os erros (figura C.7). 166 167

eletrnica 4

APNDICE C

Figura C.10

Figura C.11

reincio (reset) diferentes modos de passo a passo (manual) passo a passo(automtico) parar corre direto

Para monitorarmos os registradores durante o teste, usamos o comando View > Watch e, na tela Watch, selecionamos os registradores que queremos acompanhar divididos em quatro grupos: watch1, watch2, watch3 e watch4. Para acompanharmos informaes ligadas a tempo, utilizamos o comando Debugger > Stopwatch. Para simularmos sinais em entradas, usamos o comando Debugger > Stimulus e podemos selecionar na tela as entradas e o tipo de sinal (toggle, pulse e set). Se no forem detectados erros, podemos testar o programa fazendo-o correr sob controle, ou seja, nas condies oferecidas pelo debugger : reset (reincio), run (rodar o programa), passo a passo, break point (ponto de parada) etc. Buscou-se, aqui, comentar partes importantes do MPLAB, sem, contudo, explorar todo seu potencial. Realizada a configurao, podemos selecionar o programa para ser gravado. Para isso, usamos Open File e selecionamos o programa de interesse, que deve ter extenso .hex. Essa seleo pode ser facilitada filtrando, na aba da janela que se abriu, somente programa com extenso .hex. Com o programa selecionado, escolhemos na aba Oscillator a condio correta, que depende do tipo de oscilador que gerou o clock. Agora, podemos iniciar a gravao clicando no cone Program All da barra de menus (figura C.12). Figura C.12

C.4 IC-PROG
Usaremos o IC-PROG para gravar o PIC16F628 depois de o programa ser compilado no MPLAB.

C.4.1 Configurao do IC-PROG


Para que o programa opere na lngua portuguesa, utilizamos o comando Settings > Options. Clicando em Settings > Device, selecionamos o microcontrolador. Com a tecla F3, chamamos a janela de configurao de hardware do programa. Nessa janela, selecionamos (figura C.11): JDM Programmer como programador desejado. A porta serial (COM1, COM2, COM3 ou COM4). O tipo de interface utilizado Direct I/O para Windows 95, Windows 98 e Windows ME. Windows API para Windows NT, Windows 2000 e Windows XP. Fator de retardo I/O. Processa com maior ou menor velocidade. 168 169

eletrnica 4

Ento, clicamos em Abrir na janela menor e teremos a janela com os endereos de memria preenchidos conforme o programa (figura C.12). Selecionamos intRC CLKOUT em Oscilator e clicamos em Program All (raio). Confirmamos a gravao. Estamos com o microcontrolador gravado e pronto para ser colocado no circuito em que deve trabalhar.

C.5 PICDEL
um programa que gera delay. Em Delay time (ms), colocamos o valor do delay que queremos em ms e clicamos em Calculate Cycles e, depois, em Generate Code. O programa vai gerar o delay solicitado. Colamos uma cpia do programa gerado em nosso programa e ganhamos o tempo de programar o delay (figura C.13). Figura C.13

Referncias bibliogrficas

170

REFERNCIAS BIBLIOGR FICAS

CAPUANO, F. G.; IDOETA, I. V. Elementos de eletrnica digital. So Paulo: rica, 1998. MALVINO, A. P. ; LEACH, D. P. Eletrnica digital, princpios e aplicaes.vols. 1 e 2. So Paulo: McGraw-Hill,1987. MELO, M. Eletrnica digital. So Paulo: McGraw-Hill, 1993. PEREIRA, Fabio. Microcontroladores PIC. So Paulo: rica, 2002. SOUZA, D. J. Desbravando o PIC. So Paulo: rica, 2000. TOCCI, Ronald J. Sistemas digitais: princpios e aplicaes. So Paulo: Pearson Prentice Hall, 2003. TOKHEIM, R. L. Introduo aos microprocessadores. So Paulo: McGraw-Hill, 1985. As figuras dos programas MPLAB, ICPROG e PICDEL foram obtidas nos prprios programas.

173

Excelncia no ensino prossional


Administrador da maior rede estadual de educao pro ssional do pas, o Centro Paula Souza tem papel de destaque entre as estratgias do Governo de So Paulo para promover o desenvolvimento econmico e a incluso social no Estado, na medida em que capta as demandas das diferentes regies paulistas. Suas Escolas Tcnicas (Etecs) e Faculdades de Tecnologia (Fatecs) formam pro ssionais capacitados para atuar na gesto ou na linha de frente de operaes nos diversos segmentos da economia. Um indicador dessa competncia o ndice de insero dos pro ssionais no mercado de trabalho. Oito entre dez alunos formados pelas Etecs e Fatecs esto empregados um ano aps conclurem o curso. Alm da excelncia, a instituio mantm o compromisso permanente de democratizar a educao gratuita e de qualidade. O Sistema de Pontuao Acrescida bene cia candidatos afrodescendentes e oriundos da Rede Pblica. Mais de 70% dos aprovados nos processos seletivos das Etecs e Fatecs vm do ensino pblico. O Centro Paula Souza atua tambm na quali cao e requali cao de trabalhadores, por meio do Programa de Formao Inicial e Educao Continuada. E ainda oferece o Programa de Mestrado em Tecnologia, recomendado pela Capes e reconhecido pelo MEC, que tem como rea de concentrao a inovao tecnolgica e o desenvolvimento sustentvel.