Você está na página 1de 13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

MicrocontroladorPIC
Origem:Wikipdia,aenciclopdialivre.

OsmicrocontroladoresPICsoumafamliademicrocontroladoresdaarquiteturaHarvardmodificada
fabricadospelaMicrochipTechnology,queprocessamdadosde8bits,de16bitse,maisrecentemente,de32
bits.SoderivadosdoPIC1650[1]originalmentedesenvolvidospeladivisodemicroeletrnicadaGeneral
Instrument.Seunomeoriundode"ProgrammableInterfaceController"(ControladordeInterface
Programvel),anteriormenteconhecidocomo"PeripheralInterfaceController"(ControladordeInterface
Perifrica),hojeconhecidoapenascomoPIC[2][3].Contamcomextensavariedadedemodeloseperifricos
internos.PossuemaltavelocidadedeprocessamentodevidoaarquiteturaHarvardeconjuntodeinstrues
RISC(conjuntosde35instruesede76instrues),comrecursosdeprogramaoporMemriaflash,
EEPROMeOTP.OsmicrocontroladoresPICtmfamliascomncleosdeprocessamentode12bits,14bitse
16bits,etrabalhamemvelocidadesde0kHz(ouDC)a48MHzevelocidadesde16MIPSemalgunsmodelos.
Horeconhecimentodeinterrupestantoexternascomodeperifricosinternos.Funcionamcomtensesde
alimentaode1.8a6Veosmodelospossuemencapsulamentode6a100pinosemdiversosformatos
(SOT23,DIP,SOIC,TQFP,etc).
OsPICssopopulares,tantoindustrialmentecomoparahobbystasgraasaoseubaixocusto,ampla
disponibilidade,grandebasedeusurios,extensacoleodenotasdeaplicao,disponibilidadedeferramentas
dedesenvolvimentodebaixocustoougrtis,ecapacidadedeprogramaoserialereprogramaocom
memriaflash.

ndice
1 Histria
1.1 DocontroledeportasparacontroladorRISC
2 Arquiteturadencleo
2.1 EspaodeDados(RAM)
2.2 EspaodeInstrues
2.3 Palavradememria
2.4 Pilhas
2.5 ConjuntodeInstrues
2.6 Desempenho
2.7 Vantagens
2.8 Limitaes
2.9 DesenvolvimentodeCompiladores
3 Diferenasarquiteturais
4 Dispositivoscomncleobsico(12bits)
4.1 Dispositivosintermedirios(14bits)
4.2 MicrocontroladoresPIC32de32bits
5 Programaoedesenvolvimento
6 Perifricosinternos
7 ModeloscomunsdePICs
8 Referncias
9 Ligaesexternas

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

1/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

AsrazesdosPICsseoriginaramnauniversidadedeHarvardcomumprojetoparaoDepartamentodeDefesa,
masestefoivencidoporumprojetodememriamaissimples(emaisconfivelnapoca)daUniversidadede
Princeton.AarquiteturaHarvardfoiprimeiramenteusadano8x300daSignetics,efoiadotadapelaGeneral
Instrumentsparausocomointerfacecontroladoradeperifricos(PIC)quefoiprojetadaparacompensarofraco
barramentodeI/OdasuaCPUCP1600de16bits.Adivisodemicroeletrnicafoidepoistransformadana
ArizonaMicrochipTechnology(porvoltade1985),comosPICscomoseuprodutoprincipal.OsPICstinham
umgrandeconjuntoderegistradores(de25a192registradoresde8bits,comparadocomos144doZ8).
Existemat31registradoresdiretos,maisumacumuladorW,emboraR1aR8tambmtenhamfunes
especiaisR2oPC(comumapilhaimplicitade2a16nveis),eR5aR8controlamasportasdeI/O.R0
mapeadonoregistradorR4(FSR)eservecomoapontador(semelhanteaoISRnoF8,eleonicomeiodese
acessaroregistradorR32ouacima).
OPIC16xmuitosimples,temsomente33instruesde12bitsdelargurafixa,incluindodiversasinstrues
desaltocondicionalaflagsparaaprximainstruo(paraloopserotinascondicionais),produzindoumcdigo
enxutoimportanteparaaplicaesemsistemasembarcados.Eletempipelinesmarginais(2estgios,1debusca
e1deexecuo),combinadoscomexecuoemumciclo(excetoparasaltos,com2ciclos),tendoum
desempenhomuitobomparaasuacategoria.
OPIC17xtemmaismodosdeendereamento(direto,indireto,erelativoasinstruesdemodoindireto
gastam2ciclosparaexecuo),maisinstrues(58de16bits),maisregistradores(232a454),maisat64k
palavrasdeespaodeprograma(2ka8knochip).Asversestopdelinhatambmpossueminstruesde
multiplicaode8bitssemsinalde1ciclo.Essemodeloestobsoleto,nosendomaisrecomendadopara
novosprojetosdeacordocomaMicrochip.
OPIC16xumavarianteinteressantedoprojetode8bitsfeitaporvoltade1985pelaGeneralInstruments
comtcnicasdeprojetomaisinovadorasdoqueadeoutrasCPUsdalista(o1650,osucessordo1600mais
comum).ElaperdeuparaoutrasCPUsmaispopularesefoiposteriormentevendidaparaaMicrochip
Technology,queaindaovendeparapequenasaplicaesemsistemasembarcados.Umexemplodeste
microcontroladorumapequenaplacachamadaBasicStamp.queconsisteem2circuitosintegrados(1PIC
16C56de18pinos,uminterpretadorBasicem512palavrasdeROMeumamemriaEEPROMserialde256
bytes)comumaportadeI/Oondeosprogramasdousuriopodemserarmazenados(porvoltade80linhasde
comandodeBasic).

