Você está na página 1de 18

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

Microcontrolador PIC
Origem: Wikipdia, a enciclopdia livre.

Os microcontroladores PIC so uma famlia de microcontroladores da


arquitetura Harvard modicada fabricados pela Microchip Technology, que
processam dados de 8 bits, de 16 bits e, mais recentemente, de 32 bits. So
derivados do PIC1650[1] originalmente desenvolvidos pela diviso de
microeletrnica da General Instrument. Seu nome oriundo de "Programmable
Interface Controller" (Controlador de Interface Programvel), anteriormente
conhecido como "Peripheral Interface Controller" (Controlador de Interface
Perifrica), hoje conhecido apenas como PIC[2] [3] . Contam com extensa
variedade de modelos e perifricos internos. Possuem alta velocidade de
processamento devido a arquitetura Harvard e conjunto de instrues RISC
(conjuntos de 35 instrues e de 76 instrues), com recursos de programao
por Memria ash, EEPROM e OTP. Os microcontroladores PIC tm famlias
com ncleos de processamento de 12 bits, 14 bits e 16 bits, e trabalham em
velocidades de 0kHz (ou DC) a 48MHz e velocidades de 16 MIPS em alguns
modelos. H o reconhecimento de interrupes tanto externas como de
perifricos internos. Funcionam com tenses de alimentao de 1.8 a 6V e os
modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos
(SOT23, DIP, SOIC, TQFP, etc).
Os PICs so populares, tanto industrialmente como para hobbystas graas ao
seu baixo custo, ampla disponibilidade, grande base de usurios, extensa
coleo de notas de aplicao, disponibilidade de ferramentas de
desenvolvimento de baixo custo ou grtis, e capacidade de programao serial
e reprogramao com memria ash.

ndice
1 Histria
1.1 Do controle de portas para controlador RISC
2 Arquitetura de ncleo
2.1 Espao de Dados (RAM)
2.2 Espao de Instrues
2.3 Palavra de memria
2.4 Pilhas
2.5 Conjunto de Instrues
2.6 Desempenho
2.7 Vantagens
2.8 Limitaes

1 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

3
4

5
6
7
8
9

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

2.9 Desenvolvimento de Compiladores


Diferenas arquiteturais
Dispositivos com ncleo bsico (12 bits)
4.1 Dispositivos intermedirios (14 bits)
4.2 Microcontroladores PIC32 de 32 bits
Programao e desenvolvimento
Perifricos internos
Modelos comuns de PICs
Referncias
Ligaes externas

Histria
As razes dos PICs se originaram na universidade de Harvard com um projeto
para o Departamento de Defesa, mas este foi vencido por um projeto de
memria mais simples (e mais convel na poca) da Universidade de
Princeton. A arquitetura Harvard foi primeiramente usada no 8x300 da
Signetics, e foi adotada pela General Instruments para uso como interface
controladora de perifricos (PIC) que foi projetada para compensar o fraco
barramento de I/O da sua CPU CP1600 de 16 bits. A diviso de microeletrnica
foi depois transformada na Arizona Microchip Technology (por volta de 1985),
com os PICs como seu produto principal. Os PICs tinham um grande conjunto
de registradores (de 25 a 192 registradores de 8 bits, comparado com os 144
do Z8). Existem at 31 registradores diretos, mais um acumulador W, embora
R1 a R8 tambm tenham funes especiais - R2 o PC (com uma pilha
implicita de 2 a 16 nveis), e R5 a R8 controlam as portas de I/O. R0 mapeado
no registrador R4 (FSR) e serve como apontador (semelhante ao ISR no F8, ele
o nico meio de se acessar o registrador R32 ou acima).
O PIC16x muito simples, tem somente 33 instrues de 12 bits de largura
xa, incluindo diversas instrues de salto condicional a ags para a prxima
instruo (para loops e rotinas condicionais), produzindo um cdigo enxuto
importante para aplicaes em sistemas embarcados. Ele tem pipelines
marginais (2 estgios, 1 de busca e 1 de execuo), combinados com execuo
em um ciclo (exceto para saltos, com 2 ciclos), tendo um desempenho muito
bom para a sua categoria.
O PIC 17x tem mais modos de endereamento (direto, indireto, e relativo; as
instrues de modo indireto gastam 2 ciclos para execuo), mais instrues
(58 de 16 bits), mais registradores (232 a 454), mais at 64k palavras de
espao de programa (2k a 8k no chip). As verses top de linha tambm
possuem instrues de multiplicao de 8 bits sem sinal de 1 ciclo. Esse
modelo est obsoleto, no sendo mais recomendado para novos projetos de
acordo com a Microchip.
O PIC 16x uma variante interessante do projeto de 8 bits feita por volta de
1985 pela General Instruments com tcnicas de projeto mais inovadoras do
2 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

