Você está na página 1de 11

Microcontrolador PIC

Origem: Wikip�dia, a enciclop�dia livre.


Saltar para a navega��oSaltar para a pesquisa
microcontroladores da arquitetura Harvard modificada fabricados pela Microchip
Technology, que processam dados de 8 bits, de 16 bits e, mais recentemente, de 32
bits. S�o derivados do PIC1650[1] originalmente desenvolvidos pela divis�o de
microeletr�nica da General Instrument. Seu nome � oriundo de "Programmable
Interface Controller" (Controlador de Interface Program�vel), anteriormente
conhecido como "Peripheral Interface Controller" (Controlador de Interface
Perif�rica), hoje conhecido apenas como PIC.[2][3] Contam com extensa variedade de
modelos e perif�ricos internos. Possuem alta velocidade de processamento devido a
arquitetura Harvard e conjunto de instru��es RISC (conjuntos de 35 instru��es e de
76 instru��es), com recursos de programa��o por Mem�ria flash, EEPROM e OTP. Os
microcontroladores PIC t�m fam�lias com n�cleos 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 interrup��es tanto externas como
de perif�ricos internos. Funcionam com tens�es de alimenta��o 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 s�o populares, tanto industrialmente como para hobbystas gra�as ao seu
baixo custo, ampla disponibilidade, grande base de usu�rios, extensa cole��o de
notas de aplica��o, disponibilidade de ferramentas de desenvolvimento de baixo
custo ou gr�tis, e capacidade de programa��o serial e reprograma��o com mem�ria
flash.

�ndice
1 Hist�ria
1.1 Do controle de portas para controlador RISC
2 Arquitetura de n�cleo
2.1 Espa�o de Dados (RAM)
2.2 Espa�o de Instru��es
2.3 Palavra de mem�ria
2.4 Pilhas
2.5 Conjunto de Instru��es
2.6 Desempenho
2.7 Vantagens
2.8 Limita��es
2.9 Desenvolvimento de Compiladores
3 Diferen�as arquiteturais
4 Dispositivos com n�cleo b�sico (12 bits)
4.1 Dispositivos intermedi�rios (14 bits)
4.2 Microcontroladores PIC32 de 32 bits
5 Programa��o e desenvolvimento
6 Perif�ricos internos
7 Modelos comuns de PICs
8 Refer�ncias
9 Liga��es externas
Hist�ria
As ra�zes dos PICs se originaram na universidade de Harvard com um projeto para o
Departamento de Defesa, mas este foi vencido por um projeto de mem�ria mais simples
(e mais confi�vel na �poca) da Universidade de Princeton. A arquitetura de Harvard
foi primeiramente usada no 8x300 da Signetics, e foi adotada pela General
Instruments para uso como interface controladora de perif�ricos (PIC) que foi
projetada para compensar o fraco barramento de I/O da sua CPU CP1600 de 16 bits. A
divis�o de microeletr�nica 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 tamb�m tenham fun��es especiais - R2 � o PC (com uma pilha implicita
de 2 a 16 n�veis), 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 instru��es de 12 bits de largura fixa,


incluindo diversas instru��es de salto condicional a flags para a pr�xima instru��o
(para loops e rotinas condicionais), produzindo um c�digo enxuto importante para
aplica��es em sistemas embarcados. Ele tem pipelines marginais (2 est�gios, 1 de
busca e 1 de execu��o), combinados com execu��o 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 endere�amento (direto, indireto, e relativo; as


instru��es de modo indireto gastam 2 ciclos para execu��o), mais instru��es (58 de
16 bits), mais registradores (232 a 454), mais at� 64k palavras de espa�o de
programa (2k a 8k no chip). As vers�es top de linha tamb�m possuem instru��es de
multiplica��o de 8 bits sem sinal de 1 ciclo. Esse modelo est� obsoleto, n�o 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 t�cnicas de projeto mais inovadoras do 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 aplica��es 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 mem�ria EEPROM serial de 256 bytes) com uma porta de I/O onde
os programas do usu�rio 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 divis�o de microeletr�nica, e sem d�vida usou
esta divis�o para gerar algumas das primeiras arquiteturas de mem�rias EPROM e
EEPROM vi�veis. A Divis�o de Microeletr�nica da General Instrumens foi respons�vel
tamb�m por uma grande variedade de fun��es digitais e anal�gicas, com as fam�lias
AY3-xxxx e AY5-xxxx.