DocontroledeportasparacontroladorRISC
Em1965aGeneralInstrumentscriouadivisodemicroeletrnica,esemdvidausouestadivisoparagerar
algumasdasprimeirasarquiteturasdememriasEPROMeEEPROMviveis.ADivisodeMicroeletrnicada
GeneralInstrumensfoiresponsveltambmporumagrandevariedadedefunesdigitaiseanalgicas,comas
famliasAY3xxxxeAY5xxxx.
AGeneralInstrumentstambmcriouummicroprocessadorde16bitschamadoCP1600,nocomeodosanos
70.Eraummicroprocessadorrazovel,masespecialmenteerapobreemportasdeentradaesada.Paraalgumas
aplicaesmuitoespecficasondeasportasdeI/Oeramnecessrias,aGeneralInstrumentsprojetouuma
interfacecontroladoradeperifricos(ouPICabreviadamente,dePeriphericalInterfaceControlleremingls),
porvoltade1975.Eleeraprojetadoparasermuitorpido,dadoqueeraparaserportasdeI/Odeumamquina
de16bits,masnotinhaumagrandecapacidadedefuncionalidade,tendoumconjuntodeinstrues
microcodificadaspequeno.Aarquiteturaprojetadaem1975substanciamenteaarquiteturadehojedo
PIC16C5x.Aversode1975foifabricadaemNMOS,eerasomentedisponvelemversesROMmascaradas.
Omercado,contudo,nopensavaparticularmenteassim,eosPICspermaneceramprojetadossomenteparaum
punhadodegrandesclientes.
Nofinaldosanos80,aGeneralInstrumentsfezumagranderevisonoseunegcioeserestruturou,deixando
paraseconcentrarnassuasatividadesprincipais,queeramessencialmentesemicondutoresdepotncia.A
DivisodeMicroeletrnicadaGeneralInstrumentssetornouaGeneralInstrumentsMicroelectronicsInc.
(subsidiriaintegral),daqual85%foifinalmentevendidaparaalgunsinvestidores,incluindoafbricaem
https://pt.wikipedia.org/wiki/Microcontrolador_PIC

2/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

Chandler,noArizona.Opessoaldessesinvestidoresanalisouprofundamentealinhadeprodutosefezuma
limpezanamaioriadeles,comoalinhaAY3eAY5eoutrosprodutos,restandocomonegcioprincipalosPICs
easEEPROMsparalelas.Houveumadecisodereiniciarumanovaempresa,chamadaArizonaMicrochip
Technology.
Comopartedaestratgia,afamliaNMOSPIC165Xfoi
reprojetadaparausarumrecursoemqueaempresaera
muito,oEPROM,oconceitodeserbaseadoemCMOS,
onetimeprogrammableeassimafamliaPIC16C5Xde
memriadeprogramaEPROMapagveltinhanascido.
PICumafamliademicrocontroladoresRISCfabricada
pelaMicrochip,derivadadoPIC1650originalmente
PIC1655A748
desenvolvidapeladivisodemicroeletrnicadaGeneral
Instruments.AMicrochipnousaPICcomoumacrnimo,
narealidadeamarcaPICmicro.GeralmenteconhecidoquePICsignificaPeriphericalInterfaceController,
emboraoacrnimooriginalparaoPIC1650eraProgrammableIntelligentComputer.
OPICoriginalfoifabricadoparaserusadocomanovaCPUde16bitsdaGeneralInstruments,oCP1600.
ApesardeserumaboaCPU,oCP1600tinhafracodesempenhodeportasdeI/O,eoPICde8bitsfoi
desenvolvidoem1975paramelhorarodesempenhodosistemaemgeralliberandoastarefasdeI/OdaCPU.O
PICusavasimplesmicrocdigosarmazenadosnaROMparadesempenharsuastarefas,eeemboraotermono
tenhasidousadonapoca,eletinhaumprojetoRISCqueexecutavaumainstruoporciclo(4ciclosde
'clock').
Em1985,aGeneralInstrumentsvendeuadivisodemicroeletrnica,eosnovosdonoscancelaramquasetudo,
oquenapocaeraobsoleto.OsPICscontudo,foramatualizadoscomEPROMparaproduzirumcontrolador
programvel,ehojeumagrandevariedadedePICsdisponvelcomvriosperifricosinternos(mdulosde
comunicaoserial,UARTS,ncleosdecontroledemotores,etc.)ememriadeprogramade512a32k
palavras.