que a de outras CPUs da lista (o 1650, o sucessor do 1600 mais comum). Ela
perdeu para outras CPUs mais populares e foi posteriormente vendida para a
Microchip Technology, que ainda o vende para pequenas aplicaes em
sistemas embarcados. Um exemplo deste microcontrolador uma pequena
placa chamada Basic Stamp. que consiste em 2 circuitos integrados (1 PIC
16C56 de 18 pinos, um interpretador Basic em 512 palavras de ROM e uma
memria EEPROM serial de 256 bytes) com uma porta de I/O onde os
programas do usurio podem ser armazenados (por volta de 80 linhas de
comando de Basic).

Do controle de portas para controlador RISC


Em 1965 a General Instruments criou a diviso de microeletrnica, e sem
dvida usou esta diviso para gerar algumas das primeiras arquiteturas de
memrias EPROM e EEPROM viveis. A Diviso de Microeletrnica da General
Instrumens foi responsvel tambm por uma grande variedade de funes
digitais e analgicas, com as famlias AY3-xxxx e AY5-xxxx.
A General Instruments tambm criou um microprocessador de 16 bits chamado
CP1600, no comeo dos anos 70. Era um microprocessador razovel, mas
especialmente era pobre em portas de entrada e sada. Para algumas
aplicaes muito especcas onde as portas de I/O eram necessrias, a General
Instruments projetou uma interface controladora de perifricos (ou PIC
abreviadamente, de Peripherical Interface Controller em ingls), por volta de
1975. Ele era projetado para ser muito rpido, dado que era para ser portas de
I/O de uma mquina de 16 bits, mas no tinha uma grande capacidade de
funcionalidade, tendo um conjunto de instrues microcodicadas pequeno. A
arquitetura projetada em 1975 substanciamente a arquitetura de hoje do
PIC16C5x. A verso de 1975 foi fabricada em NMOS, e era somente disponvel
em verses ROM mascaradas. O mercado, contudo, no pensava
particularmente assim, e os PICs permaneceram projetados somente para um
punhado de grandes clientes.
No nal dos anos 80, a General Instruments fez uma grande reviso no seu
negcio e se restruturou, deixando para se concentrar nas suas atividades
principais, que eram essencialmente semicondutores de potncia. A Diviso de
Microeletrnica da General Instruments se tornou a General Instruments
Microelectronics Inc. (subsidiria integral), da qual 85% foi nalmente vendida
para alguns investidores, incluindo a fbrica em Chandler, no Arizona. O
pessoal desses investidores analisou profundamente a linha de produtos e fez
uma limpeza na maioria deles, como a linha AY3 e AY5 e outros produtos,
restando como negcio principal os PICs e as EEPROMs paralelas. Houve uma
deciso de reiniciar uma nova empresa, chamada Arizona Microchip
Technology.
Como parte da estratgia, a famlia NMOS PIC165X foi reprojetada para usar
um recurso em que a empresa era muito, o EPROM, o conceito de ser baseado
em CMOS, one-time-programmable e assim a famlia PIC16C5X de memria de
programa EPROM apagvel tinha nascido.

3 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

PIC uma famlia de


microcontroladores RISC fabricada
pela Microchip, derivada do PIC1650
originalmente desenvolvida pela
diviso de microeletrnica da General
Instruments. A Microchip no usa PIC
como um acrnimo, na realidade a
marca PICmicro. Geralmente
PIC1655A-748
conhecido que PIC signica
Peripherical Interface Controller,
embora o acrnimo original para o PIC1650 era Programmable Intelligent
Computer.
O PIC original foi fabricado para ser usado com a nova CPU de 16 bits da
General Instruments, o CP1600. Apesar de ser uma boa CPU, o CP1600 tinha
fraco desempenho de portas de I/O, e o PIC de 8 bits foi desenvolvido em 1975
para melhorar o desempenho do sistema em geral liberando as tarefas de I/O
da CPU. O PIC usava simples microcdigos armazenados na ROM para
desempenhar suas tarefas, e e embora o termo no tenha sido usado na poca,
ele tinha um projeto RISC que executava uma instruo por ciclo (4 ciclos de
'clock').
Em 1985, a General Instruments vendeu a diviso de microeletrnica, e os
novos donos cancelaram quase tudo, o que na poca era obsoleto. Os PICs
contudo, foram atualizados com EPROM para produzir um controlador
programvel, e hoje uma grande variedade de PICs disponvel com vrios
perifricos internos (mdulos de comunicao serial, UARTS, ncleos de
controle de motores, etc.) e memria de programa de 512 a 32k palavras.