A General Instruments tamb�m criou um microprocessador de 16 bits chamado CP1600,


no come�o dos anos 70. Era um microprocessador razo�vel, mas especialmente era
pobre em portas de entrada e sa�da. Para algumas aplica��es muito espec�ficas onde
as portas de I/O eram necess�rias, a General Instruments projetou uma interface
controladora de perif�ricos (ou PIC abreviadamente, de Peripherical Interface
Controller em ingl�s), por volta de 1975. Ele era projetado para ser muito r�pido,
dado que era para ser portas de I/O de uma m�quina de 16 bits, mas n�o tinha uma
grande capacidade de funcionalidade, tendo um conjunto de instru��es
microcodificadas pequeno. A arquitetura projetada em 1975 � substanciamente a
arquitetura de hoje do PIC16C5x. A vers�o de 1975 foi fabricada em NMOS, e era
somente dispon�vel em vers�es ROM mascaradas. O mercado, contudo, n�o pensava
particularmente assim, e os PICs permaneceram projetados somente para um punhado de
grandes clientes.

No final dos anos 80, a General Instruments fez uma grande revis�o no seu neg�cio e
se restruturou, deixando para se concentrar nas suas atividades principais, que
eram essencialmente semicondutores de pot�ncia. A Divis�o de Microeletr�nica da
General Instruments se tornou a General Instruments Microelectronics Inc.
(subsidi�ria integral), da qual 85% foi finalmente vendida para alguns
investidores, incluindo a f�brica 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 neg�cio
principal os PICs e as EEPROMs paralelas. Houve uma decis�o de reiniciar uma nova
empresa, chamada Arizona Microchip Technology.

PIC1655A-748
Como parte da estrat�gia, a fam�lia 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 fam�lia PIC16C5X de mem�ria de programa EPROM
apag�vel tinha nascido.

PIC � uma fam�lia de microcontroladores RISC fabricada pela Microchip, derivada do


PIC1650 originalmente desenvolvida pela divis�o de microeletr�nica da General
Instruments. A Microchip n�o usa PIC como um acr�nimo, na realidade a marca �
PICmicro. Geralmente � conhecido que PIC significa Peripherical Interface
Controller, embora o acr�nimo 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 microc�digos armazenados na ROM para desempenhar suas tarefas, e e embora o
termo n�o tenha sido usado na �poca, ele tinha um projeto RISC que executava uma
instru��o por ciclo (4 ciclos de 'clock').

Em 1985, a General Instruments vendeu a divis�o de microeletr�nica, e os novos


donos cancelaram quase tudo, o que na �poca era obsoleto. Os PICs contudo, foram
atualizados com EPROM para produzir um controlador program�vel, e hoje uma grande
variedade de PICs � dispon�vel com v�rios perif�ricos internos (m�dulos de
comunica��o serial, UARTS, n�cleos de controle de motores, etc.) e mem�ria de
programa de 512 a 32k palavras.

Arquitetura de n�cleo
A arquitetura do PIC � caracterizada pelos seus m�ltiplos atributos:

Espa�os separados de instru��es e dados (Arquitetura Harvard).


Um pequeno n�mero de instru��es de tamanho fixo.
A maioria das instru��es s�o de execu��o 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 utiliza��o (como fonte operando) est� impl�cita (ou seja,
n�o � codificado no c�digo de opera��o, ou opcode).
Todos os locais de mem�ria RAM funcionam como registradores como fonte e / ou
destino de matem�tica e outras fun��es.[4]
Uma pilha em hardware para armazenamento de endere�os de retorno.
Uma pequena quantidade de espa�o de dados endere��vel (32, 128, ou 256 bytes,
dependendo da fam�lia), alargada atrav�s de banking.
Sinalizadores de status da ULA s�o mapeados para o espa�o de dados.
O Program Counter tamb�m � mapeado no espa�o de dados e � grav�vel (este � usado
para implementar saltos indirectos).
N�o h� distin��o entre o espa�o de mem�ria e o espa�o de registradores porque a RAM
faz o trabalho de mem�ria e de registradores, e a mem�ria RAM � geralmente referida
apenas como o arquivo de registro ou simplesmente como os registradores.

