Vous êtes sur la page 1sur 233
Microcontrolador DETALHADO * Revisdo da Logica Bindria, Aritmética e Digital * Principios de Microprocessadores * * Funcionamento Detalhado do 8051 ° * Explicagao Detalhada das Instruces * * Exercicios Resolvidos * Inclui Apéndice com Exercicios Resolvidos de Algoritmos Fa 6? EDICAO indice Analitico Parte 1 - Fundamentos Basicos ...... Capitulo 1 - Introdugao Capitulo 2 - Representagao de Informagao .. 2.1 = Sistemas NuméricoS.........1. 2.2 - Conversao entre Bases, 2.3 - Byles e Kilobytes... 2.4 - Complementos de 1 e de 2 2.5 - Nameros Sinalizados. 2.51 - Nimeros Sinalizdos por Sign-Magritude (et de Sina. 2.5.2 Numeros Sinalizados por Complemento de 2... 2.6 - Numeros Reais.. 2.7 - Nameros com Pontos Flutuantes 2.8 - Cédigo Binario Decimal (Codigo BCD). 2.9- ASCII Capitulo 3 - Aritmética Binaria 3.1 - Adicio. 3.2 - Sublragdo Simples 3.3 - Adigao e Subtragao Utilizando Complemento do 2 3.4 Multiplicagao. i 35 - Divisdo Capitulo 4 - Portas Logicas e Algebra Booleans ...... 4.1 - Chaves (Switches) come Dares i 3 4.2 - Portas Basicas.. 4.3- Extensdo para Trés ou mais Entradas. 4.4 Portas EXOR ¢ EXNOR... a 4.5 - Transformagdes DeMOrgan rr 4,6 - Versaiiidade das Portas NAND ¢ NOR... 47 - Identidades Booleanas. 4.8 Manipulagao Algebrica. 4.9- Tempos (Timings). 4.10 - Tipos de Sada. Capitulo 5 - Logica Combinacional 5.1 - Half Adder (Meio Somador). 5.2 -Full Adder (Somador Completo). 5.3 - Somadar de 4 bits 5.4 SomadorfSubtrator 4-bits 55 - Decodificadores.. Capitulo 6 - Logica Seqiiencial 6.1 - Flip Flops... 6.2- Registradores.. Capitulo 7 - Dispositivos de Memoria Semicondutores . 5 71 RAM son 7.2 - ROM... Parte II- 0 Microcontrolador 8051 Capitulo 1 - O que é um Microprocessador? ........ 1.1 - Explicagao Intuitiva: Fazendo um Bolo... 1.2 - O que 6 um Microprocessador - Explicag&o Técnice 1.3-ACPU Internamente. - 08051 Basico... 1.5 Qual a Diferenga entre Mcroprocessador (Mp) e Miorcontolador (Mc)? 1.6 O Grupo de InstrugSes do Microcontrolador. 1.7 - © Mundo Exterior - VO e Periféricos 1.8 - Microcontrolador versus Hardware com Légioa Fixa 1.9 - Exercicios de FixagSo... Capitulo 2-0 que é a Familia 8051? .70 2.0 Introdugao.. 70 2.1 - Arquitetura Interna dos 8051/8052/80550. ai 2.2- Como € 0 Chip Externamente........ 2.2.1 - Esquema Elétrico. 2.2.2 - Desenho da Pastiha (Chip) 2.3 - Descrigao Formal da Pinagem do Mc 8051 2.4 - Organizagio das Memotias nnn 2.4.1 - RAM Interna (General Purpose RAM)... 2.4.2 Apresentando com Detalhes os Regsradores do Me. 2.4.2.1 - ACC ou A (Acumulador) 2.4.2.2 - Ports PO, P1, P2 e P3. 2.4.2.3 B- Registrador B (FOh).. 2.4.2.4- PSW (Program Status Word) 2.4.2.5 - IE IP (Interrupt Enable e Interrupt Pritt) - (Bytes A8h e > Beh)... 2.4.2.6 - “‘DPTR’, DPH e DPL (Data Pointer High e Data Pointer Low) - (Bytes 0h e 2h). 90 2.4.2.7 - SP (Stack Pointer) - (81h). 2.42.8- PCON - (Power Control Register) - (67h... 2.4.29 - Os Registradores da RAM Intema de Uso Geral 2.5 Exercicios de Fixagao... Capitulo 3 - 0 Clock, Ciclos de Maquina e Reset 341-0 Clock, 3.2 Ciclos de Maquina 33-0 Reset { Valores dos Regitradores logo aps 0 RESET. 3.4- Exercicios de Fixagao .. Capitulo 4 Os Ports... 4.0 Intvoduga0 ... 4.1 -Caracteristcas intemas dos Ports 4.1.1 -0 Port PO....... 4.1.2-0 Port Pt, P2e PS. 4.2 - Caractetisticas Gerais e de Tempo dos Ports... 4.2.1 - Instrugdes que Alteram diretamente o Contetido dos Ports. 4.2.2 - Condigbes de Tempo Envolvendo os Ports 4.3- Exerclcios de Fixaga Capitulo 5 - 0 Conjunto de Instrugées..... 5.0-- Introduga 5.1 - Modos de Enderegamento das iste z 5.1.1 - Endaregamento por Registrador. 5.1.2 - Enderegamento Direto | 5.1.3 - Enderegamento Indireto 5.1.4- Enderegamento Imediato.... 5.1.5 - Enderegamento Relativo. - Enderegamento Absoluto. - Enderegamento Longp..... - Enderegamento Indexado.. 6.2 Tipos de Instrugao.. 5.2.1 - Instrugdes Aritméticas 5.2.2 - Instrugbas l6gicas ... 5.2.3- Instrugdes de Transferéncia de Dados . 5.2.4 Instrugdes Booleanas 5.255 - Instrugdes de Desvio (exclu'das as booleanas de desvio) . 5.3- Instrugdes que afetam Registradores (PSW) 5.4- Exercicios de Fixagao i Capitulo 6 - Interrupgao 6.0- Introdugao .. 6:1 - Proprodados da Iterupga 6.2 - Interrupgdes na Familia 8051 6.3 - Como Programar as Interrupg6es Exercicio Solugéio 6.4 - Estrutura Basica dl um Pavan com Interrupgbes... 855 - AInterrupgo e suas Condigies de Tempo... 8.6 - Exercicios de Fixagio..... Capitulo 7 - Timer 7.0 - Introdugéo 7.4 = Modos de Trabalho do Timer. 7.4.4 = Modo 0 (18 bits)... 7.4.2 - Modo 1 (16 bits). 7.4.8 - Modo 2 (8 bits com recarga automatic) 7.4.4 Modo 8 (8 bits misto) .... 7.1.5 -O Bloco de ‘Liga-Desiiga’... 7.2- Programando os modos dos Timet/Counters 7.2.a- Timer Mode Register - TMOD...... 7.2 - Timer Control Register - TCON... 7.3- Como Programar os Timer/Counters Exercicio Solugao . 7.4- Necessitando de Tempos muito Curtos ou muito Longos. 7.5 - Exeroicios de Fixaga Capitulo 8 - Serial 8.0 -Introdugao 8.1 - Modos de Comunicagao 8.2- 0 Sistema de Transmisséo e Recepcao. 8.3- A palavra de Controle SCON 8.4- Os Modos de Operagéo 8.4.1 - Modo 0 - Sincrono .. 8.4.2 - Modo 1 - Assincrono de 8 Bits... 8.4.3 - Modo 2 - Assincrono de 9 Bits. 814.4 Modo 3 Assincrono de 9 bis com Baud Rate Programavel 8.5 - Comunicagdo entre Varios Processadores.... 8.6 - Como Programar a Serial. 86a- Como Habitar a Sef £46. Como Alvar com os Bits de Interrupgdo SERIAL... 8.6.¢- O Bitde Paridade nos Modos 2¢ 3... 8.6.d - Como Gerar os Baud-rates Desejados. 8.6.0 - Quem o Registrador PCON... 8.6! Como Gerar Baud-ates como Timer/Counte_1. 8.6.9 - Como fazer a SERIAL interromper 0 microcontrolador na recepgao de dadbs... 87 - Exercicio de Fixaga Capitulo 9 - Expansao dos Ports e de Capacidade de Meméria .. 9.0 Introdugao... 4.1 - Como se Const um Sistema ern I Mapeado 9.2- Aumentando a Capacidade do PORT P1 por meio do Periférico Serial. 9.3 - Aumentando a Capacidade de Memoria. Capitulo 10 Software: Compilagao, Simulagao, Emulagao e Gravacao .. 40.4 -Linquagem de Maquina e linguagem Assembly... 40.2 Linguagens de Alto Nivel... 10.8 Procetimentos Bésics para a Crago do Sofware 40.4 - Simulago e Emulagéo.... 10.4.1 - Simuladores 10.4.2 - Emuladores: i 40.4.3 - Emulagao Parcial por melo de Kits de Gusto Acossivel 10.5 - Gravagao de EPROM... Cédigo Fonte... Cédigo eM HEX anon Cédigo em Bindrio Resultante na Eprom... Capitulo 11 - Desafios ...... Anexo A - Fabricantes de Software de Apoio - 8051 ... “ a Informagdes sobre Ferramentas para Desenvolvimento com 0 5; Mirocontolado. sosessssernssevnneee COT Anexo B - Tabela de Instrugées e Periféricos Internos - 8051 Notagées dos Registradores..... Logica de Interrup¢éo.... Registradores Especiais de Progamagéo IE (Interrupt Enable Register) - ABh .. IP (Interrupt Priority Register) - BBh TCON (Timer Control Register) - 88h, ‘TMOD (Timer Mode Register) - 89h.. Distribuigao da RAM Interna do 8051 ‘SCON (Serial Communication Register) - 96h a Apéndice C - Exercicios Resolvidos - Algoritmos indice Remissivo . Referéncias Bibliograficas..... Fundamentos Basicos Introducdéo Para 0 inicio de nossos estudos sobre microcontrolador, necessitamos de um conhecimento basico do sistema numérico binatio e técnicas digitais. Estes so itens primordiais para nosso estudo, pois todos os sistemas mictoprocessados s&o baseados nestas técnicas. Leitores que possuem um bom conhecimento de algebra booleana e ldgica digital podem pular esta parte. 4 Microcontrolador 8051 Detalhado Representacdo de Informacéo Computadores arquivam, manipulam e transformam informagées. Neste universo, informagdes sao freqlientemente chamadas de dados (data). Dados s&o normalmente representados por ntimeros ¢ texto. Antes de arquivarmos, manipularmos e transformarmos os dados ou informagGes, necessitamos de um sistema que os represente. Quando criangas, aprendemos 0 sistema numérico decimal para representarmos os numeros @ 0 alfabeto para reproduzirmos um texto. Estes sistemas ainda nao podem ser usados diretamente pelos computadores que entendem apenas o sistema binario, comumente fepresentado pelos simbolos “0” e 1”, mas existem outras possibilidades, como mostrado na tabela 1. Um digito binatio simples é chamado de bit. Em um computador, o bit ¢ armazenado 2m um dispositivo eletrénico chamado de flip-flop. A caracteristica bésica de um fiplop 6 sua capacidade de ‘lembrar’. Uma vez que um bit é armazenado em um flip-lop, ele podera ser buscado quando necessério. Normaimente, 0 6 armazenado como baixa tensdo (0 Volts) e 1 como alta tensao (5 Volts). Na segdes seguintes, iremos explorar as propriedades dos sistemas numéricos decimal € binario, e também falaremos dos sistemas octal e hexadecimal, muito usados nos sistemas computadorizados. Um simbolo 0 Outro Simbolo 1 0 Verdadeiro Falso Ato Baixo 5 Volts OVolts Ligado Desligado Sim Nao Maga Laranja Tabela 1 - O sistema binario, Representagao de Informagao 2.1 - Sistemas Numéricos Como 0 sistema bindrio utiliza apenas dois simbolos, ele é chamado de base 2. 0 sistema numérico mais usado pelos humanos 6 o decimal - base 10 - utiizando digitos de 0 a 9, Quantidades maiores que 9 so representadas com o aumento do ntimero de digitos. Por exemplo, o numero 268 contém trés digitos. © “8" que tem o peso 8 x 1 = 8.0 “6” que tem 0 peso 6 x 10 = 60 € 0 “2” com peso 2 x 100 = 200, formando um total de 268. A ilustragao abaixo mostra isto: 2 x 100 = 200 6x 10 = 60 Bx 1548 26810) Quando hd a possibilidade de alguma confusao, a base de um numero é indicada no canto inferior do numero: 26810. Geralmente, os pesos dos digitos sdo representados na forma mr, em que m é a base {no caso 10) e n é a posigdo do digito. O digito da extrema direta esta na posigao “0”, o proximo digito esta na posicao “1”, e assim sucessivamente. Isto é mostrado abaixo: 2x10 6x10 ax 2689 : Entendido pelos | Entendido pelos Simbios Humanos Computadores 0.4 Com dfcuidade __| Sim Octal 8 [0,1,2,3,4,5,67 Com dicuidade | Nao Decimal 10 0, 1,2, 3, 4, 5, 6, 7, 8,9 Sim Nao Heradecinal | 16 | 0 432%" 5:6,7,8,.9,A.B,1 com dficuldade | Nao Tabela 2 - Sistemas binario, octal, hexadecimal e decimal. O digito que se encontra na extrema direita do ntimero formado é chamado de digito menos significativo (least significant digit). ‘Assim como conhecemos o sistema decimal, 6 de suma importéncia que conhecamos os sistemas bindrio, octal e hexadecimal, Octal, ou base 8, utiliza os simbolos de 0 a 7. Hexadecimal, ou base 16, utiliza dezesseis simbolos que consistem nos algarismos de 0 a 9 € nas letras de A a F. Os simbolos de Aa F representam as quantidades de dez a quinze com A para 10, B para 11, C para 12, D para 13, E para 14 e F para 15. As duas Ultimas colunas da tabela 2 mostram que o sistema decimal é 0 preferido dos humanos € 0 binario 6 0 Unico entendido pelos computadores. Entao, por que necessitamos conhecer os sistemas octal e hexadecimal? Apesar de ndo serem entendidas pelos computadores, muitas interfaces utilizam esses sistemas para efetuar a comunicagao; é claro que, antes de serem processados, esses sistemas so convertidos no sistema binatio. Octal e hexadecimal séo usados pelos humanos Porque é muito mais facil trabalhar com eles do que com o binario. A seguir, verificamos como ¢ realizada a conversao entre os sistemas. 2.2 - Conversdo entre Bases Dentro das quatro bases apresentadas, & possivel a realizagdo de doze conversdes diferentes, como mostra a figura 1: Figura 1 - Doze converses entre as quatro bases. Num rapido exemplo, o niimero 13, na base 10, é mostrado abaixo em cada uma das quatro bases: 13,9= 1101, = 15, = Dyy A conversao de um ntimero binério, octal ou hexadecimal em decimal é feita como mostrado abaixo, Multiplica-se cada digito pelo seu peso, somando os resultados, Para um numero bins RNR, er a 10) Para um numero octal: Para um niimero hexadecimal, 10A9, temos: 1 x 16° = 4096 Oxte= 0 Ax 16! = 160 9 x 16 =* 9 F265 Para converter um numero decimal em binario, 0 seguinte procedimento é usado: divide-se continuamente 0 németo decimal por dois, até que o resultado chegue a zero. Em cada divisdo teremos um resto, que sera sempre Zero ou um. O numero formado pela combinagao dos restos sera o binario equivalente ao niimero original. O primeiro resto serd 0 bit menos significativo (LSB- least significant bit), a direita, e 0 ultimo resto sera o bit mais significative (MSB - most significant bit), @ esquerda. Abaixo tem-se a conversdo do numero decimal 84 em binario, SBS sy one aos ons 28 of 1 ———— Bayo = 1010100, ‘A conversao de decimal em octal ou de decimal em hexadecimal é similar ao exemplo acima. Converter um decimal em octal é dividir continuamente um numero por 8 combinar os restos. O ntimero decimal 93 é convertido em octal, como é mostrado abaixo: ones ale oe | 93,9 = 135, Utiizando a mesma técnica, decimal 909 6 convertido em hexadecimal da seguinte maneira: (@ é 9308 dividido por 16 6 oe 581 e tem resto 13,,0U Dj, 93095 = 245Dy5 = 245D, | A base 16 pode ser explicita pelo nimero 16 ou pela letra minuscule h. Octal 0 1 2 010 3 ott 4 100 5 101 6 110 t 14 Tabela 3 - Conversao octal em binatio. Conversées entre bases 2, 8 ¢ 16 sao extremamente faceis, sendo esta a maior razio Para que essas bases sejam mais utiizadas. Um simples digito octal corresponde a trés digitos binarios, como mostrado na tabela 3, Para converter um numero octal em bindrio, basta converter cada digito octal no correspondente 3-bits binarios. Por exemplo, 1075, 6 convertido em bindrio: Oca: 1 0 7 5 | Binario: 001 000 111 101 A idéia 6 a mesma para conversao hexadecimal em binario, exceto que cada digito hexadecimal corresponde a 4 bits bindrios, como ilustra a tabela 4. Para converter um numero hexadecimal em bindrio, basta substituir cada digito hexadecimal pelos 4-bits bindrios correspondentes. Por exemplo, 0 hexadecimal ASFIC é convertido em bindrio: are Binario: 1010 0011 1111 0001 1100 = 3 = 3 a Digito Bina 0000 001 0010 oot 0100 0101 0110 ott 4000 4001 1010 1011 1100 1101 1110 F 1114 mlololal>lole|sjolalale|re|—= Tabela 4 - Conversao hexadecimal em bindrio. ‘A conversao de binario em octal ou de bindrio em hexadecimal 6 a operagao reversa dos dois exemplos anteriores. Apenas troca-se 0 sentido das setas. A conversao oposta & ilustrada abaixo, Comegando pelo LSB, formando grupos de trés bits para octal ¢ grupos de quatro bits para o hexadecimal: Binério: 100000 1111101 TN Grupos de quatro comegando com OLSB Hexadecima: 6 0 F 5 Binario: 10 110 111 ral Grupos de trés comegando com : oLsB Octal: 6 7 10 ‘Microcontrolador 8051 Detalhado As Unicas converses que sobraram para analisar foram a octal em hexadecimal e hexadecimal em octal. conversao em bindrio como processo intermedidrio: A maneira mais facil de realizar estas conversdes 6 utilizando a Octal => = Binario ==> = Hexadecimal Hexadecimal = —Binario — Octal Todas as conversdes entre as quatro bases foram apresentadas. Apresentaremos agora um resumo na tabela 5. Convers Bindrio em octal ica Bits agrupados em trés, comegando pelo LSB Bindrio em decimal Multipicar cada bit pelo seu peso @ somé-los ao final. Binario em hexadecimal Bits agrupados em quatro, comegando pelo LSB. Octal em binatio Substitui-se cada digito octal pelo 3-bit binario, Octal em decimal Mutipicar cada digito octal pelo seu peso e somé-las no final Octal em hexadecimal Converter octal em bindrio e binario em hexadecimal. Decimal em binario Continuamente divide-se por dois e retiram-se os restos; 0 primeiro resto 6 0 LSB (digito menos signiticativo). Decimal em octal Continuamente divide-se por oito e retiram-se os restos; o primeiro resto 6 0 digito menos signticativo, Decimal em hexadecimal Continuamente divide-se por dezesseis retiram-se os restos; o primeira resto é 0 digito menos signifcativo. Hexadecimal em bindrio Substtu-se cada digito hexadecimal pelo 4-bitbinétio. Hexadecimal em octal Converter hexadecimal em bindrio e depois em octal. Hexadecimal em decimal Multiplicar cada digito hexadecimal pelo seu peso e somé-los ao final. Exemplo 1; Qual Tabela 5 - Resumo das técnicas de conversao. € 0 maior numero decimal possivel que eu posso representar com (a) Bits, (b) 12 bits, (c) 16 bits, (d)n bits? Solugdo: (a) 255, (b) 40985, (c) 65595, (d) 2° - 1, Discussao: O maior ntimero binario de 8 bits 611111111, A solugao para o exemplo 1 pode ser encontrada utilizando procedimento de conversao, mas existe um método mais rapido @ facil. Se adicionarmos resposta 6 2° - 1 = 255. 1 ao nUimero 11111111, teremos 100000000 ou 28, Assim sendo, a Exemplo 2: Qual 6 @ quantidade minima de bits utilizada para representar 0 niimero decimal 539? Discussao: 2° = 512, entao 9 bits ndo é o suficiente. 210 = 1024, entao o minimo de 10 bits é 0 suficiente para representar o numero 539, A resposta a esta questao é também ‘encontrada calculando logz539 e arredondando para cima. Log:539 = 9,074, que arredondando para cima resulta 10 bits. 2.3 - Bytes e Kilobytes Os computadores e microprocessadores mais antigos trabalham com dados de 8 bits. O termo byte veio para descrever convenientemente este tipo de dado. Outra convengao é que os bits em um byte sAo numerados de 0 a 7, sendo 0 menos significative - posicionado a direita - 0 bit 0, e 0 posicionado a esquerda o bit 7. Como mostrado abaixo: Namero debit: 76543210 Byte: 10010001 Um valor de 2 bytes ou 16 bits € freqiientemente chamado de word (palavra), e um valor de 4 bytes ou 32 bits ¢ chamado de long-word. Um nibble é um valor de 4 bits ou metade de um byte. © simbolo K, para Kil, refere-se a 2"° ou 1024, Um kilobyte representa 1024 bytes. e um computador trabalha com dados de 8 bits @ usa um enderego de 16 bits para arquivar ou recuperar dados da meméria, seu endereco ‘contém um espago de 2'° = 65.536 bytes. Como 2° é mesmo que 2°x 2", o computador tem um espago de enderego de 64 Kbytes. Exemplo 3: Quantos bits ha em 3 Kbytes? Solugdo: 3 x 2x 8 = 24.576 £ comum utilizar o termo M ou Mega no lugar de 2® ou 1.048.576. Um megabyte significa 1.048.576 bytes. Um computador que usa 24 bits de enderegamento de dados tem 2 x 2 = 16 megabytes de espago de enderegamento. 2.4- Complementos de 1 e de 2 Os complementos de 1 e de 2 de nimeros bindrios so usados para simplificar a subtragao e representar numeros negativos. Formar 0 complemento de 1 de um numero bindrio é complementar cada bit. Complementar significa trocar 0 por 1e1pord. Namerobinario: 1011100 Complemento de 1:0100011 Formar 0 complemento de 2 de um numero bindrio 6 obter seu complemento de 1 ¢ somar 1. Numero binario: 1011100 Complement de1:0100011 Somar 1: + 4 Complemento de 2: 010010 0 Uma propriedade interessante é que, efetuando o complemento de 2 duas vezes em um numero, 0 resultado é o proprio numero. Namerobinario: 1011100 Complemento de 1: 010001 i Somar 1 Complemento de 2:0 10010 5 Complemento de 1: 101101 ! Somar 1; Complemento de 2: 101710 3 A idéia dos complementos de 1 de 2 tem a seguinte interpretacdo: para um radical m, 0 complemento de (mm-1) 6 encontrado pela subtrago de cada digito de (m-1). © complemento de m 6 encontrado pegando o complement de (m-1) e enlo somando 1. Na base 10, por exemplo, 0 complemento de 9 6 encontrado pela subtrago de cada digito de 9. O complemento de 10 é 0 complemento de 9 mais 1. complemento de 9 de 5210 6 4710, e 0 complemento de 10 4810. 2.5 - Numeros Sinalizados Até agora, discutimos apenas os ntimeros nao sinalizados ou positivos. Na pratica, devemos representar também os nuimeros sinalizados ou negativos. Uma vez que introduzimos os nuimeros sinalizados, 6 importante prestar aten¢&o aos tipos dos ntimeros, Por exemplo, um computador de 8 bits arquiva nimeros do tipo 8 bits. Ent&o, o nimero 519 é representado desta forma: 000001012 Os cinco zeros & esquerda do niimero so redundantes para nossa concepeao, mas so importantissimos ao trabalharmos com computadores. 2.5.1 - Numeros Sinalizados por Sign-Magnitude (Bit de Sinal) Um simples método de representacao de numeros negativos 6 chamado de sign- magnitude. Usando 0 sign-magnitude, o bit da esquerda de um ntimero binatio representa o bit sinal. Se o bit sinal for 1, 0 nimero 6 negativo. Se o bit sinal for 0, o numero é positivo. Usando uma representagao sign-magnitude e 8 bits dos valores +510 € -51o, temos: 45: ooooo10 aS Bit sinal positivo [Magnitude (6) 3: 10000101 / Bit sinal negativo] [Magnitude (5) Como pademos ver, 6 de suma importancia saber de quantos bits 0 numero é formado. Por exemplo, nao podemos perguntar simplesmente: Como 6 representado o numero -5 utiizando bit sinal? E necessario fomecer também 0 tipo de dado com o qual estamos trabalhando. Exemplo 4: Como é representado o nlimero -5 em computadores que operam em 12 bits? Solugdo: 100000000101 Discussao: O bit sinal é 1 ¢ os outros 11 bits representam a magnitude 5, Exemplo 5: Que faixa de ntimero podemos ter com 8 bits, utilizando o bit sinal? Solugdo: - 127 a + 127 Discussao: Utilizando a representagao de n bits com sign-magnitude, a faixa de nimeros 6 de - (21-1) a +(2"'-1). 2.5.2- Numeros Sinalizados por Complemento de 2 O esquema mais comum de representar nimeros sinalizados 6 por complemento de 2. Novamente nds devemos prestar atengao ao tipo dos numeros. Utilizando 8 bits & representagao em complemento de 2, os valores +5 e -5 sdo representados assim: +5; 90000101 414111011 ‘Complemento de 2.de #5 Podemos ver novamente que o MSB 6 0 para numeros positives ¢ 1 para numeros negativos. 0 esquema visto anteriormente para conversao de nimeros binarios em decimais nao trabalha com numeros negativos representados na forma de complemento de 2. Como ja vimos, efetuando o complemento de 2 duas vezes, ‘obtemos o ntimero original; nds precisamos. apenas pegar 0 complemento de 2 de um numero negativo para encontrar o equivalente positivo. Por exemplo, considerando o numero de 16 bits abaixo: 414141111111101011 i Se estamos utilizando o método de complemento de 2 e perguntamos que numero 6 este, a resposta nao 6 tao dbvia, Sabemos que 6 um numero negativo, mas para sabermos qual sua magnitude, precisamos apenas efetuar seu complemento de 2 para encontrar seu positivo equivalente. Com isto teremos 0 seguinte resultado: 0000000000010101 que é facilmente convertido em 241, ‘entao o numero original é -2110. A seguir, temos um sumario da faixa de ntimeros de 8 bits sinalizados (complemento de 2): ___Merocontrolador 6051 Detalhad Bindrio Decimal 10000000 128 10000001 127 10000010 126 1111110 2 11111111. A 00000000 0 00000001 1 01111110 +126 onnttttt 27 Em geral, a faixa para n bits de numeros sinalizados e por complemento de 2 é de -(2"") a+(2"-1), A fepresentagéo em complemento de 2 dos numeros negativos, a primeira vista, parece meio estranha, mas observando melhor, torna-se muito elegante. Por exemplo, se somarmos 1 & representagao binaria de -127, usando a técnica padréo da adigéo, nés teremos -126. Isto nao ocorre no caso da tepresentagao sign-magnitude. Outra vantagem do complemento de 2 6 que simplifica muito as operagdes de soma e subtragdo em ntimeros sinalizados. Exemplo 6: Qual a faixa de nimeros sinalizados em complemento de 2 de 12 bits? Solugdo: -2048 a +2047 Discussao: n= 12, -2"' = -2048, +2"1-1=2"- 1 = 42047, 2.6 - NUmeros Reais A representacao de ntimeros reais em bindrio é uma extensdo natural da técnica para inteiros. O peso do bit a direita da virgula é 24, 0 peso do proximo bit 6 22, e assim sucessivamente. Por exemplo, a converso do nlimero real binario 10010,101101 em decimal 6 mostrada abaixo: 16,000000 0,000000 0.000000 2.000000 0,000000 0,500000 0,000000 0,125000 0,062500 0,000000 = 0.015625 78,703125 GIES tai. Soe ill 1001010110 ‘Aconversao inversa é interessante. A parte inteira convertida como antes. A fragao é convertida multiplicando continuamente por 2 € extraindo a porcao inteira do resultado (0 digito imediatamente a esquerda da virgula). O processo é repetido até que o resultado da multipicagao seja zero, ou até que se atinja a preciso desejada. A conversao de 0,39207 em inario com seis casas decimais de preciso é mostrada abaixo: ae 0.30207 x 2 = 0,78414 0.78414 x 2 = 1,56828 1 0,56828 x 2 = 1,13656 1 0,39207,5 = 0,011001, 0,19656 x 2 = 0,27312 0,27312 x 2 = 0,64624 0 0,54624 x 2 = 1,09248 1 etc. Note que a conversdo pode continuar indefinidamente. 2.7-Numeros com Pontos Flutuantes A tepresentagao em ponto flutuante ¢ muito usada para desorever némeros reals. A notagdo ponto flutuante consiste em expressar Um nimero utilizando um expoente, uma base & afragdo (também chamada de mantissa). e Faeoumanssy—~* *8 Base. A fragao tem um ponto decimal (virgula) implicito & esquerda. Em bindrio, é colocado ‘um bit de sinal para desorevé-lo como positive ou negativo. O ntimero decimal 2,40625 é mostrado abaixo em 12 bits no formato ponto flutuante, com um bit de sinal, mantissa de 8 bits ~ eum expoente de 3 bits. Titsinal] [Mantissa de Sits] [Bis de expoent [ofo 00110 ifort t [Foro decal mpteto] = +0,01001101 x2" =+0,01001101 x2? = +0010,01101 2 +0,25 + 0,125 + 0,08125 2,40625 lador 8051 Detalhado Como é visto acima, o expoente é 0112 = 3:0. Assim a mantissa é multiplicada por 23, que 6 0 mesmo que deslocar a virgula trés casas para a direita, Ha numerosos formatos de ponto flutuante em uso. O mais comum corresponde a fragdo normalizada (0 bit a esquerda deve ser sempre 1) que utiliza a notagao excess-n para o expoente. A tabela 6 mostra como exemplo o formato excess-4 em 3 bits: Binario Decimal Decimal -4 000 0 4 001 1 3 010 2 2 on 3 1 100 4 0 101 5 il 110 6 2 111 7 3 Tabela 6 - Notacao Excess ~ 4. Note que a coluna da direita nos da uma faixa de expoente de -4 a +3, ou seja, esta notacéo nos fornece a oportunidade de trabalhar com expoentes negativos. Abaixo mostraremos o valor decimal 0,171875 expresso em 12 bits em ponto flutuante, um bit sinal, uma fragao de 8 bits normalizada e um expoente em excess-4 em 3 bits. Fraga normalizada de 6 bis Expoente em excess-4 Deve ser 4 em 3bits oi oti 0000010 N Expoente igual = +0,10110000 x 22 =+0,001011 = + 0,125 + 0,03125 + 0,015625 = +0,171875 © formato excess dependerd de seu tipo. A idéia é fomecer expoentes positives € negativos. Por exemplo, um formato de 8 bits de expoente poderia utilizar 0 excess-128, e isto daria uma faixa do expoente de -128;9 a +12710, Representagao de Informagao 28 - Cédigo Bindrio Decimal (Codigo BCD) HA informagdes numéricas que nao representam quantidades, ou seja, néo so usadas em operagées aritméticas. Um bom exemplo é um numero de telefone, Um método comum de Tepresentar esses ntimeros para armazenar em uma meméria do computador é chamado de cédigo bindrio decimal ou cédigo BCD (binary-coded decimal). Um cédigo BCD separa ‘cada digito em um cédigo de 4 bits. Veja tabela 7. 0000 0001 0010 0011 0100 0101 0110 ont 1000 1001 ttre Tabela7 - Codigos BCD. Nota-se que os nimeros 10102 até 11112, n&o sdo usados. Por exemplo, 0 ntimero de telefone 824 7590, em BCD, € mostrado assim: Decimal: 8 2 4 7 9 0 BCD: 1000 0010 0100 0111 0101 1001 0000 0 cédigo BCD também ¢ usado para representar quantidades, mas também é necessaria uma aritmética BCD. Circuitos especiais ou instrugdes so usados para adigao € - subtragéo BCD. 2.9- ASCII Os textos sao mais comumente representados por um sistema padrao, o ASCII (American Standard Coded for Information Interchange) que 6 um codigo de 7 bits, Tepresentando 2” = 128 simbolos ou operagdes de controle. Veja tabela 8. Microcontrolador 8051 Detaihado bits 4321 bits 765 000 001 010 011 100 101 110 111 ooo _[NuL_| ble | SPACE] 0 P ; P 0004 | SOH_[_DCt 1 1 A @ a q 0010 STX DC2 ul 2 B R b r oot | erm [| oc3 | # 3 é § c s oro | cot | pcs | 4 D T d t oor[ eno | Nak [| % 5 E U e u ono | Ack | sw | & 6 F v f v ont | Bel | ETB : 7 G W 9 Ww 1000 f Bs |_ CAN ( 8 H X h x 1001 HT | EM ) 9 I Y i y woo [iF | sus | i Z j z wor_| wt [esc | + i K i k { 1100 FF FS . < a, \ I i 1101 cR | GS : E M 1 m } t110_| so _|_AS > N * n Z 4111 L SI US i 2 oO _ 9 DEL Tabela 8 - Cédigo ASCII. Posigdo do bit no Cédigo ASCII: ‘Se re tT oToToToTolTy Exemplo da tabela 8: A= 10000012 = 4115 = 6510 Dos 128 cédigos ASCII, 95 s&o gréficos e 33 so de controle. Os cédigos graficos comegam em 2045 (Space) e vo até 7E\s (~). Os mais comuns, é claro, sao os simbolos do alfabeto e os digitos. Uma variedade de sinais de pontuagao é também representada. Os cédigos de controle comegam em 00i¢ € vao até 1F i. O Ultimo cédigo, 7Fis, também é um cédigo de controle. Os bits do cédigo ASCII séo numerados de 1, a direita, até 7, a esquerda. Este é um estilo diferente da numeragao de bits usual (0 LSB normalmente 6 o bit 0) e isto pode causar certa confusdo. O exemplo da representac&o ASCII 6 dado abaixo: Namero do bit: 7654321 Letraz Cédigo ASCII: 1111010 O cédigo ASCII tem propriedades muito interessantes. Note que os digitos de 0.a 9 sao dados pelos cédigos de 30;5 a 39%¢. Se os trés bits mais significativos forem desprezados, teremos 0 cédigo BCD. As letras maitisculas e minusculas diferem apenas no bit 6. Veja exemplo abaixo: 7654321 «pn 1000001 +3 1 ‘Apenas bit 6 é diferente © exemplo acima mostra que se quisemos transformar uma letra mindscula em maiiiscula, basta “Zerarmos” 0 bit 6. Para fazermos a transformagao no sentido oposto, basta *getamos" 0 bit 6. A maior parte das teclas de um computador implementa uma fungéo de control. Por exemplo, control-s é freqiientemente utilizado para suspender a transmiss4o de saida para um dispositive (pause), enquanto control-q finaliza a transmissao. A funcdo de controle é freqdentemente implementada, inibindo os bits 6 e 7 no cédigo ASCII. Da tabela ASCIl, sé 7Bis, entao control-s gera © cédigo 1316, como mostrado abaixo: bit 7654321 1110011 Satis 7 seni scontrovs”: 0.010011 Bits 6 e 7 sao inibidos| Na tabela 8, este codigo 6 chamado de DC3, para Device Code 3, Este 6 um codigo de controle de dispositive especial e é usado para indicar transmissio “off” (XOFF). O cédigo de controle de transmissao “ON’ € chamado de DC1 ou XON. Os cédigos XON e XOFF também s40 usados para o controle de fluxo de informagao junto as linhas de comunicagao que utilizam modems, Os codigos de controle do ‘ASCII tam grande utilizago nos meios de comunicagao. Exemplo 7: Converter a placa de um autorndvel AFC 4589 nos cddigos ASCII binario hexadecimal. Solugao: Hexadecimal a 1000001 46 01000110 c 43 ‘01000011 Space 20 (00100000 4 34 (00110100 8 35 0110101 8 38 (00111000 9 39 00111001 Exemplo 8: Que codigo de controle ¢ gerado pela fungao control-m em um computador tipico? Solugao: OD4s, (CR = Carriage Return = Retorno) Discussdo: Control é um modo de gerar um retomno ou “enter” na maioria dos teclados. m= 1101101 >>>> ‘zerando” os bits 7 e 6, teremos: Control-m = 0001101 = ODis Microcontrolador 8051 Detalhado_ Aritmética Bindria Neste item, vamos apresentar técnicas de adi¢ao, subtragao, multiplicagao e divisao. 3.1 - Adigao A adigdo bindria é similar & decimal. Em decimal, existe 0 ‘vai um’ (carry) quando a soma ultrapassa 9, Em bindrio, hé o carry quando a soma ultrapassa 1. Em binétio, se dois bits so somados, hé apenas quatro possibilidades: [Carry| + a a1 1 +7 é igual adevail Ss Uma soma de nuimeros com n bits é feita normalmente, Em caso de estouro, o cany se “propaga”: 1 191 + 1 olo= S22 po Pode-se verificar 0 exemplo acima, convertendo em decimal. O primeiro fator 6 101 12= 1110, 0 Segundo fator 6 01102 = 610, € a A soma de 11 mais 6 6 17:0 = 100012. 3.2 - Subtragao Simples Uma subtragao envolve um minuendo, um subtraendo e a diferenga: Minuendo: A Subtraendo: = B. Diferenga:C Aritmética Binéria Numeros bindrios so subtrafdos com a mesma técnica usada para os decimais. Zero subtraido de um é claro que necessita de um “empresta um” (borrow). Veja 0 exemplo abaixo: 1001 -0100 o1o1 Em decimal, 9 - 4 = 5. Na pratica, os computadores utilzam um esquema muito mais elegante para realizar um subtragao, utilizando adigao em complemento de 2. 3.3 - Adicao e Subtracao Utilizando Complemento de 2 Utilizando a representagao em complemento de 2, os nuimeros positivos e negativos sao somados ou subtraidos sem introdugéo de uma nova técnica. Por exemplo, considere a soma -3 com 7; teremos 4, Se -3 6 representado em forma de complemento de 2, entao nés somarfamos da maneira usual. A seguir, temos alguns exemplos com ntimeros de 8 bits: Complemento de 1 do valor 3 4 Z}oo000011 11411104 11111100 ooooo111-eh Hise 4 do000100-{4 111110 1——_ 7B Complemento de 1 do valor 5 00000101 5Vy4111010 00010101-{a1 [H+ 1 4#11111011~PMais-5 Tatttott TOOT 000 FE © método tradicional de subtragdo nao é necessdrio se os ntimeros negativos sao tepresentados usando complemento de 2, A subtracao é realizada utilizando um método simples e eficaz que nés chamamos de subtracao por adigéo. Para realizar a operagao A - B, nds apenas somamos 0 complemento de dois do valor B. Isto mostra a seguinte relagac A-B=A+(B) A operagao decimal 21 -5 = 16 é mostrada na iustrago acima, O primeiro passo é converter ‘osubtraendo (+5) em seu complemento de 2 (-5). Ele entéo serd somado ao minuendo (21). Este método é valido para qualquer raiz ou base, Se A € B sao de base 10, entao: A-B=A-+ ‘complemento de 10 do valor B” 3$.4- Multiplicagao Multiplicago bindria é muito similar & decimal. A multiplicagao envolve o multtiplicando, omultiplicador e o produto. ‘A ‘Multiplicando xB :Muliplicador :Produto 1 8051 Detalhado Produtos parciais so formados pela técnica de deslocamento e adigao: 1010011 = 83, x0111011 = 594 1010011 1010011 0000000 1010011 1010011 1010011 oooo000 1001100100007 = 489% 3.5 - Divisao Diviséo envolve um dividendo, divisor e quociente. A|B—[Divisor C~{Quocientel Dividendo| Para realizar a diviséo bindria, é necessario acompanhar os seguintes passos: 1. Inicialize 0 quociente em zero. 2. Subtraia o divisor do dividendo para ter o resto parcial (RP). ‘Se RP > ou = 0, incremente 0 quociente e continue. Se RP <0, pare, 3. O resto torna-se dividendo. Va para 0 passo 2. Por exemplo, a operagéo 100/50 = 26 mostrada abaixo: Dividendo: 100,, Quociente gecommemenio “J 01100100 00000000 fe 2do dvisor,- 50 [+ 1 1001110 =0, ents FOL 1 0 ___{RP>0u=0, ent, incremenia [ RPtomase | 00110010 peepee novo cvidendo] 41 1004110 RP > ou=0, enléo, incremental DoO000000— | 00000010 RPtomase 1 —00000000 novo dvidendol +1 1001110 THoOT110 Resposta: 0000.00 1 0 (queéoquociente) Portas Logicas e Algebra Booleana Neste subitem, deslocaremos nosso foco pata circuitos computadorizados. A maioria dos componentes que sao circuitos logicos (também chamados de circuitos digitais) opera com dados bindrios, em que 0 é representado como tensio baixa e 1 é representado como tensao alta. 4.1 - Chaves (switches) como Operadores Légicos A idéia de circuitos légicos 6 introduzida por um circuito simples controlado por chaves (switches) e um diodo emissor de luz (led). circuito da figura 2 tem quatro componentes: uma bateria de 5 volts, uma chave (sw), um |led e um resistor. Quando houver corrente fluindo no circuito, o led acendera. Caso contrario, o led ficaré apagado. Quando a Sw A esta na posi¢ao fechada, o led acende. Quando a Sw A esté na posigéo aberta, o led esta apagado. O valor do resistor controla 0 brilho do led. Quanto menor aresisténcia, maior sera a corrente, aumentando o brilho do led. Sw Led sai Q Ev Resistor 20 ohims Figura 2 - Uma chave controlando um led. A idéia de circuito légico ¢ ilustrada, adicionando mais uma chave ao circuito, como mostrado na figura 3: on, Le te oe abe ease TT aes aot r Figura 3 - Duas chaves implementando uma fungao OR. Se Sw A “OU” Sw B estiverem fechadas, o led acendera. Esta 6 uma fungdo légica OR. ‘As posigdes possiveis das chaves e a condig&o do led esto descritas na tabela 9. SwA SwB LED aberto aberto apagado aberto fechado | aceso fechado | aberto ‘aceso fechado | fechado | aceso Tabela 9 - Operagao do Circuito OR. Se as chaves estiverem arranjadas como no circuito da figura 4, a fungéio Iégica AND serd implementada. Agora, para o led acender, 6 necessdrio que a Sw A “E” a Sw B estejam fechadas. Se uma delas estiver aberta, o led estard apagado. sna, sue, Resistor 220 obs Figura 4- Duas chaves implementando a fungéo AND. As possibilidades para o led e as chaves A e B estao na tabela 10. [swa | swB LED aberto aberto apagado aberto fechado | apagado fechado | aberto apagado fechado | fechado | aceso Tabela 10 - Operagao do circuito AND. Portas Logicas e Algebra Booleana O sistema matematico usado pelos cientistas de computador para descrever a operagao. de circuitos ldgicos ¢ chamado de Algebra Booleana, Nés apenas precisamos introduzir um pequeno nivel de abstracao para interpreté-la. Vamos chamar o led de Z, e quando ele estiver aceso, teremos 1; quando estiver apagado, teremos 0. Para as chaves, diremos que quando estiverem fechadas, teremos 1, e quando abertas, teremos 0. As relagdes existentes entre A, B eZ podem ser descritas por uma Tabela-Verdade. Tomando como exemplo o circuito AND mostrado e a tabela 10, teremos a seguinte tabela-verdade: 0 1 0 1 ‘A fungao OR é representada em algebra booleana com o simbolo Vea fungao AND com 0 simbolo /\. Ent&o: Z=AVB é aexpresséio matematica da fungao OR mostrada na tabela 9, € Z=AAB €a expresso matematica da fun¢éio AND mostrada na tabela 10. 4,2 - Portas Basicas Com esta introdugao, nés ilustramos os circuitos que implementam 0 quadro basico de operagées ldgicas. Esses circuitos, comumente chamados de Portas Légicas, séo mostrados natabela 11. ‘A coluna nomeada de operapao nos dé o nome usual de cada fungao. Além das fungdes OR (OU) e AND (E), ja vistas anteriormente, temos as fungdes NAND, NOR, EXOR (XOR, OU-eXclusivo), EXNOR (XNOR) e INVERSORA (NOT). A coluna Simbolo mostra 0 simbolo grafico de cada porta logica. Gabaritos sao encontrados em software de desenho para maior facilidade ao desenhé-los. A coluna TTL dé-nos 0 exemplo de um cédigo de componente de um Circuito Integrado (Cl) para cada - fungao légica. TTL, do inglés Transistor-Transistor Logic’, é um circuito utilizado para implementagao de circuitos lgicos. Cada cédigo comega com o numero 74 para indicar que 0 Cl é membro da familia TTL. A designacao LS, do inglés Low Power Schottky, tefere-se a uma subfamilia dentro da familia TTL. Geralmente as subfamilias sao diferenciadas pelo consumo e velocidade de operacao. Os digitos finais sao referentes a fungao do dispositivo. Acoluna equagdo nos da a formula algébrica que descreve a fungao de cada porta. Note 0 uso de uma barra acima da varidvel (ou expressao) para indicar uma inversao légica, ou negagéio. Cada equagao tem duas formas comuns, Quando nao ha confusao com operagdes aritméticas, as equagdes superiores podem ser utilizadas. A légica OR pode ser expressa como: Z=A+B ou como: Z=AVB sendo a ultima a forma mais tradicional para a algebra booleana. De fato, 6 comum chamar a fung&o OR de légica somatorio e a fungo AND de légica multiplicadora. Também é comum a omisso do simbolo para a légica AND (A.. B = AB). Operagao imbolo TT Equagao Inversora A a 74LS04 ouNOT b Zz ip Z=A+B [> OR z 74LS32 1 8 Z=AvB 1 ‘ Zz ay Z=A.8 ToT AND De 741808 ee 2 s]o ; alt zBiz A ooft NOR De 7ALS02 9 fo 1110 ABE Ay TOfi NAND [pe 74LS00 H i j a iila RB A Z=A(4)B 7 ofo EXOR abD-: 74LS86 Pane Da} ‘to ABZ Ay Z=AWB Toft EXNOR 2 7aLs66 i 9 1/0 a Z=A\-18 1 dfo Tabela 11 - Portas légicas basicas. A coluna da direita, nomeada de tabela-verdade, expressa, em termos booleanos, todas as combinagses possiveis de varidveis de entrada (A e B) e a condigao resultante de saida (2). Como exemplo, 0 74LS00 € um circuito légico TTL Schottky low-power (baixa poténcia) que implementa a fungao logica NAND. Ele contém quatro portas NAND de duas entradas em i um Cl de 14 pinos, como mostrado na figura 5. Note que doze dos pinos sao referente as Portas Logicas e Algebra Booleana ‘entradas ¢ saidas de cada porta, enquanto os dois restantes correspondem @ conexéo de jalmentacao. Opino 14 € +5 volts (Vcc) € 0 pino 7 é 0 terra (ground ou gnd). j 7aiso0 1 [— 14 (vec) +8 rp 8 I + 3 Oy 2 i ih jt I 5 Uy 10 i 5 9 ew)? | Uy 3 Figura $ - Configuragio de pinos do 74LS00. .3 - Extensao para Trés ou mais Entradas ‘As portas AND, NAND, OR e NOR sao mostradas na tabela 11 com apenas duas tradas, mas estas func¢des podem ser estendidas para um nimero n de entradas. Por exemplo, a 74L830 6 uma porta NAND TTL com cito entradas (veja figura 6). S © — Figura 6 - Porta NAND de oito entradas 74LS30. eonmooar Com oito entradas a tabela-verdade desse dispositivo tem 28 = 256 linhas (nds nao amos mostra-la aqui). A saida é 1 para cada combinagao, exceto quando todas as entradas iguais a 1. Algebricamente tem-se: Z=A.B.C.D.E.F.G.H Na teoria, qualquer ntimero de entradas é possivel para as fun¢des AND, NAND, OR e NOR, Na pratica, devemos escolher os dispositivos disponiveis em uma familia particular de ‘citcuitos integrados, Um exemplo disto esta na tabela 12. __Microcontrolador 8051 Detalhado Dispositivo | Tipo de Porta tineto co Nimero de Pinos Tipo de Saida 7400 nand 2 entradas 4 14 totem-pole 7401 nand 2 entradas 4 14 ‘open collector 7402 nor 2 entradas 4 14 totem pole 7404 inversor 6 14 totem pole 7405 inversor 6 14 ‘open collector 7407__| buffer 6 14 ‘open collector 7408 and 2 entradas: 4 14 totem pole 7410 nand 3 entradas 3 14 totem pole 7420 nand 4 entradas 2 14 totem pole 7430 nand 8 entradas 1 14 totem pole 7432 or 2 entradas 4 14 totem pole 74LS240 inversor 8 20 three-state 74LS244 buffer 8 20 three-state 4.4 - Portas EXOR e EXNOR As portas NOR exclusivo e OR exclusivo tém algumas propriedades unicas. A fungao EXOR pode ser expressa usando operagdes OR, AND e NOT como abaixo: Tabela 12 - Portas TTL comuns. A®B=(A.B)+(A.B) A operagéo EXOR pode ser implementada com portas OR, AND e NOT, como mostrado na figura 7: Figura 7 - Implementacdo EXOR com portas padrées. >-z A idéia de mais de duas entradas para as fungdes EXOR e EXNOR requer especial consideragao. E comum pensar na fungao EXOR desta maneira: A saida 6 alta se uma ou outra entrada for alta, mas nao ambas, ou A saida 6 alta se as entradas forem diferentes. Isto é evidente, observando a tabela-verdade (veja tabela 11). Obviamente estas frases nao servem, se utilizamos mais de duas entradas. Entretanto, a fungéo EXOR pode ser descrta da seguinte maneira: A aida é alta se a quantidade de bits altos de entradas for impar. Da tabela 11, a saida EXOR é baixa quando nenhuma ou as duas entradas forem altas, ea saida é alta quando uma entrada for alta. Zero € dois séo nimeros pares, um é nimero impar. Dai temos 0 principio de funcionamento da fungéo EXOR quando temos mais de trés entradas. Abaixo vemos a implementagao do circuito EXOR de trés entradas utilizando portas _ de duas entradas, como mostra a figura 8. DS 1 ID- Figura 8 - Implementaeo da fungi EXOR de trés entradas. Temos a tabela-verdade desta funcao mostrada na tabela 13: Entradas Saidas A B c Zz 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 0 id 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 Tabela 13 - Tabela-verdade da fungao EXOR de trés entradas. ‘ Comparando Z com as entradas A, B e C, vemos que Z é 1 se uma ou trés entradas forem 1, e 0 se nenhuma ou duas entradas forem 1, confirmando o que foi visto anteriormente. Para trés entradas, entéo temos: Z=A() BWC Analogamente, a fungao NOR exclusivo é citada da seguinte maneira: Asaida 6 alta quando a quantidade de bits 1 na entrada for par. HOOE...... Microcontrolador 8051 Detalhado 4.5 - Transformagdes DeMorgan © teorema de DeMorgan é uma interessante © poderosa propriedade da Algebra booleana, Ele 6 usualmente expresso como uma identidade das fungdes NAND e NOR: NOR: A+B=A.B OR: A+B=A.B Para explicar 0 teorema de DeMorgan, vamos considerar primeiramente as duas seguintes sentengas: Vestir um casaco se estiver chovendo ou estiver frio. ‘Nao vestir um casaco se nao estiver chovendo e nao estiver frio. Estas sentengas chegam a um Unico resultado de maneiras muito diferentes, Analisando-as separadamente, voo8 pode ver que a primeira sentenga 6 como uma fungao OR © a segunda 6 como uma fungao equivalente DeMorgan da operagdo OR. Analogamente, as fungdes AND, NAND e NOR podem ser transformadas para terem uma estrutura diferente, mas a mesma operagao logica. Considere a operacao NAND esquematizada na figura 9. eee 0 soz 0 1 1 1 1 0 alolsalola Figura 9- Descri¢ao verbal de uma porta NAND. Primeiramente, transformaremos a operagao NAND utilizando o teorema de DeMorgan que esta esquematizado na figura 10. 0 0 s=j{>-z 0 1 1 0 1 1 Figura 10 - Descrigao verbal de porta NAND com transformagao DeMorgan. Primeiramente vimos que o simbolo mudou drasticamente para refletir a transformagao. ‘Ao analisarmos o desenho e sua tabela-verdade, observamos que, com uma porta OR com suas entradas negadas, temos uma saida Z idéntica a uma porta NAND. DeMorgan. Observe que se: Z=A.B entéo é o mesmo que dizer: 2=A.B Atabela 14 nos da um resumo das quatro operagdes booleanas e seus equivalentes Compare estas duas equagdes com a figura 9. Elas representam este cirouito. Operagio AND. Forma Padrao Forma DeMorgan Equivalente NOR Tabela 14 - Transformagdes DeMorgan de portas légicas. 4.6 - Versatilidade das Portas NAND e NOR Qualquer fungao ldgica pode ser criada utilizando apenas portas NAND. Essa iedade 6 chamada de versatilidade da porta NAND. A figura 11 ilustra as fungdes NOT, ND, NOR e OR implementadas com portas NAND. =e =D- =D- > [>>— Figura 11 - Versatilidade da porta NAND. Existe a possibilidade de implementar algumas fungdes ldgicas com portas NOR. 4.7 - \dentidades Booleanas

Vous aimerez peut-être aussi