Você está na página 1de 21

Escola Politcnica Universidade de So Paulo

PCS2031 Laboratrio de Microprocessadores

E peri!ncia Microcontroladores P"C

#En$en%aria de Co&puta'o Cooperativo 200( )utores


** Etienne )&rico Cartolano +,nior ** Priscila -arreira )ve$liano

Experincia Microcontroladores PIC

Escola Politcnica USP

So Paulo. 10 Sete&bro de 200/0

1. Objetivos Esta experincia tem a finalidade de aproximar o aluno, ao universo dos microcontroladores, utilizando como exemplo a famlia PIC da Microchip Iremos implementar nesta experincia, um pro!rama para !erar uma onda "uadrada em um pino de sada do PIC 2. Introduo famlia de microcontroladores PIC #ipicamente um microcontrolador se caracteriza por incorporar no mesmo encapsulamento um microprocessador, mem$ria de pro!rama e dados e v%rios perifricos como temporizadores, & watchdog timers', comunica()o serial, conversores *nal$!ico+,i!ital, !eradores de P-M, etc, fazendo com "ue o .ard/are final fi"ue extremamente complexo * Microchip uma empresa precursora no uso de tecnolo!ia RISC 0Reduced Instruction Set Computer1 em microcontroladores ,iferente da ar"uitetura 2on 3eumann, a estrutura RISC 4aseada em 4arramentos independentes para dados e para pro!rama, e tem como caracterstica fundamental os taman.os diferenciados 0por ex5 no PIC67C889 o 4arramento de dados de : 4its, en"uanto o de pro!rama de 6; 4its1 o "ue si!nifica "ue uma instru()o est% 'empacotada' em uma <nica palavra de pro!rama 0no caso do PIC67C889 de 6; 4its1, "ue alm de conter o opcode 0instru()o1 contm os operandos 0dados para execu()o da instru()o1

Preo LI !" #"$% Palavras de Instru()o 12 bits I &%'(%)I*'IO Palavras de Instru()o 1+ bits &OPO )% LI !" Palavras de Instru()o 1, bits

PIC 1,C-. #MA> PIC 12C.. #MA>, Bscilador Int

PIC 1,C... #MA>+6+=, EEPABM, Interface Serial, *+, @C,

PIC 1/C... #MA>+6+=, Captura, Interface Serial, *+, P-M

)esem0en1o 'elativo

_2

@a4orat$rio de Microprocessadores Figura 1 Evolu()o PCS=>?6 dos Microcontroladores PIC

Escola Politcnica USP

Experincia Microcontroladores PIC

* Microchip oferece ; 0"uatro1 famlias de microcontroladores de : 4its no 4arramento de dados "ue se adaptam aos mais variados proCetos Estas famlias s)o5 PIC6=C9995 @in.a Compacta PIC67C89+PIC67C8895 @in.a Dase PIC67C995 @in.a Intermedi%ria PIC6EC995 #opo de @in.a

#odas as famlias oferecem diversas op(Fes de mem$ria de pro!rama5 OTP 0One Time Programable1 e EPROM 0Erasable and Programmable Read Only Memory utilizada para desenvolvimento1 *lm disso, oferecem op(Fes de 4aixa tens)o e diversos tipos de circuito osciladores, assim como v%rias op(Fes de 4aixa tens)o e diversos tipos de circuito osciladores, assim como v%rias op(Fes de encapsulamento *l!uns componentes est)o disponveis em ROM 0mascarados1 e EEPROM F!"S# 0repro!ram%veis1 2. "r3uitetura do microcontrolador B alto desempen.o da famlia de microcontroladores PIC pode ser atri4udo as se!uintes caractersticas de ar"uitetura AISC5

Mapa de Ae!istradores vers%til #odas as instru(Fes com palavras simples Palavra de instru()o @on!a *r"uitetura de instru(Fes em &Pipeline' Instru(Fes de apenas um ciclo de m%"uina ConCunto de instru(Fes reduzido ConCunto de instru(Fes orto!onal 0simtrico1

PCS=>?6 @a4orat$rio de Microprocessadores

_2