Espa�o de Dados (RAM)


PICs t�m um conjunto de registradores que funcionam como uma RAM de prop�sito
geral. Registradores de controle especiais para recursos de hardware tamb�m s�o
mapeados para o espa�o de dados. A capacidade de endere�amento de mem�ria varia
dependendo da s�rie de dispositivo, e todos os dispositivos PIC tem algum mecanismo
para estender para endere�amento de mem�ria adicional. S�ries de dispositivos mais
recentes possuem instru��es de transfer�ncias que podem cobrir todo o espa�o
endere��vel, independente do banco seleccionado. Em dispositivos anteriores,
qualquer movimento nos registradores tinha que ser feito atrav�s do acumulador.

Para implementar endere�amento indireto, um "file select register" (registrador de


sele��o de arquivo - FSR) e "indirect register" (registrador indireto - INDF) s�o
usados. Um n�mero de registrador � gravado no FSR, ap�s 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 p�s e pr�-incremento /
decremento para maior efici�ncia no acesso aos dados armazenados sequencialmente.
Isto tamb�m permite que o FSR seja tratado quase como um ponteiro de pilha (SP).

Mem�ria de dados externa n�o � endere��vel diretamente, exceto em alguns


dispositivos PIC18 com grande quantidade de pinos.

Espa�o de Instru��es
O espa�o de instru��es geralmente � implementado como ROM, EPROM ou flash ROM. Em
geral, a mem�ria de instru��es externa n�o � endere��vel directamente devido �
falta de uma interface de mem�ria externa. As exce��es s�o PIC17 e selecione
dispositivos PIC 18 com grande quantidade de pinos.[5]

Palavra de mem�ria
Todos os PICs manipulam (e endere�am) dados em blocos de 8 bits. No entanto, a
unidade de endere�amento do espa�o de c�digo geralmente n�o � o mesmo que o espa�o
de dados. Por exemplo, fam�lias de PICs na linha de base (PIC12) e mid-range
(PIC16) t�m mem�ria de instru��es endere��vel no mesmo tamanho como a largura de
instru��o, ou seja, 12 ou 14 bits, respectivamente. Em contraste, na s�rie PIC18, a
mem�ria de instru��es � dirigido em incrementos de 8 bits (bytes), que difere da
largura da instru��o de 16 bits.

Pilhas
PICs t�m uma pilha de chamadas implementada em hardware, que � utilizada para
guardar endere�os de retorno. A pilha de hardware n�o � acess�vel por software em
dispositivos anteriores, mas isso mudou com os dispositivos da s�rie 18.

Suporte de hardware para uma pilha de par�metros de uso geral era ausente em s�ries
anteriores, mas isso melhorou muito na s�rie 18, fazendo com que a arquitetura da
s�rie 18 mais amig�vel para compiladores de linguagem de alto n�vel.

Conjunto de Instru��es
Instru��es de um PIC podem variar de cerca de 35 instru��es (PICs mais simples)
para mais de 80 instru��es para os PICs high-end. O conjunto de instru��es inclui
instru��es para executar uma variedade de opera��es em registros diretamente, o
acumulador e uma constante literal ou o acumulador e um registrador, bem como para
a execu��o condicional, e saltos de execu��o.

Algumas opera��es, como bit setting e testes, pode ser realizada em qualquer
registrador numerado, mas opera��es aritm�ticas bi-operando sempre envolvem o W
(acumulador), escrevendo o resultado de volta para W ou outro registrador operando.
Para carregar uma constante, � necess�rio 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 n�cleos "high-end".

N�cleos do PIC tem instru��es de saltos que s�o utilizados para a execu��o
condicional e desvios. As instru��es de salto s�o "skip if bit set" e "skip if bit
not set". Porque os n�cleos anteriores ao PIC18 tinham apenas instru��es de desvio
incondicional, saltos condicionais s�o implementados por um desvio condicional (com
a condi��o oposta), seguido de um desvio incondicional. Pulos tamb�m s�o de
utilidade para a execu��o condicional de qualquer instru��o simples imediatamente
seguinte. Tamb�m � poss�vel pular instru��es de salto. Por exemplo, a sequencia de
instru��es "pular se A; pular se B; C" ir� executar C se A � verdadeiro ou B for
falso.