Arquitetura de ncleo
A arquitetura do PIC caracterizada pelos seus mltiplos atributos:
Espaos separados de instrues e dados (Arquitetura Harvard).
Um pequeno nmero de instrues de tamanho xo.
A maioria das instrues so de execuo de nico ciclo (2 ciclos de clock,
ou 4 ciclos de clock em modelos de 8 bits), com um ciclo de atraso em
desvios (branch) e saltos.
Um acumulador (W0), cuja utilizao (como fonte operando) est implcita
(ou seja, no codicado no cdigo de operao, ou opcode).
Todos os locais de memria RAM funcionam como registradores como
fonte e / ou destino de matemtica e outras funes[4] .
Uma pilha em hardware para armazenamento de endereos de retorno.
Uma pequena quantidade de espao de dados enderevel (32, 128, ou
256 bytes, dependendo da famlia), alargada atravs de banking.
Sinalizadores de status da ULA so mapeados para o espao de dados.
O Program Counter tambm mapeado no espao de dados e gravvel
(este usado para implementar saltos indirectos).

4 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

No h distino entre o espao de memria e o espao de registradores


porque a RAM faz o trabalho de memria e de registradores, e a memria RAM
geralmente referida apenas como o arquivo de registro ou simplesmente
como os registradores.

Espao de Dados (RAM)


PICs tm um conjunto de registradores que funcionam como uma RAM de
propsito geral. Registradores de controle especiais para recursos de
hardware tambm so mapeados para o espao de dados. A capacidade de
endereamento de memria varia dependendo da srie de dispositivo, e todos
os dispositivos PIC tem algum mecanismo para estender para endereamento
de memria adicional. Sries de dispositivos mais recentes possuem instrues
de transferncias que podem cobrir todo o espao enderevel, independente
do banco seleccionado. Em dispositivos anteriores, qualquer movimento nos
registradores tinha que ser feito atravs do acumulador.
Para implementar endereamento indireto, um "le select register"
(registrador de seleo de arquivo - FSR) e "indirect register" (registrador
indireto - INDF) so usados. Um nmero de registrador gravado no FSR,
aps o que l ou escreve para INDF vai ser realmente para ou a partir do
registrador apontado por FSR. Dispositivos posteriores estenderam esse
conceito com ps e pr-incremento / decremento para maior ecincia no
acesso aos dados armazenados sequencialmente. Isto tambm permite que o
FSR seja tratado quase como um ponteiro de pilha (SP).
Memria de dados externa no enderevel diretamente, exceto em alguns
dispositivos PIC18 com grande quantidade de pinos.

Espao de Instrues
O espao de instrues geralmente implementado como ROM, EPROM ou
ash ROM. Em geral, a memria de instrues externa no enderevel
directamente devido falta de uma interface de memria externa. As excees
so PIC17 e selecione dispositivos PIC 18 com grande quantidade de pinos [5] .

Palavra de memria
Todos os PICs manipulam (e endeream) dados em blocos de 8 bits. No
entanto, a unidade de endereamento do espao de cdigo geralmente no o
mesmo que o espao de dados. Por exemplo, famlias de PICs na linha de base
(PIC12) e mid-range (PIC16) tm memria de instrues enderevel no
mesmo tamanho como a largura de instruo, ou seja, 12 ou 14 bits,
respectivamente. Em contraste, na srie PIC18, a memria de instrues
dirigido em incrementos de 8 bits (bytes), que difere da largura da instruo de
16 bits.

Pilhas
5 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

PICs tm uma pilha de chamadas implementada em hardware, que utilizada


para guardar endereos de retorno. A pilha de hardware no acessvel por
software em dispositivos anteriores, mas isso mudou com os dispositivos da
srie 18.
Suporte de hardware para uma pilha de parmetros de uso geral era ausente
em sries anteriores, mas isso melhorou muito na srie 18, fazendo com que a
arquitetura da srie 18 mais amigvel para compiladores de linguagem de alto
nvel.

