PIC Engenharia Apostila Senac

Embed Size (px)

Citation preview

  • ant

    nio

    srg

    io s

    ena

    microcontroladoresPIC

  • ant

    nio

    srg

    io s

    ena

    microcontroladoresPIC

  • microcontroladores PIC ndice

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 3

    ndice de Contedos

    COMO TUDO COMEOU .................................................................... 10

    Microcontrolador versus Microprocessador .............................................. 13

    Conceitos Bsicos ...................................................................................... 14

    Um mundo de nmeros ......................................................................................................................14Sistema de numerao Binrio ...........................................................................................................15Sistemas de numerao Hexadecimal ................................................................................................16O cdigo BCD....................................................................................................................................17Converso de Binrio para Decimal ..................................................................................................17Converso de Hexadecimal para Decimal .........................................................................................18Converso de Hexadecimal para Binrio ...........................................................................................18Bit .......................................................................................................................................................19Byte ....................................................................................................................................................19Circuitos Lgicos ...............................................................................................................................20Porta lgica AND ...............................................................................................................................20Porta lgica OR ..................................................................................................................................21Porta lgica NOT ...............................................................................................................................21Porta lgica EXCLUSIVE OR / XOR ...............................................................................................22Registo ...............................................................................................................................................23SFR / Special Function Register - Registo de Funo Especial ........................................................23Portas de Entrada/Sada - I/O .............................................................................................................24Unidade de memria ..........................................................................................................................26Interrupes ........................................................................................................................................27CPU - Unidade Central de Processamento ........................................................................................28Barramento .........................................................................................................................................29Comunicaes Srie ...........................................................................................................................29Baud Rate - Velocidade de transferncia ...........................................................................................30Oscilador ............................................................................................................................................32Circuito de Alimentao ....................................................................................................................32Temporizadores e Contadores ............................................................................................................33Temporizadores / Contadores ............................................................................................................34Contadores .........................................................................................................................................37Temporizador Watchdog ....................................................................................................................37Conversores Analgico/Digital ..........................................................................................................38

  • microcontroladores PIC ndice

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 4

    Arquitectura Interna .................................................................................. 40

    Arquitectura von-Neumann ...............................................................................................................40Arquitectura Harvard .........................................................................................................................40

    Conjunto de Instrues .............................................................................. 42

    Como escolher o microcontrolador certo para a aplicao? ........................ 43

    Microcontroladores PIC ............................................................................ 43

    Microcontrolador PIC16F887 .................................................................. 44

    Uma panormica ........................................................................................ 44

    Descrio dos pinos ...........................................................................................................................48CPU ....................................................................................................................................................51Memria .............................................................................................................................................52Registos de funo geral - GPR .........................................................................................................54Registos de funo especial - SFR .....................................................................................................55Bancos de Memria ...........................................................................................................................55Pilha de memria - Stack ...................................................................................................................59Sistema de interrupo .......................................................................................................................60Como usar os Registos de funo especial - SFR ..............................................................................61

    Os Registos de Funo Especial - SFR - do CPU ....................................... 62

    Caractersticas e Funes ........................................................................... 62

    Registo STATUS ................................................................................................................................62Registo OPTION_REG ......................................................................................................................64Registos do Sistema de Interrupes .................................................................................................66Registo PCON ....................................................................................................................................75Registos PCL e PCLATH ...................................................................................................................76Endereamento Indirecto ...................................................................................................................79Portas I/O - Entrada/Sada ....................................................................... 80

    Funcionalidades e Funes ......................................................................... 80

  • microcontroladores PIC ndice

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 5

    Registos PORTA e TRISA .................................................................................................................81Unidade ULPWU ...............................................................................................................................82Registos PORTB e TRISB .................................................................................................................84Pino RB0/INT ....................................................................................................................................87Pinos RB6 e RB7 ...............................................................................................................................87Registos PORTC e TRISC .................................................................................................................88Registos PORTD e TRISD .................................................................................................................89Registos PORTE e TRISE..................................................................................................................89Registos ANSEL e ANSELH .............................................................................................................90

    Temporizadores ......................................................................................... 93

    Temporizador TMR0 ................................................................................ 93

    Registo OPTION_REG............................................................................ 94

    Temporizador TMR1 ................................................................................ 99

    Divisor do TMR1 ...............................................................................................................................100Oscilador do TMR1 ...........................................................................................................................101Gate do TMR1 ...................................................................................................................................101TMR1 em modo de Temporizador .....................................................................................................102Oscilador do TMR1 ...........................................................................................................................103TMR1 em modo de Contador ............................................................................................................104Registo T1CON .................................................................................................................................105

    Temporizador TMR2 ................................................................................ 106

    Registo T2CON .................................................................................................................................108

    Mdulos CCP ............................................................................................ 110

    Capture/Compare/PWM - Captura/Compara/PWM .............................. 110

    Mdulo CCP1 ........................................................................................... 110

    Modo de Captura com CCP1 .............................................................................................................111Modo de Comparao com CCP1 ......................................................................................................112

  • microcontroladores PIC ndice

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 6

    Modo de PWM com CCP1 ................................................................................................................113Periodo do PWM................................................................................................................................116Duty-Cycle do PWM .........................................................................................................................116Resoluo do PWM ...........................................................................................................................117Registos CCP1CON ...........................................................................................................................117

    Mdulo CCP2 ........................................................................................... 120

    Registo CCP2CON ............................................................................................................................120

    Con gurao do mdulo CCP1, para funcionamento em PWM ............... 121

    Modo avanado do CCP1 .......................................................................... 122

    Mdulos de Comunicao Srie ................................................................. 123

    Modo Assncrono da EUSART ................................................................. 124

    Transmissor Assncrono da EUSART ................................................................................................125Receptor Assncrono da EUSART .....................................................................................................127BRG - Baud Rate Generator - Gerador de Relgio para a EUSART ................................................133Registo BAUDCTL ............................................................................................................................137Resumidamente: .................................................................................................................................139

    Modo Sncrono da EUSART ..................................................................... 141

    Modo SPI ...........................................................................................................................................142Modo I2C ...........................................................................................................................................146I2C em modo Mestre .........................................................................................................................154

    Mdulos Analgicos .................................................................................. 161

    Registos e Modo do ADC - Conversor A/D.......................................................................................161Registos ADRESH e ADRESL ..........................................................................................................162

  • microcontroladores PIC ndice

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 7

    Requisitos da Aquisio A/D .................................................................... 163

    Periodo do ADC .................................................................................................................................163

    Como usar o Conversor A/D ..................................................................... 164

    Registo ADCON0 ..............................................................................................................................165Registo ADCON1 ..............................................................................................................................167Resumidamente: .................................................................................................................................167

    Comparador Analgico .............................................................................. 168

    Fonte de Tenso de Referncia interna ..............................................................................................169Comparadores e funcionamento com Interrupes ............................................................................170Registo CM1CON0 ............................................................................................................................171Registo CM2CON0 ............................................................................................................................173Registo CM2CON1 ............................................................................................................................175Registo VRCON ................................................................................................................................176

    Em resumo : ............................................................................................... 177

    Outros circuitos internos ........................................................................... 178

    Oscilador, EEPROM e Reset ..................................................................... 178

    Registo OSCCON ..............................................................................................................................179

    Modos de Relgio Externo ........................................................................ 181

    Modo EC - Oscilador Externo ...........................................................................................................181Modo LP, XT ou HS - Oscilador Externo ..........................................................................................183Ressoador Cermico no modo XT ou HS ..........................................................................................184Modo RC e RCIO - Oscilador Externo ..............................................................................................185

  • microcontroladores PIC ndice

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 8

    Modos de Relgio Interno ......................................................................... 186

    Modo INTOSC - Oscilador Interno ...................................................................................................186Modo INTOSCIO - Oscilador Interno ...............................................................................................186

    Con gurao do Oscilador Interno ............................................................ 187

    Modo de Arranque de Relgio a Duas-Velocidades .................................. 188

    Fail-Safe Clock Monitor - FSCM - Monitor de Relgio contra falhas ..............................................188Registo OSCTUNE ............................................................................................................................189

    Memria EEPROM ................................................................................... 191

    Registo EECON1 ...............................................................................................................................191Leitura da EEPROM ..........................................................................................................................192Escrita da EEPROM ..........................................................................................................................193

    Reset! Black-out, Brown-out ou Ruidos? ................................................... 195

    Reset por Black-out - Falha de Energia Sbita ..................................................................................196Reset por Brown-out - Descida de Tenso Lenta e Gradual ..............................................................196Ruidos ................................................................................................................................................197Pino de MCLR ...................................................................................................................................197

    Conjunto de Instrues ............................................................................. 198

    Conjunto de Instrues da Famlia PIC16Fxx de Microcontroladores ...... 198

    Transferncia de dados .............................................................................. 200

    Lgicas e aritmticas .................................................................................. 200

    Operaes com bits .................................................................................... 201

  • microcontroladores PIC ndice

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 9

    Controlo de Execuo de um Programa .............................................................................................201Perodo de execuo da instruo ......................................................................................................203Listagem das instrues .....................................................................................................................203

    Como programar um Microcontrolador .................................................... 224

    Linguagem Assembly ................................................................................. 226

    Instrues .................................................................................................. 227

    Operandos ................................................................................................. 227

    Comentrios .............................................................................................. 228

    Directivas .................................................................................................. 228

    Directiva PROCESSOR .....................................................................................................................228Directiva EQU ...................................................................................................................................228Directiva ORG ...................................................................................................................................229Directiva END ...................................................................................................................................229Directiva .............................................................................................................................................$IN-CLUDE ..............................................................................................................................................230Directivas CBLOCK e ENDC ...........................................................................................................230Directivas IF, ENDIF e ELSE ............................................................................................................231Directiva BANKSEL .........................................................................................................................232

    Operadores aritmticos de assembler ........................................................ 233

    Exemplo de como escrever um Programa ................................................... 234

    Ficheiros criados ao compilar um programa ............................................... 236

    MPLAB ..................................................................................................... 238

    Instalando o programa - MPLAB ......................................................................................................238A implementao de um PROJECTO ................................................................................................243Escrever um novo Programa ..............................................................................................................245O primeiro programa ..........................................................................................................................247Simulador ...........................................................................................................................................249

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 1

    COMO TUDO COMEOU

    Em 1969, uma equipa de engenheiros Japoneses da BUSICOM, foi para os EUA com o pedido de desenhar

    alguns circuitos integrados para calculadoras. O pedido foi enviado para a INTEL, e Marcian Ho estava en-

    carregue do projecto. Tendo experincia em trabalhar com um computador, o PDP8, ele teve a ideia de sugerir

    solues diferentes, ao invs dos designs sugeridos pelos Japoneses. A ideia dele presumia que o funcionamento

    do circuito integrado, era determinado pelo programa armazenado dentro do chip. Signi cava que a con gura-

    o era mais simples, mas iria requerer muito mais memria que o projecto dos engenheiros Japoneses.

    Aps um certo tempo, apesar de os Japoneses estarem ainda a tentar encontrar uma soluo mais simples, a

    ideia de Marcian venceu, e o primeiro microprocessador nasceu. Federico Faggin foi uma grande ajuda em

    tornar a ideia num produto acabado. E, nove meses aps ter sido contratado, a INTEL tinha acabado de de-

    senvolver um produto desde a ideia original.

    Em 1971, a INTEL obteve os direitos de venda deste circuito integrado, e antes disso j tinha comprado a

    licena da BUSICOM. Durante esse ano, um microprocessador chamado 4004 foi lanado no mercado. Esse

    foi o primeiro processador de 4 bits, com a velocidade de 6000 instrues por segundo.

    No muito tempo depois, uma empresa Americana chamada CTC pediu INTEL e TEXAS Instruments,

    para fabricarem um microprocessador de 8 bits, para ser aplicado nos seus terminais. Embora a CTC tenha

    desistido do projecto, a INTEL e a TEXAS continuaram o trabalho e, em Abril de 1972, o primeiro micro-

    processador de 8 bits, chamado de 8008, foi lanado no mercado. Podia enderear 16Kb de memria, tinha 45

    instrues e uma velocidade de 300.000 instrues por segundo. Esse microprocessador foi o predecessor de

    todos os actuais microprocessadores.

    A INTEL continuou o desenvolvimento e, em Abril de 1974, lanou um processador de 8 bits, chamado de

    8080. Podia enderear 64Kb de memria, tinha 75 instrues, e um preo inicial de $360.

    Outra empresa Americana chamada MOTOROLA, depressa se apercebeu do potencial, e ento lanaram o

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 2

    microprocessador de 8 bit, 6800. O engenheiro chefe era Chuck Peddle. Aparte do microprocessador, a MO-

    TOROLA tambm fabricava perifricos como o 6820 e 6850.

    Nessa altura muitas empresas reconheciam a importncia dos microprocessadores, e iniciaram o seu prprio

    desenvolvimento. Chuck Peddle deixou a MOTOROLA, juntou-se MOS Technology, e continuou o traba-

    lho intensivo no desenvolvimento em microprocessadores.

    Na exposio WESCON, nos EUA em 1975, um evento crucial na histria dos microprocessadores aconte-

    ceu. A MOS Technology anunciou que estava a vender os processadores 6501 e 6502 a $25 cada, que os inte-

    ressados podiam comprar na hora. Foi tamanha a sensao, que muita gente pensava em fraude, considerando

    que a concorrncia vendia o 8080 e 6800, a $179 cada.

    No primeiro dia da exposio, em resposta concorrncia, a MOTOROLA e a INTEL baixaram os seus

    microprocessadores para $69,95. A MOTOROLA acusou a MOS Technology e Chuck Peddle de plagiarem

    o protegido 6800.

    Devido a isto, a MOS Technology desistiu do fabrico do 6501, mas continuou o fabrico do 6502. Era um pro-

    cessador de 8 bits, com 56 instrues, e capaz de enderear directamente 64Kb de memria.

    Devido ao seu baixo preo, o 6502 tornou-se muito popular, e ento foi instalado em computadores como o

    KIM-1, Apple I, Apple II, Atari, Commodore, Acorn, Oric, Galeb, Orao, Ultra e muitos outros.

    Em breve, muitas empresas comearam a fabricar o 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh, Commo-

    dore assumiram a MOS Technology).

    No ano da sua prosperidade, 1982, este processador estava a ser vendido taxa de 15 milhes de unidades por

    ano.

    Outras empresas no desistiram. Frederico Faggin deixou a INTEL, e abriu a sua prpria empresa chamada

    ZILOG INC. Em 1976 a ZILOG anunciou o Z80. Quando desenhou este processador, Faggin tomou uma

    deciso crucial. O 8080 j tinha sido desenvolvido, e ele apercebeu-se que muitos iriam continuar eis a esse

    processador, devido aos grandes gastos em reescrever todos os programas. Ento, ele decidiu que este novo

    processador teria de ser compativel com o 8080, ou seja, teria de poder correr todos os programas escritos para

    o 8080.

    Aparte desta deciso, muitas outras funcionalidades foram acrescentadas, para que o Z80 fosse o micropro-

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 3

    cessador mais poderoso da altura. Podia enderear directamente 64Kb de memria, tinha 176 instrues, um

    grande nmero de registos, uma opo interna para fazer o refrescamento da RAM, s uma fonte de alimenta-

    o, maior velocidade, entre outros. O Z80 foi um grande sucesso, e toda a gente substituiu o 8080 pelo Z80.

    Alm da ZILOG, outros fabricantes como Mostek, NEC, SHARP e SGS apareceram logo a seguir. O Z80

    era o corao de muitos computadores, tais como: Spectrum, Partner, TRS703, Z-3 and Galaxy.

    Em 1976 a INTEL lanou uma verso melhorada do microprocessador de 8 bits, chamado de 8085. No en-

    tanto, o Z80 era muito melhor, e a INTEL perdeu a batalha.

    Mesmo aps outros microprocessadores terem aparecido no mercado, 6809, 2650, SC/MP, etc, no havia

    grandes melhoramentos que justi casse aos fabricantes mudarem de processador, por isso o 6502, o Z80 e o

    6800 continuaram os microprocessadores dominantes, e durante muito tempo.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 4

    Microcontrolador versus Microprocessador

    Um microcontrolador difere de um microprocessador em diversas formas.

    A primeira, e mais importante, a sua funcionalidade. Para que um microprocessador possa ser usado, outros

    componentes tais como memria, tem que ser ligados ao chip. Mesmo sendo os microprocessador considera-

    dos potentes mquinas matemticas, o seu ponto fraco a sua parca possibilidade de comunicar com perifri-

    cos.

    Ento, de maneira a que possa comunicar com perifricos, o microprocessador tem que usar circuitos especiais,

    como chips externos.

    Resumindo, os microprocessadores so o corao dos computadores. Era assim no incio, e ainda nos dias de

    hoje se mantm.

    Microcontrolador versus Microprocessador

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 5

    Por outro lado, o microcontrolador est desenhado para ser um tudo-em-um. No so necessrios componen-

    tes externos, para as suas aplicaes, porque todos os circuitos, que pertencem aos perifricos, j esto dentro

    do chip. Poupa tempo e espao necessrios, aquando do design de um sistema.

    Conceitos Bsicos

    Um mundo de nmeros

    O universo por ser descrito com apenas 10 digitos. Mas, precisamos apenas de 10 digitos? Claro que no,

    apenas uma questo de hbito.

    Por exemplo, o nmero 764 o que signi ca?: quatro unidades, seis dezenas e sete centenas, ou 4 + 60 + 700,

    ou 4*1 + 6*10 + 7*100!

    Podemos representar o nmero de uma maneira mais cient ca? a resposta positiva: 4*10^0 + 6*10^1 +

    7*10^2. Mas porqu? Simplesmente porque usamos um sistema de numerao de base 10, ou seja, um sistema

    de numerao dcimal.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 6

    Sistema de numerao Binrio

    O que aconteceria se apenas dois digitos pudessem er usados, o 0 e o 1?

    Nada de especial, continuaramos a usar nmeros mas de forma diferente. Por exemplo: 11011010. Qual a

    quantidade que o nmero 11011010 indica?

    De maneira a que possamos aprender isto, devemos seguir a mesma lgica do exemplo anterior, mas em ordem

    inversa. No esquecer que se trata de matemtica com apenas dois digitos, ou seja, um sistema de numerao

    binrio.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 7

    o mesmo nmero, representado de duas formas distintas. A nica diferena reside no nmero de dgitos

    necessrios para escrever um nmero. Um dgito (2) usado para escrever o nmero 2 em dcimal, onde dois

    dgitos (1 e 0), so usados para escrever esse nmero em sistema binrio.

    chamado de nvel lgico zero (0) e nvel lgico um (1), com os quais a electrnica perfeita e simplesmente

    trabalha as operaes complexas matemticas. a electrnica que aplica a matemtica, onde todos os nmeros

    so representados por apenas dois dgitos, e onde s importa saber se h tenso elctrica, ou no. Estamos a

    falar de electrnica digital.

    Sistemas de numerao Hexadecimal

    No incio do desenvolvimento dos computadores, percebeu-se que as pessoas tinham muitas di culdades em

    trabalhar com numerao binria. Devido a isto, um novo sistema de numerao foi desenvolvido, e usando 16

    digitos distintos. Os primeiros dez dgitos so os tradicionais (0, 1, 2,... 9), mas existem mais seis. Por forma a

    no inventar novos smbolos, convencionou-se usar as seis primeiras letras do alfabeto: A, B, C, D, E e F.

    Um sistema hexadecimal de numerao, consistindo nos dgitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F foi

    estabelecido.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 8

    O maior nmero que pode ser representado por 4 dgitos binrios 1111. E corresponde ao nmero 15 no

    sistema decimal. Esse nmero no sistema hexadecimal, representado pelo dgito F. o maior nmero de um

    dgito no sistema hexadecimal. O nmero da gura escrito com oito dgitos, ao mesmo tempo o nmero he-

    xadecimal de dois dgitos. No esquecer que os computadores usam nmeros binrios de 8 dgitos.

    O cdigo BCD

    O cdigo BCD um cdigo binrio apenas para nmeros decimais. usado para fazer comunicar os circuitos

    electrnicos com os perifricos, e num sistema binrio dentro do seu prprio mundo. Consiste em nmeros

    binrios de quatro dgitos, que representam os primeiros dez dgitos dcimais (0, 1, 2,... 9). Embora quatro

    digitos nos dem 16 combinaes possiveis, apenas as primeiras 10 so usadas.

    Converso de Binrio para Decimal

    Os digitos de um nmero binrio tem diferentes valores, dependendo da posio onde se encontram. Adi-

    cionalmente, cada posio pode ter 1 ou 0, e o seu valor facilmente determinado atravs da sua posio desde

    a direita. Para executar a converso, necessrio multiplicar valores pelos dgitos correspondentes, e somar os

    resultados.

    110 = (1 * 2^2) + (1 * 2^1) + (0 * 2^0) = 6

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 9

    Converso de Hexadecimal para Decimal

    Por forma a se fazer a converso de um nmero hexadecimal para decimal, cada digito hexadecimal deve ser

    multiplicado por 16, levantado ao expoente da sua posio. Por exemplo:

    Converso de Hexadecimal para Binrio

    No necessrio nenhum clculo, de maneira a converter nmeros hexadecimais para binario. Os dgitos hexa-

    cedimais so simplesmente substituidos pelos seus congneres 4 dgitos binrios. Por exemplo:

    Esta tabela comparativa, tem os valores dos nmeros de 0 a 255, em trs sistemas de numerao distintos:

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 10

    Bit

    Um bit um dgito binrio. De igual forma que o sistema de numerao decimal, no qual os dgitos de um n-

    mero no tem o mesmo valor, o signi cado do bit depende da sua posio no nmero binrio. Ento, no faz

    sentido falar de unidades, dezenas, etc. Deve-se, sim, falar do bit zero, bit um, bit dois, etc. Sempre a contar do

    lado direito. E, como o sistema binrio usa apenas dois dgitos, 0 e 1, o valor de um bit s pode ser 0 ou 1.

    No nos devemos confundir, se o bit tiver valor de 4, 16 ou 32. Isso signi ca que os valores dos bits esto repre-

    sentado em sistema decimal. Ser correcto dizer que: o valor do quinto bit de um nmero binrio, equivalente

    ao decimal 32.

    Byte

    Um byte consiste em oito bits agrupados. semelhana dos digitos de outro qualquer sistema de numerao,

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 11

    os dgitos dos bytes no tem o mesmo signi cado. O maior valor tem o bit mais esquerda chamado de Bit

    Mais Signi cativo (MSB - Most Signi cant Bit). O bit mais direita tem o menor valor, e chamado de Bit

    Menos Signi cativo (LSB - Least Signi cant Bit). Como um byte pode ter 256 combinaes possiveis de bits,

    o maior nmero decimal possvel de representar o 255, pois h uma combinao que representa zero.

    Um nibble representado como meio byte. Dependendo de que metade do byte estamos a falar, h nibbles

    altos ou baixos.

    Circuitos Lgicos

    A electrnica de que so feitos os circuitos integrados, microcontroladores ou microprocessadores, composta

    de elementos chamados de circuitos lgicos ou portas lgicas.

    Os princpios operacionais desdes elementos foram estabelecidos pelo matemtico Ingls, George Boole, e a

    ideia central era expressar formas lgicas, como funes de lgebra. Mais tarde o princpio evoluiu para o que

    hoje conhecemos como circuitos lgicos AND, OR e NOT, tambm conhecido como lgebra de Boole.

    Como algumas instrues de programa do microcontrolador funcionam da mesma maneira que as portas lgi-

    cas, o seu princpio de funcionamento descrito a seguir.

    Porta lgica AND

    A porta lgica AND tem duas ou mais entradas, e uma sada. A sada ter um 1 lgico, se as as suas entradas

    A e B estiverem a nivel lgico 1.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 12

    A tabela mostra dependncia entre entradas e sada. Qualquer outra combinao nas entradas, dar um nivel

    lgico 0 na sada.

    Quando usada num programa, a operao lgica AND feita por instrues, que sero discutidas mais fren-

    te. Por agora, importante referir que AND num programa, faz correspondncia aos bits de dois registos.

    Porta lgica OR

    A porta lgica OR tem duas ou mais entradas, e uma sada. A sada ter um 1 lgico, se qualquer das suas en-

    tradas A ou B estiverem a nivel lgico 1.

    Num programa, a operao lgica OR feita entre os bits correspondentes dos registos. semelhana da ope-

    rao lgica AND.

    Porta lgica NOT

    A porta lgica NOT tem apenas uma entrada, e uma sada. Quando um 0 lgico est presente na entrada, a

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 13

    sada apresenta um 1 lgico, e vice-versa. Esta porta tambm chamada de Inversora.

    Se for executada num programa, a operao NOT feita num byte. O resultado esse byte com todos os bits inver-

    tidos. Se o byte for considerado um nmero, o valor invertido na realidade o complemento desse nmero. Isto , o

    complemento de um nmero o que necessrio adicionar-lhe, para que o mesmo atinja o mximo valor de 8 bits

    (255).

    Porta lgica EXCLUSIVE OR / XOR

    Esta porta uma combinao das atrs referidas. A sada apresenta um 1 lgico, apenas quando as suas entradas

    apresentam niveis lgicos diferentes.

    Em um programa, esta operao tambm usada para comparar dois bytes, para inverter quaisquer bits de um byte

    ou para subtrair. E no h o perigo de subtrair um nmero grande, de um menor.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 14

    Registo

    Um registo um circuito electrnico que consegue memorizar o estado de um byte.

    Registo

    SFR / Special Function Register - Registo de Funo Especial

    Como acrescento aos registos que no tem qualquer funo predeterminada, todos os microcontroladores

    tem alguns registos em que a sua funo est predeterminada pelo fabricante. Os seus bits esto interligados

    sicamente aos circuitos internos, tais como temporizadores, conversores A/D, osciladores, portas srie e ou-

    tros, o que signi ca que so responsaveis pelo funcionamento do microcontrolador. Como um byte tem oito

    bits, como se fossem oito interruptores que comandam outros pequenos circuitos dentro do chip. Os SFR

    tem essa exacta funo.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 15

    SFR - Special Function Register - Registo de Funo Especial

    Portas de Entrada/Sada - I/O

    De maneira a tornar o microcontrolador de alguma utilidade, o mesmo tem que estar ligado a electrnica adi-

    cional no seu exterior, tais como perifricos. Cada micro tem um ou mais registos, chamados de Portas, ligados

    aos pinos do mesmo.

    O porqu de I/O, deve-se a que o utilizador pode alterar a funo a seu belo prazer, e conforme a aplicao a

    dar-lhes. Como exemplo, vamos supor que queremos comandar trs LEDs, e simultaneamente controlar o es-

    tado lgico de cinco botes: algumas portas tem de ser con guradas para que haja trs sadas e cinco entradas.

    Esta con gurao simples e confortavelmente feita por software, o que signi ca, tambm, que a funo pode

    ser alterada durante a operao (on-the- y).

    Uma das mais importantes especi caes dos pinos I/O, a corrente mxima que os mesmos podem suportar.

    Para a maioria dos microcontroladores, a corrente possvel de tirar de um pino a su ciente para activar um

    LED, ou outro dispositivo similar de baixa corrente (5-25mA). Se o microcontrolador tiver muitos pinos I/O,

    ento a mxima corrente de um s pino menor. Resumidamente, no possvel que todos os pinos suportem

    a mxima corrente, se houver mais de 80 pinos em total no microcontrolador. A corrente mxima descrita nas

    especi caes, partilhada entre todos os portos I/O.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 16

    Outra importante funo, a de que podem ter resistncias de pull-up (polarizao positiva). Estas resistn-

    cias ligam os pinos alimentao positiva, e o seu efeito visivel quando o pino est con gurado como entrada.

    As novas verses de microcontroladores j tem estas resistncias con guraveis por software.

    Normalmente, cada porto I/O controlado por um SFR, o que signi ca que, cada bit desse registo, determina

    o estado do pino correspondente do microcontrolador. Como exemplo, escrevendo 1 lgico no bit desse SFR,

    o pino da porta correspondente automaticamente con gurado como entrada. De outra maneira, escrevendo

    0 lgico no SFR, o pino da porta correspondente con gurado como sada. A tenso deste pino, 0v ou 5v, cor-

    responde ao estado do correspondente bit do registo da Porta.

    Se escrevermos 0 em um bit de registo da Porta, esse pino apresentar 0v. Se, inversamente, escrevermos 1 no

    mesmo bit, o pino j vai apresentar 5v.

    Portas Input/Output - Entrada/Sada

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 17

    Unidade de memria

    A memria a parte do microcontrolador usada para o armazenamento de dados.

    Cada endereo de memria corresponde a uma po-

    sio de memria. O contedo dessa posio, co-

    nhecido atravs do seu endereamento. A memria

    tanto pode ser lida de, como pode ser escrita para.

    Existem vrios tipos de memria dentro do micro-

    controlador.

    ROM - Read Only Memory: Apenas de Leitura, usada para permanentemente gravar o programa a execu-

    tar.

    OTP ROM - One Time Programmable ROM: ROM onde s se pode escrever o programa na memria ape-

    nas uma vez. Se houver necessidade de alterar o mesmo, ter de se fazer a gravao em um novo chip.

    UV EPROM - UltraViolet Erasable Programmable ROM: ROM que

    permite apagar o programa, usando luz Ultra-Violeta. O chip tem uma

    janela de vidro no topo do seu corpo, o que permite a passagem dos raios

    Ultra-Violeta, que vo apagar a memria.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 18

    FLASH - Este tipo de memria foi inventada pela Intel nos anos 80. O seu contedo pode ser escrito/apaga-

    do quase que in nitamente. Os microcontroladores com memria Flash so muito uteis para aprendizagem,

    investigao e desenvolvimento, bem como para pequenas sries. Devido sua popularidade, a maioria dos

    microcontroladores so fabricados com este tipo de memria.

    RAM - Random Access Memory: Este tipo de memria voltil, o que signi ca que quando se desliga a ali-

    mentao do chip, a sua informao desaparece. usada para o armazenamento temporrio de dados, criados

    e usados durante a operao do microcontrolador. Como exemplo, se o programa faz uma adio, necessrio

    haver um registo que tenha o valor da soma. Para esse m, um dos registos da RAM chamado de soma e

    usado para armazenar o resultado da adio.

    EEPROM - Electrically Erasable Programmable ROM: ROM programavel, que se pode apagar electricamen-

    te. O contedo desta memria pode ser mudado durante a operao, mas o seu contedo no perdido quando

    se desliga a alimentao do microcontrolador. Este tipo de memria usada para guardar valores, criados du-

    rante a operao, que devem ser permanente armazenados.

    Interrupes

    A maioria dos programas usa interrupes durante a execuo normal dos mesmos. O m de um microcon-

    trolador o de reagir consoante os estmulos exteriores. Posto por outras palavras, quando algo acontece, o

    microcontrolador faz qualquer coisa. Como exemplo, quando se pressiona um boto de um controlo remoto, o

    microcontrolador vai registar o acto, e responder ordem aumentando/baixando o volume, mudando de canal,

    etc.

    Se o microcontrolador dispendesse o teu tempo inde nidademente, a ler alguns botes durante horas ou dias,

    simplesmente seria impraticavel. Em vez de o fazer, o microcontrolador delega este trabalho ao especialista,

    que vai apenas reagir quando houver necessidade de ateno.

    O sinal que informa o processador central deste tipo de eventos, chamado de Interrupo.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 19

    CPU - Unidade Central de Processamento

    Como o seu nome sugere, esta a unidade que monitoriza e controla todos os processos dentro do microcon-

    trolador. Consiste em variadas subunidades, em que as mais importantes so:

    Descodi cador de Instrues: a parte electrnica que reconhece as instrues de programa, e faz funcionar

    o outros circuitos com base nisso. O conjunto de instrues que diferente para cada familia de microcontro-

    ladores, mostra as capacidades deste circuito.

    ALU: Unidade Lgica e Aritmtica: responsavel por todas as operaes lgicas e matemticas.

    Acumulador: um registo SFR responsavel pela operao da ALU. como um registo de trabalho, usado para

    armazenar todos os dados que so usados para executar uma operao, e que tambm armazena os resultados

    prontos para serem usados para a continuao do processamento. Um dos SFR, chamado de Status, contm

    bastante informao sobre o estado dos dados armazenados no Acumulador (o nmero maior ou menor que

    zero, etc).

    CPU - Central Processing Unit - Unidade de Processamento Central

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 20

    Barramento

    Fisicamente, o barramento constituido por 8, 16 ou mais condutores. Existem dois tipos de barramento: o de

    endereamento e o de dados. O barramento de endereamento consiste no nmero de linhas necessrias para

    poder enderear a memria. usado para transmitir o endereo da CPU para a Memria. O barramento de

    dados to largo quanto os dados que vo ser trabalhados, e no caso deste manual de 8 bits ou largura de os.

    usado para ligar todos os circuitos dentro do microcontrolador.

    Comunicaes Srie

    Ligaes paralelas entre microcontroladores e perifricos, atravs de portas I/O, so a soluo ideal para curtas

    distncias - poucos metros. No entanto, e em outros casos em que h necessidade de estabelecer comunicaes

    entre dois dispositivos em maiores distncias, no possvel utilizar comunicaes paralelas. Nestas situaes,

    a comunicao srie a melhor soluo.

    Hoje em dia, a maior parte dos microcontroladores tem dentro, j de fbrica, variados sistemas para comuni-

    caes srie. Quais destes so usados, depende de muitos factores, os quais mais importantes so:

    com quantos dispositivos, o microcontrolador tem de trocar informao?

    com que velocidade tem que ser feita a troca de dados?

    qual a distncia entre os dispositivos?

    necessrio enviar e receber dados simultaneamente?

    Um dos mais importantes pontos a considerar na comunicao srie, o Protocolo.

    O protocolo um conjunto de regras que devem ser obedecidas, de maneira a que os dispositivos possam cor-

    rectamente interpretar os dados que todos trocam entre si. Felizmente, o microcontrolador trata desta situao

    de maneira perfeitamente autnoma, o que liberta o programador para a tarefa de simplesmente ler e escrever.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 21

    CPU - Central Processing Unit - Unidade de Processamento Central

    Baud Rate - Velocidade de transferncia

    O termo Baud Rate normalmente usado para especi car o nmero de bits transferidos por segundo (bps).

    Dever-se- ter em ateno que se referem bits, e no bytes. , normalmente, requisito do protocolo, que cada

    byte seja transferido em conjunto com vrios bits de controlo, o que pode signi car que um byte da trama de

    dados srie, consista em 11 bits. Como exemplo, se o Baud Rate de 300 bps, ento, um mximo de 37 e um

    mnimo de 27 bytes podem ser transferidos por segundo, ambos dependentes do tipo de ligao e protocolo

    usado.

    Os sistemas de comunicao Srie mais usados so:

    I2C (Inter Integrated Circuit) um sistema usado quando a distncia entre microcontroladores e perifricos

    curta (normalmente o emissor e o receptor esto na mesma placa de circuito impresso). A ligao feita com

    dois condutores: um para transferncia de dados, e o outro para o sinal de relgio (sincronizao). Como se

    pode ver na gura, um dos dispositivos sempre o Mestre. Faz o endereamento de um chip Escravo, antes da

    comunicao se iniciar. Desta maneira, um microcontrolador pode comunicar com 112 dispositivos diferentes.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 22

    O Baud Rate normalmente de 100 Kbit/s no modo normal, ou de 10 Kb/s em modo lento. A distncia m-

    xima, sem ajudas, entre dispositivos que se comunicam por I2C, est limitada a poucos metros.

    Comunicao I2C

    SPI (Serial Peripheral Interface Bus) um sistema de comunicao srie, que usa at 4 condutores: um para

    receber dados, outro para enviar dados, um para sinal de relgio, e em alternativa outro para escolher com qual

    dos dispositivos o Mestre vai comunicar. uma ligao Full-Duplex, o que signi ca que o envio e a recepo

    podem ser feitas simultaneamente. O Baud Rate mximo superior a uma ligao I2C.

    Comunicao SPI

    UART (Universal Asynchronous Receiver/Transmitter) uma ligao assncrona, o que signi ca que o sinal

    de relgio no usado. Como h apenas uma linha de comunicao, ambos o receptor e emissor trabalham a

    um Baud Rate pr-determinado, de maneira a manter a sua sincronizao. Esta uma maneira muito simples

    de transferir informao, pois representa a converso de dados 8-bit em formato paralelos, para formato srie.

    O Baud Rate faz-se abaixo de 1 Mbit/s.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 23

    Oscilador

    Pulsos dados pelo oscilador, possibilitam a operao sncrona de todos os circuitos do microcontrolador. O

    mdulo oscilador normalmente con gurado para usar um cristal de quartzo, ou um ressoador cermico, para

    ter a sua oscilao estabilizada. Se no houver, por parte da aplicao, necessidade de estabilidade da oscilao,

    ento pode usar-se um oscilador RC (resistncia/condensador).

    importante sublinhar que, as instrues, no so executas ao ritmo imposto pelo oscilador, mas algumas vezes

    mais lento. Isto acontece porque cada instruo executada em vrios passos. Em alguns microcontroladores, o

    mesmo nmero de ciclos necessrio para qualquer instruo, enquanto que em outros, o tempo de execuo

    no o mesmo para todas as instrues. Se o sistema usa um cristal de 20 MHz, o tempo de execua de uma

    instruo no de 50ns, mas 200ns, 400 ou 800ns, dependendo do tipo de microcontrolador usado.

    Oscilador

    Circuito de Alimentao

    H duas situaes a ter em ateno, no que toca alimentao do microcontrolador:

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 24

    Brown-Out, um estado potencialmente perigoso, e que acontece no momento em que o microcontrolador

    est a ser desligado, ou em situaes onde a energia de alimentao cai para o limite, devido a ruido elctrico.

    Como o microcontrolador consiste em vrios circuitos com diferentes necessidades de nvel de tenso, este esta-

    do pode causar um grande desvio na sua performance. De maneira a preveni-lo, este circuito imediatamente faz

    Reset a toda a electrnica interna, quando a tenso de alimentao desce abaixo de um nvel pr-determinado.

    Pino Reset, normalmente marcado como MCLR (Master Clear Reset), e serve para fazer o Reset externo do

    microcontrolador, aplicando nvel lgico 0 ou 1, dependendo do tipo de microcontrolador usado. No caso de o

    chip no ter circuito de Brown-Out, um simples circuito externo de Brown-Out pode ser ligado a este pino.

    Temporizadores e Contadores

    O microcontrolador usa, normalmente, cristal de quartzo para funcionar. Mesmo que no seja a soluo mais

    simples, h muitas razes para o fazer. Nomeadamente, a frequncia do oscilador precisamente de nida e

    muito estavel, os pulsos originados tem sempre a mesma largura, o que os faz ideais para medies de tempo.

    Estes osciladores so usados em relgios de quartzo.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 25

    Temporizadores / Contadores

    Se necessrio medir o tempo entre dois eventos, su ciente contar os pulsos enviados pelo oscilador. Isto

    exactamente o que o Temporizador faz.

    Muitos programas usam estes cronmetros miniatura, que so SFR de 8 ou 16 bits, e o seu conteudo automa-

    ticamente incrementado a cada pulso recebido. Quando um registo chegar ao m da contagem (255 ou 65535),

    uma Interrupo gerada.

    Se os temporizadores usam um oscilador interno de quartzo, ento possvel medir o tempo entre dois eventos

    (se o valor do registo T1 no momento inicial, e T2 no momento nal, ento o tempo passado igual ao resul-

    tado da subtrao T2-T1). Se os temporizadores usam pulsos externos, ento o temporizador transformado

    em contador.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 26

    Como funciona um temporizador

    Na prtica, os pulsos que chegam do oscilador de quartzo a cada ciclo de mquina, ou atravs o divisor, vo

    incrementar (somar uma unidade) o valor do registo do temporizador. Se uma instruo (um ciclo de mqui-

    na) durar por quatro periodos do oscilador de quartzo, ento, o nmero vai mudar um milho de vezes por

    segundo, ou a cada microsegundo (us).

    Funcionamento do Temporizador

    simples medir curtos intervalos de tempo (at 256us), pelo mtodo descrito acima, porque o maior nmero

    que um registo pode ter. Esta bvia desvantagem pode ser facilmente contornavel de diversas maneiras, como

    usando um oscilador mais lento, registos com mais bits, um divisor ou interrupes. Como as duas primeiras

    solues so menos simples de resolver, preferivel enveredar pelas duas ltimas.

    Usar o divisor no funcionamento do temporizador

    Um divisor um dispositivo electrnico usado para reduzir a frequncia, por um factor pr-determinado. O

    que signi ca que, para gerar um pulso na sua sada, necessrio fazer chegar 1, 2, 4, 8 ou mais pulsos sua

    entrada. Este circuito parte integrante do microcontrolador, e o seu factor de diviso pode ser alterado pelo

    software. usado quando necessrio medir perodos de tempo longos.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 27

    Este divisor normalmente partilhado pelo Temporizador e pelo Watchdog, o que faz com que no possa ser

    usado por ambos em simultneo.

    Usando o Divisor, no funcionamento do Temporizador

    Usar a Interrupo no funcionamento do Temporizador

    Se o registo do temporizador for de 8 bits, o maior nmero que lhe poder ser escrito de 255 (ou de 65535

    se o registo for de 16 bits). Se este nmero for excedido, o temporizador vai automaticamente limpar-se (auto

    reset), e a contagem vai iniciar-se do 0. Esta condio chamada de Over ow. Se for habilitado pelo software,

    esse over ow pode gerar uma interrupo, o que nos trs imensas novas possibilidades.

    Como exemplo, o estado dos registos de um relgio, segundos-minutos-horas, podem ser alterados dentro da

    rotina de interrupo.

    Todo o processo, excepto a rotina de interrupo, executado em background, o que possibilita que o circuito

    principal do microcontrolador execute outras operaes.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 28

    Usando a Interrupo, no funcionamento do Temporizador

    Atrasos de diferente durao, com mnima interferncia do programa principal, podem facilmente ser obtidos

    atribuindo o divisor ao temporizador.

    Contadores

    Se o temporizador estiver a ser carregado com pulsos do exterior, ento o mesmo torna-se num Contador. O

    circuito no mudou, mantm-se o mesmo.

    A nica diferena que, neste caso, os pulsos a contar chegam atravs das portas, e a sua durao nunca de -

    nida. Esta a razo pela qual no podem ser usados para medio de tempo, embora os seus ns sejam imensos.

    Desde a contagem de peas numa linha de montagem, quantidade de passos que o motor andou, nmero de

    passageiros numa la, etc. As possibilidades so vastas, e so dependentes dos sensores usados.

    Temporizador Watchdog

    O watchdog um temporizador ligado a um oscilador RC, e totalmente independente do microcontrolador. O

    que faz com que no possa ser desligado durante o funcionamento.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 29

    Se o watchdog estiver ligado, escolha que apenas pode ser feita durante a programao fsica, cada vez que

    chega ao m da sua contagem, ocorre um reset do microcontrolador, e a execuo do programa volta primeira

    instruo. O objectivo fazer com que isto no acontea, pelo uso de uma instruo espec ca.

    Assim, se algo se descontrolar na execuo do programa, o microcontrolador poder reiniciar-se, no correndo

    o risco de car empatado num crculo in nito.

    Se as instrues que fazem o reset do watchdog, forem colocadas em stios espec cos do programa, ento, o

    funcionamento do watchdog no vai interferir com o programa principal. Se, por alguma razo, normalmente

    por ruidos na linha elctrica, o programa car bloqueado em alguma posio da qual no consegue sair, no vai

    ser feito o reset do watchdog e, quando este chegar ao m da contagem, o reset do microcontrolador acontece,

    iniciando o programa desde o incio.

    Temporizador Watchdog

    Conversores Analgico/Digital

    Os sinais externos so, normalmente, diferentes dos que o microcontrolador compreende (1s e 0s). Devido a

    isto, os sinais tem que ser convertidos para linguagem compatvel. Um conversor de Analgico para Digital,

    um circuito que converte sinais contnuos, para nmeros digitais. Este circuito , ento, usado para converter

    um valor analgico, para um nmero binrio, e envi-lo ao CPU para processamento. Posto por outras pala-

    vras, este mdulo usado para medir tenses presentes no pino. O resultado da medida um nmero de valor

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 30

    digital, usado e processado pelo programa.

    Conversor A/D

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 31

    Arquitectura Interna

    Todos os microcontroladores modernos usam uma de duas arquitecturas: Harvard ou von-Neumann. Em

    suma, so duas formas distintas de trocar a informao entre o CPU e a Memria.

    Arquitectura von-Neumann

    Os microcontroladores que usam esta tecnologia, s

    tem disponivel uma zona de memria, e um barra-

    mento de dados de 8 bits. Como todos os dados so

    trocados, usando estas 8 linhas, este barramento

    sobrecarregado e a comunicao extremamente lenta

    e ine ciente.

    O CPU pode lr uma instruo, ou lr/escrever da-

    dos de/para a memria. Ambas as situaes ao mes-

    mo tempo so impossiveis, pois as instrues parti-

    lham o barramento com os dados.

    Arquitectura Harvard

    Os microcontroladores que usam esta arquitectura, dispem de dois barramentos de dados distintos. Um de

    8 bits e liga o CPU RAM. O outro tem vrias linhas (12, 14 ou 16) e liga o CPU ROM.

    Assim, o CPU pode ler uma instruo, ao mesmo tempo que faz um acesso memria de dados. Como todos

    os registos RAM so de 8 bits, todos os dados trocados dentro do microcontrolador esto no mesmo formato.

    Adicionalmente, durante a escrita do software, apenas 8 bits de dados so considerados. Por outras palavras, s

    se pode trabalhar com 8 bits de dados, no mximo.

    Um programa escrito para estes microcontroladores, depois de compilado, vai ser guardado na ROM interna.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 32

    No entanto, estas posies de memria no tem apenas 8 bits, mas sim 12, 14 ou 16. Os restantes 4, 6 ou 8

    bits representam a prpria instruo, especi cando ao CPU o que fazer com os dados de 8 bits.

    Arq. Harvard

    As vantagens deste modelo, so as seguintes:

    Todos os dados so de 8 bits. Como o barramento usado para a leitura do programa tem 12, 14 ou 16

    linhas, ambos as instrues e dados pode ser lidos simultaneamente. Assim, todas as instrues so execu-

    tadas em apenas um ciclo. A nica excepo so as instrues de salto, que so executadas em dois ciclos.

    Como a ROM e RAM so separadas, o CPU pode executar duas instrues simultaneamente. Enquanto a

    leitura/escrita da RAM est a ser feita, a prxima instruo est a ser lida pelo outro barramento.

    Nesta arquitectura, o barramento de programa maior que um byte, o que possibilita que cada linha de

    programa seja feita de instruo + dados. Por outras palavras: uma linha de programa - uma instruo.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 33

    Conjunto de Instrues

    As instrues que so compreendidas pelo microcontrolador, so

    conhecidas como o Conjunto de Instrues. Quando se escreve

    um programa em linguagem Assembler, est-se a contar uma

    estria, especi cando as instrues pela ordem que as mesmas

    devem ser executadas. A nica restrio, pelo reduzido nmero

    de instrues disponiveis.

  • microcontroladores PIC Introduo

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 34

    Como escolher o microcontrolador certo para a aplicao?

    Antes de se comear a desenvolver um sistema baseado num microcontrolador, dever-se- equacionar o seguin-

    te:

    quantas entradas/sadas so necessrias?

    comunicaes srie?

    conversor A/D?

    outro...

    Quando se de ne muito bem os requisitos do projecto, a larga oferta naturalmente ltrada, e muito mais

    simples fazer a escolha adequada.

    Por ltimo, fazer a escolha consoante o nmero de unidades do produto, e o preo por unidade.

    Microcontroladores PIC

    Estes microcontroladores, fabricados pela Microchip, so provavelmente a melhor aposta para iniciados. O

    verdadeito nome deste microcontroladores PICmicro, mas so mais conhecidos por PIC.

    O primeiro modelo foi desenhado em 1975 pela General Instruments. Chamava-se PIC1650, e foi idealizado

    para ns totalmente diferentes.

    Aps 10 anos, e juntando memria EEPROM, este circuito transforma-se num verdadeiro microcontrolador

    PIC.

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 44

    Microcontrolador PIC16F887

    Uma panormica

    O PIC16F887 um dos mais recentes produtos da Microchip. Tem todos os componentes que um moderno

    microcontrolador tem e, pelo baixo custo, amplo campo de aplicaes, alta qualidade e facilidade de adquirir, a

    soluo ideal para aplicaes como: controlo de processo industrial, controlo de mquinas, medio de valores,

    entre outros.

    Algumas das funcionalidades esto descritas abaixo:

    Arquitectura RISC (CPU de instrues reduzidas)

    apenas 35 instrues para aprender

    todas as intrues de um-ciclo, excepto os saltos

    Frequncia de operao de 0 a 20MHz

    Oscilador interno de preciso

    calibrado de fbrica

    frequncia escolhida por software entre 31KHz e 8MHz

    Tenso de alimentao entre 2.0V e 5.5V

    consumo: 220uA @ 2.0V @ 4MHz, 11ua @ 2.0V @ 32KHz, 50nA em Stand-by

    Modo de poupana de energia

    Reset por Brown-out, com controlo por software

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 45

    35 pinos de I/O

    alta corrente para polarizar LEDs directamente

    resistncias individuais de polarizao positiva, programaveis por software

    interrupo quando h mudana no estado lgico dos pinos de entrada

    Memria ROM de 8k, em tecnologia FLASH

    o chip pode ser reprogramado cerca de 100.000 vezes

    Opo de gravao no circuito

    o chip pode ser programado, quando est j montado no sistema nal

    Memria EEPROM de 256 bytes

    pode ser escrita cerca de 1.000.000 vezes

    Memria RAM de 368 bytes

    Conversor A/D

    14 canais

    10 bits de resoluo

    3 Temporizadores/Contadores independentes

    Temporizador Watch-dog

    Mdulo comparador analgico com

    dois comparadores analgicos

    tenso xa de referncia, 0.6V

    referncia de tenso programavel

    Sada por PWM

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 46

    Mdulo USART melhorado

    suporta RS-485, RS-232 e LIN2.0

    deteco automtica de Baudrate

    Porta srie sncrona

    suporta os modos I2C e SPI

    Microcontrolador PIC16F887 - Encapsulamento PDIP40

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 47

    Microcontrolador PIC16F887 - Encapsulamento QFN44

    Microcontrolador PIC16F887 - Diagrama de Blocos

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 48

    Descrio dos pinos

    Como se pode ver na gura acima, quase todos os pinos so multi-funcionais. Como exemplo, o pino 33, com

    a designao RB0/AN12/INT, tem as seguintes funes:

    RB0, Porta B, primeiro pino entrada/sada (I/O)

    AN12, Dcima segunda entrada analgica

    INT, Pino de interrupo externa

    Este modo de dar funcionalidade extra aos pinos, faz o microcontrolador mais compacto, sem perder a sua fun-

    cionalidade. Estas funcionalidades no podem ser usadas em simultneo, mas podem ser alteradas a qualquer

    momento pelo software.

    As tabelas seguintes, referem-se ao microcontrolador com caixa PDIP 40 pinos :

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 49

    Atribuio de Pinos

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 50

    Atribuio de Pinos

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 51

    Atribuio de Pinos

    CPU

    No vamos falar do funcionamento da CPU por enquanto. Mas importante frisar que a CPU desenhada

    com tecnologia RISC, o que um importante factor a ter em conta, aquando da deciso de que microcontro-

    lador usar.

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 52

    Esta tecnologia oferece duas grandes vantagens:

    apenas 35 instrues para aprender

    o tempo de execuo o mesmo para todas as instrues, excepto para as que fazem salto. O que signi ca

    que com o microcontrolador a 20MHz, o tempo de execuo de cada instruo ed 200ns, ou seja, o pro-

    grama executado velocidade de 5 milhes de instrues por segundo.

    A CPU e a Memria

    Memria

    Este microcontrolador tem trs tipos de memria: ROM, RAM e EEPROM. Todas elas vo ser separada-

    mente discutidas, pois cada uma delas tm funcionalidade e organizao especi cas.

    Memria ROM

    A memria ROM usada para permanentemente guardar o programa a executar, e esta a razo pela qual

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 53

    chamada de memria de programa. O PIC16F887 tem 8Kb de ROM, num total de 8192 posies. Como esta

    ROM feita com tecnologia FLASH, o seu contedo pode ser mudado electricamente, com o auxlio de um

    programador externo.

    Conceito de Memria ROM

    Memria EEPROM

    Com parecenas memria de programa, o contedo da EEPROM permanentemente gravado, mesmo que a

    energia seja desligada. No entanto, ao contrrio da ROM, o contedo da EEPROM pode ser alterado durante

    a execuo do programa. E esta a razo, pela qual esta memria perfeita para guardar resultados criados, e

    usados, durante a operao.

    Memria RAM

    Esta a mais complexa memria do microcontrolador. Neste caso, consiste em dois mdulos: os registos-de-

    funo-geral (GPR), e os registos-de-funo-especial.

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 54

    Embora ambos os mdulos de registos sejam limpos quando a alimentao desliga, e sejam fabricados da

    mesma maneira, as suas funes so completamente dspares.

    Registos SFR - Special Funcion Registers, e GPR - General Purpose Registers

    Registos de funo geral - GPR

    Os GPR so usados para armazenar temporariamente os dados, e resultados, criados durante a execuo do

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 55

    programa. Se o programa est a executar uma contagem, necessrio que haja um registo que sirva de soma-

    dor ou contador. Como o microcontrolador tem que ser con gurado para trabalhar como o utilizador deseja,

    necessrio, tambm, especi car o endereo de alguns GPRs e dar-lhes novas funes.

    Ento, o microcontrolador pode executar o programa, porque sabe o qu, e onde est a soma que deve ser

    incrementada. Por analogia, a cada variavel do programa deve ser atribuido um GPR.

    Registos de funo especial - SFR

    Os SFR tambm so locais na RAM, mas contrariamente aos GPR, o seu m predeterminado no processo

    de fabrico, e no pode ser alterado.

    Como os seus bits esto sicamente ligados a circuitos internos do chip (mdulo de comunicaes srie, con-

    versor A/D, temporizadores, etc), qualquer alterao ao seu conteudo, afecta directamente o funcionamento do

    microcontrolador, ou alguns dos seus circuitos. Como exemplo, mudando o registo TRISB, a funo de cada

    pino da porta B pode ser alterada, para que seja ou entrada ou sada.

    Outra particularidade dos SFRs, a de que estes tem nomes, tanto o registo como os seus bits, o que torna

    a escrita do programa mais facilitada. Como a programao em linguagens de alto-nvel pode usar a lista de

    todos os registos, com o seu endereo exacto, apenas necessrio especi car o nome do registo, de maneira a

    escrever/lr o seu conteudo.

    Bancos de Memria

    A memria de dados est particionada em quatro bancos. Antes de aceder a algum registo, durante a escrita do

    programa para escrever/lr, necessrio seleccionar o banco que contm esse mesmo registo. Dois bits no reg-

    isto STATUS so usados para a seleco dos bancos. De forma a facilitar esta operao, os SFR mais comuns

    tm o mesmo endereo em todos os bancos, o que possibilita que possam ser facilmente acedidos.

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 56

    Bancos de Memria

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 57

    SFR - Banco 0

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 58

    SFR - Banco 1

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 59

    SFR - Banco 2

    SFR - Banco 3

    Pilha de memria - Stack

    A parte da RAM destinada Stack, consiste em oito registos de 13 bits. Antes do microcontrolador executar

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 60

    uma subrotina (instruo CALL), ou quando surge uma interrupo, o endereo da prxima instruo em-

    purrado para dentro de um registo da stack.

    Dessa maneira, aquando da concluso da subrotina ou interrupo, o microcontrolador sabe de onde deve con-

    tinuar a execuo normal do programa. Este endereo, na stack, limpo depois do retorno ao programa princi-

    pal, pois no h necessidade de o conservar, e essa posio ca automaticamente disponivel para ser usada.

    importante compreender que a stack funciona em crculo, ou seja, quando a stack j foi carregada oito vezes,

    a nona carga vai ser sobrepr-se ao valor que est guardado na primeira posio. A dcima carga vai sobrepr

    a segunda posio, e por a em diante. Os dados que foram sobrepostos desta maneira, no tem qualquer ma-

    neira de serem recuperados. Ainda, o programador no tem acesso a estes registos para escrever/ler, e no h

    nenhum bit no registo STATUS que indique que houve stack over ow ou stack under ow. Devido a isto,

    deve ter-se em considerao esta particularidade aquando da programao.

    Sistema de interrupo

    A primeira situao que o microcontrolador faz quando acontece uma interrupo, executar a actual instruo

    e parar a execuo do programa.

    Imediatamente depois disso, o endereo da memria do programa automaticamente empurrado para a stack,

    e o endereo prede nido carregado para o contador de programa. Essa localizao de onde o programa con-

    tinua, chama-se de Vector de Interrupo. Para o PIC em causa, o vector 0x0004.

    Como se pode ver na gura abaixo, o endereo que tem o vector de interrupo saltado durante a execuo

    normal do programa.

    Parte do programa que activado quando acontece uma interrupo, chamado de Rotina de Interrupo. A

    sua primeira instruo est localizada no vector de interrupo. Quo longa a subrotina vai ser, e como vai ser,

    depende apenas do programador, bem como do tipo de interrupo.

    Alguns microcontroladores tem mais vectores de interrupo (cada interrupo tm um vector associado),

    mas no caso deste PIC, existe apenas um vector. Consequentemente, a primeira parte da rotina de interrupo,

    consiste no reconhecimento da fonte da mesma, ou onde foi originada.

  • microcontroladores PIC Panormica

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 61

    Por ltimo, quando a origem da interrupo foi encontrada, e a rotina de interrupo executada, o micro-

    controlador chega instruo RETFIE, puxa o endereo da stack, e continua a execuo do programa de onde

    tinha sado.

    Stack e Sistema de Interrupo

    Como usar os Registos de funo especial - SFR

    O programador adquire o microcontrolador, j com uma ideia bem de nida do que vai fazer com o mesmo. H

    uma lista longa de SFRs, com os seus bits. Cada um deles controla um qualquer processo. Num todo, tudo

    como uma grande tabela de controlo, com muitos instrumentos e interruptores.

    Os microcontroladores oferecem muitos produtos a baixo preo, que cabe ao programador tomar a deciso.

    Assim, este deve escolher a rea que mais o agrada, e estudar apenas aquilo que necessita de saber.

    Depois, quando compreender por completo o funcionamento completo do hardware, deve estudar os SFRs

    que o controlam.

    E no esquecer!, que durante a escrita do programa, aquando do trabalho com registos e seus bits, deve ser

    lembrado mudar para o banco apropriado. As tabelas acima so perfeitamente explanatrias.

  • microcontroladores PIC Registos de Funo Especial

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 62

    Os Registos de Funo Especial - SFR - do CPU

    Caractersticas e Funes

    Os SFRs podem ser classi cados em duas categorias:

    SFR do CPU, que controlam e monitorizam os processos no processador central. Mesmo havendo poucos,

    a operao de todo o microcoltrolador depende do seu contedo.

    SFR perifricos, que controlam a operao dos perifricos (conversor A/D, mdulo de comunicaes srie,

    etc). Cada um destes registos normalmente usado para um circuito, e por esta razo, ser explicado mais

    frente o seu funcionamento junto com o do perifrico.

    Os SFR do CPU do PIC, sero descritos neste captulo. Visto que os seus bits controlam vrios circuitos den-

    tro do chip, no possivel classi c-los por grupos. Estes bits so descritos juntamente com o processo que vo

    controlar.

    Registo STATUS

    O registo de STATUS contm: o estado aritmtico do registo W, o estado do RESET e os bits de seleco do

    banco de memria.

    O programador deve ser cauteloso, quando escreve valores para este registo porque, se o zer erradamente, os

  • microcontroladores PIC Registos de Funo Especial

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 63

    resultados podem ser diferentes do esperado. Por exemplo, se se tentar apagar todos os bits, usando a instruo

    CLRF STATUS, o resultado no registo ser 000xx1xx, em vez do esperado 00000000.

    Tais erros acontecem, porque alguns bits deste registos so comandados pelo hardware, e no podem ser altera-

    dos pelo programa. E, tambm, os bits 3 e 4 so apenas de leitura.

    Por estas razes, se necessrio alterar o seu contedo, recomendado usar instrues que no alterem os bits

    de estado C, DC e Z. Consultar o captulo sobre as Instrues do PIC.

    IRP - selecciona o banco de resgistos. usado para endereamento indirecto.

    1 - Bancos 0 e 1 so activados (endereos de memria 0x00 a 0xFF)

    2 - Bancos 2 e 3 so activados (endereos de memria 0x100 a 0x1FF)

    RP1,RP0 - selecciona o banco de registos. usado para endereamento directo

    RP1 RP0 Banco Activo0 0 Banco 0 0 1 Banco 1 1 0 Banco 2 1 1 Banco 3

    TO - bit de Time-out

    1 - A seguir ao Power-on, ou depois de executar a instruo CLRWDT, que limpa o temporizador do watch-

    dog, ou da instruo SLEEP, que pe o microcontrolador em modo adormecido.

    0 - A seguir a ter ocorrido um time-out do temporizador watchdog.

    PD - bit de Power-down

    1 - Depois do Power-on, ou depois de executar a instruo CLRWDT, que limpa o temporizador watchdog.

    0 - Depois de de executar a instruo SLEEP, que coloca o microcontrolador em modo adormecido e baixo

    consumo.

    Z - bit Zero

    1 - O resultado da operao lgica ou aritmtica zero

  • microcontroladores PIC Registos de Funo Especial

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 64

    0 - O resultado da operao lgica ou aritmtica diferente de zero

    DC - bit de transporte de digito, mudado durante a soma ou subtraco, se houver over ow ou um borrow

    do resultado

    1 - Houve transporte do 4 bit do resultado.

    0 - No houve transporte do 4 bit do resultado.

    C - bit de Transporte, mudado durante a soma ou subtraco, se houver over ow ou um borrow do resul-

    tado: se o resultado maior que 255 ou menor que 0

    1 - Houve transporte do bit mais signi cativo do resultado

    0 - No houve transporte do bit mais signi cativo do resultado

    Registo OPTION_REG

    O registo OPTION_REG tem vrios bits de controlo, para con gurar: divisor do TMR0/WDT, temporiza-

    dor TMR0, Interrupo externa e Pull-ups da Porta B.

  • microcontroladores PIC Registos de Funo Especial

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 65

    RBPU - Interruptor dos Pull-ups da Porta B

    1 - Pull-ups desligados

    0 - Pull-ups ligados

    INTEDG - Seleco do anco da interrupo

    1 - Interrupo no anco ascendente do pino RB0/

    INT

    0 - Interrupo no anco descendente do pino RB0/

    INT

    T0CS - Seleco da fonte de clock para o TMR0

    1 - Transio no pino T0CKI

    0 - Clock interno a Fosc/4

    T0SE - Seleco do anco para o contador TMR0,

    no pino RA4/T0CKI

    1 - Incrementa no anco descendente do pino

    T0CKI

    0 - Incrementa no anco ascendente do pino T0CKI

  • microcontroladores PIC Registos de Funo Especial

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 66

    PSA - Selecciona a atribuio para o TMR0 ou

    Watchdog, do divisor

    1 - Divisor atribuido ao Watchdog

    0 - Divisor atribuido ao TMR0

    PS2, PS1 e PS0 - Bits de seleco da magnitude de diviso, do divisor interno

    A magnitude de diviso, do divisor interno, con gurada por estes trs bits, descritos na tabela abaixo. A mag-

    nitude depende de se o divisor est atribuido ao TMR0, ou ao Watchdog.

    PS2 PS1 PS0 TMR0 WDT 0 0 0 1:2 1:1 0 0 1 1:4 1:2 0 1 0 1:8l 1:40 1 1 1:16 1:8 1 0 1 1:64 1:32 1 1 0 1:128 1:64 1 1 1 1:256 1:128

    De maneira a conseguir uma diviso de 1:1, quando o temporizador TMR0 usado, o divisor dever estar atri-

    buido ao Watchdog. Como resultado, o temporizador TMR0 no usa o divisor, e conta directamente os pulsos

    que lhe so chegados pelo oscilador interno, ou por via externa no pino RA4/T0CKI.

    Registos do Sistema de Interrupes

    Quando um pedido de interrupo chega ao microcontrolador, no signi ca que a interrupo seja automatica-

    mente atendida pois, a mesma, ter de estar habilitada pelo programador. Devido a isto, h bits seleccionados

    para ligar/desligar as interrupes.

  • microcontroladores PIC Registos de Funo Especial

    antnio srgio senawww.senaeng.com : : projectos e solues em electrnica+351.967033209 67

    simples reconhecer estes bits, porque o seu nome tem a sigla IE (Interrupt Enable, ou Habilitao da Inter-

    rupo). Alm disto, cada interrupo est associada com outro bit chamado de Flag (sinalizador), que indica

    que o pedido de interrupo chegou ao microcontrolador, independentemente se a interrupo est habilitada,

    ou no. Tambm so facilmente reconhecidos pelas ltimas letras IF (Interrup Flag, ou Sinalizador de Inter-

    rupo).

    Como j foi descrito, o princpio baseado numa ideia simples e e ciente. Quando um pedido de interrupo

    chega, o bit de ag tambm automatica e autonomamente ligado em primeiro lugar.

    Registos do Sistema de Interrupes

    Se o bit respectivo IE no est activado, este evento ser completamente ignorado pelo microcontrolador. De

    outra forma, a interrupo ser trabalhada pelo CPU.

    Se vrias fontes de interrupo esto activadas, ento necessrio detectar as que esto activas, antes de iniciar

    a execuo da interrupo. A deteco feita, analisando quais os bits de ags que esto activos.

    importante compreender que os bits de ag no so automaticamente limpos, depois da interrupo ser ex-

    ecutada. Sim, devem ser apagados pelo programador, dentro do software de execuo da interrupo.

    Se este pormenor no fr tomado em conta, outra interrupo ir disparar quando se voltar para o programa

    principal, mesmo que no haja mais pedidos para a sua execuo. Resumindo, o bit de ag e o bit IE continu-

    aro activados.

    Todas as fontes de interrupo do microcont