A s�rie PIC18 implementou registradores "sombra" (shadow registers) que salvam


v�rios registradores importantes durante uma interrup��o, fornecendo suporte de
hardware para salvar automaticamente o estado do processador durante a manuten��o
de interrup��es.

Em geral, as instru��es do PIC s�o divididas em 5 classes:

Opera��o 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 instru��o peculiar � retlw, que carrega imediatamente em WREG e retorna,
que � usado com desvios computados para produzir tabelas de consulta.
Opera��o com WREG e registrador indexado. O resultado pode ser escrito ou no
registrador de trabalho (ex.: addwf reg, w) ou o registrador selecionado (ex.:
addwf reg, f).
Opera��es em bits. Estes tomam um n�mero do registrador e um n�mero de bit, e
realiza uma das 4 a��es: definir ou limpar um bit, e testar e pular na
defini��o/limpeza. Estas �ltimas s�o utilizadas para realizar desvios condicionais.
Os sinalizadores de status habituais da ULA est�o dispon�veis em um registrador
numerado, ent�o opera��es como "desvio de carga clara" s�o poss�veis.
Controle de transfer�ncia. Al�m das instru��es de salto previamente mencionadas,
existem apenas dois: goto e call.
Algumas instru��es diversas sem operando, como retorno de subrotina e sleep para
entrar em modo de economia de energia.
Desempenho
As decis�es da arquitetura s�o direcionadas para a maximiza��o da rela��o de
velocidade-custo. A arquitetura Harvard - onde as instru��es e os dados s�o
provenientes de fontes diferentes - simplifica muito o tempo e o desenho do
circuito, beneficiando velocidade do clock, pre�o e consumo de energia.

O conjunto de instru��es PIC � adequado para a implementa��o de tabelas de consulta


r�pida no espa�o do programa. Tais consultas tomam uma instru��o e dois ciclos de
instru��o. Muitas fun��es podem ser modeladas deste modo. A optimiza��o �
facilitada pelo espa�o relativamente grande do espa�o de instru��es (como 4096 x
palavras de 14 bits no 16F690) e pelo projeto do conjunto de instru��es, que
permite constantes embutidas.

Lat�ncia de interrup��o � constante em tr�s ciclos de instru��o. Interrup��es


externas precisam ser sincronizadas com o ciclo de instru��es de 4 ciclos de clock,
caso contr�rio, poder� haver um ciclo jitter de uma instru��o. Interrup��es
externas j� est�o sincronizadas. A lat�ncia de interrup��o constante permite que os
PICs consigam atingir sequ�ncias de baixa oscila��o. Um exemplo disto � um gerador
de impulsos de sincroniza��o de v�deo. Isso n�o � mais realidade nos mais novos
modelos do PIC, porque eles t�m uma lat�ncia de interrup��o s�ncrona de tr�s ou
quatro ciclos.

Vantagens
Pequeno conjunto de instru��es para aprender
Arquitetura RISC
Oscilador embutido com velocidade selecion�vel
Kits de desenvolvimentos para iniciantes dispon�veis por menos de 50 d�lares
Microcontroladores baratos
Grande disponibilidade de interfaces, como USB, I�C, SPI, Ethernet, entre outros[6]
Disponibilidade de processadores em pacote DIL torn�-los f�ceis de manusear para
uso como hobby.
Limita��es
Um acumulador
Bank switching por registrador � necess�rio para acessar a RAM em diversos
dispositivos
Opera��es e registradores n�o s�o ortogonais; algumas instru��es podem endere�ar
RAM e/ou constantes imediatas, enquanto outros podem usar apenas o acumulador.
As seguintes limita��es em pilhas foram corrigidos na s�rie PIC18, mas ainda s�o
presentes em PICs anteriores:

A pilha de chamadas em hardware n�o � endere��vel, a altern�ncia de tarefas de modo