Conjunto de Instrues
Instrues de um PIC podem variar de cerca de 35 instrues (PICs mais
simples) para mais de 80 instrues para os PICs high-end. O conjunto de
instrues inclui instrues para executar uma variedade de operaes em
registros diretamente, o acumulador e uma constante literal ou o acumulador e
um registrador, bem como para a execuo condicional, e saltos de execuo.
Algumas operaes, como bit setting e testes, pode ser realizada em qualquer
registrador numerado, mas operaes aritmticas bi-operando sempre
envolvem o W (acumulador), escrevendo o resultado de volta para W ou outro
registrador operando. Para carregar uma constante, necessrio carreg-lo
em W antes de ser transferida para outro registrador. Nos cores mais antigos,
todos os movimentos de registrador precisavam passar por W, mas isso mudou
nos ncleos "high-end".
Ncleos do PIC tem instrues de saltos que so utilizados para a execuo
condicional e desvios. As instrues de salto so "skip if bit set" e "skip if bit
not set". Porque os ncleos anteriores ao PIC18 tinham apenas instrues de
desvio incondicional, saltos condicionais so implementados por um desvio
condicional (com a condio oposta), seguido de um desvio incondicional. Pulos
tambm so de utilidade para a execuo condicional de qualquer instruo
simples imediatamente seguinte. Tambm possvel pular instrues de salto.
Por exemplo, a sequencia de instrues "pular se A; pular se B; C" ir executar
C se A verdadeiro ou B for falso.
A srie PIC18 implementou registradores "sombra" (shadow registers) que
salvam vrios registradores importantes durante uma interrupo, fornecendo
suporte de hardware para salvar automaticamente o estado do processador
durante a manuteno de interrupes.
Em geral, as instrues do PIC so divididas em 5 classes:
1. Operao no registrador de trabalho (WREG), com imediato ("literal")
operando de 8 bits. Por exemplo, movlw (mover literalmente para WREG),
andlw (AND literal com WREG). Uma instruo peculiar retlw, que carrega
imediatamente em WREG e retorna, que usado com desvios computados
para produzir tabelas de consulta.
2. Operao com WREG e registrador indexado. O resultado pode ser escrito

6 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

ou no registrador de trabalho (ex.: addwf reg, w) ou o registrador


selecionado (ex.: addwf reg, f).
3. Operaes em bits. Estes tomam um nmero do registrador e um nmero
de bit, e realiza uma das 4 aes: denir ou limpar um bit, e testar e pular
na denio/limpeza. Estas ltimas so utilizadas para realizar desvios
condicionais. Os sinalizadores de status habituais da ULA esto
disponveis em um registrador numerado, ento operaes como "desvio
de carga clara" so possveis.
4. Controle de transferncia. Alm das instrues de salto previamente
mencionadas, existem apenas dois: goto e call.
5. Algumas instrues diversas sem operando, como retorno de subrotina e
sleep para entrar em modo de economia de energia.

Desempenho
As decises da arquitetura so direcionadas para a maximizao da relao de
velocidade-custo. A arquitetura Harvard - onde as instrues e os dados so
provenientes de fontes diferentes - simplica muito o tempo e o desenho do
circuito, beneciando velocidade do clock, preo e consumo de energia.
O conjunto de instrues PIC adequado para a implementao de tabelas de
consulta rpida no espao do programa. Tais consultas tomam uma instruo e
dois ciclos de instruo. Muitas funes podem ser modeladas deste modo. A
optimizao facilitada pelo espao relativamente grande do espao de
instrues (como 4096 x palavras de 14 bits no 16F690) e pelo projeto do
conjunto de instrues, que permite constantes embutidas.
Latncia de interrupo constante em trs ciclos de instruo. Interrupes
externas precisam ser sincronizadas com o ciclo de instrues de 4 ciclos de
clock, caso contrrio, poder haver um ciclo jitter de uma instruo.
Interrupes externas j esto sincronizadas. A latncia de interrupo
constante permite que os PICs consigam atingir sequncias de baixa oscilao.
Um exemplo disto um gerador de impulsos de sincronizao de vdeo. Isso
no mais realidade nos mais novos modelos do PIC, porque eles tm uma
latncia de interrupo sncrona de trs ou quatro ciclos.

Vantagens
Pequeno conjunto de instrues para aprender
Arquitetura RISC
Oscilador embutido com velocidade selecionvel
Kits de desenvolvimentos para iniciantes disponveis por menos de 50
dlares
Microcontroladores baratos
Grande disponibilidade de interfaces, como USB, IC, SPI, Ethernet, entre
outros[6]
Disponibilidade de processadores em pacote DIL torn-los fceis de
manusear para uso como hobby.
7 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

