Microcontrolador PIC

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 13

15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

Microcontrolador PIC
Origem: Wikipdia, a enciclopdia livre.

microcontroladores da arquitetura Harvard modificada fabricados pela Microchip Technology , que processam dados de 8

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 flash.

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
2.9 Desenvolvimento de Compiladores
3 Diferenas arquiteturais
4 Dispositivos com ncleo bsico (12 bits)
4.1 Dispositivos intermedirios (14 bits)
4.2 Microcontroladores PIC32 de 32 bits
5 Programao e desenvolvimento
6 Perifricos internos
7 Modelos comuns de PICs
8 Referncias
9 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 confivel 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).

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 1/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

O PIC16x muito simples, tem somente 33 instrues de 12 bits de largura fixa, incluindo diversas instrues
de salto condicional a flags 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 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 cont rolador 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 especficas 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
microcodificadas 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 final 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 finalmente 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.

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 conhecido que PIC significa Peripherical Interface

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 2/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

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
PIC1655A-748
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 fixo.
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 codificado 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).

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 "file 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

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 3/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

posteriores estenderam esse conceito com ps e pr-incremento / decremento para maior eficincia 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 flash 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

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.
https://pt.wikipedia.org/wiki/Microcontrolador_PIC 4/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

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 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: definir ou limpar um bit, e testar e pular na definio/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 - simplifica muito o tempo e o
desenho do circuito, beneficiando 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.

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:

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 5/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

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 eficientes, 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 Compilador es

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 fluxo 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 ficar parecido com uma mquina de dois endereos.

Diferenas arquiteturais
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 especificar 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 especificar 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

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 6/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

bits de endereo, e s pode especificar 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 definido com base no resultado; caso contrrio, eles so no
modificados. Instrues de soma e subtrao (mas no rotao) que definem C tambm definem o sinalizador
DC (digit carry), o carry do bit 3 para o bit 4, que til para a aritmtica em BCD.

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 7/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

Conjunto de instrues PIC 12 bits


11 10 9 8 7 6 5 4 3 2 1 0 Mnemnico C? Z? Descrio
0 0 0 0 0 0 0 opcode Instrues diversas
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 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
Copia W para o registrador de triplo estado (f = 1, 2
0 0 0 0 0 0 0 0 0 1 f TRIS f
or 3)
0 0 opcode d register Operaes 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 fW (dest f+~W+1)
0 0 0 0 1 1 d f DECF f,d Z dest f1
0 0 0 1 0 0 d f IORWF f,d Z dest f | W, OU inclusivo lgico
0 0 0 1 0 1 d f ANDWF f,d Z dest f & W, AND (E) lgico
0 0 0 1 1 0 d f XORWF f,d Z dest f ^ W, XOR lgico
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 f1, ento pula se 0
dest CARRY<<7 &#124; f>>1, rotacionar para a
0 0 1 1 0 0 d f RRF f,d C
direita atravs do carry
dest F<<1 | CARRY, rotacionar para a esquerda
0 0 1 1 0 1 d f RLF f,d C
atravs 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, ento pula se 0
0 1 op bit register Operaes 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 Transferncias de controle
1 0 0 0 k RETLW k Define W k, ento retorna de uma subrotina
1 0 0 1 k CALL k Chama uma subrotina, endereo de 8 bits k
1 0 1 k GOTO k Pula para o endereo de 9 bits k[8]
1 1 op 8-bit immediate Operaes com W e 8 bit literal: W OP(k,W)
1 1 0 0 k MOVLW k Wk
1 1 0 1 k IORLW k Z W k | W, OU lgico (OR) bit a bit
1 1 1 0 k ANDLW k Z W k & W, E lgico (AND) bit a bit
1 1 1 1 k XORLW k Z W k ^ W, OU exclusivo (XOR) bit a bit

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 8/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

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 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 fins 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
suficiente para resolver o espao de ROM disponvel.

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 9/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

Conjunto de instrues do PIC 14 bits


13 12 11 10 9 8 7 6 5 4 3 2 1 0 Mnemnico C? Z? Descrio
0 0 0 0 0 0 0 opcode Instrues diversas
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 0 1 0 0 0 RETURN Retorna de uma subrotina, W no modificado
0 0 0 0 0 0 0 0 0 0 1 0 0 1 RETFIE Retorna de uma interruo
Copia W para o registrador OPTION
0 0 0 0 0 0 0 1 1 0 0 0 1 0 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
Copia W para um registrador de triplo estado (f
0 0 0 0 0 0 0 1 1 0 0 1 f TRIS f
= 1, 2 or 3) (obsoleta)
0 0 opcode d registrador Operaes na ULA: dest OP(f,W)
0 0 0 0 0 0 1 f MOVWF f fW
dest 0, normalmente escrito como CLRW or
0 0 0 0 0 1 d f CLR f,d Z
CLRF f
0 0 0 0 1 0 d f SUBWF f,d C Z dest fW (dest f+~W+1)
0 0 0 0 1 1 d f DECF f,d Z dest f1
0 0 0 1 0 0 d f IORWF f,d Z dest f | W, ou inclusivo (OR) lgico
0 0 0 1 0 1 d f ANDWF f,d Z dest f & W, e lgico (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 f1, ento desvia se zero
dest CARRY<<7 &#124; f>>1, rotaciona
0 0 1 1 0 0 d f RRF f,d C
direita atravs do carry
dest f<<1 | CARRY, rotaciona esquerda
0 0 1 1 0 1 d f RLF f,d C
atravs 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, ento desvia se zero
0 1 op bit registrador Operaes 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 Transferncias de controle
1 0 0 k CALL k Chama subrotina
1 0 1 k GOTO k Pula para o endereo k
1 1 opcode 8-bit immediate Operaes com W e 8 bit literal: W OP(k,W)
1 1 0 0 x x k MOVLW k Wk
1 1 0 1 x x k RETLW k W k, ento retorna de uma subrotina

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 10/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

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


1 1 1 0 0 1 k ANDLW k Z W k & W, e lgico (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 kW (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 Mnemnico C? Z? 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/developme
nttools/)", 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 flash: 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
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 configurado 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):
https://pt.wikipedia.org/wiki/Microcontrolador_PIC 11/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

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/wiki/Lo
cal_Interconnect_Network), CAN
Controladores Ethernet
Perifricos IRDA (http://en.wikipedia.org/wiki/Infrar
ed_Data_Association)
Codificadores para criptografia Keeloq
Watchdog timer
Dispositivos PIC
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) 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 1976Databook
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. 2007. p. 52
9. http://ww1.microchip.com/downloads/en/DeviceDoc/61 177a.pdf
10. http://www.microchip.com/en_US/family/32bit/

Ligaes externas
www.locxtronic.com - Tutorial for PIC Programming In BASIC
A Wikipdia possui o portal:
(http://www.locxtronic.com)
Microchip Technology (http://www.microchip.com) Portal de eletrnica
Princpios de PIC 16x84 (http://www.pictutorials.com)

Obtida de "https://pt.wikipedia.org/w/index.php?title=Microcontrolador_PIC&oldid=46431702"

https://pt.wikipedia.org/wiki/Microcontrolador_PIC 12/13
15/03/2017 Microcontrolador PIC Wikipdia, a enciclopdia livre

Categorias: Microcontroladores Componentes eletrnicos

Esta pgina foi modificada pela ltima vez (s) 19h32min de 12 de agosto de 2016.
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.

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

Você também pode gostar