preemptivo n�o pode ser implementado
Pilhas implementadas por software n�o s�o eficientes, por isso � dif�cil gerar
c�digo reentrante e suportar as vari�veis locais
Com mem�ria de instru��es paginada, h� dois tamanhos de p�gina 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 endere�amento, de
modo que o tamanho da p�gina � de 2048 palavras de instru��o. Para GOTOs
computadas, onde voc� adicionar ao PCL, o tamanho da p�gina � de 256 palavras de
instru��o. Em ambos os casos, os bits de endere�o superiores s�o fornecidos pelo
registrador PCLATH. Este registrador deve ser trocado a cada transfer�ncia de
controle de tempo entre as p�ginas. PCLATH tamb�m deve ser preservado por qualquer
manipulador de interrup��o.[7]

Desenvolvimento de Compiladores
Enquanto v�rios compiladores comerciais est�o dispon�veis, em 2008, a Microchip
lan�ou seus pr�prios compiladores C, C18 e C30, para a linha de processadores 18F
24F e 30/33F.

A partir de 2013, a Microchip oferece sua s�rie 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 s�rie XC para novos
modelos.

O conjunto de instru��es RISC do c�digo de linguagem de montagem do PIC, embora


sendo simples, pode fazer o fluxo global dif�cil 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 ficar parecido com uma m�quina de dois endere�os.

Diferen�as arquiteturais
Os PICs usam a arquitetura Harvard, e as palavras de instru��o possuem tamanhos
incomuns. Originalmente, instru��es de 12 bits inclu�am endere�o de 5 bits para
especificar o operando em mem�ria, e destinos de desvios de 9 bits. Revis�es
posteriores adicionaram bits aos c�digos de opera��es (opcode), permitindo
adicionar bits para endere�os.

Dispositivos com n�cleo b�sico (12 bits)


Estes dispositivos apresentam mem�ria de instru��es com 12 bits, um arquivo de
registradores de 32 bytes, e uma pequena pilha de chamadas de dois n�veis de
profundidade. Eles s�o representados pela s�rie PIC10, bem como por alguns
dispositivos PIC12 e PIC16. Dispositivos da linha de base est�o dispon�veis em
pacotes de 6 pinos a 40 pinos.

Geralmente os primeiros 7-9 bytes do arquivo de registradores s�o registradores de


uso especial, e os bytes restantes s�o de uso geral RAM. Os ponteiros s�o
implementados usando um par de registradores: depois de escrever um endere�o 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
n�mero do banco � selecionado pelos 3 primeiros bits do FSR. Isso afeta os n�meros
de registradores 16-31; registradores 0-15 s�o globais e n�o s�o afetados pelos
bits selecionados.

Devido ao espa�o dos registradores ser muito limitado (5 bits), 4 registradores


raramente lidos n�o foram atribu�dos endere�os, mas s�o escritos por instru��es
especiais (OPTION e TRIS).

O espa�o de endere�o ROM � de 512 palavras (12 bits cada), que podem ser estendidos
a 2048 palavras por comuta��o. Instru��es CALL e GOTO especificar as �ltimos 9 bits
do novo local do c�digo; bits de ordem superior adicionais s�o tomadas a partir do
registrador de status. Note-se que a instru��o CALL inclui apenas 8 bits de
endere�o, e s� pode especificar endere�os no primeira metade de cada p�gina de 512
palavras.

Tabelas de consulta s�o implementadas utilizando um GOTO computado (atribui��o de


registrador PCL) em uma tabela de instru��es RETLW.

O conjunto de instru��es ser� apresentado a seguir. N�meros de registrador s�o


referidos como "f", enquanto que as constantes s�o referidos como "k". N�meros
bin�rios (0-7) s�o 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 definido com base no resultado; caso
contr�rio, eles s�o n�o modificados. Instru��es de soma e subtra��o (mas n�o
rota��o) que definem C tamb�m definem o sinalizador DC (digit carry), o carry do
bit 3 para o bit 4, que � �til para a aritm�tica em BCD.

Conjunto de instru��es PIC 12 bits