Arquiteturadencleo
AarquiteturadoPICcaracterizadapelosseusmltiplosatributos:
Espaosseparadosdeinstruesedados(ArquiteturaHarvard).
Umpequenonmerodeinstruesdetamanhofixo.
Amaioriadasinstruessodeexecuodenicociclo(2ciclosdeclock,ou4ciclosdeclockem
modelosde8bits),comumciclodeatrasoemdesvios(branch)esaltos.
Umacumulador(W0),cujautilizao(comofonteoperando)estimplcita(ouseja,nocodificadono
cdigodeoperao,ouopcode).
TodososlocaisdememriaRAMfuncionamcomoregistradorescomofontee/oudestinode
matemticaeoutrasfunes[4].
Umapilhaemhardwareparaarmazenamentodeendereosderetorno.
Umapequenaquantidadedeespaodedadosenderevel(32,128,ou256bytes,dependendoda
famlia),alargadaatravsdebanking.
SinalizadoresdestatusdaULAsomapeadosparaoespaodedados.
OProgramCountertambmmapeadonoespaodedadosegravvel(esteusadoparaimplementar
saltosindirectos).
NohdistinoentreoespaodememriaeoespaoderegistradoresporqueaRAMfazotrabalhode
memriaederegistradores,eamemriaRAMgeralmentereferidaapenascomooarquivoderegistroou
simplesmentecomoosregistradores.

EspaodeDados(RAM)
https://pt.wikipedia.org/wiki/Microcontrolador_PIC

3/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

PICstmumconjuntoderegistradoresquefuncionamcomoumaRAMdepropsitogeral.Registradoresde
controleespeciaispararecursosdehardwaretambmsomapeadosparaoespaodedados.Acapacidadede
endereamentodememriavariadependendodasriededispositivo,etodososdispositivosPICtemalgum
mecanismoparaestenderparaendereamentodememriaadicional.Sriesdedispositivosmaisrecentes
possueminstruesdetransfernciasquepodemcobrirtodooespaoenderevel,independentedobanco
seleccionado.Emdispositivosanteriores,qualquermovimentonosregistradorestinhaqueserfeitoatravsdo
acumulador.
Paraimplementarendereamentoindireto,um"fileselectregister"(registradordeseleodearquivoFSR)e
"indirectregister"(registradorindiretoINDF)sousados.UmnmeroderegistradorgravadonoFSR,aps
oquelouescreveparaINDFvaiserrealmenteparaouapartirdoregistradorapontadoporFSR.Dispositivos
posterioresestenderamesseconceitocompseprincremento/decrementoparamaioreficincianoacesso
aosdadosarmazenadossequencialmente.IstotambmpermitequeoFSRsejatratadoquasecomoumponteiro
depilha(SP).
Memriadedadosexternanoendereveldiretamente,excetoemalgunsdispositivosPIC18comgrande
quantidadedepinos.

EspaodeInstrues
OespaodeinstruesgeralmenteimplementadocomoROM,EPROMouflashROM.Emgeral,amemria
deinstruesexternanoendereveldirectamentedevidofaltadeumainterfacedememriaexterna.As
exceessoPIC17eselecionedispositivosPIC18comgrandequantidadedepinos[5].

Palavradememria
TodososPICsmanipulam(eendeream)dadosemblocosde8bits.Noentanto,aunidadedeendereamento
doespaodecdigogeralmentenoomesmoqueoespaodedados.Porexemplo,famliasdePICsnalinha
debase(PIC12)emidrange(PIC16)tmmemriadeinstruesenderevelnomesmotamanhocomoa
larguradeinstruo,ouseja,12ou14bits,respectivamente.Emcontraste,nasriePIC18,amemriade
instruesdirigidoemincrementosde8bits(bytes),quediferedalarguradainstruode16bits.

Pilhas
PICstmumapilhadechamadasimplementadaemhardware,queutilizadaparaguardarendereosde
retorno.Apilhadehardwarenoacessvelporsoftwareemdispositivosanteriores,masissomudoucomos
dispositivosdasrie18.
Suportedehardwareparaumapilhadeparmetrosdeusogeraleraausenteemsriesanteriores,masisso
melhoroumuitonasrie18,fazendocomqueaarquiteturadasrie18maisamigvelparacompiladoresde
linguagemdealtonvel.