Experincia Microcontroladores PIC

Escola Politcnica USP

* ar"uitetura vonG3eumman tradicional utiliza o mesmo 4arramento para fazer a 4usca a instru(Fes na mem$ria de pro!rama e para acessar 0escrever ou ler1 a mem$ria de dados

CPU :

Memria Programa & Dados

Figura % G *r"uitetura 2onG3eumman

* ar"uitetura do microcontrolador utiliza dois endere(os distintos para acessar instru(Fes e dados

4arramentos

de

Memria Dados :

CPU

6= 6; 67

Memria Programa

Figura & *r"uitetura do microcontrolador PIC

+. 4ormato das instru5es no microcontrolador PIC * entrada de clocH 0pino BSC6+C@II31 internamente dividida por "uatro para !erar "uatro clocHs em "uadratura sem so4reposi()o, nomeados J6, J=, J?, e J; Internamente, o Contador de Pro!rama 0PC1 incrementado em J6 e a instru()o retirada da mem$ria de pro!rama e colocada no re!istrador de instru(Fes em J; Ela decodificada e executada no ciclo se!uinte de J6 at J;

_+

PCS=>?6 @a4orat$rio de Microprocessadores Figura $ Ciclo de instru(Fes do microcontrolador

Escola Politcnica USP

Experincia Microcontroladores PIC

Um ciclo de instru(Fes consiste de "uatro ciclos J 0J6, J=, J?, J;1 * 4usca e execu()o da instru()o s)o feitas em lin.a, de tal forma "ue a 4usca leva um ciclo de instru()o e a execu()o leva outro ciclo Contudo, devido a caracterstica de &pipeline', cada instru()o executada efetivamente em um ciclo, pois simultaneamente ocorrem a execu()o de uma instru()o e a 4usca a instru()o se!uinte Se uma instru()o causa a altera()o do Contador de pro!rama ent)o dois ciclos s)o necess%rios para completar a instru()o

Figura ' Pipeline no microcontrolador PIC

* ar"uitetura em &pipeline' so4repFe 4usca e execu()o, tornando a execu()o de instru(Fes possvel de se realizar em um <nico ciclo de m%"uina Jual"uer instru()o de desvio 0tais como KB#B, C*@@, ou escrever no PC1 leva dois ciclos de m%"uina * ar"uitetura com 4arramentos separados para instru(Fes e dados permitem lar!uras diferentes, com isso o 4arramento de instru(Fes otimizado para uma palavra de comprimento <nica B n<mero de 4its do 4arramento de instru(Fes depende de "uantas instru(Fes s)o implementadas e do n<mero de re!istradores disponveis em cada famlia de microcontroladores

PCS=>?6 @a4orat$rio de Microprocessadores

_-

Experincia Microcontroladores PIC

Escola Politcnica USP

-. (a0a de re6istradores #odas as instru(Fes aritimticas e 4ooleanas s)o feitas atravs do re!istrador de tra4al.o - B destino da opera()o pode ser o pr$prio re!istrador - ou um dos re!istradores disponveis no microcontrolador, dependendo unicamente da instru()o executada

ULA

I3,M#MA>PC@S#*#U SMSAPBA#"Butros SMAsAe!istradores de uso !eral 0A*M1

Figura ( Mapa de re!istradores

,. Interru05es

M<ltiplas fontes de interrup(Fes interna+externa Prioridade de interrup()o setada por soft/are La4ilita()o !lo4al e individual das interrup(Fes ,iversas interrup(Fes despertam o processador do estado de dormncia 0S@EEP1 #empo de latncia da interrup()o fixada em ? ciclos de instru()o

/. 4amlia 1,47+" *lm das caractersticas !erais da ar"uitetura dos microcontroladores PIC vistas at a!ora, existem outros aspectos peculiares aos mem4ros de cada famlia Como a diversidade de componentes muito !rande, vamos analisar as caractersticas dos componentes da famlia 67M:;*

_,

PCS=>?6 @a4orat$rio de Microprocessadores

Escola Politcnica USP

Experincia Microcontroladores PIC

/.1.

"r3uitetura de !ard8are da famlia PIC1,47+"

3a fi!ura a4aixo apresentada de forma simplificada a ar"uitetura interna da famlia PICM:; Ela 4aseada em re!istradores, com o 4arramento de mem$ria de dados separado do 4arramento de mem$ria de pro!rama 0ar"uitetura AISC1 Este conceito permite ter um conCunto de instru(Fes simples, mas extremamente poderoso "ue enfatiza as opera(Fes 4it, 4Nte e de re!istradores

Figura ) *r"uitetura de Lard/are da famlia PIC6:M:9

PCS=>?6 @a4orat$rio de Microprocessadores

_/

Experincia Microcontroladores PIC

Escola Politcnica USP

/.2.

Princi0ais membros da famlia

)evice

Pro6ram (emor9 :8ords;

)ata '"( :b9tes;

)ata %%P'O( :b9tes;

(a<. 4re3. :(!=;

PIC67M:? PIC67M:; PIC67CA:? PIC67CA:;

86= Mlas. 6I Mlas. 86= ABM 6I ABM

?7 7: ?7 7:

7; 7; 7; 7;

6> 6> 6> 6>

,iversas fre"Oncias de opera()o e empacotamento est)o disponveis ,ependendo da aplica()o e dos re"uisitos de produ()o existe uma op()o de dispositivo mais apropriado para ser selecionado Para maiores detal.es consulte o datas.eet do componente "ue voc utilizar /.2. Caractersticas >erais

*penas ?8 palavras de instru()o para aprender #odas instru(Fes com um ciclo exceto para desvios "ue levam dois ciclos 2elocidade de opera()o5 ,C at => M.z de clocH Instru(Fes com 6; 4its de lar!ura Darramento de dados de : 4its 67 re!istradores de fun(Fes especiais de .ard/are Pil.a com : nveis de profundidade Modos de endere(amento direto, indireto e relativo para dados e instru(Fes Capacidade de interrup()o

/.+.

Caractersticas dos 0erif?ricos

6? pinos de I+B individualmente confi!urados #emporizador+Contador de : 4its com : 4its de &prGescala'

_7

PCS=>?6 @a4orat$rio de Microprocessadores

Escola Politcnica USP

Experincia Microcontroladores PIC

Po/erGBn Aeset 0PBA1 #emporizador -atc.G,o! 0-,#1 com oscilador pr$prio para opera(Fes se!uras Prote()o de C$di!o Pro!ram%vel Modo S@EEP para diminui()o de consumo de ener!ia Bp(Fes de oscilador selecion%vel5 o o o o AC oscilador AC de 4aixo custo 9# cristal padr)o LS Cristal de alta velocidade @P Cristal de 4aixa fre"Oncia 0redu()o de consumo1

Pro!rama()o Serial &inGcircuit' 0atravs de dois pinos1 ; 4Ntes de identifica()o 0I,1 pro!ram%veis pelo usu%rio

/.-.

Or6ani=ao da (em@ria de Pro6rama

* famlia PIC67M:;* tem um contador de pro!rama 0PC1 de 6? 4its capaz de endere(ar at :I x 6; 4its de mem$ria de pro!ramas B vetor de AESE# est% localizado no endere(o >>>>. e o vetor de interrup()o no endere(o >>>;. Butra caracterstica importante a ser salientada a impossi4ilidade de se ler diretamente da mem$ria de pro!rama * maneira com "ue isso feito na ar"uitetura do PIC utilizando a instru()o &AE#@H', "ue ser% visto mais adiante na apresenta()o do conCunto de instru(Fes /.,. Or6ani=ao da (em@ria de )ados

* mem$ria de dados composta de re!istradores e A*M para uso !eral Bs re!istradores s)o divididos em = !rupos funcionais5 Ae!istradores de Mun(Fes Especiais 0?= endere(os iniciais de cada 4anco1 e Ae!istradores de Uso Keral 0endere(os restantes de cada 4anco1 Entre os re!istradores de fun(Fes especiais est)o5 o re!istrador #MA>, o contador de pro!rama 0PC1, o re!istrador de Status 0S#*#US1, os re!istradores I+B 0ports1 e o re!istrador de sele()o 0MSA1 *lm disso, os re!istradores de fun(Fes especiais s)o usados para controlar a confi!ura()o dos ports de I+B e as op(Fes de prGescala Bs re!istradores de uso !eral s)o usados para dados e controle de informa()o so4 comando das instru(Fes

PCS=>?6 @a4orat$rio de Microprocessadores

_A

Experincia Microcontroladores PIC

Escola Politcnica USP

/./.

'e6istradores de 4un5es %s0eciais

Figura * Mapa de re!istradores especiais

/./.1. I )4 B 'e6istrador de %ndereamento Indireto :Indirect )ata "ddressin6 'e6ister; B re!istrador I3,M n)o um re!istrador fisicamente alocado e utilizado em conCunto com o re!istrador MSA para realizar endere(amento indireto Jual"uer instru()o usando o re!istrador I3,M acessa um dado cuCo endere(o est% contido no re!istrador MSA

_1C

PCS=>?6 @a4orat$rio de Microprocessadores

Escola Politcnica USP

Experincia Microcontroladores PIC

/./.2. &('CB 'el@6io de &em0o 'eal :'eal &ime ClocDECounter; B conte<do desse re!istrador sucessivamente incrementado utilizando um &clocH', "ue tanto pode ser interno 0derivado do sistema de &clocH' de microcontrolador1 "uanto externo 0aplicado ao pino A*;+#>CII1 PodeGse utilizar uma prGdivis)o interna "ue permite ampliar 0multiplicar1 a conta!em /./.2. PC:PCL e PCL"&!;B Contador de Pro6rama :Pro6ram Counter; B re!istrador PC respons%vel pela !era()o do endere(o de 4usca P instru(Fes na mem$ria de pro!rama 3ormalmente incrementado de uma unidade ap$s a execu()o de uma instru()o, com exce()o das instru(Fes "ue utilizavam desvios como KB#B e C*@@ Como o PC tem 6? 4its de lar!ura, o 4Nte menos si!nificativo vem do re!istrador PC@, "ue um re!istrador de escrita e leitura e os 8 4its mais si!nificativos est)o armazenados no re!istrador PC@*#L

Figura + Contador de pro!rama

B PC tem todos os 4its resetados durante o Aeset ,urante a execu()o do pro!rama ele autoGincrementado Cuntamente com a execu()o da instru()o, a menos "ue o resultado da instru()o o altere Uma rotina em soft/are com KB#B computado acompan.ada da adi()o de um deslocamento 0offset1 ao contador de pro!ramas 0*,,-M PC@1

PCS=>?6 @a4orat$rio de Microprocessadores

_11

Experincia Microcontroladores PIC

Escola Politcnica USP

/./.+. $&"CFB Pil1a :$tacD; * famlia PIC 67M:;* implementa uma estrutura de pil.a de oito nveis de profundidade por 6? 4its da ler!ura * %rea de pil.a n)o faz parte da mem$ria de pro!rama, nem da mem$ria de dados e tam4m n)o pode ser lida ou escrita B empil.amento feito "uando c.amada uma su4rotina utilizando a instru()o C*@@ B desempil.amento feito utilizandoGse a instru()o AE#@- ,ados n)o podem ser empil.ados, pr%tica muito tuilizada em outras famlias de microcontroladores "ue n)o possuem ar"uitetura AISC /./.-. $&"&G$ Q o re!istrador "ue possui os fla!s "ue indicam resultados de opera(Fes da unidade l$!ica e aritmtica 0U@*1, a condi()o de AESE# e o 4it de prGsele()o do 4anco de mem$ria de dados Bs 4its C, , e R 04its >, 6 e =1 indicam o estado de uma opera()o aritmtica na U@* Bs 4its P,S 04it ?1 e #BS 04it ;1 indicam o estado de Aeset Bs 4its #BS e P,S s)o somente para leitura, n)o s)o possveis de serem alterados por soft/are Juando na apresenta()o do sistema de Aeset e do ConCunto de Instru(Fes iremos detal.ar mais esse re!istrador /./.,. OP&IO B re!istrador BP#IB3 tem 7 4its de lar!ura e contm v%rios 4its de controle para confi!urar a prGescala "ue ser% utilizada pelo #MA> ou -,# 3ele tam4m definido o valor da prGescala e o tipo de conta!em *p$s um Aeset, todos os 4its s)o confi!urados com &6' /././. 'e6istrador de &rabal1o Q o re!istrador mais utilizado, pois toda a transferncia de dados feita atravs dele *lm disso, todas as opera(Fes aritmticas e 4ooleanas o utilizam como sendo um dos operandos Ele parecido com o acumulador de outras famlias de microcontroladores Este re!istrador n)o endere(%vel /./.7. 'e6istrador de $eleo :4ile $elect 'e6ister; 3a famlia PIC 67M:;9 os Dits > a 7 selecionam um dos 6=: re!istradores de uso !eral disponveis no modo de endere(amento indireto B mapa de re!istradores de uso !eral pode ser acessado tanto diretamente

_12

PCS=>?6 @a4orat$rio de Microprocessadores

Escola Politcnica USP

Experincia Microcontroladores PIC

"uanto indiretamente atravs do re!istrador de sele()o 0MSA1 Uma instru()o utilizando o re!istrador I3,M vai operar com o endere(o "ue est% contido no re!istrador de sele()o 0MSA1 Isto um endere(amento indireto Por exemplo5 Ae!istrador >8 contm o valor 6>. Ae!istrador >7 contm o valor >*. Carre!ue o valor >8 no re!istrador MSA Uma leitura ao re!istrador I3,M retornar% o valor 6>. Incrementa o valor do re!istrador MSA de um 0MSA T >71 Uma leitura ao re!istrador I3,M retornar% o valor >*.

/./.A. 'e6istradores de IEO Bs Ae!istradores de I+B podem ser escritos ou lidos so4re o controle do pro!rama como "ual"uer outro re!istrador 3a condi()o Aeset todos os I+Bs s)o definidos como entrada, assim como todos os re!istradores de controle de I+B 0#AIS* e #AIS1 s)o confi!urados com 6 /./.1C. PO'&A Esse re!istrador tem correspondncia direta com os pinos A*;5A*> do microcontrolador Ele possui somente 8 4its 0A*> a A*;1U os demais ? 4its n)o s)o implementados e s)o lidos como zero Cada 4it desse PBA# pode ser individualmente confi!urado como entrada ou sada B pino A*;+#>CI6 uma entrada Sc.imitt #ri!!er e uma sada com dreno a4erto B port A*; multiplexado com a entrada de clocH #>CH6 #odos os outros pinos de PBA#" tem nveis de entrada Sc.immit #ri!!er e drivers de sada CMBS completos /./.11. 1,.A.2. PO'&# Esse re!istrador tem correspondncia direta com os pinos ADE5AD> do microcontrolador Ele tem : 4its de lar!ura e 4idirecional Cada 4it desse PBA# pode ser individualmente confi!urado como entrada ou sada Cada pino PBA#D tem um pull,up interno

PCS=>?6 @a4orat$rio de Microprocessadores

_12

Experincia Microcontroladores PIC

Escola Politcnica USP

Um 4it de controle ADPUS 0BP#IB3 VEW1 pode li!ar os pullGups B pullGup automaticamente desli!ado "uando os pinos s)o confi!urados como sadas Bs pullGups tam4m s)o desa4ilitados no Po/erGon Aeset Juatro pinos do PBA#D, ADE5AD; tem uma caracterstica de interrup()o na mudan(a de estado *penas os pinos confi!urados com entrada podem causar esta interrup(aF Bs pinos de entrada 0ADE5AD;1 s)o comparados com o valor anti!o armazenado no latc., na <ltima leitura do PBA#D /./.12. &'I$" e &'I$# S)o os re!istradores referentes P confi!ura()o dos pinos de I+B da PBA#* e PBA#D Escrever 6Xs nos re!istradores #AIS* e #AISD fazem dos 4its entradas, colocando o driver de sada em alta impedYncia Escrever >Xs nesses re!istradores fazem dos 4its sadas, colocando o conte<do da sada nos latc.es dos PBA#s correspondentes *p$s um Aeset, todos os re!istradores s)o confi!urados com 6Xs, ou seCa, todos os pinos de I+B confi!urados como entrada /.7. Interface de IEO

#odos os pinos de I+Bs podem ser usados tanto como entrada "uanto sada * sua dire()o definida pelos re!istradores de dire()o #AIS* e #AISD Cada 4it desses re!istradores corresponde a um pino de I+B "ue, "uando setado, corresponde P entrada e, "uando resetado, corresponde P sada Por exemplo, se "uisermos setar o PBA#D com o ni44le menos si!nificativo como entrada e o mais si!nificativo como sada, ent)o o valor a ser escrito em #AISD ser% >>>>6666 em 4in%rio, ou &>M' em .exadecimal 3otaGse "ue o dado de sada se mantm armazenado em um flipGflop independente do pino de I+B estar confi!urado como entrada ou sada Esse dado se mantm nessa condi()o at "ue um novo dado seCa escrito Para o processo de leitura, o dado tem "ue estar esta4ilizado e o pino confi!urado para entrada pois ela n)o armazenada em flipGflops ,evido a essas caractersticas, o pro!ramador deve ter al!uns cuidados "uando usar instru(Fes do tipo &read and /rite modified' como DSM ou DCM, "ue lem o PBA# de I+B, executam a aopera()o no 4it e escrevem o resultado no PBA# de I+B Por exemplo, uma instru()o DSM no pino 8 do PBA#D ir% provocar a leitura dos : pinos de I+B do PBA#D Ent)o, a CPU ir% executar a opera()o de setar o 4it 8 e o resultado ser% escrito no PBA#D Se outro pino de I+B for usado como 4idirecional, e nesse instante estiver confi!urado para entrada o sinal presente ser% lido e reescrito so4re o dado "ue estivesse previamente escrito no latc. de sada do pino de I+Z Se o pino estiver confi!urado como entrada n)o .aver% nen.um pro4lema, mas se ele estiver confi!urado para sada, o dado no latc. de sada pode ser descon.ecido B "ue o pro!ramador deve ter em mente nunca provocar um &curtoGcircuito' nos pinos de I+B Por exemplo, se no pino de I+B estiver conectado a K3, e no latc. de sada estiver setado para &6',

_1+

PCS=>?6 @a4orat$rio de Microprocessadores

Escola Politcnica USP

Experincia Microcontroladores PIC

com o pino e I+B confi!uradao para sada, uma alta corrente ir% circular, o "ue danificar% o componente /.A. &em0ori=ador

B m$dulo temporizador+contador 0#MA>1 tem as se!uintes caractersticas5 #emporizador+contador de : 4its PodeGse utiliz%Glo para leitura e escrita PrGescala de : 4its pro!ram%vel por soft/are Sele()o de clocH interno ou externo Sele()o do tipo de 4orda para clocH externo Interrup()o no estouro de MML para >>L

B modo temporizador selecionado fazendo o 4it #>CS T > 0#imer > C.ip Select BP#IB3 V8W1 3o modo temporizador, o re!istrador #MA> ser% incrementado a cada ciclo de m%"uina 0sem prGescala1 Se ocorrer uma escrita em #MA>, o incremento ser% ini4ido pelos dois ciclos de m%"uina se!uintes B modo contador selecionado fazendo o 4it #>CS T 6 3esse modo, #MA> ser% incrementado a cada 4orda de su4ida ou descida do pino A*;+#>CI6 * 4orda respons%vel pelo incremento determinada pelo 4it #>SE 0#imer > Select Ed!e BP#IB3 V;W1 B 4it #>SE T > seleciona 4orda de su4ida e #>SE seleciona 4orda de descida * prGescala compartil.ada entre o m$dulo #MA> e o -atc.G,o! #ime 0-,#1 * prGescala controlada no soft/are pelo 4it de controle PS* 0PreScaler *ssi!nmet BP#IB3 V?W1 Juando o 4it PS*T 6, a prGescala fica so4 controle do #MA> e a prGescala do -,# selecionada para 656 * prGescala setada por soft/are atravs dos 4its PS=5PS> 0BP#IB3 V=5>W1 com valores de sele()o "ue variam de 65=, 65;, , 65=87 B uso da prG escala pode ser para o -,# ou para o #MA>, mas nunca simultYneo 3ada impede "ue na primeira fase do pro!rama se utiliza a prGescala para o -,# e na se!unda fase para o #MA> B -,# tem oscilador pr$prio capaz de !erar um tempo 6:ms de perodo sem a prGescala Com prGescala de 656=: o tempo so4e para =,8 se!undos * interrup()o do #imer > !erada "uando o conte<do do re!istrador #MA> passar de MML para >>L Esse estouro faz #>IM T6 * interrup()o pode ser mascarada fazendo #>IE T > 0#imer > Interrupt Ena4le I3#CBV8W1 B 4it #>IM deve ser resetado por soft/are na rotina de servi(o da interrup()o antes de rea4ilitar a interrup()o * interrup()o do #imer > n)o pode acordar o processador do mod S@EEP por"ue o timer desli!ado antes de entrar no estado de dormncia

PCS=>?6 @a4orat$rio de Microprocessadores

_1-

Experincia Microcontroladores PIC

Escola Politcnica USP

/.1C. Interru05es *s interrup(Fes disponveis nas famlias PIC 67+6E variam de componente para componente, dependendo das caractersticas de .ard/are implementadas *s famlias PIC 67+6E possuem ? fontes de interrup()o implementadas S)o elas5 Interrup()o Externa AD>+I3# Interrup()o #emporizador #MA> 0estouro na conta!em1 Interrup()o por mudan(a no PortD0pinos ADE5AD;1

B re!istrador de controle de interrup()o 0I3#CB31 armazena os pedidos individuais de interrup()o em seus 4its Ele tam4m contm 4its de .a4ilita()o individual e !lo4al de interrup(Fes B 4it de .e4ilita()o !lo4al de interrup(Fes, KIE 0I3#CB3 VEW1 .a4ilita 0se setado1 todas as interrup(Fes n)o mascaradas ou desa4ilita 0se resetado1 todas as interrup(Fes *s interrup(Fes individuais podem ser desa4ilitadas atravs do seu correspondente 4it de .a4ilita()o no re!istrado I3#CB3 B 4it KIE resetado durante o Aeset * instru()o &Aetorno da Interrup()o', AE#MIE, sai da rotina para desa4ilitar futuras interrup(Fes, o endere(o de retorno colocado na pil.a e o re!istrador PC carre!ado com >>>;L Uma vez na rotina de servi(o da interrup()o a0s1 fonte0s1 de interrup()o podem ser determinadas pelo teste das fla!s correspondente no re!istrador I3#CB3 B 4it da interrup()o atendida deve ser resetado no soft/are antes de rea4ilitar as interrup(Fes para evitar interrup(Fes recursivas

_1,

PCS=>?6 @a4orat$rio de Microprocessadores

Escola Politcnica USP

Experincia Microcontroladores PIC

/.11. Conjuntos de Instru5es de $oft8are

Figura 1- Instru(Fes do microcontrolador PIC67M:9

PCS=>?6 @a4orat$rio de Microprocessadores

_1/

Experincia Microcontroladores PIC

Escola Politcnica USP

7. Parte %<0erimental

7.1.

Introduo

* Microc.ip disponi4iliza ferramentas para desenvolvimento de aplica(Fes para seus microcontroladores PIC ,entre estas ferramentas podemos citar o MP@*D e o PICStart B MP@*D um I,E "ue fornece uma inte!ra()o entre editor de texto, compiladores e microcontroladores Podemos tam4m, utilizar outras ferramentas de desenvolvimento, na Internet encontramos diversas delas 2amos utilizar nesta experincia a ferramenta P1(Pro Programmer .or MicroChip microcontrollers , ela disponi4iliza alm do soft/are, um !ravador de microcontroladores PIC 0anexo >61 *travs do soft/are P67pro e do circuito de !rava()o, podeGse carre!ar um pro!rama escrito em .exadecimal no microcontrolador ,iversos parYmetros podem ser confi!urados no soft/are para pro!ramar diferentes versFes de microcontroladores PIC Utilize o manual da ferramenta para maiores detal.es da utiliza()o do soft/are P67pro 7.2. >erar uma onda Huadrada em uma 0orta do PIC

2amos pro!ramar o PICM:;* para !erar uma onda "uadrada *4ra um editor de texto e escreva o c$di!o a4aixo, n)o es"ue(a de respeitar as ta4ula(Fes antes de cada comando e seus operandos

/include 0p1(.*$1inc0 !IST P21(F*$ count e3u -4-C 5iniciali6acao 5programa principal I7I 8SF -&h9'5 MO:!; --5 MO:;F -(5 8CF -&h9'5 !OOP 8SF -(9C"!! <E!"= 8CF -(9C"!! <E!"= >OTO !OOP

_17

PCS=>?6 @a4orat$rio de Microprocessadores

Escola Politcnica USP

Experincia Microcontroladores PIC

<E!"= MO:!; +.h MO:;F 1" 5MO:;F 18 <E!"="?@ 5<ECFSA 18 5>OTO <E!"="?@ <ECFSA 1" >OTO <E!"="?@ RET!; -E7<
Em se!uida, transcreva o c$di!o para .exadecimal, para isso, su4meta o ar"uivo *SM "ue voc aca4ou de criar para o pro!rama MP*SM?>= exe *!ora vamos !ravar o c$di!o .exadecimal no PIC5 a 4 c d e f ! . i C H l Conecte o !ravador de microcontroladores na porta paralela do PC Posicione o PIC no !ravador, verificar posi()o do c.anfro @i!ue a fonte do !ravador *4ra o pro!rama P67pro Selecione o PIC67M:;*5 ,evice 0M?1 Carre!ue o pro!rama !ravado na mem$ria do microcontrolador5 Aead 0M71 *pa!ue o conte<do da mem$ria5 Erase 0M[1 2erifi"ue se a mem$ria est% vazia5 DlanH C.ecH 0ME1 *4ra o pro!rama escrito em .exadecimal5 BpenPro! 0M61 Selecione o oscilador 9#5 Muses 0M=1 Krave o pro!rama escrito em .exadecimal no microcontrolador5 Pro!ram 0M;1 2erifi"ue a !rava()o e a op()o do oscilador5 Aead 0M71

m ,esli!ue a fonte do !ravador n Aetire o PIC do !ravador, tome cuidado com os pinos

PCS=>?6 @a4orat$rio de Microprocessadores

_1A

Experincia Microcontroladores PIC

Escola Politcnica USP

Para verificar o funcionamento do pro!rama, vamos implementar um circuito de teste 0fi!ura 661 Este circuito deve li!ar a porta AD - do microcontrolador a um led ,eveGse tam4m li!ar um oscilador ao PIC, ele ser% P 4ase dos seus ciclos de instru()o 0ver manual1 B oscilador ser% um cristal, com fre"Oncia e confi!ura()o de monta!em especificada no manual do PICM:;* \=]
2,,

C6

MC@A# BSC6+I3 A6 AD> @E,

9#*@

PIC47+"

C6

BSC6+BU#

2SS

Figura 11 Circuito de teste

Confi6ura5es do Circuito I2J C6 9#*@ A6 68 G ?? pM ; G 6> MLz 6I^

_2C

PCS=>?6 @a4orat$rio de Microprocessadores

Escola Politcnica USP

Experincia Microcontroladores PIC

A. #iblio6rafia

\6] Microc.ip PIC67M:9 ,atas.eet /// microc.ip com \=] ProCetos de Lard/are e Soft/are utilizando Microcontroladores PIC Edmur Canazian G 6[[[ \?] P67Pro Pro!rammer for MicroC.ip microcontrollers S.ort Manual

PCS=>?6 @a4orat$rio de Microprocessadores

_21

Você também pode gostar