11 10 9 8 7 6 5 4 3 2 1 0 Mnem�nico
C? Z? Descri��o
0 0 0 0 0 0 0 opcode Instru��es diversas
0 0 0 0 0 0 0 0 0 0 0 0 NOP
Nenhuma opera��o (MOVW 0,W)
0 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 0 1 1 SLEEP
Entra em modo de economia de energia
0 0 0 0 0 0 0 0 0 1 0 0 CLRWDT
Reinicia o watchdog timer
0 0 0 0 0 0 0 0 0 1 f TRIS f
Copia W para o registrador de triplo estado (f = 1, 2 or 3)
0 0 opcode d register Opera��es na ULA: dest ? OP(f,W)
0 0 0 0 0 0 1 f MOVWF f dest ? W
0 0 0 0 0 1 d f CLR f,d Z dest ? 0,
normalmente escrito CLRW ou CLRF f
0 0 0 0 1 0 d f SUBWF f,d C Z dest ? f-W
(dest ? f+~W+1)
0 0 0 0 1 1 d f DECF f,d Z dest ? f-1
0 0 0 1 0 0 d f IORWF f,d Z dest ? f |
W, OU inclusivo l�gico
0 0 0 1 0 1 d f ANDWF f,d Z dest ? f &
W, AND (E) l�gico
0 0 0 1 1 0 d f XORWF f,d Z dest ? f ^
W, XOR l�gico
0 0 0 1 1 1 d f ADDWF f,d C Z dest ? f+W
0 0 1 0 0 0 d f MOVF f,d Z dest ? f
0 0 1 0 0 1 d f COMF f,d Z dest ? ~f,
complemento bit a bit
0 0 1 0 1 0 d f INCF f,d Z dest ? f+1
0 0 1 0 1 1 d f DECFSZ f,d dest ? f-1,
ent�o pula se 0
0 0 1 1 0 0 d f RRF f,d C dest ?
CARRY<<7 &#124; f>>1, rotacionar para a direita atrav�s do carry
0 0 1 1 0 1 d f RLF f,d C dest ? F<<1
| CARRY, rotacionar para a esquerda atrav�s do carry
0 0 1 1 1 0 d f SWAPF f,d dest ? f<<4
| f>>4, swap nibbles
0 0 1 1 1 1 d f INCFSZ f,d dest ? f+1,
ent�o pula se 0
0 1 op bit register Opera��es em Bits
0 1 0 0 bit f BCF f,b Limpar bit b de f
0 1 0 1 bit f BSF f,b Definir bit b de f
0 1 1 0 bit f BTFSC f,b Pular se bit b de f est�
limpo
0 1 1 1 bit f BTFSS f,b Pular se bit b de f est�
definido
1 0 op k Transfer�ncias de controle
1 0 0 0 k RETLW k Define W ? k, ent�o retorna
de uma subrotina
1 0 0 1 k CALL k Chama uma subrotina, endere�o
de 8 bits k
1 0 1 k GOTO k Pula para o endere�o de 9 bits k[8]
1 1 op 8-bit immediate Opera��es com W e 8 bit literal: W ? OP(k,W)
1 1 0 0 k MOVLW k W ? k
1 1 0 1 k IORLW k Z W ? k | W, OU l�gico (OR) bit
a bit
1 1 1 0 k ANDLW k Z W ? k & W, E l�gico (AND) bit
a bit
1 1 1 1 k XORLW k Z W ? k ^ W, OU exclusivo (XOR)
bit a bit
11 10 9 8 7 6 5 4 3 2 1 0 Mnem�nico
C? Z? Descri��o
Dispositivos intermedi�rios (14 bits)
Estes dispositivos apresentam uma mem�ria de 14 bits e um pilha de chamada com 8
n�veis. O conjunto de instru��es 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 c�digo para ser diretamente endere�ados. Existem algumas
instru��es diversas adicionais, e duas instru��es adicionais literais de 8 bits,
somar e subtrair. O n�cleo intermedi�rio est� dispon�vel na maior parte dos
dispositivos PIC12 e PIC16.

Os primeiros 32 bytes do espa�o de registradores s�o alocados aos registradores de


uso especial; os 96 bytes restantes s�o usados para RAM de prop�sito geral. Se RAM
comutada � utilizada, os 16 registros (0x70-0x7F) s�o globais, assim como alguns
dos mais importantes registradores para fins especiais, incluindo o registrador
STATUS que det�m os bits de sele��o de banco de mem�ria RAM.

As fontes de registrador PCLATH de alta ordem bits de endere�o de instru��o, quando


os 8 bits fornecidos por uma grava��o para o registrador PCL, ou os 11 bits
fornecidos por uma instru��o GOTO ou CALL, n�o � suficiente para resolver o espa�o
de ROM dispon�vel.

