Post on 05-Apr-2018
7/31/2019 Livro PIC_Microcontroladores - PtBR
1/254
antnio
s
rgio
sena
microcontroladoresPIC
7/31/2019 Livro PIC_Microcontroladores - PtBR
2/254
antnio
s
rgio
sena
microcontroladoresPIC
7/31/2019 Livro PIC_Microcontroladores - PtBR
3/254
microcontroladores PIC ndice
antnio srgio sena
www.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...........................................................................................................15
Sistemas de numerao Hexadecimal ................................................................................................16
O cdigo BCD....................................................................................................................................17
Converso de Binrio para Decimal ..................................................................................................17
Converso de Hexadecimal para Decimal .........................................................................................18
Converso de Hexadecimal para Binrio ...........................................................................................18
Bit .......................................................................................................................................................19
Byte ....................................................................................................................................................19
Circuitos Lgicos ...............................................................................................................................20
Porta lgica AND ...............................................................................................................................20
Porta lgica OR ..................................................................................................................................21Porta lgica NOT ...............................................................................................................................21
Porta lgica EXCLUSIVE OR / XOR ...............................................................................................22
Registo ...............................................................................................................................................23
SFR / Special Function Register - Registo de Funo Especial ........................................................23
Portas de Entrada/Sada - I/O .............................................................................................................24
Unidade de memria ..........................................................................................................................26
Interrupes........................................................................................................................................27
CPU - Unidade Central de Processamento ........................................................................................28
Barramento .........................................................................................................................................29
Comunicaes Srie ...........................................................................................................................29Baud Rate - Velocidade de transferncia ...........................................................................................30
Oscilador ............................................................................................................................................32
Circuito de Alimentao ....................................................................................................................32
Temporizadores e Contadores ............................................................................................................33
Temporizadores / Contadores ............................................................................................................34
Contadores .........................................................................................................................................37
Temporizador Watchdog ....................................................................................................................37
Conversores Analgico/Digital ..........................................................................................................38
7/31/2019 Livro PIC_Microcontroladores - PtBR
4/254
microcontroladores PIC ndice
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 4
Arquitectura Interna.................................................................................. 40
Arquitectura von-Neumann ...............................................................................................................40
Arquitectura 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 ...........................................................................................................................48
CPU ....................................................................................................................................................51
Memria .............................................................................................................................................52
Registos de funo geral - GPR .........................................................................................................54
Registos de funo especial - SFR .....................................................................................................55
Bancos de Memria ...........................................................................................................................55Pilha de memria - Stack ...................................................................................................................59
Sistema de interrupo .......................................................................................................................60
Como usar os Registos de funo especial - SFR ..............................................................................61
Os Registos de Funo Especial - SFR - do CPU ....................................... 62
Caractersticas e Funes ........................................................................... 62
Registo STATUS ................................................................................................................................62
Registo OPTION_REG ......................................................................................................................64
Registos do Sistema de Interrupes .................................................................................................66
Registo PCON ....................................................................................................................................75
Registos PCL e PCLATH ...................................................................................................................76
Endereamento Indirecto ...................................................................................................................79
Portas I/O - Entrada/Sada ....................................................................... 80
Funcionalidades e Funes ......................................................................... 80
7/31/2019 Livro PIC_Microcontroladores - PtBR
5/254
microcontroladores PIC ndice
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 5
Registos PORTA e TRISA .................................................................................................................81
Unidade ULPWU ...............................................................................................................................82
Registos PORTB e TRISB .................................................................................................................84
Pino RB0/INT ....................................................................................................................................87
Pinos RB6 e RB7 ...............................................................................................................................87Registos PORTC e TRISC .................................................................................................................88
Registos PORTD e TRISD .................................................................................................................89
Registos PORTE e TRISE..................................................................................................................89
Registos ANSEL e ANSELH .............................................................................................................90
Temporizadores ......................................................................................... 93
Temporizador TMR0 ................................................................................ 93
Registo OPTION_REG............................................................................ 94
Temporizador TMR1 ................................................................................ 99
Divisor do TMR1 ...............................................................................................................................100
Oscilador do TMR1 ...........................................................................................................................101
Gate do TMR1 ...................................................................................................................................101
TMR1 em modo de Temporizador .....................................................................................................102Oscilador do TMR1 ...........................................................................................................................103
TMR1 em modo de Contador ............................................................................................................104
Registo 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
7/31/2019 Livro PIC_Microcontroladores - PtBR
6/254
microcontroladores PIC ndice
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 6
Modo de PWM com CCP1 ................................................................................................................113
Periodo do PWM................................................................................................................................116
Duty-Cycle do PWM .........................................................................................................................116
Resoluo do PWM ...........................................................................................................................117
Registos CCP1CON ...........................................................................................................................117
Mdulo CCP2 ........................................................................................... 120
Registo CCP2CON ............................................................................................................................120
Configurao 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 ................................................................................................125
Receptor Assncrono da EUSART .....................................................................................................127BRG - Baud Rate Generator - Gerador de Relgio para a EUSART ................................................133
Registo BAUDCTL ............................................................................................................................137
Resumidamente: .................................................................................................................................139
Modo Sncrono da EUSART ..................................................................... 141
Modo SPI ...........................................................................................................................................142
Modo I2C ...........................................................................................................................................146I2C em modo Mestre .........................................................................................................................154
Mdulos Analgicos .................................................................................. 161
Registos e Modo do ADC - Conversor A/D.......................................................................................161
Registos ADRESH e ADRESL ..........................................................................................................162
7/31/2019 Livro PIC_Microcontroladores - PtBR
7/254
microcontroladores PIC ndice
antnio srgio sena
www.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 ..............................................................................................................................165
Registo ADCON1 ..............................................................................................................................167
Resumidamente: .................................................................................................................................167
Comparador Analgico .............................................................................. 168
Fonte de Tenso de Referncia interna ..............................................................................................169
Comparadores e funcionamento com Interrupes ............................................................................170
Registo CM1CON0 ............................................................................................................................171
Registo CM2CON0 ............................................................................................................................173
Registo CM2CON1 ............................................................................................................................175
Registo 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 ...........................................................................................................181
Modo LP, XT ou HS - Oscilador Externo ..........................................................................................183
Ressoador Cermico no modo XT ou HS ..........................................................................................184
Modo RC e RCIO - Oscilador Externo ..............................................................................................185
7/31/2019 Livro PIC_Microcontroladores - PtBR
8/254
microcontroladores PIC ndice
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 8
Modos de Relgio Interno ......................................................................... 186
Modo INTOSC - Oscilador Interno ...................................................................................................186
Modo INTOSCIO - Oscilador Interno ...............................................................................................186
Configurao do Oscilador Interno ............................................................ 187
Modo de Arranque de Relgio a Duas-Velocidades .................................. 188
Fail-Safe Clock Monitor - FSCM - Monitor de Relgio contra falhas ..............................................188
Registo OSCTUNE ............................................................................................................................189
Memria EEPROM................................................................................... 191
Registo EECON1 ...............................................................................................................................191
Leitura da EEPROM ..........................................................................................................................192
Escrita da EEPROM ..........................................................................................................................193
Reset! Black-out, Brown-out ou Ruidos? ................................................... 195
Reset por Black-out - Falha de Energia Sbita ..................................................................................196
Reset por Brown-out - Descida de Tenso Lenta e Gradual ..............................................................196
Ruidos ................................................................................................................................................197
Pino 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
7/31/2019 Livro PIC_Microcontroladores - PtBR
9/254
microcontroladores PIC ndice
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 9
Controlo de Execuo de um Programa .............................................................................................201
Perodo de execuo da instruo ......................................................................................................203
Listagem das instrues .....................................................................................................................203
Como programar um Microcontrolador .................................................... 224
Linguagem Assembly ................................................................................. 226
Instrues .................................................................................................. 227
Operandos ................................................................................................. 227
Comentrios .............................................................................................. 228
Directivas .................................................................................................. 228
Directiva PROCESSOR .....................................................................................................................228
Directiva EQU ...................................................................................................................................228
Directiva ORG ...................................................................................................................................229
Directiva END ...................................................................................................................................229Directiva .............................................................................................................................................$IN-
CLUDE ..............................................................................................................................................230
Directivas CBLOCK e ENDC ...........................................................................................................230
Directivas IF, ENDIF e ELSE ............................................................................................................231
Directiva 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 ......................................................................................................238
A implementao de um PROJECTO ................................................................................................243
Escrever um novo Programa ..............................................................................................................245
O primeiro programa..........................................................................................................................247
Simulador ...........................................................................................................................................249
7/31/2019 Livro PIC_Microcontroladores - PtBR
10/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 Hoff 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. Significava que a configura-
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
7/31/2019 Livro PIC_Microcontroladores - PtBR
11/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 prpriodesenvolvimento. 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 fieis 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-
7/31/2019 Livro PIC_Microcontroladores - PtBR
12/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 justificasse aos fabricantes mudarem de processador, por isso o 6502, o Z80 e o6800 continuaram os microprocessadores dominantes, e durante muito tempo.
7/31/2019 Livro PIC_Microcontroladores - PtBR
13/254
microcontroladores PIC Introduo
antnio srgio sena
www.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
7/31/2019 Livro PIC_Microcontroladores - PtBR
14/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 significa?: 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 cientfica? 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
15/254
microcontroladores PIC Introduo
antnio srgio sena
www.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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
16/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 nmerosso 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 dificuldades 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
17/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 figura 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 desdea 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
7/31/2019 Livro PIC_Microcontroladores - PtBR
18/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 sermultiplicado 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:
7/31/2019 Livro PIC_Microcontroladores - PtBR
19/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 significado 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 significa 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,
7/31/2019 Livro PIC_Microcontroladores - PtBR
20/254
microcontroladores PIC Introduo
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 11
os dgitos dos bytes no tem o mesmo significado. O maior valor tem o bit mais esquerda chamado de Bit
Mais Significativo (MSB - Most Significant Bit). O bit mais direita tem o menor valor, e chamado de Bit
Menos Significativo (LSB - Least Significant 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
21/254
microcontroladores PIC Introduo
antnio srgio sena
www.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
7/31/2019 Livro PIC_Microcontroladores - PtBR
22/254
microcontroladores PIC Introduo
antnio srgio sena
www.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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
23/254
microcontroladores PIC Introduo
antnio srgio sena
www.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
fisicamente aos circuitos internos, tais como temporizadores, conversores A/D, osciladores, portas srie e ou-
tros, o que significa 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
24/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 configuradas para que haja trs sadas e cinco entradas.
Esta configurao simples e confortavelmente feita por software, o que significa, tambm, que a funo pode
ser alterada durante a operao (on-the-fly).
Uma das mais importantes especificaes 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 suficiente 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
especificaes, partilhada entre todos os portos I/O.
7/31/2019 Livro PIC_Microcontroladores - PtBR
25/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 configurado como entrada.
As novas verses de microcontroladores j tem estas resistncias configuraveis por software.
Normalmente, cada porto I/O controlado por um SFR, o que significa 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 configurado como entrada. De outra maneira, escrevendo
0 lgico no SFR, o pino da porta correspondente configurado 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
7/31/2019 Livro PIC_Microcontroladores - PtBR
26/254
microcontroladores PIC Introduo
antnio srgio sena
www.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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
27/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 infinitamente. 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 significa 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 fim, 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 fim 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 indefinidademente, 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
28/254
microcontroladores PIC Introduo
antnio srgio sena
www.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:
Descodificador 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
7/31/2019 Livro PIC_Microcontroladores - PtBR
29/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 fios.
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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
30/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 especificar 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 significar 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 figura, 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
31/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 significa 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 significa 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
32/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 configurado 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:
7/31/2019 Livro PIC_Microcontroladores - PtBR
33/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 definida 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
34/254
microcontroladores PIC Introduo
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 25
Temporizadores / Contadores
Se necessrio medir o tempo entre dois eventos, suficiente 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 fim 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 final, ento o tempo passado igual ao resul-
tado da subtrao T2-T1). Se os temporizadores usam pulsos externos, ento o temporizador transformado
em contador.
7/31/2019 Livro PIC_Microcontroladores - PtBR
35/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 significa 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
36/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 Overflow. Se for habilitado pelo software,
esse overflow 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
37/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 defi-
nida. Esta a razo pela qual no podem ser usados para medio de tempo, embora os seus fins sejam imensos.
Desde a contagem de peas numa linha de montagem, quantidade de passos que o motor andou, nmero depassageiros numa fila, 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
38/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 fim 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 especfica.Assim, se algo se descontrolar na execuo do programa, o microcontrolador poder reiniciar-se, no correndo
o risco de ficar empatado num crculo infinito.
Se as instrues que fazem o reset do watchdog, forem colocadas em stios especficos 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 ficar bloqueado em alguma posio da qual no consegue sair, no vai
ser feito o reset do watchdog e, quando este chegar ao fim 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
7/31/2019 Livro PIC_Microcontroladores - PtBR
39/254
microcontroladores PIC Introduo
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 30
digital, usado e processado pelo programa.
Conversor A/D
7/31/2019 Livro PIC_Microcontroladores - PtBR
40/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 ineficiente.
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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
41/254
microcontroladores PIC Introduo
antnio srgio sena
www.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, especificando 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
42/254
microcontroladores PIC Introduo
antnio srgio sena
www.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, especificando as instrues pela ordem que as mesmas
devem ser executadas. A nica restrio, pelo reduzido nmero
de instrues disponiveis.
7/31/2019 Livro PIC_Microcontroladores - PtBR
43/254
microcontroladores PIC Introduo
antnio srgio sena
www.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 define muito bem os requisitos do projecto, a larga oferta naturalmente filtrada, 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 fins totalmente diferentes.
Aps 10 anos, e juntando memria EEPROM, este circuito transforma-se num verdadeiro microcontrolador
PIC.
7/31/2019 Livro PIC_Microcontroladores - PtBR
44/254
microcontroladores PIC Panormica
antnio srgio sena
www.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, asoluo 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
7/31/2019 Livro PIC_Microcontroladores - PtBR
45/254
microcontroladores PIC Panormica
antnio srgio sena
www.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 final
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 fixa de referncia, 0.6V
referncia de tenso programavel
Sada por PWM
7/31/2019 Livro PIC_Microcontroladores - PtBR
46/254
microcontroladores PIC Panormica
antnio srgio sena
www.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
7/31/2019 Livro PIC_Microcontroladores - PtBR
47/254
microcontroladores PIC Panormica
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 47
Microcontrolador PIC16F887 - Encapsulamento QFN44
Microcontrolador PIC16F887 - Diagrama de Blocos
7/31/2019 Livro PIC_Microcontroladores - PtBR
48/254
microcontroladores PIC Panormica
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 48
Descrio dos pinos
Como se pode ver na figura acima, quase todos os pinos so multi-funcionais. Como exemplo, o pino 33, coma 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 :
7/31/2019 Livro PIC_Microcontroladores - PtBR
49/254
microcontroladores PIC Panormica
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 49
Atribuio de Pinos
7/31/2019 Livro PIC_Microcontroladores - PtBR
50/254
microcontroladores PIC Panormica
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 50
Atribuio de Pinos
7/31/2019 Livro PIC_Microcontroladores - PtBR
51/254
microcontroladores PIC Panormica
antnio srgio sena
www.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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
52/254
microcontroladores PIC Panormica
antnio srgio sena
www.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 significa
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 especificas.
Memria ROM
A memria ROM usada para permanentemente guardar o programa a executar, e esta a razo pela qual
7/31/2019 Livro PIC_Microcontroladores - PtBR
53/254
microcontroladores PIC Panormica
antnio srgio sena
www.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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
54/254
microcontroladores PIC Panormica
antnio srgio sena
www.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
7/31/2019 Livro PIC_Microcontroladores - PtBR
55/254
microcontroladores PIC Panormica
antnio srgio sena
www.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 configurado para trabalhar como o utilizador deseja,
necessrio, tambm, especificar 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 fim predeterminado no processo
de fabrico, e no pode ser alterado.
Como os seus bits esto fisicamente 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 especificar 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
56/254
microcontroladores PIC Panormica
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 56
Bancos de Memria
7/31/2019 Livro PIC_Microcontroladores - PtBR
57/254
microcontroladores PIC Panormica
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 57
SFR - Banco 0
7/31/2019 Livro PIC_Microcontroladores - PtBR
58/254
microcontroladores PIC Panormica
antnio srgio sena
www.senaeng.com : : projectos e solues em electrnica
+351.967033209 58
SFR - Banco 1
7/31/2019 Livro PIC_Microcontroladores - PtBR
59/254
microcontroladores PIC Panormica
antnio srgio sena
www.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
7/31/2019 Livro PIC_Microcontroladores - PtBR
60/254
microcontroladores PIC Panormica
antnio srgio sena
www.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 fica 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 overflow ou stack underflow. 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 predefinido 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 figura 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
61/254
microcontroladores PIC Panormica
antnio srgio sena
www.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 ondetinha sado.
Stack e Sistema de Interrupo
Como usar os Registos de funo especial - SFR
O programador adquire o microcontrolador, j com uma ideia bem definida 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.
7/31/2019 Livro PIC_Microcontroladores - PtBR
62/254
microcontroladores PIC Registos de Funo Especial
antnio srgio sena
www.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 classificados 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 classific-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 fizer erradamente, os
7/31/2019 Livro PIC_Microcontroladores - PtBR
63/254
microcontroladores PIC Registos de Funo Especial
antnio srgio sena
www.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 Activo
0 0 Banco 0
0 1 Banco 1
1 0 Banco 21 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
7/31/2019 Livro PIC_Microcontroladores - PtBR
64/254
microcontroladores PIC Registos de Funo Especial
antnio srgio sena
www.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 overflow ou um borrow
do resultado
1 - Houve transporte do 4 bit do re