apostila microcontroladores

173
Página 0 de 173 Microcontroladores Microcontroladores Microcontroladores Microcontroladores Industriais Industriais Industriais Industriais Professor Ulisses Galvão Romão

Upload: priscila-garcia-mendes

Post on 24-Nov-2015

149 views

Category:

Documents


14 download

TRANSCRIPT

  • Pgina 0 de 173

    MicrocontroladoresMicrocontroladoresMicrocontroladoresMicrocontroladores

    IndustriaisIndustriaisIndustriaisIndustriais

    Professor Ulisses Galvo Romo

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 1 de 173

    Captulo 1 - Sistemas de Numerao e Clculos Matemticos Pgina 2

    Captulo 2 - Circuitos Seqenciais Pgina 11

    Captulo 3 - Memrias Pgina 21

    Captulo 4 - Conversores A/D e D/A Pgina 30

    Captulo 5 - Microprocessadores Pgina 41

    Captulo 6 - Conjunto de Instrues do 8051 Pgina 73

    Captulo 7 - Portas Paralelas Pgina 112

    Captulo 8 - Interrupes Pgina 123

    Captulo 9 - Temporizadores / Contadores Pgina 132

    Captulo 10 - Porta Serial Pgina 141

    Captulo 11 - Economia de Energia e Gravao Pgina 151

    Captulo 11 - Projeto da Placa de Testes Pgina 156

    Bibliografia Pgina 172

    NDICE DE CAPTULOS

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 2 de 173

    |

    1) SISTEMA DE NUMERAO Existem vrios sistemas de numricos, dentre os quais se destacam o decimal, o binrio, o octal e o hexadecimal. O sistema decimal utilizado por ns no dia a dia, e sem dvida o mais importante dos sistemas numricos, com os quais podemos formar qualquer nmero atravs da lei de formao. AnBn + An-1Bn-1 + An-2Bn-2 + ... + A0B0 Onde: An = Algarismo

    B = Base do nmero n = [(quantidade de algarismos) - 1]

    Exemplo: 25934 (decimal) n = 5 -1 = 4 B = 10 A4 = 2, A3 = 5, A2 = 9, A1 = 3 e A0 = 4 2.104 + 5.103 + 9.102 + 3.101 + 4.100 = 2.10000 + 5.1000 + 9.100 + 3.10 + 4.1 = 25934

    1.1.1) SISTEMA BINRIO (BASE 2) O sistema binrio de numerao apresenta apenas dois algarismos, o zero e o um. Cada algarismo ou dgito de um nmero binrio chamado de BIT que a abreviao de BInary DigiT. O conjunto de 4 bits denominado de NIBBLE, e o de 8 bits de BYTE. O sistema binrio utilizado em sistemas digitais e em microprocessadores, onde o 0 representado por 0V (Volt) e o 1 geralmente pela tenso de alimentao (em circuitos integrados com tecnologia de fabricao TTL, o nvel 1 = 5 Volts).

    1.1.2) SISTEMA HEXADECIMAL (BASE 16) O sistema hexadecimal possui 16 smbolos para representar qualquer quantidade. Como so conhecidos apenas dez smbolos numricos (0 a 9), adotou-se outros seis ( A a F). O sistema hexadecimal tambm muito utilizado na rea de microprocessadores, e tem uma estreita relao com o sistema binrio.

    1.1.3) FORMAS DE APRESENTAO decimal: 1234d ou (1234)10 binrio: 0101b ou (0101)2 hexadecimal: 9CF7h ou (9CF7)16

    Observao: Em microprocessadores quando se fala em numerao necessrio sempre identificar qual base esteja se trabalhando para no haver confuso, pois o nmero 10 em binrio representa o nmero 2 em decimal, mas o nmero 10 em hexadecimal representa o nmero 16 em decimal (como ser visto na tabela a seguir). Por este motivo colocada no final do nmero a letra que identifica sua base: (d) para decimal (base 10); (b) para binrio (base 2); (h) para hexadecimal (base 16).

    CAPTULO 1 - SISTEMAS DE NUMERAO E CLCULOS MATEMTICOS

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 3 de 173

    CONVERSO ENTRE BASES

    DECIMAL HEXADECIMAL BINRIO 0 0 0 1 1 1 2 2 10 3 3 11 4 4 100 5 5 101 6 6 110 7 7 111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 16 10 10000

    1.1.4) CONVERSO DO SISTEMA BINRIO PARA O SISTEMA DECIMAL Para converter um nmero binrio em decimal basta utilizar a lei de formao. Exemplo: Convertendo o nmero 101b (binrio) em Decimal: n = 3 -1 = 2; A2 = 1; A1 = 0 e A0 = 1 1.22 + 0.21 + 1.20 = 1.4 + 0.2 + 1.1 = 4 + 0 + 1 = 5, Conclui-se portanto que 101b = 5d

    1.1.5) CONVERSO DO SISTEMA DECIMAL PARA O SISTEMA BINRIO Quando trabalhamos com sistemas digitais, muitas vezes existe a necessidade de convertermos os valores decimais em binrios. Para converter um nmero decimal para a base binria, deve-se executar divises sucessiva pela base 2 quantas vezes forem necessrias para que o quociente da diviso seja menor que a base 2. O ltimo quociente da diviso e os restos das divises sucessivas, so tomados na ordem inversa, correspondendo ao nmero na base 2.

    Exemplo: Converter o nmero 135d para a base binria (2).

    135 2 1 67 2 1 33 2 1 16 2 0 8 2 Resultado 0 4 2 no sentido 0 2 2 oposto 0 1

    Portanto: 135d = 10000111b

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 4 de 173

    1.1.6) CONVERSO DE DECIMAL PARA UMA BASE QUALQUER (B) Para converter de decimal para a base B basta utilizar o mtodo das divises sucessivas dividindo o nmero pela base B Exemplo: Converter o nmero 3882d para a base hexadecimal (16)

    3882 16 10 242 16 2 15

    Resposta no sentido oposto

    15 = F e 10 = A, Portanto: 3882d = F2Ah

    1.1.7) CONVERSO ENTRE AS BASES 2 E 16 Existe uma relao estreita entre os sistemas binrio e hexadecimal, esta relao vem do fato de que o nmero 16 pode ser escrito como 24. Os nmeros hexadecimais podem ser vistos como uma forma compacta de representar os nmeros binrios.

    Para converter de binrio para hexadecimal devemos seguir os seguintes passos: 1. Divide-se o nmero em grupos de 4 algarismos da direita para a esquerda, colocando-se zeros

    esquerda se necessrio; 2. Converte-se cada grupo no seu equivalente em hexadecimal, conforme a tabela dada anteriormente.

    Exemplo: Converter o nmero 11101000101110b para hexadecimal (h) 1. Divide-se o nmero em grupos de 4 algarismos da direita para a esquerda, colocando-se zeros

    esquerda se necessrio; 0011 1010 0010 1110

    2. Converte-se cada grupo no seu equivalente em hexadecimal, e reunisse os algarismos obtidos (no esquecer de acrescentar a letra h no final do nmero hexadecimal resultante).

    0011 = 3, 1010 = A, 0010 = 2, 1110 = E

    Portanto: 11101000101110b = 3A2Eh

    Para a converso de hexadecimal para binrio, utilizado o processo inverso: Exemplo: Converter o nmero 2AC7h para Binrio (b) 1. Separa cada algarismo hexadecimal e os converte-se no seu equivalente binrio em grupos de 4

    dgitos. 2 = 0010, A = 1010, C = 1100, 7 = 0111 2. Reunisse os algarismos obtidos e retiram-se os zeros esquerda (no esquecer de acrescentar a

    letra b no final do nmero binrio resultante).

    Portanto: 2AC7h = 10101011000111b

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 5 de 173

    Exerccios: Converter os nmeros para a base solicitada. 1) 23Fh = ?d; 2) 47d = ?b; 3) 11010011b = ?d; 4) 11100010b = ?h; 5) A2Ch = ?d; 6) 2DAh = ?b; 7) 11100001b = ?d; 8) 352d = ?h; 9) 510d = ?h; 10) 120d = ?b.

    Respostas: 1)575d; 2) 101111b; 3) 211d; 4) E2h; 5) 2604d; 6) 1011011010b; 7) 225d; 8) 160h; 9) 1FEh; 10) 1111000b.

    OBSERVAO: Qual o mtodo deve ser utilizado para fazer a converso? Para converter de binrio ou hexadecimal para decimal utilize a lei de formao. Para converter de decimal para hexadecimal ou binrio faa divises sucessivas. Para converter entre binrio e hexadecimal utilize a tabela e as 2 regras dadas anteriormente.

    1.2) OPERAES ARITMTICAS NO SISTEMA BINRIO

    1.2.1) ADIO BINRIA Para efetuarmos a adio no sistema binrio, devemos agir como numa adio convencional do sistema decimal. Convm observar que no sistema decimal 1 + 1 = 2 e no sistema binrio como temos apenas dois algarismos 1 + 1 = 0 e vai 1 para o prximo digito. A operao de transporte tambm denominada carry.

    Observao: Diferente do sistema decimal em que podem ser somar vrios nmeros ao mesmo tempo, no sistema binrio no se somam mais do que dois nmeros por vez para no haver erro no transporte do carry. Assim sendo teremos somente as seguintes possibilidades no sistema binrio: Sem carry anterior 0 + 0 = 0 e no vai carry; 0 + 1 = 1 e no vai carry; 1 + 1 = 0 e vai 1 de carry (2d = 10b, ou seja resulta 0b e vai 1b para o prximo digito = carry) ; Com carry anterior 1 + 1 + 1 (carry) = 1 e vai 1 de carry (3d = 11b, ou seja resulta 1b e vai um para o prximo digito = carry).

    Exemplo 1: (11 + 10) = ? carry 1 1 1 + 1 0 1 0 1 Portanto o resultado da soma (11 + 10) = 01, com carry = 1. Ou com 3 dgitos = 101

    Exemplo 2: (110 + 111) = ? carry 1 1 1 1 0 + 1 1 1 1 1 0 1 Portanto o resultado da soma (110 + 111) = 101, com carry =1. Ou com 4 dgitos = 1101

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 6 de 173

    1.2.2) SUBTRAO O mtodo de resoluo anlogo a uma subtrao no sistema decimal. importante observar o caso 0 - 1, onde o resultado ser igual a 1 porm haver um transporte para a coluna da esquerda que deve ser acumulado (somado) no subtraindo e, obviamente subtrado do minuendo. A este estouro d-se o nome de borrow. Ex: 1000 - 0011

    1 0 0 0 1 0 0 0 1 0 0 0 borrow - 1 - 1 -

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

    Nmeros Binrios Negativos Para representao de nmeros binrios negativos e facilitar a operao de subtrao comumente utilizado o complemento de 2 (C2), sua obteno se baseia inicialmente no complemento de 1 (C1) como explicado a seguir:

    COMPLEMENTO DE 1 (C1) BINRIO Troca-se cada bit do nmero pelo seu inverso ou complemento, ou seja: Se for 0 passa a ser 1 e Se for 1 passa a ser 0

    Exemplo: Dar o complemento de 1 (C1) do nmero: 1 0 1 1 b Invertendo-se bit a bit o nmero resultar em (C1) = 0 1 0 0 b

    1.2.3) COMPLEMENTO DE 2 (C2) BINRIO Para obt-lo, converter o nmero na notao de complemento de 1 e somar 1 ao seu resultado, ou seja: C2 = C1 + 1

    Exemplos: (4 dgitos binrios)

    Decimal - 1 - 2 - 3 - 4 - 8

    Binrio - 0001 - 0010 - 0011 - 0100 - 1000 Complemento de 1 - 1110 - 1101 - 1100 - 1011 - 0111 Complemento de 2 1111 1110 1101 1100 1000

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 7 de 173

    Mtodo da subtrao utilizando o complemento de 2 1. Converter o nmero negativo da subtrao em complemento de 2 (C2); 2. Somar o nmero positivo com C2 resultante do nmero negativo; 3. O carry final dever ser descartado do resultado, porm seu valor indicar a finalizao da operao:

    Se o carry final for 1 o resultado positivo e a operao est encerrada. Se o carry final for 0 o resultado negativo, portanto para obtermos valor o correto do mdulo do resultado negativo, devemos executar seu C2.

    Exemplo 1: (1110 - 0011) = ?

    - 0011 = C2 = 1101

    carry final = 1 1 1 1 1 0 + 1 1 0 1 0 0 1 1

    Carry final = 1, resultado da subtrao positivo, operao encerrada, descartar o carry final.

    Portanto o resultado da subtrao (1110 - 0011) = 0011.

    Exemplo 2: (0101 - 1100) = ?

    (- 1100) = C2 = (0100)

    carry final = 0 1 0 1 0 1 + 0 1 0 0 1 0 0 1

    Carry final = 0, resultado da subtrao negativo, portanto para se obter o mdulo da subtrao, dever se executar o C2 do resultado. (C2 do resultado 1001) = 0111

    Portanto o resultado da subtrao (0101 - 1100) = - 0111.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 8 de 173

    1.2.4) DESLOCAMENTO Multiplicao Binria pela Base Deslocando-se os algarismos de um nmero para a sua esquerda, o resultado ser o nmero multiplicado pela sua base (quando exceder os algarismos do nmero inicial, aumentar um algarismo a esquerda e completar o algarismo a direita com um digito 0).

    Exemplo: multiplicar o nmero (011b) por sua base 2 vezes. A base do nmero binrio = (2d), portanto teremos: Deslocamos os dgitos para a esquerda obtemos (110); O resultado esta correto pois: (011b) = (3d) x (2d) = (6d) = (110).

    Deslocamos os dgitos novamente para a esquerda e completamos o algarismo da direita com um digito (0) obtemos (1100b) Novamente o resultado esta correto, pois (110b) = (6d) x (2d) = (12d) = (1100).

    Diviso Binria pela Base De forma anloga se deslocarmos os algarismos de um nmero binrio para a direita sucessivamente, o resultado ser a diviso do nmero por sua base.

    Exemplo: Dividir o nmero 1100b por sua base 2 vezes. A base do nmero binrio = (2d), portanto teremos: Deslocamos os dgitos para a direita obtemos: 0110; O resultado esta correto pois: (1100b) = (12d) / (2d) = (6d) = 0110.

    Deslocamos os dgitos novamente para a direita obtemos: (0011b) Novamente o resultado esta correto, pois (0110b) = (6d) / (2d) = (3d) = (0011).

    Observao: O processo de diviso por deslocamento funciona somente com nmeros pares, pois se dividirmos um nmero impar pela base que (2d), resultar em um nmero inteiro mais meio, que no definido pela base binria. Exemplo: Dividir o nmero (1101b) por sua base. Deslocando para direita pela obtemos: (0110b) O resultado no est correto pois (1101b) = (13d) / (2d) = (6,5d) (0110b) = (6d)

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 9 de 173

    1.3) OPERAES LGICAS 1.3.1) Funo Lgica (E) ou (AND) Esta funo executa em sua sada (S) a associao e de duas ou mais variveis booleanas em sua entrada (Ex: A, B), ou seja somente se as todas as entradas forem 1 a sada ser 1. Sua representao algbrica para duas variveis S = A . B, se l S = A e B ou S = A and B.

    Tabela Verdade (Truth Table) Lgica de chaves Smbolo

    Entradas Sada A B S 0 0 0 1 0 0 0 1 0 1 1 1

    1.3.2) Funo Lgica (OU) ou (OR) Esta funo executa em sua sada (S) a associao ou de duas ou mais variveis booleanas em sua entrada (Ex: A, B), ou seja, se qualquer entrada assumir o valor 1 sua sada tambm ser 1. Sua representao algbrica para duas variveis S = A + B, se l S = A ou B ou S = A or B.

    Tabela Verdade (Truth Table) Lgica de chaves Smbolo

    Entradas Sada A B S 0 0 0 1 0 1 0 1 1 1 1 1

    1.3.3) Funo Lgica (NO) ou (NOT) ou (Complemento) Esta funo executa em sua sada (S) a inverso da varivel booleana de sua entrada (Ex: A), ou seja, se a entrada assumir o valor 1 sua sada ser 0, e vice -versa. A representao algbrica S = A, se l S = A barrado ou S = negao de A ou S = complemento de A.

    Tabela Verdade (Truth Table) Lgica de chaves Smbolo

    Entrada Sada A S 0 1 1 0

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 10 de 173

    1.3.4) Funo Lgica (XOU) ou (XOR) Esta funo executa em sua sada (S) a associao exclusiva ou de duas ou mais variveis booleanas em sua entrada (Ex: A, B), ou seja, se uma de suas entrada assumir o valor 1 sua sada tambm ser 1, mas se as duas assumirem o valor 1 a sada ser 0. A representao algbrica para duas variveis S = A B, se l S = A exclusiva B ou S = A exclusive B. Tabela Verdade (Truth Table) Lgica de chaves Smbolo

    Entradas Sada A B S 0 0 0 1 0 1 0 1 1 1 1 0

    A funo xor utilizada para gerar PARIDADE PAR, onde este um dos mtodos para deteco de erro em comunicao digital. Exerccios: Obtenha o resultado lgico em hexadecimal para as seguintes operaes: 1) 10d AND 4d; 2) 3Fh OR 80h; 3) 1001b XOR 1010b; 4) 13d OR 9Ch; 5) 11000010b AND FFh; 6) 24h OR 0d; 7) 82h XOR 13h; 8) 10101010b AND 55h; 9) 5d OR 3h; 10) 10111100b AND 00001010b; 11) NOT 5Ah; 12) NOT 13d. Respostas: 1) 0d; 2) BFh; 3) 0011b; 4) 9dh = 157d; 5) 11000010b = C2h; 6) 24h= 36d; 7) 91h; 8) 0b = 0h; 9) 7d = 7h; 10) 1000b; 11) A5h; 12) 2d.

    S

    A

    A

    B

    B

    E

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 11 de 173

    2.1) INTRODUO Os circuitos digitais at agora so portas lgicas que em conjunto formam lgica combinacional, onde as sadas em qualquer instante de tempo so inteiramente dependentes das entradas presentes neste tempo. Embora todo sistema digital seja constitudo por circuitos combinacionais, muitos sistemas encontrados na prtica tambm incluem elementos de memria, estes requerem que o sistema seja descrito em termos de lgica seqencial. Um diagrama de blocos de um circuito seqencial mostrado na figura 2.1 a seguir. Este consiste de portas de lgica combinacional que recebem sinais binrios de entradas externas e de sadas de elementos de memria e geram sinais de sadas externas e de entradas de elementos de memria.

    Figura 2.1 - Diagrama de blocos de um circuito seqencial

    Um elemento de memria um dispositivo capaz de armazenar um bit de informao. A informao binria armazenada em elementos de memria pode ser mudada pelas sadas do circuito combinacional. As sadas dos elementos de memria, so ligadas nas entradas dos gatilhos no circuito combinacional. O circuito combinacional executa um processo de operao de informao especfica, parte da qual usada para determinar o valor binrio para ser armazenado em elementos de memria. As sadas dos elementos de memria so aplicados no circuito combinacional e fixam em parte as sadas do circuito. O processo claramente demonstra que as sadas externas de um circuito so uma funo no somente das entradas externas, mas tambm do estado presente de elementos de memria. O prximo estado dos elementos de memria funo das entradas externas e estados presentes. Assim, um circuito seqencial especificado por uma seqncia de tempo das entradas, e estados internos. Os circuitos seqenciais podem operar sncrona ou assincronamente. Nos sistemas assncronos, as sadas dos circuitos lgicos podem mudar de nvel lgico, sempre que o nvel de uma ou mais deste tambm mude. 2.2) FLIP-FLOPS ou BI-ESTVEIS Os elementos de memria so usados em circuitos de seqncia que usam clock e so chamados de flip-flop, onde estes circuitos so clulas binrias capazes de armazenar um bit de informao. Um circuito flip-flop tem duas sadas, uma para o valor normal e uma para o valor complementar do bit armazenado neste.

    Nos sistemas sncronos, os instantes de tempo nos quais qualquer das sadas pode ser alterada, so determinados por um sinal denominado clock. Este sinal, via de regra, um trem de pulsos retangular ou uma onda quadrada.

    Estes circuitos tambm so chamados de bi-estvel, por possurem somente duas sadas provveis e estveis no tempo.

    CAPTULO 2 - CIRCUITOS SEQNCIAIS

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 12 de 173

    2.3) LATCHES So circuitos bi-estvel capazes de guardar um bit de informao, assim podem ser chamados de circuitos bsicos de memria.

    2.3.1) LATCH SR COM PORTAS NOR (Observao: S = Set = Levar para 1, R = Reset = Zerar)

    Figura 2.2 - Latch SR com portas NOR

    Tabela Verdade (Truth Table) Smbolo

    Entradas Sadas

    S R Q Q 0 0 Q(t-1) * Q(t-1) * 0 1 0 1

    1 0 1 0

    1 1 No Desejado pois Q = Q = 0 * Mantm o estado anterior das sadas

    2.3.2) LATCH SR COM PORTAS NAND

    Figura 2.3 - Latch SR com portas NAND

    Tabela Verdade (Truth Table) Smbolo Entradas Sadas

    S R Q Q 0 0 No Desejado pois Q = Q = 1 0 1 0 1

    1 0 1 0

    1 1 Q(t-1) * Q(t-1) * * Mantm o estado anterior das sadas

    S Q

    R Q

    S Q

    R Q

    Observao: O smbolo se refere converso do Latch SR Nand para a tabela do Latch considerado como padro que o Latch OR.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 13 de 173

    2.3.3) LATCH SR COM ENABLE (Observao: EN = Enable = Habilitar)

    Figura 2.4 - Latch SR com Enable

    Tabela Verdade (Truth Table) Smbolo

    Entradas Sadas

    EN S R Q Q 0 X** X** Q(t-1) * Q(t-1) * 1 0 0 Q(t-1) * Q(t-1) * 1 0 1 0 1

    1 1 0 1 0

    1 1 1 No Desejado pois Q = Q = 0 * Mantm o estado anterior das sadas;

    ** A sada independe do valor destas entradas.

    2.3.4) LATCH D

    Figura 2.5 - Latch D

    Tabela Verdade (Truth Table) Smbolo

    Entrada Sadas

    D Q Q 0 0 1

    1 1 0

    Observao: Para implementarmos um latch D com enable basta substituir o lacth RS comum por um com entrada enable.

    S Q

    C = EN

    R Q

    D Q

    Q

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 14 de 173

    2.4) FLIP- FLOPS Os sinais de sada de umo latch variam instantaneamente com a combinao de suas entradas durante o pulso alto na entrada, j em flip-flops as sadas variam somente durante a transio da entrada de controle (clk) esta transio chamada disparo, trigger ou clock (sincronizador de tempo).

    Figura 2.6 - Circuito Digital com uso de Flip-flop

    O uso de latches em circuitos seqenciais pode causar srios problemas, uma vez que a entrada enable permanea em nvel alto, a sada dada pela combinao instantnea das entradas que so geradas por uma lgica combinacional das sadas do Latch. Esta realimentao pode ocasionar oscilaes no sinal de sada e como resultado os sinais de sada do sistema sero indeterminados. Um bom exemplo o circuito da figura 2.7.

    Figura 2.7 - Circuito Digital com realimentao e sua tabela caracterstica

    Existem duas maneiras de combinarmos latches para formarmos um flip-flop. 1) Combinar duas latches fazendo com que o estado das sadas s mude no nvel alto ou baixo da entrada de clock. Tais circuitos so chamados flip-flop mestre-escravo. 2) Produzir um flip-flop que seja disparado somente a transio do sinal de clock (0 para 1) ou (1 para 0).

    2.4.1) FLIP-FLOP SR MESTRE - ESCRAVO

    Figura 2.8 - Flip-Flop RS Mestre-Escravo

    Como mostra a figura 2.8 este flip-flop consiste de duas latches e um inversor, o latch a esquerda chamada mestre e o da direita escravo. Quando a entrada de clock 1 o mestre est habilitado, portanto variaes na entrada produzem variaes na varivel intermediria Y, o escravo por sua vez est desabilitado atravs do inversor. Quando a entrada do clock zero o processo se inverte e o mestre que est desabilitado, mantendo Y e Y fixos, que por sua vez produziram as sadas Q e Q do escravo. Este tipo de combinao para se produzir um flip-flop chamado flip-flop sensvel a nvel.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 15 de 173

    2.4.2) FLIP-FLOP JK MESTRE-ESCRAVO O flip-flop JK uma modificao realizada no "RS", para evitar termos o estado proibido fazendo com que esta combinao das entradas tenha uma funo especfica, isto , o complemento da sada.

    Figura 2.9 - Flip-Flop JK Mestre-Escravo

    Tabela Verdade (Truth Table) Entradas Sadas

    CLK J K Q Q

    Observao 0 X* X* Q(t-1) Q(t-1) 1 0 0 Q(t-1) * Q(t-1)

    Mantm Sada

    1 0 1 0 1 ----------- 1 1 0 1 0 ----------- 1 1 1 Q(t-1) Q(t-1) Inverte

    * A sada independe do valor destas entradas.

    2.4.3) FLIP-FLOP EDDGE-TRIGGERED Um flip-flop disparado na borda ignora o pulso de sincronismo, enquanto este possui um nvel constante e dispara somente na transio do sinal de sincronismo. Os flip-flops disparados na transio positiva (0 para 1) so ditos sensveis a borda de subida (positive edge), enquanto que os trigados a transio negativa (1 para 0) so sensveis a borda de descida (negative edge). A figura 2.10 mostra o diagrama lgico de um flip-flop tipo D sensvel borda de subida. Pode-se observar que este circuito tem a mesma forma do mestre-escravo, porm o latch mestre substituda por uma tipo D e um inversor adicionado. Com o latch mestre do tipo D este flip-flop exibe um comportamento de disparo sensvel borda ao invs de nvel (mestre-escravo). Quando a entrada de clock igual a zero, o latch mestre habilitado e transfere o valor da entrada D, enquanto que o latch escravo esta desabilitada fazendo com que a sada no mude. Quando uma transio positiva ocorre, a entrada de clock vai para 1. Isto desabilita o mestre e habilita o latch escravo para que esta transfira para a sada do flip-flop o valor do mestre. Assim o valor da sada do flip-flop o valor da entrada imediatamente anterior transio de subida do sinal de clock. Enquanto a entrada de clock estiver em nvel alto sada permanece inalterada, pois o mestre est desabilitado e finalmente a transio negativa (1 para 0) , o escravo desabilitado mantendo a sada constante.

    Figura 2.10 - Diagrama lgico de um flip-flop tipo D sensvel borda de subida.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 16 de 173

    2.4.4) FLIP-FLOP JK SENSVEL A BORDA DE SUBIDA

    Figura 2.11 - Flip-flop tipo JK sensvel borda de subida.

    2.4.5) FLIP-FLOP T O T (toggle) flip-flop muda de estado a cada pulso de clock , pode ser construdo a partir de um flip-flop tipo T ou flip-flop JK.

    Figura 2.12 - Flip-flop tipo T .

    Observao: Entradas Assncronas Flip-flops freqentemente possuem entradas especiais para preset ou clear da sada assincronamente, isto , independentemente da entrada de clock. Tambm podem ser ativadas em nvel alto ou baixo dependendo do dispositivo utilizado, comercialmente existe uma grande variedade de flip-flops com entradas diretas ativadas em nvel alto ou baixo, que podem ser escolhidos convenientemente conforme a aplicao.

    2.5) GLOSSRIO - FLIP FLOPS E REGISTRADORES Active-Low (Ativo em baixo): A entrada ou a sada de um terminal deve possuir o sinal LOW para estar habilitado ou ativo. Asynchronous (Assncrono): a condio em que a sada de um dispositivo troca seu estado instantaneamente com a mudana da entrada independente do sinal de relgio. Clock (Relgio): Os dispositivos usam sinais digitais peridicos, que altera seu estado de 0 para 1, e de 1 para 0, constantemente (chamada na prtica de onda quadrada, mas que normalmente por no ter simetria uma onda retangular). Combinational Logic (Lgica Combinacional): usado por muitos componentes bsicos (AND, OR, NOR, NAND) para formar funes lgicas mais complexas. Complement (Complemento): Estado digital oposto, ou seja, 0 sinal 0 o complemento do 1 e vice-versa.

    Digital State (Estado digital): Nvel lgico de um circuito digital. Disabled (Desabilitado): Condio na qual a entrada e a sada de um circuito digital no esto aptas a aceitar ou transmitir estados digitais.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 17 de 173

    Edge Triggered (disparo pela borda): O dispositivo digital s estar habilitado a aceitar entradas ou alterar sadas somente na borda positiva ou negativa do sinal de controle ou de relgio. Enabled (Habilitado): A condio na qual o circuito est apto a receber ou transmitir estados digitais. Flip Flop: Circuito capaz de armazenar nvel lgico 0 ou 1 baseado em nveis lgicos seqenciais. Truth Table (Tabela verdade): Indica as combinaes mais importantes de entrada e sada dos estados de um dispositivo. Latch: Capacidade de armazenar um particular estado digital. O circuito armazena o nvel lgico mesmo depois de alterada a entrada. Level Triggeres (Nvel do idisparador): veja Pulse Triggered. Master-Slave (Mestre-Escravo): Dispositivo de controle constitudo de duas sees, seo designada Mestre que recebe os dados enquanto o relgio alto (HIGH), e a seo designada Escravo que recebe os dados do Mestre quando o relgio vai a baixo (LOW). Negative Edge (Borda negativa): Quando a borda do relgio ou o pulso do trigger transita de HIGH para LOW. Noise (Rudo): Qualquer flutuao na tenso geradora momento de chaveamento, cargas eletrostticas podem causam irregularidades nos nveis das tenses: HIGH e LOW de um sinal digital. Pode provocar erros nas leituras dos nveis lgicos. Octal (ctuplo): Um grupo de oito. Um flip flop octal constitudo de 8 flip flops em um encapsulamento. Positive Edge (Borda positiva): Quando a borda do relgio ou pulso de trigger transita de LOW para HIGH. Pulse Triggered (Pulso disparador): O termo se d ao dispositivo digital que pode aceitar pulsos de entrada durante os sinais de controle ou de relgio. Register (Registrador): Grupo de flip flops ou latches que so usados para armazenar palavras binrias e so controlados por um relgio ou sinal de controle comum. Reset (Zerar): A condio que produz o estado digital LOW. Sequential Logic (Lgica seqencial): Circuito digital que envolve o uso de seqncias d pulso de tempo em conjunto com dispositivos de armazenamento como flip flops e latches e CIs funcionais como contadores ou registradores de deslocamento. Set: A condio que produz o estado digital HIGH. Setup Time (Tempo de ajuste): Tempo durao da borda ativa do pulso de trigger (sinal de controle), necessrio para estabilizar o sinal de entrada do dispositivo digital. Store Register (Registro de armazenamento): Dois ou mais circuitos de armazenamento de dados (como flip flops ou latches) usados em conjunto para armazenar bits de informaes. Strobe Gates (Portas de controle): Um componente de controle usado para habilitar ou desabilitar entradas ou sadas de um dispositivo digital particular. Synchronous (Sncrono): A condio na qual a sada de um dispositivo operar somente em sincronismo com um pulso especfico ou sinal de trigger - HIGH ou LOW. Toggle (Troca): Em um flip flop, toggle quando o nvel lgico da sada se inverte. Transition (Transio): Instante da transio do estado digital HIGH para LOW ou LOW para HIGH. Transparent Latch (Latch transparente): Dispositivo assncrono no qual as sadas armazenaro os estados mais recentes das entradas. A sada imediatamente segue os estados das entradas sem esperar a chegada do pulso de trigger e mantm os estados mesmo depois das entradas serem removidas ou desabilitadas. Trigger (Disparo): O sinal de controle de entrada de um dispositivo digital usado para especificar o instante em que o dispositivo aceita as entradas ou muda as sadas.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 18 de 173

    2.6) APLICAES - USO DO FLIP- FLOP OCTAL TIPO D COM MICROCONTROLADOR Muitos dos latches e flip-flops bsicos esto disponveis em CIs octais. Nesta configurao, esto oito latches ou flip flops em um simples encapsulamento. Se todos os oitos latches ou flip flops so controlados por um relgio comum, isto chamado de registrador de 8 bits. Um exemplo de registrador de 8 bits a base de flip flops o CMOS 74HCT273 de alta velocidade (disponvel nas famlias TTL LS e S). O 74273 contm 8 flip flops do tipo D, todos controlados por um relgio comum (Cp) trigados pela borda. Na borda positiva do Cp, os 8 bits de dados de D0 a D7 so controlados nos 8 flip flops do tipo D e a sada de Q0 a Q7. O 74273 possui um reset mestre (Mr) ativo em baixo (LOW), o qual proporciona um reset assncrono para todos os flip flops. Uma aplicao do 74273 D flip flop mostrada a seguir. usado o registrador update e hold. A cada 10s ele recebe um pulso de relgio do microcontrolador 68HC11 da Motorola. Os dados esto em D0 - D7 e a cada borda positiva do relgio so dirigidos para os registradores e sadas Q0 - Q7.

    Figura 2.13 - Termmetro digital microprocessado

    O sensor de temperatura analgico usado para fornecer uma tenso de sada proporcional temperatura em graus centgrados. O microcontrolador 68HC11 tem a capacidade de ler valores de tenso analgica e converter em valor digital equivalente. O software do microcontrolador converte a palavra digital em cdigo BCD de sada para o mostrador. A sada BCD do 68HC11 est em constante atualizao de acordo com as flutuaes da temperatura. Uma maneira de estabilizar essas flutuaes dos dados o uso de um registrador controlado, como o 74HCT273. O registrador s envia os dados para a sada a cada 10s, facilitando assim a leitura.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 19 de 173

    2.7) REGISTRADORES Grupo de flip-flop que tem por funo armazenar bits, ou seja, se 1 flip-flop armazena 1 bit, n flip-flops armazenaro n bits

    Registradores de Deslocamentos Sncronos

    Funo: Deslocamento da informao contida para a esquerda ou para a direita.

    Aplicaes: Transmisso Serial; Converso srie paralela; Multiplicao e Diviso por 2.

    Figura 2.14 - Diagrama Lgico de um registrador de deslocamento universal.

    Funo de Entrada dos Flip flops:

    DA0 = ILSL + X0P + A1SR

    DA1 = A0SL + X1P + A2SR

    DA2 = A1SL + X2P + A3SR

    DA3 = A2SL + X3P + IRSR

    Descrio:

    Registradores so necessrios em sistemas digitais para armazenar temporariamente um grupo de bits. Bits de dados (1s e/ou 0s) necessitam em sistemas digitais serem temporariamente copiados, movidos ou deslocados de uma ou mais posies para a direita ou para a esquerda. Um registrador de deslocamento facilita a manipulao desses bits de dados.

    Muitos registradores de deslocamento podem lidar com movimento paralelo de bits, assim como movimento serial, e podem ser usados para a converso paralela e serial paralela.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 20 de 173

    Aplicaes de Registradores de Deslocamento

    Converso paralela para serial;

    Registrador em anel ou recirculante ;

    Converso serial para paralela;

    Contador em anel e Contador Johnson Shiff.

    Exemplo: O Registrador de deslocamento 74164 8 bits entrada serial, sada paralela, possui duas entradas seriais (DSa e DSp), lidas em sincronismo com a borda positiva do clock (CP). Cada borda do pulso positivo deslocar os bits de dados uma posio para a direita. O MR ativo em LOW, isto , ele zera todos os flip-flops quando possui pulso LOW.

    Figura 2.15 - Diagrama de bloco do registrador 74164.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 21 de 173

    As memrias so circuitos eletrnicos capazes de reter informaes sob a forma digital, podem reter 1 bit e neste caso especial podem ser constitudos, por exemplo, de um Flip-Flop ou armazenar vrios bits formando palavras ou dados. Se este dado possuir 8 bits chamado BYTE, se possuir 16 bits chamado WORD mas tambm pode conter quaisquer outras quantidades de bits. Uma memria possui lugar para armazenar vrios dados, a estes lugares so chamados de Endereos.

    3.1) TIPOS DE MEMRIAS RAM (Random Access Memory) memria de acesso aleatrio, permite leitura e escrita de dados nos diferentes endereos. ROM (Read Only Memory) memria somente de leitura, permite apenas que seu contedo seja lido. Estas memrias so programadas de fbrica e no podem ter seus contedos modificados. PROM (Programable Rom) memria ROM programvel. So circuitos de memria que podem ser programados apenas uma vez e depois desta programao no mais possvel escrever na memria, apenas ler esta memria. EPROM (Erase Prom) memrias ROM que podem ser programados e apagados com luz ultra violeta. EEPROM ou E2PROM (Eletric Eprom) memrias EPROM que tambm podem ser apagadas eletricamente. RAM (SRAM) Em uma memria do tipo RAM, uma clula bsica capaz de armazenar apenas um bit, que nada mais que o Flip-Flop do tipo D ou um Latch. Observao: A memria RAM retm dados somente enquanto estiver alimentada. As demais retm dados mesmo aps a falta de energia.

    3.2) ARQUITETURA INTERNA DE MEMRIAS

    Figura 3.1 - Latch (FLip-Flop D) com clock (gate) sensvel ao nvel.

    Na figura 3.2, o sinal de clock necessrio para escrever na memria, o dado de entrada (D) e o dado de sada (Q). Para ler e escrever numa memria seriam necessrios muitos pinos, porm s possvel ler ou escrever nunca ler e escrever simultaneamente, para isto ser possvel e diminuir pela metade o nmero de pinos de uma clula de memria foi desenvolvido com o esquema a seguir.

    Figura 3.2 - Latch (FLip-Flop D) com clock (gate) sensvel ao nvel e buffer tri-state.

    O terminal central do buffer o controle, se ativo est funcionando, caso contrrio est em tri-state.

    CAPTULO 3 - MEMRIAS

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 22 de 173

    O terminal /RD)WR(Ler / Escrever controla a funo do pino D0: Se estiver em 1 D0 sada (em nvel alto - Ler o dado) Se estiver em 0 D0 entrada (nvel baixo - Escrever o dado). Para projetar memrias de vrios bits e vrios endereos duas podem ser as estratgias de arranjos dos latchs de memria, em linha ou em matriz.

    3.2.1) EM LINHA

    Figura 3.3 - Memria de duas posies (endereos) por dois bits (dados).

    Na figura 3.3 um decodificador responsvel por selecionar apenas uma linha com clulas de memria (C). Nesta linha cada clula responsvel por um bit do dado armazenado. Se desejarmos mais bits por dado, basta adicionar mais colunas ao desenho acima, se desejarmos mais posies de memria, basta adicionar mais linhas. Este arranjo entretanto necessita de uma quantidade muito grande de portas lgicas para o decodificador quando o nmero de endereos aumenta, por exemplo em 256 posies, seriam necessrios 256 portas AND no decodificador e por isto os projetistas desenvolveram uma arquitetura de endereos em matriz. 3.2.2) EM MATRIZ

    Figura 3.4 - Memria de quatro posies por dois bits.

    A vantagem da utilizao de circuitos em matriz est no menor nmero de componentes gastos para fazer o mesmo circuito do arranjo em linha. Por exemplo, em 256 posies de memria, seriam necessrios dois decodificadores de 16 portas AND (16 x 16 = 256). medida que nmero total de endereos da memria vai aumentando, aumenta tambm a vantagem da utilizao arranjo em matriz. No arranjo em matriz, esboado na figura 3.4, cada interseo de linha e coluna proveniente dos decodificadores utilizada para controlar o tri-state de cada clula de memria. No arranjo em linha o tri-state controlado por apenas um bit, no arranjo em matriz cada tri-state controlado por dois bits. Neste arranjo, se desejarmos mais bits em cada posio de memria, basta ligar mais clulas de memria em paralelo em cada interseco linha e coluna. Para aumentar o nmero de endereos basta aumentar o nmero de linhas ou de colunas provenientes dos decodificadores.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 23 de 173

    Em esquemas, uma memria representada por um retngulo com os pinos de dados, endereos e controles devidamente assinalados. A nomenclatura usual denota os pinos de endereos pela letra A e um sub ndice que denota o bit correspondente. Para dados utiliza-se a letra D tambm com um subndice correspondente ao bit em questo. Para os sinais de controle os nomes so mais variados porm muito comum encontrar CS (chip select) para o controle do tri-state e /R)W( /Read)Write( para indicar a leitura ou a escrita nesta memria.

    Figura 3.5 - Smbolo para uma memria genrica de (2 M+1) endereos por (n+1) bits de dados.

    O terminal Select Chip )CS( usado para ligar vrias memrias em paralelo (para aumentar a capacidade total de endereos). Internamente cada pino do chip de memria ligado a uma chave analgica e que no )CS( estiver ativo, todas as chaves esto ligadas e o chip est ligado no circuito. Se

    )CS( estiver desativado, ento todas as entradas e sadas estaro desligadas ou seja em tri-state, permitindo que outras memrias sejam ligadas no circuito. Para aumentar a capacidade de uma memria, em termos de bits ou de posies, podemos associ-la com outras memrias.

    3.3) ASSOCIAO DE MEMRIAS A associao de memrias tem o intuito de aumentar sua capacidade.

    3.3.1) PARA AUMENTAR O NMERO DE SADAS Utilizam-se os mesmos endereos (A0 - An), e os controles )CS( e /R)W( em paralelo as memrias, assim teremos suas atuaes simultneas, portanto com este processo teremos o aumento de sadas.

    Figura 3.6 - Duas memrias de 16 endereos e 4 bits, formamos uma memria de 16 endereos e 8 bits.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 24 de 173

    3.3.2) PARA AUMENTAR O NMERO DE ENDEREOS Utilizam-se neste caso o terminal de controle )CS( para especificar qual das memrias estar em funcionamento, colocando todos os terminais restantes em paralelo, inclusive os terminais de barramento de entrada/sada (I/O). A memria ativada pelo )CS( , estar com seus terminais de (I/O) ativados e impondo-se ao barramento (D0 -Dn), e a memrias desativadas estaro com seus terminais de (I/O) em tri-state.

    Figura 3.7 - Duas memrias de 16 x 8 formamos a memria de 32 x 8, com o endereo A4 ligado ao )CS( .

    Observao: A associao mais comumente utilizada para memrias a Associao Mista, ou seja, com aumento do nmero de sadas e de endereos ao mesmo tempo.

    3.4) CONSTRUO DE BANCOS DE MEMRIAS

    3.4.1) BANCOS DE MEMRIAS Freqentemente quando lidamos com sistemas microprocessados torna-se de especial relevncia o conhecimento a respeito de bancos de memria e faixas de endereamento.

    Exemplo: Memria 2764 (EPROM de uso geral): 27 = Prefixo 64 = 64 Kbits

    Como a memria possui 64 Kbits e est organizada em palavras de 8 bits, ela possui, na verdade, 64Kbits / 8 bits = 8Kbytes. A afirmao acima nos diz que existem 8K = 2n endereos distintos.

    Sendo assim, a memria possui 2n = 8192 bytes, n = 13 pinos de endereamento. E atravs desses pinos de endereamento que informamos memria a localizao exata da informao que ser lida ou escrita na memria. Esses pinos so nomeados de A0 at A12.

    Essa memria possui o seguinte mapeamento de endereos: Barramento de Endereamento

    A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 HEXADECIMAL

    0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 1 0001 0 0 0 0 0 0 0 0 0 0 0 1 0 0002 . .

    . .

    . .

    1 1 1 1 1 1 1 1 1 1 1 1 1 1FFF

    Em cada um desses endereos cabe uma palavra de 8 bits (byte).

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 25 de 173

    Essa memria pode ser esquematizada como na figura 3.8.

    Figura 3.8 - Direo dos terminais da memria 2764

    Exerccio: Construa o mapeamento das memrias : 27256 (EPROM) e 6016 (RAM).

    3.4.2) MAPEANDO VRIAS MEMRIAS Quando um sistema possui mais memrias compartilhando o mesmo barramento de dados, torna-se necessrio fazer um mapeamento tal que as memrias no se sobreponham, ou seja, que nunca acontea de duas ou mais estarem ativas simultaneamente. Exemplo: Deseja-se construir um sistema que possua uma EPROM 2716 e uma RAM 6064. EPROM 2716 RAM 6064 16 Kbits / 8 2 Kbytes 2n = 2048 n = 11 (A0 at A10)

    64 Kbits / 8 8 Kbytes 2n = 8192 n = 13 (A0 at A12)

    Temos nmximo = 13 (RAM), utilizaremos para o mapeamento n = 14 para no haver conflito no acesso. Tabela do mapeamento de memria

    A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 HEXADECIMAL 0 X X 0 0 0 0 0 0 0 0 0 0 0 0000 ou 0800 ou

    1000 ou 1800

    .

    . . EPROM . .

    0 X X 1 1 1 1 1 1 1 1 1 1 1 07FF ou 0FFF ou 17FF ou 1FFF

    1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000 . .

    . . RAM . .

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 3FFF

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 26 de 173

    Observe que a EPROM no ir utilizar A11 e A12, sendo esses valores irrelevantes para a formao do endereo. Desse modo, pode-se acessar toda a EPROM usando endereos entre 0000h e 07FFh, ou entre 0800h e 0FFFh, ou entre 1000h e 17FFh, ou finalmente entre 1800h e 1FFh. Todas essas 4 faixas de endereamento acessam a EPROM e so redundantes.

    Figura 3.9 - Circuito para o mapeamento da RAM 6064 e EPROM 2716. Exerccios: 1. No exemplo anterior, inverta o posicionamento, ou seja a RAM antes da EPROM. 2. Projete um sistema que possua o seguinte mapeamento: 0000h a 3FFFh EPROM 1 7000h a 7FFFh EPROM 2 8000h a FFFFh RAM

    3.5) CONSTRUO DE MEMRIAS 3.5.1) ROM As ROMs so constitudas sob uma matriz como a mostrada na figura 3.10.

    Figura 3.10 - Clula bsica da Memria ROM. Nesta situao, a tenso de alimentao (VCC) levada para o terminal (D0) atravs do diodo. e a tenso de terra at o terminal (D1) pois no h outra ligao em (D1) alm desta atravs do resistor.

    A0 D0

    EPROM D7

    A10

    CS RD

    A0 D0

    RAM D7

    A10 A11 A12

    CS RD WR

    A13 A12 A11 A10 A0

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 27 de 173

    Figura 3.11 - Memrias ROM com vrios endereos. O mapa (com contedos e endereos) desta memria est representado na tabela a seguir.

    Endereo Contedo 0 5

    1 0

    2 F

    3 A

    3.5.2) PROM Na construo de memrias PROM so colocados diodos em todas as intersees e em srie com eles so colocados fusveis. Cada fusvel pode ser queimado colocando um 0 no bit correspondente no endereo selecionado. Uma vez programadas as PROMs no mais podero ser reprogramadas pois os fusveis queimados no podem ser restitudos.

    Observaes: Tanto a ROM como a PROM podem ser colocadas em tri-state (como a RAM) por meio de um pino

    de chip select. Pinos de leitura e escrita no existem pois os dados s podem ser lidos. No caso da PROM um sinal de 15V utilizado para queimar os fusveis desejados, programando a

    memria.

    3.5.3) EPROM Para uso nas EPROMs componentes especiais sensveis luz ultravioleta foram desenvolvidos, permitindo que os dados gravados nesta PROM sejam apagados sobre a incidncia desta luz, tornando possvel reescrever novos dados. Para que a funo de apagamento de dados seja viabilizada, existe nesta memria uma janela de cristal transparente sobre os componentes para que a luz ultravioleta recebida. Com o tempo se esta janela de cristal ficar aberta e exposta a luz os dados podem se apagar, por este motivo quando esta memria estiver com seus dados gravados, deve-se fechar a janela com algum material opaco.

    3.5.4) EEPROM (E2PROM) O desenvolvimento de circuitos de tornou este tipo memria a caracterstica de ser apagada com um pulso eltrico da ordem de 10 volts. Isto uma grande vantagem sobre as EPROMs pois o processo de apagar a memria rpido (com luz ultravioleta demora vrios minutos) e no requer componentes especiais como lmpada de ultravioleta. Atravs desta inovao foi possvel a retirada das janelas de cristal que encareciam as memrias EPROMs.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 28 de 173

    3.5.5) DRAM As memrias DRAMs (dimanic RAM) so menores, mais baratas e mais rpidas que as SRAMs (memrias RAM estticas construdas atravs da incorporao de um flip-flop para cada bit), pois 1 bit pode ser armazenado em um nico capacitor, atravs do acionamento de um nico transistor (figura 3.12). Devido a corrente parasita dos capacitores que compe sua construo, as DRAMs necessitam ser dinmica, ou seja, necessrio atualizar os dados contidos nestas memrias periodicamente, este procedimento conhecido como REFRESH. Devido ao baixo custo destas memrias, as DRAMs se popularizaram rapidamente

    Figura 3.12 - Clula da memria DRAM.

    Legendas da Figura ADD - Address (Endereo) RAS - Row Address Strobe (Habilitao do endereo de linha) CAS - Column Address Strobe (Habilitao do endereo de coluna) WE - Write Enable (Habilitao de Escrita) Data In - Data Input (Dados de entrada) Data Out - Data Output (Dados de sada)

    Figura 3.13 - Esquema interno de uma 41256 (DRAM de 256K x 1) e os sinais necessrio para controle.

    Ciclo de Refresh A operao de refresh depende muito da memria, na 41256 ela deve acontecer a cada 4 ms (no mximo) e deve ser executado endereando-se metade das linhas da matriz de memria (neste caso 256 linhas em 4 ms = 15,6 ms/linha). Como podemos ver pela figura 3.13, s possui 9 terminais de endereo para os 256 Kbits de memria, mas isto resolvido pelo sistema de endereo por linhas e colunas (RAS e CAS se encarregam de indicar se o endereo do barramento de linhas ou de colunas). Um esboo de circuito para controlar estas memrias pode ser visto na figura 3.14, mas alguns circuitos integrados so desenvolvidos exclusivamente para este trabalho. O esquema abaixo utiliza a 4164 que possui 64 Kbits e 8 linhas de endereo.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 29 de 173

    Figura 3.14 - Circuito de controle para a memria DRAM 4164. Observao: Com relao ao circuito da figura 3.14, note que o endereo deve ser de 16 bits multiplexado em palavras de 8 bits.

    3.5.6) PLAS ou PLDs So Array Lgico Programvel e pode conter milhares de componentes internos, algumas variantes existem e a programao pode ser feita na fbrica com mascaras especiais ou com elementos fusveis ou com fios. So componentes capazes de gerar lgicas complexas com um nico chip. Estes componentes tambm precisam ser programados funcionando de forma similar as PROM. Atualmente existem infinidades de componentes deste tipo, capazes inclusive de conter flip-flops, contadores e outros componentes mais complexos. Alguns destes circuitos possuem internamente vrios circuitos independentes e completos que podem ser interligados de vrias formas.

    Todas as entradas de A0 a A4 so interligadas em todas as entradas das portas AND e todas as sadas das portas AND so interligadas nas entradas das portas OR

    As funes de OUT0 at OUTN - so escritas na forma de SOP. Figura 3.15 - Exemplo simples de um circuito capaz de gerar qualquer lgica de 4 bits.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 30 de 173

    4.1) CONVERSOR DIGITAL/ANALGICO (D/A) A tarefa de um conversor D/A a de transformar entradas digitais em sada analgica. Um nmero binrio introduzido nas entradas esquerda com uma tenso de sada correspondente direita. A tabela-verdade detalha um conjunto de possveis entradas e sadas do conversor D/A.

    Figura 4.1 - Funo do conversor D/A .

    Tabela Verdade

    Consideremos a tabela-verdade para o conversor D/A. Se cada uma das entradas for BAIXA, a tenso de sada (Vout) ser 0 V conforme definido na coluna (fila 1) da tabela. A (fila 2) mostra apenas a entrada A (1s) sendo ativada por um nvel ALTO. Com a entrada como LLLH (0001), a sada do conversor D/A 1 V. A (fila 3) mostra apenas a entrada B ativada (0010). Isto produz uma sada de 2 V. A (fila 5) mostra apenas a entrada C ativada (0100), isto produz uma sada de 4 V. A (fila 9) mostra apenas a entrada D (1000) ativada, produzindo uma sada de 8 V do conversor D/A. Notar que as entradas (D, C, B, A ) so ponderadas. A ponderao relativa de cada entrada dada como 8 para a entrada D, 4 para a entrada C, 2 para a entrada B e 1 para a entrada A na figura 4.1. O conversor D/A consiste em duas partes funcionais. O conversor dividido numa rede de resistores e num amplificador de soma. A rede de resistores pondera adequadamente as entradas 1s, 2s, 4s e 8s, enquanto o amplificador de soma escala a tenso de sada de acordo com a tabela verdade.

    2s

    CAPTULO 4 - CONVERSORES A/D E D/A

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 31 de 173

    Figura 4.2 - Diagrama em blocos de um conversor D/A.

    Tipicamente usa-se um amplificador operacional como o amplificador de soma num conversor D/A (figura 4.3). O conversor D/A est dividido em dois circuitos, a rede de resistores e o amplificador somador. A tenso (Vin) de entrada aplicada atravs das chaves de entrada (D, C, B, A). O resistor R4 (MSB) o resistor de valor mais baixo. O resistor R3 o dobro da resistncia de R4. Tambm o resistor R2 o dobro da resistncia R3, e assim por diante. Observao: O ganho de tenso (Av = Vsada/Ventrada) do amplificador operacional montado na figura 4.3 dado pela relao (Rf/Rn), assim sendo, Av = Rf/Rn.

    Figura 4.3 - Conversor bsico digital-analgico.

    A converso de nmeros binrios (valores digitais) para nmero analgico (valor analgico) realizada por circuitos lineares capazes de somar tenses ou correntes com pesos proporcionais aos pesos dos bits que produziram esta corrente ou tenso. Sero abordadas duas tcnicas muito empregadas: Correntes ponderadas e rede R-2R. Alguns CIs realizam a converso D/A fazendo uso destas tcnicas. Estes CIs ainda oferecem recursos como: trabalhar com aritmtica com sinal (nmeros binrios positivos negativos), em complemento de dois e ajuste de ganhos (escalas de tenso de sada).

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 32 de 173

    4.1.1) CORRENTES PONDERADAS

    Figura 4.4 - Circuito de um conversor A/D por correntes ponderadas.

    O circuito das chaves, no exemplo anterior, poderia ser substitudo diretamente pelas entradas digitais e neste caso VCC corresponderia ao nvel lgico 1 destes circuitos digitais. Entretanto como sabemos a sada digital zero (0) ou um (1) no corresponde a tenses com valores exatos como +5V ou +0V. Existe uma faixa de valores possveis para 1 lgico e 0 lgico que podem vir a produzir tenses analgicas diferente da desejada. Para evitar este tipo de problema podemos usar transistores funcionando como chave (aberto ou saturado) para comutar uma tenso fixa a cada entrada do circuito somador como mostrado no exemplo a seguir.

    Figura 4.5 - Circuito de um conversor A/D por correntes ponderadas utilizando transistores como chave.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 33 de 173

    4.1.2) REDES R-2R

    Figura 4.6 - Circuito de um conversor A/Dcom redes R - 2R. Para resolver este problema, basta usar o Teorema de Thevenin e o Teorema da Superposio.

    Onde V a tenso VCC ou VREF (dos exemplos anteriores) e ni indica se o bit i esta ou no ligado:

    No primeiro mtodo (correntes ponderadas) de converso apresentada, o valor dos resistores deve ser muito diferente, no caso de um resistor R = 10 e um conversor de 12 bits, precisaremos usar resistores de valores 4096 vezes maiores ou menores:

    Isto faz com que as correntes tambm tenham esta diferena ou seja, um erro de alguns porcentos na maior corrente pode produzir um erro bem grande no valor final da converso. No segundo mtodo (rede R-2R) so necessrios resistores de valores casados, para que tambm no haja erros significativos no valor da tenso analgica de sada. Isto pode ser contornado com o uso de resistores integrados.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 34 de 173

    4.2) CONVERSOR ANALGICO/DIGITAL (A/D) O conversor analgico-digital (A/D) inverte o processo do conversor D/A. Uma tenso analgica desconhecida introduzida neste conversor e fornece uma sada binria correspondente. A sada binria ser proporcional entrada analgica. Na figura 4.7 mostra um conversor que tem uma tenso de entrada analgica na faixa de 0 a 3 V. A sada binria ser ento lida em forma binria de 0000 a 1111. Observao: Notar que o conversor A/D tambm tem uma entrada de relgio (clock).

    Figura 4.7 - Diagrama de blocos de um conversor A/D de 4 bits.

    A tabela-verdade detalha a operao do conversor A/D. Notar que o lado de entrada da tabela mostra as tenses de entrada analgicas, enquanto o lado de sada fornece a correspondente leitura binria.

    Tabela Verdade do Conversor A/D

    O conversor A/D um contador crescente que entra em seqncia para cima de acordo com a tabela verdade at que a tenso correta seja alcanada. Se a tenso de entrada do conversor A/D descrito na tabela verdade for 2,95 V, a unidade atravessar 15 ciclos at que a contagem do binrio 1111 seja alcanada e exibida. A anlise da operao do conversor A/D consome tempo no entanto o circuito opera muito rapidamente baseado na freqncia do clock de entrada. A freqncia do clock num conversor A/D pode exceder 1 MHz.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 35 de 173

    Figura 4.8 - Diagrama esquemtico de um conversor A/D em rampa de 4 bits.

    O conversor A/D ilustrado na figura 4.8 um dos vrios tipos usados. O contador e o conversor D/A formam uma tenso que aumenta gradualmente (de forma semelhante a uma rampa) que realimentada ao circuito comparador. Um tipo de unidade muito rpida o de aproximaes sucessivas. Estes so bastante comuns mas so mais complexos do que os conversores do tipo rampa. Conversores A/D so usados em qualquer lugar em que uma tenso de entrada analgica deve ser transformada em forma binria ou digital. Muitos processos industriais usam uma interface deste tipo. Um exemplo comum do uso do conversor A/D o voltmetro digital. O conversor A/D transforma a tenso de entrada analgica em binrio. O binrio decodificado, e uma leitura decimal digital de sada prontamente obtida.

    Diversos circuitos para realizar a converso A/D esto disponveis. Destes conversores, apenas um deles realiza a converso diretamente. Este conversor conhecido por Conversor Flash e muito rpido. As outras formas de converso utilizam circuitos realimentados onde o valor digital (correspondente ao valor analgico) obtido pela comparao do valor analgico com o valor digitalmente estimado para ele. Estes circuitos so muito baratos, por outro lado so mais lentos visto que o valor digital da sada deve ser adivinhado e isto leva tempo. Deste outro tipo de conversor podemos citar aqueles por aproximao aritmtica, delta e geomtrica ou sucessiva.

    4.2.1) CONVERSOR FLASH

    Se Vin > V Ref i a sada de todos os comparadores com i inferiores e o prprio comparador ndice i tem sua sada em nvel baixo.

    Figura 4.9 - Diagrama do Conversor Flash com A.O.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 36 de 173

    Tabela do Conversor Flash

    Poderamos ter invertido as entradas dos operacionais bastando para isso trocar a lgica do codificador com Prioridade. As caractersticas principais deste conversor so: Muito rpido. Custo elevado. Nmero reduzido de bits.

    4.3) CIRCUITOS REALIMENTADOS

    Figura 4.10 - Diagrama de blocos do conversor realimentado.

    4.3.1) CONVERSOR POR APROXIMAO ARITMTICA.

    Figura 4.11 - Diagrama de blocos do conversor por aproximao aritmtica.

    Quando o sinal iniciar solicita uma converso, o bloco controlador amostra o sinal de entrada, zera o contador, testa a sada do comparador. Se A>B incrementa contador at que A B. Neste ponto o bloco controlador carrega o valor do contador para sada. As caractersticas deste conversor so:

    Tempo mdio de converso: 2

    2 pulsos de clock onde o nmero de bits do conversor. 12 = convT

    Lento. Barato.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 37 de 173

    4.3.2) POR RASTREIO OU APROXIMAO DELTA.

    Figura 4.12 - Diagrama de blocos do conversor por rastreio ou aproximao delta. A diferena deste circuito para o anterior que neste caso o contador no zerado no incio da converso, o valor inicial para a estimativa da tenso analgica , ento, o valor anterior da converso. Isto diminui (ou pelo menos deveria) o tempo mdio de converso haja visto que os valores da tenso no devem mudar muito. A caractersticas que o diferencia do conversor por aproximao aritmtica o tempo, resultando em:

    Tempo mdio de converso = )2(2 onde o nmero de bits do conversor.

    4.3.3) POR APROXIMAO GEOMTRICA OU SUCESSIVA

    Figura 4.13 - Diagrama de blocos do conversor por aproximao geomtrica ou sucessiva .

    Quando o sinal Iniciar solicita uma converso, o bloco controlador amostra o sinal de entrada seta o F.F. mais significativo, se o valor analgico for maior ou igual ao obtido por esta aproximao, o F.F. seguinte setado caso contrrio , este F.F. (o mais significativo) Zerado e o seguinte Setado. Este processo continua at a converso estar completa. Quando isto ocorre o bloco controlador carrega o registrador com o valor digital correspondente a tenso de entrada analgica e o sinal de fim de converso gerado. Em outras palavras, o que este conversor faz diminuir o nmero sempre ao meio para estimar o valor da tenso de entrada, ao invs de ir incrementando um contador de 1 em 1 at acertar. As caractersticas deste conversor so: Tempo mdio de converso igual a (onde o nmero de bits da A/D). Dentre os mtodos realimentados, este o mais rpido.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 38 de 173

    Os conversores A/Ds apresentados at aqui so usados basicamente para processar digitalmente sinais analgicos. Neste caso, inmeras amostragens so realizadas sucessivamente para que se possa acompanhar o sinal analgico. Em sistemas desta natureza, existem basicamente duas abordagens: As converses so realizadas o mais rapidamente possvel, uma aps a outra; As converses so realizadas a intervalos de tempo regulares, a uma freqncia fixa.

    Para trabalhar matematicamente com estes sinais, a segunda forma preferida porm deve-se ter o cuidado de fazer a freqncia do sinal (freqncia de Niquisty) ser metade da freqncia de amostragem. Quando amostramos sinais analgicos, devemos fazer a freqncia de amostragem maior que duas vezes a maior freqncia continua no sinal amostrado. Deve ser lembrada tambm nestas situaes a importncia do Sample & Hold. O Sample & Hold importante para que o valor analgico se mantenha constante durante o tempo da converso, isto produz, valores confiveis na sada do A/D e valores correspondentes a tenso de entrada no incio da converso. Sero vistos a seguir outros conversores mais lentos que esto disponveis para outras aplicaes como multmetros digitais, balanas eletrnicas, medidas de tempo, freqncia, velocidade e distncia.

    4.3.4) Dupla Rampa. (Usado em Multmetros)

    Figura 4.14 - Diagrama de blocos do conversor de dupla rampa e sua rampa gerada .

    Numa primeira etapa este conversor integra a tenso desconhecida da entrada, por um tempo fixo e conhecido at que o bit mais elevado do contador troca posio da chave na entrada do circuito. Logo a seguir, feita uma integrao de uma tenso conhecida num tempo desconhecido. Assim temos duas equaes e duas incgnitas. Podemos equacionar este conversor da seguinte forma:

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 39 de 173

    As caractersticas deste conversor so: Lento Preciso

    4.4) GLOSSRIO DUTY CYCLE: (Razo Cclica): A razo entre a durao de tempo em que a onda peridica HIGH pelo perodo total da onda.

    FLOAT (Flutuao): A condio na qual a entrada ou a sada em um circuito no HIGH tampouco LOW devido ao fato de no estar conectado diretamente a um nvel de tenso high ou low.

    HOLD TIME (Tempo de espera): A durao de tempo, depois da borda do clock estar ativa, que deve ser respeitado at que os dados estejam seguros para o seu reconhecimento. HYSTETESIS (Histerese): Em digitais, especialmente nos CIs Schmitt triggers, Histerese a diferena de tenso entre o nvel positivo de chaveamento e o nvel negativo de chaveamento.

    JITTER (Tremor): Termo usado em eletrnica digital para descrever formas de onda que possuem algum grau de rudo eletrnico, causando rudo na subida e queda entre e durante a transmisso do nvel.

    POWER-UP (Energizar): Termo usado para descrever o evento ou estado inicial quando se liga um CI ou sistema digital.

    PULL DOWN RESISTOR: Resistor com uma terminao ligada a LOW e a outra conectada na entrada ou sada de uma linha, tal que, quando a linha est flutuando a tenso nesta linha ser instantaneamente colocada no estado LOW.

    PULL UP RESISTOR: Resistor com uma terminao ligada a HIGH e a outra conectada na entrada ou sada de uma linha, tal que, quando a linha est flutuando a tenso nesta linha ser instantaneamente colocada no estado HIGH.

    RACE CONDITION (Condio de mudana): A condio na qual o nvel digital (1 ou 0) est mudando de estado no mesmo instante em que a borda de clock de um dispositivo sncrono, faz com que o nvel do sinal de entrada neste tempo seja indeterminado. SPST SWITCH (Chave SPST): Abreviao de plo simples, polo throw. Uma chave SPST usada para fazer ou interromper o contato com uma linha eltrica simples.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 40 de 173

    BUFFER: Em geral chamamos de buffer o circuito que tem por objetivo o armazenamento temporrio de informaes (pequena memria de alguns bits ou Bytes). DRIVER (Conduzir): Amplificador de corrente. Usado quando temos que interligar equipamentos a uma distncia relativamente grande, ou ampliar a capacidade de fornecimento na sada de uma porta.

    FIRMWARE: Programa associado a um hardware para a execuo de funes especficas. Ex: programa gravado em eprom e memria BIOS.

    TRI-STATE (Terceiro estado): Nome dado quando o sistema est fisicamente ligado, porm no interfere no sistema devido alta resistncia apresentada (seu valor no 0 e tampouco 1, como se estivesse desconectado do circuito). LATCH: Componente eletrnico que tem a funo de trava de informaes. O latch funciona como uma porta com comando, quando ativada pelo comando deixa passar a informao presente em suas entradas para suas sadas, quando inativa pelo comando faz com que a informao na sada no se altere independente das alteraes na entrada.

    MAPEAMENTO REDUNDANTE: Cada endereo decodificado no nico. O decodificador projetado para separar apenas os dispositivos entre si. Este tipo apresenta hardware menos complexo.

    MAPEAMENTO NO REDUNDANTE: Cada endereo decodificado nico. Constri-se o decodificador utilizando o menor espao de memria. Este tipo de decodificao necessita de um hardware bastante complexo.

    CHIP SELECT (Seleo do integrado): Este pino est presente na grande maioria dos dispositivos associados a microprocessadores. Como todos os dispositivos (EPROM, RAM, I/O) esto ligados via de dados (D0 ... D7), os mesmos devem estar sempre em alta impedncia para evitar que enquanto um bit esteja em 0, outro esteja em 1, ocasionando um conflito e at mesmo danificando o sistema. Normalmente todos os dispositivos esto com o CS em 1, e somente ir a 0 aquele dispositivo que est sendo acionado e apenas durante o tempo necessrio. Estes tempos e esta seleo so efetuados por circuitos lgicos conhecidos como DECODIFICADORES DE ENDEREO.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 41 de 173

    5.1) REVISO HISTRICA A rpida evoluo da eletrnica particularmente na segunda metade do sculo XX, provocou uma mudana profunda no homem moderno. Os pases ficam cada vez mais prximos, graas inicialmente ao rdio, depois televiso e hoje em dia com os satlites, pode-se instantaneamente ver qualquer lugar do planeta. Pudemos ver o homem pisando pela primeira vez na Lua e tambm imagens recm enviadas de Marte, Jpiter, Saturno e Pluto. Alm dos meios de comunicao, recordemos os avanos da medicina, meteorologia, transportes, cincia pura e aplicada, prospeco de petrleo e tambm o controle e melhoria do meio ambiente. Pelo lado da eletrnica afirma-se que um grande agente deste progresso foi o computador, que provocou uma realimentao positiva nas pesquisas. O computador permitiu pesquisas mais rpidas e precisas; com isto muitas cincias se beneficiaram inclusive a tecnologia eletrnica que passou a fabricar circuitos mais rpidos e eficientes. Com isso podem-se construir computadores mais eficientes que por sua vez melhoraram ainda mais a eletrnica e assim sucessivamente. Desde as simples calculadoras de vlvulas programadas por fios da dcada do 40 at os supercomputadores dos dias de hoje foi percorrido um caminho muito grande. No meio deste caminho no incio da dcada do 70, com o avano dos LSI vimos surgir os microprocessadores e os computadores pessoais.

    5.1.1) DATAS IMPORTANTES NO DESENVOLVIMENTO DOS COMPUTADORES: 1948 - John Barden, Walter Bratain e William Shockley inventam o Transistor no BELL LABS.

    1959 - TEXAS INSTRUMENTS cria o primeiro Circuito Integrado (CI) onde em um mesmo substrato de cristal eram integrados vrios transistores.

    1964 - DIGITAL comea a vender o PDP-8, o primeiro computador com preo acessvel aos laboratrios.

    1968 - Surge a INTEL.

    1971 - INTEL fabrica o 4004 o primeiro microprocessador que tinha uma arquitetura de 4 bits. Surge a dia de integrar todo o circuito de controle em um nico CI que passou a chamar-se microprocessador.

    1974 - INTEL desenvolve e produz o primeiro microprocessador de 8 bits, o 8080. Neste mesmo ano Kernighan e Ritchie formalizam a linguagem C.

    1975 - ZILOG comea a vender o Z80 e a MOS TECHNOLOGY comea a vender o MC6501 (US$20,00) e o MC6502 (US$ 25,00). Nesta poca um 8080 custava US$ 150.

    1976 - INTEL produz o primeiro microcontrolador o 8048 e o 8748. Neste mesmo ano a INTEL iniciou o projeto do 8086. A TEXAS INSTRUMENTS produz o TMS 9000 primeiro microprocessador de 16 bits. APPLE COMPUTER tambm surge neste ano.

    1977 APPLE Computer produz o APPLE II (US$1.298,00) com processador Motorola 6502 (8 bits). 1978 INTEL comea a produzir o 8086 e tambm alguns derivativos do 8048, o 8041 e o 8741.

    1979 INTEL distribui o 8088.

    CAPTULO 5 - MICROPROCESSADORES

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 42 de 173

    1980 INTEL inicia o que seria a famlia de microcontroladores de maior sucesso os 8051 e 8751. Neste mesmo ano tambm produz o 8087. A APPLE COMPUTER produz o APPLE III, que estava destinado ao fracasso.

    1981 IBM passa a dedicar-se aos sistemas de pequeno porte com o IBM PC que consistia da CPU 8088, 64KB RAM, 40 KB ROM, floppy 5,25" (US$3.005,00).

    1982 INTEL inicia a venda dos 80186, 80188 e 80286. Tambm comea a vender o primeiro microcontrolador de 16 bits o 8096 (famlia MCS-96).

    1983 - Com os 80C51 e 80C49 a INTEL comea a distribuir microcontroladores CHMOS de menor consumo de energia. A APPLE COMPUTER produz o LISA, tambm destinado ao fracasso. A AT&T comea a distribuir o UNIX System V. A IBM anuncia o PC XT (US$ 4.995,00) e o PC Jr. (US$1.269,00).

    1984 - Surge o IBM PC AT com 80286, 256 KB RAM, floppy de 1,2 MB (US$ 5.469,00). A APPLE COMPUTER produz o que viria a ser um grande sucesso: o MACINTOSH (US$ 2.495,00).

    1985 INTEL produz o 80386DX (16 MHz, 6 MIPS). 1986 COMPAQ fabrica o primeiro computador 386, o COMPAQ DESKPRO 386.

    1988 INTEL fabrica o 80386SX (16 MHz, 2,5 MIPS). 1989 INTEL fabrica o 80486DX (25 MHz, 20 MIPS). 1991 INTEL fabrica o 80486SX (20 MHz, 16,5 MIPS). 1992 INTEL fabrica o 80486DX2 (50 MHz, 40 MIPS). 1993 INTEL fabrica o PENTIUM (60 MHz, 112 MIPS).

    5.1.2) O DESENVOLVIMENTO DOS MICROPROCESSADORES E DOS MICROCONTROLADORES, FABRICANTES:

    INTEL

    4004 8008 8080 8085 8086 (8088) 80286 80386 486 P5 PII PIII PIV MOTOROLA

    6502 6509 68000 68010 68020 68030 68040 68060 PowerPC

    ZILOG

    Z80 Z800 Z8000

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 43 de 173

    5.2) ARQUITETURAS DE MICROPROCESSADORES

    5.2.1) ARQUITETURA C.I.S.C. VERSUS R.I.S.C. A partir do 4004, com 46 instrues comeava a escalada dos microprocessadores (sero, daqui para frente referidos apenas como P) rumo a P's mais complexos e com maior nmero de instrues. O 8008 possui 48 instrues. O 8080, 78 instrues. O 8085, aproximadamente 150 instrues, o Z80, mais de 500, o 8086/8088 j possui mais de 700 instrues e o 80386, mais de 1500 instrues. Isso nos mostra que com o aumento do nmero de instrues tambm crescia o nmero e a complexidade dos circuitos internos do P. Alguns P de arquitetura CISC atuais possuem um gigantesco volume de transistores incorporados. Os Ps 80x86 da Intel utilizados nos PCs so um exemplo tpico de processadores CISC. H algum tempo a preocupao nos projetos de P's passou a ser a velocidade de processamento e no a sua complexidade. Por isso foram criados Ps com conjunto reduzido de instrues (menos de 250 instrues) mas com alta velocidade de processamento (RISC).

    CISC = Complex Instruction Set Code RISC = Reduced Instruction Set Code

    O ciclo de projeto de um P CISC muito longo e difcil. O volume de testes para certificao do seu funcionamento muito grande e a preocupao com a otimizao do circuito para ganhar velocidade s vem depois do pleno estabelecimento do novo. Em contrapartida Ps RISC tem um ciclo de projeto bem mais curto. Alm disso o enfoque dado elevao das taxas de "clock" e uso de barramentos "largos" (64 bits ou 128 bits). Em geral o desempenho de Ps RISC costuma ser melhor que Ps CISC. Outro aspecto importante o tamanho dos programas, imagine um programa que faa uma movimentao de dados de 1.000 bytes de uma parte da memria para outra. Em um P CISC esse programa curto, podemos supor algo em tomo de 5 ou 6 bytes, isso porque utiliza instrues complexas. Em um P RISC a mesma tarefa pode ser desempenhada por um programa maior, algo em torno de 10 a 15 bytes. Esse P possui instrues muito simples e certamente precisaria de vrias instrues para uma tarefa feita por uma nica instruo complexa. Isso nos permite concluir que os programas de P RISC so maiores.

    5.2.2) ARQUITETURAS HARVARD VERSUS VON NEUMANN Na arquitetura Harvard h dois barramentos de endereos independentes e dois de dados tambm independentes. Enquanto um desses barramentos serve para a leitura de instrues de um programa, o outro serve para a leitura e escrita de dados. Com isso possvel operar simultaneamente uma instruo e um byte de dados, isso garante maior velocidade de processamento. Atualmente os processadores de sinais digitais (DSP) utilizam essa arquitetura, so processadores especializados no processamento dos sinais em tempo real.

    Figura 5.1 - Arquitetura Harvard.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 44 de 173

    Na arquitetura Von Neumann h apenas um barramento de dados e um de endereos, neste caso as instrues estariam em uma faixa de endereos que ative a memria que possui as instrues, e os dados esto em outra faixa de endereos que ative outra memria onde se pode ler e escrever os dados. Por exemplo qualquer endereo entre 0000h e 1FFFh ativa a memria de programas e entre 8000h e FFFFh ativa a memria de dados. Nessa arquitetura s possvel o acesso a uma memria de cada vez. Comparando ambas conclui-se que Harvard mais veloz mas exige mais de um barramento, Von Neumann utiliza apenas um barramento mas no pode efetuar acessos simultneos s memrias. Alguns processadores possuem uma arquitetura mista. Os 8051 possuem apenas um barramento mas utiliza sinais de requisio de leitura de memria independente, uma para programa outro para dados.

    Figura 5.2 - Arquitetura Von Neumann.

    5.3) FLUXO DE DADOS EM BARRAMENTOS O diagrama esquemtico da figura 5.3 exemplifica o funcionamento de um barramento.

    Figura 5.3 - Barramento com registradores A, B, 1, 2 e Somador.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 45 de 173

    Para realizar a transferncia simples de dados do registrador RA para o registrador RB, fazemos o sinal RAOUT = 1 para conectar a sada do registrador RA ao barramento. Com isso temos certeza que os bits presentes em RA so levados a todo o barramento. Para completar a transferncia aplicamos um pulso de CLOCK na entrada RBin. At mesmo nas operaes matemticas e lgicas so usadas transferncias.

    No sistema podemos perceber que o fluxo dos dados dos registradores comandado exclusivamente pelos "sinais de controle". O conjunto de todos os sinais de controle de um sistema compe o que chamamos MICROINSTRUO. A seqncia correta das microinstrues pode realizar diversas tarefas dentro do sistema digital. Imaginemos que o sistema deva somar RA com RB e armazenar o resultado em RA.

    Um barramento como uma avenida de sinais que interconectam todos os registradores de um sistema digital. Para isso importante que um registrador tenha uma conexo bidirecional com o barramento podendo ler e escrever bits nele. Imaginemos um registrador simples de 4 bits e como poderia ter uma ligao bidirecional ao barramento:

    Figura 5.4 - Registrador bidirecional conectado ao barramento

    Os dado podem ser transportados de um registrador par outro obedecendo aos sinais de controle RIN e ROUT.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 46 de 173

    5.4) ARQUITETURA INTERNA DO MICROPROCESSADOR Embora cada P tenha suas peculiaridades, a grande maioria deles guarda grandes semelhanas quanto ao seu modo geral de funcionamento. A figura 5.5 ilustra a arquitetura bsica de um processador.

    Figura 5.5 - Arquitetura interna de um microprocessador genrico.

    5.4.1) GLOSRIO DO MICROPROCESSADOR Registrador de Propsito Geral

    So registradores nomeados de Reg. A at D. O nmero desses registradores varia de P para P. No 8085 so 8 registradores de 8 bits, no Z80 so 16 registradores de 8 bits, no 8031 so 8 registradores de 8 bits, no MCS 6502 so 3 registradores de 8 bits, etc.

    Unidade Lgica Aritmtica (ULA) Essa unidade possui operaes AND, OR, XOR bit a bit, incrementador e decrementador, somador, subtrator, em alguns Ps existem multiplicador e divisor, tudo integrado em uma nica unidade. Portanto todas as operaes lgicas e aritmticas do P passam obrigatoriamente por esta unidade.

    Registrador Temporrio Serve apenas para armazenar um dos operandos da ULA.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 47 de 173

    Acumulador Trata-se de um registrador especial dedicado s operaes envolvendo a ULA. Este registrador um dos operandos envolvidos nas operaes da ULA e tambm o registrador que guarda o resultado dessa operao. Assim como o registrador de propsito geral admite transferncia bidirecional.

    Program Counter (PC) Neste registrador o P guarda o endereo de memria onde est lendo as instrues do programa. O P usa esse contedo para informar a memria o endereo onde est a instruo, faz a leitura dessa instruo e guarda a instruo lida no REGISTRADOR DE INSTRUO. Logo aps ter lido a instruo, o contedo do registrador PC automaticamente incrementado para que o P possa ler a prxima instruo.

    Registrador de Instruo nesse registrador que o P guarda a instruo lida da memria para que possa ser decodificada e executada.

    Decodificador de Instruo e Unidade de Controle Quando a instruo lida da memria ela no passa de um byte qualquer lido da memria. Como saber qual a instruo que corresponde a esse byte e como tomar as devidas previdncias (micro-instrues) para fazer o que a instruo est mandando? Cada registrador precisa ser conduzido pelos seus sinais de controle RIN e ROUT. No s os registradores mas todo o sistema precisa ser comandado pelos sinais de controle para que o sistema possa funcionar. Esses sinais de controle precisam obedecer a uma seqncia adequada para que no ocorram conflitos. A instruo lida passa por uma unidade com um nmero imenso de portas lgicas que geram os sinais de controle de todo o sistema. Pode-se dizer que essa unidade realmente o crebro de todo o sistema.

    Unidade de Deslocamento Essa unidade contm um registrador de deslocamento srie bidirecional e capaz de realizar um deslocamento dos bits esquerda ou direita ou ento no realizar deslocamento nenhum.

    Figura 5.6 - Unidade de Deslocamento.

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 48 de 173

    5.5) SINAIS DE CONTROLE ENTRE P E MEMRIA Para que o P possa se comunicar com as memrias so necessrios alguns sinais de controle:

    Endereos (A0...An) Esse conjunto de sinais serve para localizar a informao dentro da memria. Dados (D0 ... Dn) Tratam-se dos bits que conduziro o byte lido da memria para P ou do P para

    ser escrito na memria (somente a RAM permite escrita). RD (Read) Sinal enviado pelo P requisitando que a memria coloque no barramento de dados

    (D0...Dn) o byte previamente endereado. O P l esse byte e logo aps desativa o sinal RD. Na grande maioria dos sistemas digitais esse sinal ativo em nvel baixo ( RD ).

    WR (Write) Sinal enviado pelo P requisitando que a memria armazene o byte presente no barramento de dados

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 49 de 173

    5.5.2) EXEMPLO DE ESCRITA (Para a escrita o processo semelhante)

    Figura 5.8 - Exemplo de escrita de dados da memria.

    1) O P coloca o endereo no barramento de endereo (ex: 1019H). 2) O P coloca a informao que deseja escrever na memria no barramento de dados. Para isso faz

    WR = 0.

    3) O P l o barramento de dados (ex: 75H) e logo a seguir desativa a requisio de escrita WR = 1. 4) Como o endereo j no mais necessrio o P libera o barramento de endereos.

    A exceo dos sinais de dados (D0...D7) todos os demais sinais so sempre gerados pelo P, portanto estes sinais so passivos na memria. Mesmo os sinais de dados so passivos durante o processo de escrita.

    5.6) MICROCONTROLADORES (C) 5.6.1) POR QU MICROCONTROLADORES ? Com o barateamento dos CIs e o surgimento de microprocessadores (CPUs) mais poderosos, comeou-se a usar as CPUs mais simples para implementar tarefas dedicadas tais como controle de impressora, plotter, reguladores de velocidade, acionadores de motores de passo, controladores de elevadores, etc. Contudo qualquer controle implicar em muitos circuitos que muitas vezes encarece o custo do controlador. Tipicamente temos:

    Tabela de Necessidades versus Componentes

    Necessidade Componentes Controle CPU

    Programa de controle ROM/PROM/EPROM/E2PROM Pilha e dados RAM

    Perifricos e I/O Porta Paralela Comunicao Porta Serial

    Sinais analgicos A/D e D/A Temporizao Timers/contadores

  • Microcontroladores Industriais Professor Ulisses Galvo Romo

    Pgina 50 de 173

    Figura 5.9 - Exemplo tpico de um microprocessador aplicado em controle.

    As aplicaes tinham o custo dependente do preo da CPU e dos perifricos (ROM, RAM, Portas, A/D, D/A, etc) e tambm da quantidade de conexes e do tamanho da placa. Para reduzir o custo comeou a surgir idia de colocar todos estes perifricos dentro do chip da CPU. Isso baratearia e diminuiria o tamanho do circuito impresso alm de aumentar a confiabilidade. Tambm uma CPU dedicada a um determinado controle no precisa ser muito rpida nem tampouco ter um conjunto de instrues extenso e poderoso. No so necessrias