Conjunto de instru��es do PIC 14 bits


13 12 11 10 9 8 7 6 5 4 3 2 1 0
Mnem�nico C? Z? Descri��o
0 0 0 0 0 0 0 opcode Instru��es diversas
0 0 0 0 0 0 0 0 0 0 0 0 0 0
NOP Nenhuma opera��o (MOVW 0,W)
0 0 0 0 0 0 0 0 0 0 1 0 0 0
RETURN Retorna de uma subrotina, W n�o � modificado
0 0 0 0 0 0 0 0 0 0 1 0 0 1
RETFIE Retorna de uma interru��o
0 0 0 0 0 0 0 1 1 0 0 0 1 0
OPTION Copia W para o registrador OPTION (obsoleta)
0 0 0 0 0 0 0 1 1 0 0 0 1 1
SLEEP Entra em modo de economia de energia
0 0 0 0 0 0 0 1 1 0 0 1 0 0
CLRWDT Reinicia o watchdog timer
0 0 0 0 0 0 0 1 1 0 0 1 f TRIS f
Copia W para um registrador de triplo estado (f = 1, 2 or 3)
(obsoleta)
0 0 opcode d registrador Opera��es na ULA: dest ? OP(f,W)
0 0 0 0 0 0 1 f MOVWF f f ? W
0 0 0 0 0 1 d f CLR f,d Z dest ? 0,
normalmente escrito como CLRW or CLRF f
0 0 0 0 1 0 d f SUBWF f,d C Z dest ? f-W
(dest ? f+~W+1)
0 0 0 0 1 1 d f DECF f,d Z dest ? f-1
0 0 0 1 0 0 d f IORWF f,d Z dest ? f |
W, ou inclusivo (OR) l�gico
0 0 0 1 0 1 d f ANDWF f,d Z dest ? f &
W, e l�gico (AND)
0 0 0 1 1 0 d f XORWF f,d Z dest ? f ^
W, ou exclusivo (XOR)
0 0 0 1 1 1 d f ADDWF f,d C Z dest ? f+W
0 0 1 0 0 0 d f MOVF f,d Z dest ? f
0 0 1 0 0 1 d f COMF f,d Z dest ? ~f,
complemento bit a bit
0 0 1 0 1 0 d f INCF f,d Z dest ? f+1
0 0 1 0 1 1 d f DECFSZ f,d dest ? f-1,
ent�o desvia se zero
0 0 1 1 0 0 d f RRF f,d C dest ?
CARRY<<7 &#124; f>>1, rotaciona � direita atrav�s do carry
0 0 1 1 0 1 d f RLF f,d C dest ? f<<1
| CARRY, rotaciona � esquerda atrav�s do carry
0 0 1 1 1 0 d f SWAPF f,d dest ? f<<4
| f>>4, swap nibbles
0 0 1 1 1 1 d f INCFSZ f,d dest ? f+1,
ent�o desvia se zero
0 1 op bit registrador Opera��es em bits
0 1 0 0 bit f BCF f,b Limpa bit b de f
0 1 0 1 bit f BSF f,b Define bit b de f
0 1 1 0 bit f BTFSC f,b Pula se bit b de f est�
limpo
0 1 1 1 bit f BTFSS f,b Pula se bit b de f est�
definido
1 0 op k Transfer�ncias de controle
1 0 0 k CALL k Chama subrotina
1 0 1 k GOTO k Pula para o endere�o k
1 1 opcode 8-bit immediate Opera��es com W e 8 bit literal: W ?
OP(k,W)
1 1 0 0 x x k MOVLW k W ? k
1 1 0 1 x x k RETLW k W ? k, ent�o
retorna de uma subrotina
1 1 1 0 0 0 k IORLW k Z W ? k | W, ou
l�gico (OR) bit a bit
1 1 1 0 0 1 k ANDLW k Z W ? k & W, e
l�gico (AND) bit a bit
1 1 1 0 1 0 k XORLW k Z W ? k ^ W, ou
exclusivo (XOR) bit a bit
1 1 1 0 1 1 k (reservado)
1 1 1 1 0 x k SUBLW k C Z W ? k-W (dest ?
k+~W+1)
1 1 1 1 1 x k ADDLW k C Z W ? k+W
13 12 11 10 9 8 7 6 5 4 3 2 1 0
Mnem�nico C? Z? Descri��o
Microcontroladores PIC32 de 32 bits
Em novembro de 2007, a Microchip apresentou a nova fam�lia de microcontroladores
PIC32MX de 32 bits.[9] A linha inicial do dispositivo � baseada no padr�o da
ind�stria MIPS32 M4K Core. O dispositivo pode ser programado usando o "Microchip
MPLAB C Compiler for PIC32 MCUs", uma variante do compilador GCC. Os primeiros 18
modelos atualmente em produ��o (PIC32MX3xx e PIC32MX4xx) s�o pino a pino compat�vel
e compartilham os mesmos perif�ricos estabelecidos com a fam�lia de dispositivos
PIC24FxxGA0xx (16 bits), permitindo o uso de bibliotecas comuns, software e
ferramentas de hardware. Hoje est� dispon�vel em 28 pinos em pacotes QFN pequenos
at� dispositivos de alto desempenho com Ethernet, CAN e USB OTG.