ConjuntodeInstrues
InstruesdeumPICpodemvariardecercade35instrues(PICsmaissimples)paramaisde80instrues
paraosPICshighend.Oconjuntodeinstruesincluiinstruesparaexecutarumavariedadedeoperaesem
registrosdiretamente,oacumuladoreumaconstanteliteralouoacumuladoreumregistrador,bemcomoparaa
execuocondicional,esaltosdeexecuo.
Algumasoperaes,comobitsettingetestes,podeserrealizadaemqualquerregistradornumerado,mas
operaesaritmticasbioperandosempreenvolvemoW(acumulador),escrevendooresultadodevoltapara
Wououtroregistradoroperando.Paracarregarumaconstante,necessriocarregloemWantesdeser
transferidaparaoutroregistrador.Noscoresmaisantigos,todososmovimentosderegistradorprecisavam
passarporW,masissomudounosncleos"highend".
https://pt.wikipedia.org/wiki/Microcontrolador_PIC

4/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

NcleosdoPICteminstruesdesaltosquesoutilizadosparaaexecuocondicionaledesvios.As
instruesdesaltoso"skipifbitset"e"skipifbitnotset".PorqueosncleosanterioresaoPIC18tinham
apenasinstruesdedesvioincondicional,saltoscondicionaissoimplementadosporumdesviocondicional
(comacondiooposta),seguidodeumdesvioincondicional.Pulostambmsodeutilidadeparaaexecuo
condicionaldequalquerinstruosimplesimediatamenteseguinte.Tambmpossvelpularinstruesde
salto.Porexemplo,asequenciadeinstrues"pularseApularseBC"irexecutarCseAverdadeiroouB
forfalso.
AsriePIC18implementouregistradores"sombra"(shadowregisters)quesalvamvriosregistradores
importantesduranteumainterrupo,fornecendosuportedehardwareparasalvarautomaticamenteoestadodo
processadorduranteamanutenodeinterrupes.
Emgeral,asinstruesdoPICsodivididasem5classes:
1.Operaonoregistradordetrabalho(WREG),comimediato("literal")operandode8bits.Porexemplo,
movlw(moverliteralmenteparaWREG),andlw(ANDliteralcomWREG).Umainstruopeculiar
retlw,quecarregaimediatamenteemWREGeretorna,queusadocomdesvioscomputadospara
produzirtabelasdeconsulta.
2.OperaocomWREGeregistradorindexado.Oresultadopodeserescritoounoregistradordetrabalho
(ex.:addwf reg, w)ouoregistradorselecionado(ex.:addwf reg, f).
3.Operaesembits.Estestomamumnmerodoregistradoreumnmerodebit,erealizaumadas4
aes:definiroulimparumbit,etestarepularnadefinio/limpeza.Estasltimassoutilizadaspara
realizardesvioscondicionais.OssinalizadoresdestatushabituaisdaULAestodisponveisemum
registradornumerado,entooperaescomo"desviodecargaclara"sopossveis.
4.Controledetransferncia.Almdasinstruesdesaltopreviamentemencionadas,existemapenasdois:
gotoecall.
5.Algumasinstruesdiversassemoperando,comoretornodesubrotinaesleepparaentraremmodode
economiadeenergia.

Desempenho
Asdecisesdaarquiteturasodirecionadasparaamaximizaodarelaodevelocidadecusto.Aarquitetura
Harvardondeasinstrueseosdadossoprovenientesdefontesdiferentessimplificamuitootempoeo
desenhodocircuito,beneficiandovelocidadedoclock,preoeconsumodeenergia.
OconjuntodeinstruesPICadequadoparaaimplementaodetabelasdeconsultarpidanoespaodo
programa.Taisconsultastomamumainstruoedoisciclosdeinstruo.Muitasfunespodemsermodeladas
destemodo.Aoptimizaofacilitadapeloespaorelativamentegrandedoespaodeinstrues(como4096x
palavrasde14bitsno16F690)epeloprojetodoconjuntodeinstrues,quepermiteconstantesembutidas.
Latnciadeinterrupoconstanteemtrsciclosdeinstruo.Interrupesexternasprecisamser
sincronizadascomociclodeinstruesde4ciclosdeclock,casocontrrio,poderhaverumciclojitterde
umainstruo.Interrupesexternasjestosincronizadas.Alatnciadeinterrupoconstantepermitequeos
PICsconsigamatingirsequnciasdebaixaoscilao.Umexemplodistoumgeradordeimpulsosde
sincronizaodevdeo.IssonomaisrealidadenosmaisnovosmodelosdoPIC,porqueelestmuma
latnciadeinterruposncronadetrsouquatrociclos.