Limitaes
Um acumulador
Bank switching por registrador necessrio para acessar a RAM em
diversos dispositivos
Operaes e registradores no so ortogonais; algumas instrues podem
enderear RAM e/ou constantes imediatas, enquanto outros podem usar
apenas o acumulador.
As seguintes limitaes em pilhas foram corrigidos na srie PIC18, mas ainda
so presentes em PICs anteriores:
A pilha de chamadas em hardware no enderevel, a alternncia de
tarefas de modo preemptivo no pode ser implementado
Pilhas implementadas por software no so ecientes, por isso difcil
gerar cdigo reentrante e suportar as variveis locais
Com memria de instrues paginada, h dois tamanhos de pgina para se
preocupar: um para CALL e GOTO e outro para GOTO computada
(normalmente usado para consultas de tabela). Por exemplo, em PIC16, CALL e
GOTO tem 11 bits de endereamento, de modo que o tamanho da pgina de
2048 palavras de instruo. Para GOTOs computadas, onde voc adicionar ao
PCL, o tamanho da pgina de 256 palavras de instruo. Em ambos os casos,
os bits de endereo superiores so fornecidos pelo registrador PCLATH. Este
registrador deve ser trocado a cada transferncia de controle de tempo entre
as pginas. PCLATH tambm deve ser preservado por qualquer manipulador
de interrupo.[7]

Desenvolvimento de Compiladores
Enquanto vrios compiladores comerciais esto disponveis, em 2008, a
Microchip lanou seus prprios compiladores C, C18 e C30, para a linha de
processadores 18F 24F e 30/33F.
A partir de 2013, a Microchip oferece sua srie de compiladores XC, para uso
com MPLAB X. Microchip acabar por eliminar gradualmente os seus
compiladores mais antigos, como C18, e recomenda o uso de seus
compiladores srie XC para novos modelos.
O conjunto de instrues RISC do cdigo de linguagem de montagem do PIC,
embora sendo simples, pode fazer o uxo global difcil de compreender. O uso
criterioso de macros simples podem melhorar a legibilidade da linguagem
assembly do PIC. Por exemplo, o assembler original Parallax PIC ("SPASM")
tem macros que escondem W e fazem o PIC car parecido com uma mquina
de dois endereos.

Diferenas arquiteturais

8 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

Os PICs usam a arquitetura Harvard, e as palavras de instruo possuem


tamanhos incomuns. Originalmente, instrues de 12 bits incluam endereo de
5 bits para especicar o operando em memria, e destinos de desvios de 9 bits.
Revises posteriores adicionaram bits aos cdigos de operaes (opcode),
permitindo adicionar bits para endereos.

Dispositivos com ncleo bsico (12 bits)


Estes dispositivos apresentam memria de instrues com 12 bits, um arquivo
de registradores de 32 bytes, e uma pequena pilha de chamadas de dois nveis
de profundidade. Eles so representados pela srie PIC10, bem como por
alguns dispositivos PIC12 e PIC16. Dispositivos da linha de base esto
disponveis em pacotes de 6 pinos a 40 pinos.
Geralmente os primeiros 7-9 bytes do arquivo de registradores so
registradores de uso especial, e os bytes restantes so de uso geral RAM. Os
ponteiros so implementados usando um par de registradores: depois de
escrever um endereo para o FSR (selecionador de arquivo de registradores), o
registrador INDF (f indireto) torna-se um alias para o registrador abordado. Se
RAM comutada implementada, o nmero do banco selecionado pelos 3
primeiros bits do FSR. Isso afeta os nmeros de registradores 16-31;
registradores 0-15 so globais e no so afetados pelos bits selecionados.
Devido ao espao dos registradores ser muito limitado (5 bits), 4 registradores
raramente lidos no foram atribudos endereos, mas so escritos por
instrues especiais (OPTION e TRIS).
O espao de endereo ROM de 512 palavras (12 bits cada), que podem ser
estendidos a 2048 palavras por comutao. Instrues CALL e GOTO especicar as
ltimos 9 bits do novo local do cdigo; bits de ordem superior adicionais so
tomadas a partir do registrador de status. Note-se que a instruo CALL inclui
apenas 8 bits de endereo, e s pode especicar endereos no primeira metade
de cada pgina de 512 palavras.
Tabelas de consulta so implementadas utilizando um GOTO computado
(atribuio de registrador PCL) em uma tabela de instrues RETLW.
O conjunto de instrues ser apresentado a seguir. Nmeros de registrador
so referidos como "f", enquanto que as constantes so referidos como "k".
Nmeros binrios (0-7) so seleccionados por "b". O bit "d" seleciona o destino:
0 indica W, enquanto que 1 indica que o resultado escrito de volta para
registrador fonte f. Os sinalizadores de status C e Z podem ser denido com
base no resultado; caso contrrio, eles so no modicados. Instrues de
soma e subtrao (mas no rotao) que denem C tambm denem o
sinalizador DC (digit carry), o carry do bit 3 para o bit 4, que til para a
aritmtica em BCD.

9 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

Conjunto de instrues PIC 12 bits


11 10 9 8 7 6 5 4 3 2 1 0 Mnemnico C? Z?
opcode

Descrio

0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 NOP

Nenhuma operao
(MOVW 0,W)