A arquitetura PIC32 traz uma s�rie de novos recursos para portf�lio da Microchip,
incluindo:

A maior velocidade de execu��o: 80 MIPS (mais de 120 MIPS @ 80 MHz com o benchmark
Dhrystone[10])
A maior mem�ria flash: 512 KB
Execu��o de uma instru��o por ciclo de clock
O primeiro processador com cache
Permite a execu��o a partir RAM
O pr�ximo produto da Microchip ser� a fam�lia de microcontroladores PIC32MZ.

Programa��o e desenvolvimento
Como qualquer arquitetura os processadores PIC apenas aceitam linguagem de m�quina
(assembly). No entanto a programa��o pode ser feita em linguagens de alto n�vel
utilizando-se compiladores. Existem v�rias alternativas pagas de compiladores. Em
geral � possivel utiliz�-los de modo gratuito com algumas restri��es. Para as
fam�lias PIC16 e PIC18 existe uma alternativa opensource o SDCC, que pode ser
configurado para operar com o MPLAB.

Existem ainda diversas IDE's dispon�veis para a programa��o, entre elas a mais
utilizada � o MPLAB, disponibilizado de modo gratuito pela pr�pria Microchip. H�
atualmente uma vers�o 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 tamb�m 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.

Perif�ricos internos

Dispositivos PIC
Seus principais perif�ricos internos (a disponibilidade varia conforme o modelo):

USARTs
Controladores de comunica��o I2C, SPI, USB e Paralelo
Controladores PWM
Controladores de LCD
Controladores de motores
Gerador de energia de alta pot�ncia
Perif�ricos para LIN, CAN
Controladores Ethernet
Perif�ricos IRDA
Codificadores para criptografia Keeloq
Watchdog timer
Detetores de falha na alimenta��o
Portas digitais com capacidade de 25mA (fornecer ou drenar) para acionar circuitos
externos
Osciladores internos
RTCC - Real Time Clock and Calendar (Rel�gio de tempo real e calend�rio)
Tecnologia Deep Sleep - consumo de nano Watt
CRC - Cyclic Redundancy Check program�vel
Modelos comuns de PICs
PIC16F84/PIC16F84A
PIC16F628/PIC16F628A
PIC16F877/PIC16F877A
PIC18F452/PIC18F4520
PIC16F876
PIC24F/PIC24H
Refer�ncias
�PIC Device Documentation� (PDF)
"MOS DATA 1976", General Instrument 1976 Databook
"1977 Data Catalog", Micro Electronics from General Instrument Corporation
http://www.rhoent.com/pic16xx.pdf Arquivado em 15 de agosto de 2011, no Wayback
Machine.
http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf
http://ww1.microchip.com/downloads/en/AppNotes/00869b.pdf
http://www.microchip.com/maps/microcontroller.aspx
http://massmind.org/techref/microchip/pages.htm
PIC10F200/202/204/206 Data Sheet (PDF). [S.l.]: Microchip Technology. 2007. p. 52
http://ww1.microchip.com/downloads/en/DeviceDoc/61177a.pdf
http://www.microchip.com/en_US/family/32bit/

Você também pode gostar