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