Vantagens
Pequenoconjuntodeinstruesparaaprender
ArquiteturaRISC
Osciladorembutidocomvelocidadeselecionvel
Kitsdedesenvolvimentosparainiciantesdisponveispormenosde50dlares
Microcontroladoresbaratos
Grandedisponibilidadedeinterfaces,comoUSB,IC,SPI,Ethernet,entreoutros[6]
DisponibilidadedeprocessadoresempacoteDILtornlosfceisdemanusearparausocomohobby.
https://pt.wikipedia.org/wiki/Microcontrolador_PIC

5/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

Limitaes
Umacumulador
BankswitchingporregistradornecessrioparaacessaraRAMemdiversosdispositivos
OperaeseregistradoresnosoortogonaisalgumasinstruespodemenderearRAMe/ouconstantes
imediatas,enquantooutrospodemusarapenasoacumulador.
AsseguinteslimitaesempilhasforamcorrigidosnasriePIC18,masaindasopresentesemPICsanteriores:
Apilhadechamadasemhardwarenoenderevel,aalternnciadetarefasdemodopreemptivono
podeserimplementado
Pilhasimplementadasporsoftwarenosoeficientes,porissodifcilgerarcdigoreentranteesuportar
asvariveislocais
Commemriadeinstruespaginada,hdoistamanhosdepginaparasepreocupar:umparaCALLeGOTO
eoutroparaGOTOcomputada(normalmenteusadoparaconsultasdetabela).Porexemplo,emPIC16,CALL
eGOTOtem11bitsdeendereamento,demodoqueotamanhodapginade2048palavrasdeinstruo.
ParaGOTOscomputadas,ondevocadicionaraoPCL,otamanhodapginade256palavrasdeinstruo.
Emambososcasos,osbitsdeendereosuperioressofornecidospeloregistradorPCLATH.Esteregistrador
devesertrocadoacadatransfernciadecontroledetempoentreaspginas.PCLATHtambmdeveser
preservadoporqualquermanipuladordeinterrupo.[7]

DesenvolvimentodeCompiladores
Enquantovrioscompiladorescomerciaisestodisponveis,em2008,aMicrochiplanouseusprprios
compiladoresC,C18eC30,paraalinhadeprocessadores18F24Fe30/33F.
Apartirde2013,aMicrochipoferecesuasriedecompiladoresXC,parausocomMPLABX.Microchip
acabarporeliminargradualmenteosseuscompiladoresmaisantigos,comoC18,erecomendaousodeseus
compiladoressrieXCparanovosmodelos.
OconjuntodeinstruesRISCdocdigodelinguagemdemontagemdoPIC,emborasendosimples,pode
fazerofluxoglobaldifcildecompreender.Ousocriteriosodemacrossimplespodemmelhoraralegibilidade
dalinguagemassemblydoPIC.Porexemplo,oassembleroriginalParallaxPIC("SPASM")temmacrosque
escondemWefazemoPICficarparecidocomumamquinadedoisendereos.

Diferenasarquiteturais
OsPICsusamaarquiteturaHarvard,easpalavrasdeinstruopossuemtamanhosincomuns.Originalmente,
instruesde12bitsincluamendereode5bitsparaespecificarooperandoemmemria,edestinosde
desviosde9bits.Revisesposterioresadicionarambitsaoscdigosdeoperaes(opcode),permitindo
adicionarbitsparaendereos.

Dispositivoscomncleobsico(12bits)
Estesdispositivosapresentammemriadeinstruescom12bits,umarquivoderegistradoresde32bytes,e
umapequenapilhadechamadasdedoisnveisdeprofundidade.ElessorepresentadospelasriePIC10,bem
comoporalgunsdispositivosPIC12ePIC16.Dispositivosdalinhadebaseestodisponveisempacotesde6
pinosa40pinos.
Geralmenteosprimeiros79bytesdoarquivoderegistradoressoregistradoresdeusoespecial,eosbytes
restantessodeusogeralRAM.Osponteirossoimplementadosusandoumparderegistradores:depoisde
escreverumendereoparaoFSR(selecionadordearquivoderegistradores),oregistradorINDF(findireto)

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

6/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