0 0 0 0 0 0 0 0 0 1 0 OPTION

Copia W para o
registrador OPTION

0 0 0 0 0 0 0 0 0 1 1 SLEEP

Entra em modo de
economia de energia

0 0 0 0 0 0 0 0 1 0 0 CLRWDT

Reinicia o watchdog
timer

Instrues diversas

Copia W para o
registrador de triplo
estado (f = 1, 2 or 3)

TRIS f

0 0 0 0 0 0 0 0 1

0 0 0 0 0 1

MOVWF f

0 0 0 0 1 d

CLR f,d

0 0 0 1 0 d

SUBWF f,d

0 0 0 1 1 d

DECF f,d

Z dest f1

0 0 1 0 0 d

IORWF f,d

dest f | W, OU
inclusivo lgico

0 0 1 0 1 d

ANDWF f,d

dest f & W, AND (E)


lgico

0 0 1 1 0 d

XORWF f,d

Z dest f ^ W, XOR lgico

0 0 1 1 1 d

ADDWF f,d

0 1 0 0 0 d

MOVF f,d

Z dest f

0 1 0 0 1 d

COMF f,d

0 1 0 1 0 d

INCF f,d

Z dest f+1

0 1 0 1 1 d

DECFSZ f,d

dest f1, ento pula se


0

RRF f,d

dest CARRY<<7
&#124; f>>1, rotacionar
para a direita atravs do
carry

10 de 18

opcode

0 1 1 0 0 d

register

Operaes na ULA: dest OP(f,W)


dest W

dest 0, normalmente
escrito CLRW ou CLRF f

dest fW (dest
f+~W+1)

Z dest f+W
dest ~f, complemento
bit a bit

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

dest F<<1 | CARRY,


rotacionar para a
esquerda atravs do
carry

0 1 1 0 1 d

RLF f,d

0 1 1 1 0 d

SWAPF f,d

dest f<<4 | f>>4,


swap nibbles

0 1 1 1 1 d

INCFSZ f,d

dest f+1, ento pula se


0

op

bit

register

1 0 0

bit

BCF f,b

Limpar bit b de f

1 0 1

bit

BSF f,b

Denir bit b de f

1 1 0

bit

BTFSC f,b

Pular se bit b de f est


limpo

1 1 1

bit

BTFSS f,b

Pular se bit b de f est


denido

op

Operaes em Bits

Transferncias de controle

0 0 0

RETLW k

Dene W k, ento
retorna de uma
subrotina

0 0 1

CALL k

Chama uma subrotina,


endereo de 8 bits k

0 1

GOTO k

Pula para o endereo de


9 bits k[8]

1 0 0

MOVLW k

1 0 1

IORLW k

W k | W, OU lgico
(OR) bit a bit

1 1 0

ANDLW k

W k & W, E lgico
(AND) bit a bit

1 1 1

XORLW k

W k ^ W, OU exclusivo
(XOR) bit a bit

op

k
8-bit immediate

Operaes com W e 8 bit literal: W


OP(k,W)
Wk

11 10 9 8 7 6 5 4 3 2 1 0 Mnemnico C? Z?

Descrio

Dispositivos intermedirios (14 bits)


Estes dispositivos apresentam uma memria de 14 bits e um pilha de chamada
com 8 nveis. O conjunto de instrues difere muito pouco a partir dos
dispositivos da linha de base, mas os 2 bits adicionais permitem opcode com
128 registradores e 2048 palavras de cdigo para ser diretamente

11 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

endereados. Existem algumas instrues diversas adicionais, e duas


instrues adicionais literais de 8 bits, somar e subtrair. O ncleo
intermedirio est disponvel na maior parte dos dispositivos PIC12 e PIC16.
Os primeiros 32 bytes do espao de registradores so alocados aos
registradores de uso especial; os 96 bytes restantes so usados para RAM de
propsito geral. Se RAM comutada utilizada, os 16 registros (0x70-0x7F) so
globais, assim como alguns dos mais importantes registradores para ns
especiais, incluindo o registrador STATUS que detm os bits de seleo de
banco de memria RAM.
As fontes de registrador PCLATH de alta ordem bits de endereo de instruo,
quando os 8 bits fornecidos por uma gravao para o registrador PCL, ou os 11
bits fornecidos por uma instruo GOTO ou CALL, no suciente para resolver o
espao de ROM disponvel.

12 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

Conjunto de instrues do PIC 14 bits


13 12 11 10 9 8 7 6 5 4 3 2 1 0 Mnemnico C? Z?
0
0

0
0

0
0

0 0 0 0

opcode

Descrio

Instrues diversas

0 0 0 0 0 0 0 0 0 0 0 NOP