tornaseumaliasparaoregistradorabordado.SeRAMcomutadaimplementada,onmerodobanco
selecionadopelos3primeirosbitsdoFSR.Issoafetaosnmerosderegistradores1631registradores015so
globaisenosoafetadospelosbitsselecionados.
Devidoaoespaodosregistradoressermuitolimitado(5bits),4registradoresraramentelidosnoforam
atribudosendereos,massoescritosporinstruesespeciais(OPTIONeTRIS).
OespaodeendereoROMde512palavras(12bitscada),quepodemserestendidosa2048palavraspor
comutao.InstruesCALLeGOTOespecificarasltimos9bitsdonovolocaldocdigobitsdeordemsuperior
adicionaissotomadasapartirdoregistradordestatus.NotesequeainstruoCALLincluiapenas8bitsde
endereo,espodeespecificarendereosnoprimeirametadedecadapginade512palavras.
TabelasdeconsultasoimplementadasutilizandoumGOTOcomputado(atribuioderegistradorPCL)emuma
tabeladeinstruesRETLW.
Oconjuntodeinstruesserapresentadoaseguir.Nmerosderegistradorsoreferidoscomo"f",enquanto
queasconstantessoreferidoscomo"k".Nmerosbinrios(07)soseleccionadospor"b".Obit"d"seleciona
odestino:0indicaW,enquantoque1indicaqueoresultadoescritodevoltapararegistradorfontef.Os
sinalizadoresdestatusCeZpodemserdefinidocombasenoresultadocasocontrrio,elessono
modificados.Instruesdesomaesubtrao(masnorotao)quedefinemCtambmdefinemosinalizador
DC(digitcarry),ocarrydobit3paraobit4,quetilparaaaritmticaemBCD.

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

7/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

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

opcode

Descrio

Instruesdiversas

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

Nenhumaoperao(MOVW0,W)

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

CopiaWparaoregistradorOPTION

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

Entraemmododeeconomiadeenergia

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

Reiniciaowatchdogtimer

0 0 0 0 0 0 0 0 0 1

CopiaWparaoregistradordetriploestado(f=1,2
or3)

0 0

opcode

TRISf

register

OperaesnaULA:destOP(f,W)

0 0 0 0 0 0 1

MOVWFf

0 0 0 0 0 1 d

CLRf,d

0 0 0 0 1 0 d

SUBWFf,d

0 0 0 0 1 1 d

DECFf,d

Z destf1

0 0 0 1 0 0 d

IORWFf,d

Z destf|W,OUinclusivolgico

0 0 0 1 0 1 d

ANDWFf,d

Z destf&W,AND(E)lgico

0 0 0 1 1 0 d

XORWFf,d

Z destf^W,XORlgico

0 0 0 1 1 1 d

ADDWFf,d C

Z destf+W

0 0 1 0 0 0 d

MOVFf,d

Z destf

0 0 1 0 0 1 d

COMFf,d

Z dest~f,complementobitabit

0 0 1 0 1 0 d

INCFf,d

Z destf+1

0 0 1 0 1 1 d

DECFSZf,d

0 0 1 1 0 0 d

RRFf,d

destCARRY<<7&#124f>>1,rotacionarparaa
direitaatravsdocarry

0 0 1 1 0 1 d

RLFf,d

destF<<1|CARRY,rotacionarparaaesquerda
atravsdocarry

0 0 1 1 1 0 d

SWAPFf,d

destf<<4|f>>4,swapnibbles

0 0 1 1 1 1 d

INCFSZf,d

destf+1,entopulase0

0 1

Z dest0,normalmenteescritoCLRWouCLRFf
C

Z destfW(destf+~W+1)

destf1,entopulase0

bit

register

0 1 0 0

bit

BCFf,b

Limparbitbdef

0 1 0 1

bit

BSFf,b

Definirbitbdef

0 1 1 0

bit

BTFSCf,b

Pularsebitbdefestlimpo

0 1 1 1

bit

BTFSSf,b

Pularsebitbdefestdefinido

1 0

op

destW

op

OperaesemBits

Transfernciasdecontrole

1 0 0 0

RETLWk

DefineWk,entoretornadeumasubrotina

1 0 0 1

CALLk

Chamaumasubrotina,endereode8bitsk

GOTOk

Pulaparaoendereode9bitsk[8]

1 0 1
1 1

op

k
8bitimmediate

OperaescomWe8bitliteral:WOP(k,W)

1 1 0 0

MOVLWk

1 1 0 1

IORLWk

Z Wk|W,OUlgico(OR)bitabit

1 1 1 0

ANDLWk

Z Wk&W,Elgico(AND)bitabit

1 1 1 1

XORLWk

Z Wk^W,OUexclusivo(XOR)bitabit

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

Wk

8/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

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

Descrio

Dispositivosintermedirios(14bits)
Estesdispositivosapresentamumamemriade14bitseumpilhadechamadacom8nveis.Oconjuntode
instruesdiferemuitopoucoapartirdosdispositivosdalinhadebase,masos2bitsadicionaispermitem
opcodecom128registradorese2048palavrasdecdigoparaserdiretamenteendereados.Existemalgumas
instruesdiversasadicionais,eduasinstruesadicionaisliteraisde8bits,somaresubtrair.Oncleo
intermedirioestdisponvelnamaiorpartedosdispositivosPIC12ePIC16.
Osprimeiros32bytesdoespaoderegistradoressoalocadosaosregistradoresdeusoespecialos96bytes
restantessousadosparaRAMdepropsitogeral.SeRAMcomutadautilizada,os16registros(0x700x7F)
soglobais,assimcomoalgunsdosmaisimportantesregistradoresparafinsespeciais,incluindooregistrador
STATUSquedetmosbitsdeseleodebancodememriaRAM.
AsfontesderegistradorPCLATHdealtaordembitsdeendereodeinstruo,quandoos8bitsfornecidospor
umagravaoparaoregistradorPCL,ouos11bitsfornecidosporumainstruoGOTOouCALL,no
suficientepararesolveroespaodeROMdisponvel.

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

9/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

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

opcode

Descrio

Instruesdiversas

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

Nenhumaoperao(MOVW0,W)

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

Retornadeumasubrotina,Wnomodificado

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

Retornadeumainterruo

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

CopiaWparaoregistradorOPTION(obsoleta)

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

Entraemmododeeconomiadeenergia

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

Reiniciaowatchdogtimer

0 0 0 0 0 0 0 1 1 0 0 1

CopiaWparaumregistradordetriploestado(f
=1,2or3)(obsoleta)

0 0

opcode

TRISf

registrador

OperaesnaULA:destOP(f,W)

0 0 0 0 0 0 1

MOVWFf

0 0 0 0 0 1 d

CLRf,d

0 0 0 0 1 0 d

SUBWFf,d

0 0 0 0 1 1 d

DECFf,d

Z destf1

0 0 0 1 0 0 d

IORWFf,d

Z destf|W,ouinclusivo(OR)lgico

0 0 0 1 0 1 d

ANDWFf,d

Z destf&W,elgico(AND)

0 0 0 1 1 0 d

XORWFf,d

Z destf^W,ouexclusivo(XOR)

0 0 0 1 1 1 d

ADDWFf,d C

Z destf+W

0 0 1 0 0 0 d

MOVFf,d

Z destf

0 0 1 0 0 1 d

COMFf,d

Z dest~f,complementobitabit

0 0 1 0 1 0 d

INCFf,d

Z destf+1

0 0 1 0 1 1 d

DECFSZf,d

0 0 1 1 0 0 d

RRFf,d

destCARRY<<7&#124f>>1,rotaciona
direitaatravsdocarry

0 0 1 1 0 1 d

RLFf,d

destf<<1|CARRY,rotacionaesquerda
atravsdocarry

0 0 1 1 1 0 d

SWAPFf,d

destf<<4|f>>4,swapnibbles

0 0 1 1 1 1 d

INCFSZf,d

destf+1,entodesviasezero

0 1

op

fW
Z
C

dest0,normalmenteescritocomoCLRWor
CLRFf

Z destfW(destf+~W+1)

destf1,entodesviasezero

bit

registrador

Operaesembits

0 1 0 0

bit

BCFf,b

Limpabitbdef

0 1 0 1

bit

BSFf,b

Definebitbdef

0 1 1 0

bit

BTFSCf,b

Pulasebitbdefestlimpo

0 1 1 1

bit

BTFSSf,b

Pulasebitbdefestdefinido

1 0 op

1 0 0

CALLk

Chamasubrotina

1 0 1

GOTOk

Pulaparaoendereok

1 1

opcode

Transfernciasdecontrole

8bitimmediate

OperaescomWe8bitliteral:WOP(k,W)

1 1 0 0 x x

MOVLWk

Wk

1 1 0 1 x x

RETLWk

Wk,entoretornadeumasubrotina

1 1 1 0 0 0

IORLWk

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

Z Wk|W,oulgico(OR)bitabit
10/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

1 1 1 0 0 1

ANDLWk

Z Wk&W,elgico(AND)bitabit

1 1 1 0 1 0

XORLWk

Z Wk^W,ouexclusivo(XOR)bitabit

1 1 1 0 1 1

(reservado)

1 1 1 1 0 x

SUBLWk

Z WkW(destk+~W+1)

1 1 1 1 1 x

ADDLWk

Z Wk+W

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

Descrio

MicrocontroladoresPIC32de32bits
Emnovembrode2007,aMicrochipapresentouanovafamliademicrocontroladoresPIC32MXde32bits[9].
AlinhainicialdodispositivobaseadanopadrodaindstriaMIPS32M4KCore.Odispositivopodeser
programadousandoo"MicrochipMPLABCCompilerforPIC32MCUs(http://www.microchip.com/developme
nttools/)",umavariantedocompiladorGCC.Osprimeiros18modelosatualmenteemproduo(PIC32MX3xx
ePIC32MX4xx)sopinoapinocompatvelecompartilhamosmesmosperifricosestabelecidoscomafamlia
dedispositivosPIC24FxxGA0xx(16bits),permitindoousodebibliotecascomuns,softwareeferramentasde
hardware.Hojeestdisponvelem28pinosempacotesQFNpequenosatdispositivosdealtodesempenho
comEthernet,CANeUSBOTG.
AarquiteturaPIC32trazumasriedenovosrecursosparaportfliodaMicrochip,incluindo:
Amaiorvelocidadedeexecuo:80MIPS(maisde120MIPS@80MHzcomobenchmark
Dhrystone[10])
Amaiormemriaflash:512KB
Execuodeumainstruoporciclodeclock
Oprimeiroprocessadorcomcache
PermiteaexecuoapartirRAM
OprximoprodutodaMicrochipserafamliademicrocontroladoresPIC32MZ.