Nenhuma
operao (MOVW
0,W)

0 0 0 0 0 0 0 1 0 0 0 RETURN

Retorna de uma
subrotina, W no
modicado

0 0 0 0 0 0 0 1 0 0 1 RETFIE

Retorna de uma
interruo

0 0 0 0 1 1 0 0 0 1 0 OPTION

Copia W para o
registrador
OPTION (obsoleta)

0 0 0 0 1 1 0 0 0 1 1 SLEEP

Entra em modo de
economia de
energia

0 0 0 0 1 1 0 0 1 0 0 CLRWDT

Reinicia o
watchdog timer

0 0 0 0 1 1 0 0 1

opcode
0

0 0 0 1

registrador
f

Copia W para um
registrador de
triplo estado (f =
1, 2 or 3)
(obsoleta)

TRIS f

Operaes na ULA: dest OP(f,W)


MOVWF f

fW
dest 0,
normalmente
Z
escrito como
CLRW or CLRF f

0 0 1 d

CLR f,d

0 1 0 d

SUBWF f,d

0 1 1 d

DECF f,d

Z dest f1

dest fW (dest
f+~W+1)

1 0 0 d

IORWF f,d

dest f | W, ou
Z inclusivo (OR)
lgico

1 0 1 d

ANDWF f,d

dest f & W, e
lgico (AND)

1 1 0 d

XORWF f,d

dest f ^ W, ou
exclusivo (XOR)

13 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

1 1 1 d

ADDWF f,d

0 0 0 d

MOVF f,d

Z dest f

Z dest f+W

0 0 1 d

COMF f,d

dest ~f,
Z complemento bit a
bit

0 1 0 d

INCF f,d

Z dest f+1

0 1 1 d

DECFSZ f,d

dest f1, ento


desvia se zero

RRF f,d

dest CARRY<<7
&#124; f>>1,
rotaciona direita
atravs do carry

dest f<<1 |
CARRY, rotaciona
esquerda
atravs do carry

1 0 0 d

1 0 1 d

RLF f,d

1 1 0 d

SWAPF f,d

dest f<<4 |
f>>4, swap
nibbles

1 1 1 d

INCFSZ f,d

dest f+1, ento


desvia se zero

bit

registrador

bit

BCF f,b

Limpa bit b de f

bit

BSF f,b

Dene bit b de f

bit

BTFSC f,b

Pula se bit b de f
est limpo

bit

BTFSS f,b

Pula se bit b de f
est denido

0 op

CALL k

Chama subrotina

GOTO k

Pula para o
endereo k

14 de 18

op

opcode
0
0

0
1

x x
x x

Operaes em bits

Transferncias de controle

8-bit immediate
k
k

Operaes com W e 8 bit literal: W


OP(k,W)
MOVLW k

Wk

RETLW k

W k, ento
retorna de uma
subrotina

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

0 0 0

0 0 1

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

IORLW k

W k | W, ou
Z lgico (OR) bit a
bit

ANDLW k

W k & W, e
Z lgico (AND) bit a
bit
W k ^ W, ou
Z exclusivo (XOR)
bit a bit

0 1 0

XORLW k

0 1 1

(reservado)

1 0 x

SUBLW k

1 1 x

ADDLW k

Z W k+W

13 12 11 10 9 8 7 6 5 4 3 2 1 0 Mnemnico C? Z?

W kW (dest
k+~W+1)

Descrio

Microcontroladores PIC32 de 32 bits