Programaoedesenvolvimento
ComoqualquerarquiteturaosprocessadoresPICapenasaceitamlinguagemdemquina(assembly).Noentanto
aprogramaopodeserfeitaemlinguagensdealtonvelutilizandosecompiladores.Existemvrias
alternativaspagasdecompiladores.Emgeralpossivelutilizlosdemodogratuitocomalgumasrestries.
ParaasfamliasPIC16ePIC18existeumaalternativaopensourceoSDCC,quepodeserconfiguradopara
operarcomoMPLAB.
ExistemaindadiversasIDE'sdisponveisparaaprogramao,entreelasamaisutilizadaoMPLAB,
disponibilizadodemodogratutopelaprpriaMicrochip.HatualmenteumaversobetadeIDEbaseadano
NetbeanssendodesenvolvidapelaMicrochip:MPLABX.EstaIDEjvemcomsuporteparaqualquer
Windows,MaceLinux.
Paragravaroprogramanomicrocontroladorutilizadoumdispositivodedicado.comumquetais
dispositivostambmpossuamcapacidadededepuraroprograma,oqueauxiliamuitonafasedetestesdos
sistemas.possivelaindaencontrardiversasplacasdedesenvolvimentoquejpossuemumhardwarepr
montadodemodoaagilizaroprojetodeumproduto,permitindoquesecomeceadesenvolverosoftwareem
paralelocomohardware.

Perifricosinternos
Seusprincipaisperifricosinternos(adisponibilidadevariaconformeomodelo):
https://pt.wikipedia.org/wiki/Microcontrolador_PIC

11/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

USARTs
ControladoresdecomunicaoI2C,SPI,USBe
Paralelo
ControladoresPWM
ControladoresdeLCD
Controladoresdemotores
Geradordeenergiadealtapotncia
PerifricosparaLIN(http://en.wikipedia.org/wiki/Lo
cal_Interconnect_Network),CAN
ControladoresEthernet
PerifricosIRDA(http://en.wikipedia.org/wiki/Infrar
ed_Data_Association)
CodificadoresparacriptografiaKeeloq
Watchdogtimer
DispositivosPIC
Detetoresdefalhanaalimentao
Portasdigitaiscomcapacidadede25mA(fornecerou
drenar)paraacionarcircuitosexternos
Osciladoresinternos
RTCCRealTimeClock(http://en.wikipedia.org/wiki/Real_Time_Clock)andCalendar(Relgiode
temporealecalendrio)
TecnologiaDeepSleepconsumodenanoWatt
CRCCyclicRedundancyCheckprogramvel

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

Referncias
1.PICDeviceDocumentation(http://ww1.microchip.com/downloads/en/DeviceDoc/39630C.pdf)(PDF).
2."MOSDATA1976",GeneralInstrument1976Databook
3."1977DataCatalog",MicroElectronicsfromGeneralInstrumentCorporationhttp://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/206DataSheet(http://ww1.microchip.com/downloads/en/DeviceDoc/41239D.pdf)(PDF)
MicrochipTechnology[S.l.]2007.p.52.
9.http://ww1.microchip.com/downloads/en/DeviceDoc/61177a.pdf
10.http://www.microchip.com/en_US/family/32bit/

Ligaesexternas
www.locxtronic.comTutorialforPICProgrammingInBASIC
(http://www.locxtronic.com)
MicrochipTechnology(http://www.microchip.com)
PrincpiosdePIC16x84(http://www.pictutorials.com)

AWikipdiapossuioportal:
Portaldeeletrnica

Obtidade"https://pt.wikipedia.org/w/index.php?title=Microcontrolador_PIC&oldid=45841116"
https://pt.wikipedia.org/wiki/Microcontrolador_PIC

12/13

17/07/2016

Microcontrolador PIC Wikipdia, a enciclopdia livre

Categorias: Microcontroladores Componenteseletrnicos


Estapginafoimodificadapelaltimavez(s)20h04minde9dejunhode2016.
EstetextodisponibilizadonostermosdalicenaCreativeCommonsAtribuioCompartilhaIgual
3.0NoAdaptada(CCBYSA3.0)podeestarsujeitoacondiesadicionais.Paramaisdetalhes,
consulteasCondiesdeUso.

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

13/13

Você também pode gostar