Em novembro de 2007, a Microchip apresentou a nova famlia de
microcontroladores PIC32MX de 32 bits[9] . A linha inicial do dispositivo
baseada no padro da indstria MIPS32 M4K Core. O dispositivo pode ser
programado usando o "Microchip MPLAB C Compiler for PIC32 MCUs
(http://www.microchip.com/developmenttools/)", uma variante do compilador
GCC. Os primeiros 18 modelos atualmente em produo (PIC32MX3xx e
PIC32MX4xx) so pino a pino compatvel e compartilham os mesmos
perifricos estabelecidos com a famlia de dispositivos PIC24FxxGA0xx (16
bits), permitindo o uso de bibliotecas comuns, software e ferramentas de
hardware. Hoje est disponvel em 28 pinos em pacotes QFN pequenos at
dispositivos de alto desempenho com Ethernet, CAN e USB OTG.
A arquitetura PIC32 traz uma srie de novos recursos para portflio da
Microchip, incluindo:
A maior velocidade de execuo: 80 MIPS (mais de 120 MIPS @ 80 MHz
com o benchmark Dhrystone[10] )
A maior memria ash: 512 KB
Execuo de uma instruo por ciclo de clock
O primeiro processador com cache
Permite a execuo a partir RAM
O prximo produto da Microchip ser a famlia de microcontroladores
PIC32MZ.

Programao e desenvolvimento

15 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

Como qualquer arquitetura os processadores PIC apenas aceitam linguagem de


mquina (assembly). No entanto a programao pode ser feita em linguagens
de alto nvel utilizando-se compiladores. Existem vrias alternativas pagas de
compiladores. Em geral possivel utiliz-los de modo gratuito com algumas
restries. Para as famlias PIC16 e PIC18 existe uma alternativa opensource o
SDCC, que pode ser congurado para operar com o MPLAB.
Existem ainda diversas IDE's disponveis para a programao, entre elas a
mais utilizada o MPLAB, disponibilizado de modo gratuto pela prpria
Microchip. H atualmente uma verso beta de IDE baseada no Netbeans sendo
desenvolvida pela Microchip: MPLABX. Esta IDE j vem com suporte para
qualquer Windows, Mac e Linux.
Para gravar o programa no microcontrolador utilizado um dispositivo
dedicado. comum que tais dispositivos tambm possuam capacidade de
depurar o programa, o que auxilia muito na fase de testes dos sistemas.
possivel ainda encontrar diversas placas de desenvolvimento que j possuem
um hardware pr-montado de modo a agilizar o projeto de um produto,
permitindo que se comece a desenvolver o software em paralelo com o
hardware.

Perifricos internos
Seus principais perifricos internos (a
disponibilidade varia conforme o
modelo):
USARTs
Controladores de comunicao
I2C, SPI, USB e Paralelo
Controladores PWM
Controladores de LCD
Controladores de motores
Gerador de energia de alta
potncia
Perifricos para LIN
(http://en.wikipedia.org

Dispositivos PIC

/wiki/Local_Interconnect_Network), CAN
Controladores Ethernet
Perifricos IRDA (http://en.wikipedia.org/wiki/Infrared_Data_Association)
Codicadores para criptograa Keeloq
Watchdog timer
Detetores de falha na alimentao
Portas digitais com capacidade de 25mA (fornecer ou drenar) para acionar
circuitos externos
Osciladores internos
RTCC - Real Time Clock (http://en.wikipedia.org/wiki/Real_Time_Clock)

16 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

and Calendar (Relgio de tempo real e calendrio)


Tecnologia Deep Sleep - consumo de nano Watt
CRC - Cyclic Redundancy Check programvel

Modelos comuns de PICs


PIC16F84/PIC16F84A
PIC16F628/PIC16F628A
PIC16F877/PIC16F877A
PIC18F452/PIC18F4520
PIC16F876
PIC24F/PIC24H

Referncias
1. PIC Device Documentation (http://ww1.microchip.com/downloads/en/DeviceDoc
/39630C.pdf) (PDF).
2. "MOS DATA 1976", General Instrument 1976 Databook
3. "1977 Data Catalog", Micro Electronics from General Instrument Corporation
http://www.rhoent.com/pic16xx.pdf
4. http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf
5. http://ww1.microchip.com/downloads/en/AppNotes/00869b.pdf
6. http://www.microchip.com/maps/microcontroller.aspx
7. http://massmind.org/techref/microchip/pages.htm
8. PIC10F200/202/204/206 Data Sheet (http://ww1.microchip.com/downloads
/en/DeviceDoc/41239D.pdf) (PDF) Microchip Technology [S.l.] 2007. p.52.
9. http://ww1.microchip.com/downloads/en/DeviceDoc/61177a.pdf
10. http://www.microchip.com/en_US/family/32bit/

Ligaes externas
www.locxtronic.com - Tutorial for PIC
Programming In BASIC
(http://www.locxtronic.com)
Microchip Technology
(http://www.microchip.com)
Princpios de PIC 16x84
(http://www.pictutorials.com)

A Wikipdia possui o
portal:
Portal de
eletrnica

Obtida de "https://pt.wikipedia.org/w/index.php?title=Microcontrolador_PIC&
oldid=43173841"
Categorias: Microcontroladores Componentes eletrnicos
Esta pgina foi modicada pela ltima vez (s) 23h49min de 20 de agosto

17 de 18

12-05-2016 08:36

Microcontrolador PIC Wikipdia, a enciclopdia...

https://pt.wikipedia.org/wiki/Microcontrolador_PIC

de 2015.
Este texto disponibilizado nos termos da licena Creative Commons Atribuio - Compartilha Igual 3.0 No Adaptada (CC BY-SA 3.0); pode
estar sujeito a condies adicionais. Para mais detalhes, consulte as
Condies de Uso.

18 de 18

12-05-2016 08:36