book on music theory by great master composer Paul HindemithFull description
book on music theory by great master composer Paul Hindemith
critica literaria - letras/portugues
compilacao de trabalho runicoDescrição completa
Teoria MusicalDescrição completa
Descrição completa
jdcj
t e numraveFull description
tas
book on music theory by great master composer Paul HindemithDescription complète
Descrição completa
ICMS Teoria e PráticaDescrição completa
Descrição completa
Descrição completa
Descrição: TEORIA E PRÁTICA CAMBIAL RONALD DA SILVA REIS
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
1
Vidal Pereira da Silva r
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
MICROCONTROLADORES PIC 16F E 18F TEORIA E PR!TICA
Instituto NCB www.newtoncbraga.com.br
co"tato#"e$to"c%ra&a'co('%r
)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
MICROCONTROLADORES PIC 16F E 18F TEORIA E PR!TICA
Instituto NCB www.newtoncbraga.com.br
co"tato#"e$to"c%ra&a'co('%r
)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Microco"troladore* PIC 16F e 18F – Teoria e Prática Autor: Vidal Pereira da Silva r' S+o Pa,lo - .ra*il - )/10 Palavras-chave: Eletr"ica - E"&e"2aria Eletr"ica - Co(3o"e"te* – Microco"troladore*
Copyright by INTITUTO NEWTON C BRAGA.
14 edi5+o
Todo* o* direito* re*ervado*' Proi%ida a re3rod,5+o re3rod,5+o total o, 3arcial 3or 7,al7,er (eio o, 3roce**o e*3ecial(e"te 3or *i*te(a* &ráico* (icro9l(ico* oto&ráico* re3ro&ráico* o"o&ráico* video&ráico* at,al(e"te e:i*te"te* o, 7,e ve"2a( a *er i"ve"tado*' Vedada a (e(ori;a5+o etico at,al(e"te e( ,*o o, 7,e ve"2a a *er de*e"volvido o, i(3la"tado "o ,t,ro' E**a* 3roi%i5?e* 3roi%i5?e* a3lica(-*e ta(%>( ta(%>( @* caracter9*tica* &ráica* da o%ra e @ *,a editora5+o' A viola5+o do* direito* a,torai* > 3,"9vel co(o cri(e art' 18B e 3ará&rao* do Cdi&o Pe"al c' Lei " 6'8 de 1G<1)<8/H co( 3e"a de 3ri*+o e (,lta co"=,"ta(e"te co( %,*ca e a3ree"*+o e i"de"i;a5+o diver*a* arti&o* 1)) 1)0 1)B 1)6 da Lei " '88 de 1B<1)
Diretor responsável: Ne$to" C' .ra&a Diagramação e Coordenação: Re"ato Paiotti
0
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Dedicatória
(i"2a e*3o*a Jia"e e a* (i"2a* il2a* I*a%ella e Nat2ália 7,e *+o (i"2a* o"te* de e"er&ia 3ara viver cada ve; (ai*'
B
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Avisos importantes 1) Sore as in!ormaç"es a#ui apresentadas e garantias de #ual#uer tipo: O a,tor acredita 7,e toda* a* i"or(a5?e* a7,i a3re*e"tada* e*t+o correta* e 3ode( *er ,tili;ada* 3ara 7,al7,er i( le&al' E"treta"to "+o e:i*te 7,al7,er &ara"tia e:3licita o, i(3l9cita de 7,e o ,*o de tai* i"or(a5?e* co"d,;irá ao re*,ltado de*e=ado'
$) Sore d%vidas relativas ao assunto A a7,i*i5+o de*te livro "+o i(3lica "o direito do leitor de o%ter ate"di(e"to 3e**oal *o%re d,vida* o, o,tro* 7,e*tio"a(e"to* reere"te* ao a**,"to %e( co(o *,3orte "o ,*o da* erra(e"ta* a3re*e"tada* a* 7,ai* *+o &rat,ita* o, ver*?e* de de(o"*tra5+o'
&) Sore os ar#uivos para do'nload #ue acompanha este livro O* ar7,ivo* 7,e aco(3a"2a( e*te (aterial tK( todo* o* e:e(3lo* =á di&itado* 3ara ,*o e (ai* al&,"* ar7,ivo* a,:iliare* co(o data%oo* de co(3o"e"te* (a",ai* de ,*o e"tre o,tro*' Todo* o* 3ro&ra(a* *+o &ráti* a3e"a* o co(3ilador C > ,(a ver*+o de(oH e 3ode( *er %ai:ado* da i"ter"et "o *ite de *e,* re*3ectivo* or"ecedore*' Para co3iá-lo* 3ara *e, co(3,tador e i"*talar o* 3ro&ra(a* ve=a o a"e:o I "o i"al de*te livro' Para (aiar o compilador acesse: http:**'''+ccsin!o+com
,etivo deste material Per(itir ao e*t,da"te a3re"der *o%re o ,"cio"a(e"to do* (icroco"troladore* PIC e( &eral da* a(9lia* 16F e 18F de or(a rá3ida e *i(3le*' Para tal ,*are(o* a li"&,a&e( C o 7,e red,; %a*ta"te o te(3o de a3re"di;ado e 3er(iti"do ácil tra"*i5+o 3ara o,tro* (odelo* de 3ic*'
.etodologia E*te (aterial de e*t,do e*ta dividido e( 8 ca39t,lo* 7,e o e*t,da"te deve aco(3a"2ar "a orde( 3ro3o*ta e ) a"e:o* a,:iliare* IH IIH IIIH IVH VH VIH
I"trod,5+o ao* (icroco"troladore* e li"&,a&e"* de 3ro&ra(a5+o A li"&,a&e( C %á*ica co( e:erc9cio* *i(3le* 3ara i:a5+o do* co"ceito* Pro&ra(a (9"i(o e( C 3ara co(3ila5+o e *i(,la5+o do* e:e(3lo* O a(%ie"te de de*e"volvi(e"to e *i(,la5+o M3la% e( C co( o* e:e(3lo* %á*ico* do* ca39t,lo* II e III A ar7,itet,ra do* Pic* e *e,* 3eri>rico* (ai* ,*,ai* A li"&,a&e( C i(3le(e"tada 3ela CCS 3ara o* 3ic* co( detal2e*
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
da* diere"5a* e"tre a* diver*a* a(9lia*' VIIH Ar7,ivo de dei"i5?e* do* (odelo* ,*ado* "o* e:e(3lo* 18FB8 16F8GG e 16F8GGA VIIIH E:e(3lo* 3rático* co( e*7,e(a* e 3ro&ra(a* 3ara e*t,do de al&,"* do* 3eri>rico* e*t,dado* e:e(3lo* %a*eado* "o 16F8GG 16F8GGA e 18FB8H
6
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Sore a aordagem utili/ada neste m0todo de estudo De*de 188 (i"i*tra"do o* (ai* diver*o* ti3o* de trei"a(e"to* 3o**o a**e&,rar 7,e a a%orda&e( tradicio"al ,*ada 3ela (aioria do* a,tore* &eral(e"te i"dicada 3or editora* o, (a",ai* de reda5+oH tra"*(ite o a**,"to (a* de or(a *e7e"cial ,( t3ico de cada ve;' No (>todo 7,e ,*o at,al(e"te "o* (e,* trei"a(e"to* 3,de co"*tatar 7,e *e tra"*(itir(o* o* t3ico* de or(a 3aralela i*to > *e or(o* a%orda"do ,(a 3arte de cada área ,( 3o,co 3or ve; o e*t,da"te vai a**i(ila"do (ai* acil(e"te 3oi* co"*e&,e Qe":er&ar 3a**o a 3a**o o i( do t"el' E( "o**o ca*o 3ode(o* dividir o trei"a(e"to e( vário* t3ico* A li"&,a&e( de 3ro&ra(a5+o C O 2ard$are do PIC O a(%ie"te de de*e"volvi(e"to E*7,e(a* el>trico* do* e:e(3lo* Para 3er(itir 7,e o e*t,da"te real(e"te a**i(ile o co"2eci(e"to tra"*(itido va(o* a%orda"do todo* o* t3ico* *i(,lta"ea(e"te 3er(iti"do ao al,"o ir 3ratica"do de*de o i"icio do trei"a(e"to *e( icar (,ito te(3o a3e"a* "a teoria' De*ta or(a ao i"v>* de tra"*(itir(o* o co"2eci(e"to 3ri(eiro a"ali*a"do *o(e"te o 2ard$are de3oi* o *ot$are de3oi* a* erra(e"ta* e *o(e"te ao i"al o* e:e(3lo* va(o* (e*cla"do cada ,( do* t3ico* ao* 3o,co* e o al,"o co( certe;a a**i(ilará (ai* acil(e"te' E*3ero 7,e o leitor a3recie e*te tra%al2o e te"2a o (el2or a3roveita(e"to 3o**9vel'
Vidal Site do a,tor
$$$'vidal'co('%r
G
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
ndice I - I"trod,5+o ao* (icroco"troladore* e li"&,a&e"* de 3ro&ra(a5+o ''''''''''''''''''''''''''''''' 1) O* (icroco"troladore*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''' 1) A li"&,a&e( C ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''' 1) M>todo de e*t,do'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1) ' II - A li"&,a&e( C %á*ica ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1B II'1 - I"icia5+o @ li"&,a&e( C'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1B ' II') - Al&,(a* re&ra* co(,"* 3ara a 3ro&ra(a5+o e( C''''''''''''''''''''''''''''''''''''''''''' 1B II'0 - Modelo %á*ico de ,( 3ro&ra(a e( C''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1B II'B - Co(e"tário* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''1 II' - Diretiva* de co(3ila5+o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 16 II'6 - I"dicador de i( de i"*tr,5+o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 16 II'G - Dei"i5+o de variávei* co"*ta"te* e ide"tiicadore* ''''''''''''''''''''''''''''''''''''''''''''' 1G II'G'1 – Si"ali;adore* de "(ero* "e&ativo* e 3o*itivo* ''''''''''''''''''''''''''''''''''''''''''''' 1G II'G') - Se7K"cia de declara5+o de variávei* e co"*ta"te* '''''''''''''''''''''''''''''''''''''''' 18 II'G'0 - Atri%,i"do valore* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 18 II'G'B – Atri%,i"do valore* i"iciai* "a declara5+o ''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 18 II'G' – IMPORTANTE ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''' 18 II'G'6 - Co(o e*crever o* "o(e* de variávei* co"*ta"te* e ,"5?e* ''''''''''''''''''''''''' 1 II'G'G – TU3ede - Redei"i"do ti3o* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1 II'8 - F,"5?e* e roti"a*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' )/ II'8'1 - F,"5?e* e*3ecial(e"te de*e"volvida* 3ara o* PIC* '''''''''''''''''''''''''''''''''''''' )/ II' - E:3re**?e* ",(>rica* e de *tri"& caractere*H '''''''''''''''''''''''''''''''''''''''''''''''''''' )1 II'1/ - O3eradore* l&ico* e arit(>tico* %á*ico* da li"&,a&e( C '''''''''''''''''''''''''''''''''' )1 II'1/'1 - Precede"cia o, 3rioridadeH de o3eradore* ''''''''''''''''''''''''''''''''''''''''''''''''' )0 II'1/') - Co"ver*+o de ti3o* tU3e ca*ti"&H''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' )0 II'11 - Matri;e* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ) II'11'1 - Matri;e* %idi(e"*io"ai* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')6 II'1) - Co"trole do 3ro&ra(a e( C'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' )6 II'1)'1 - .loco* de declara5?e*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' )6 II'1)') - .loco IF e:ec,ta *e a co"di5+o or verdadeiraH ''''''''''''''''''''''''''''''''''''''''''' )G II'1)'0 - .loco FOR e:ec,tar 3or ,( certo "(ero de ve;e*H '''''''''''''''''''''''''''''''''' 0/ II'1)'B - O co"dicio"al WILE e"7,a"toH'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 01 II'1)' - O co"dicio"al DO ' ' ' ' WILE a5a ''' e"7,a"toH ''''''''''''''''''''''''''''''''''''''' 00 II'1)'6 – O co(a"do .REAX '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''' 0B II'1)'G – O co(a"do CONTINYE ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 0B II'1)'8 - O co"dicio"al SITCW ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 0 II'1)' - O co(a"do RETYRN'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 06 II'10 - A%revia5?e* tei* 3ara i"*tr,5?e* arit(>tica*'''''''''''''''''''''''''''''''''''''''''''''''''''''' 0G II'10'1 - I"cre(e"to e Decre(e"to''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 0G II'10') - Co(%i"a"do a%revia5?e*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 08 II'10'0 – O3era5?e* co( re*,ltado "a (e*(a variável '''''''''''''''''''''''''''''''''''''''''''''''08 II'1B - Variávei* locai* variávei* &lo%ai* e 3arZ(etro* ''''''''''''''''''''''''''''''''''''''''''''''''''' 08 II'1B'1 - Variávei* Jlo%ai* ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 08 II'1B') - Variávei* Locai*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''' 08 II'1B'0 - Variávei* co(o 3arZ(etro*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 0 II'1 - A variável ti3o VOID e o* 3rotti3o* de ,"5?e* ''''''''''''''''''''''''''''''''''''''''''''''''' B/ II'1'1 - Protti3o* de ,"5?e* ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' B/ II'16 - E*tr,t,ra*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' B1 8
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II'1G - Y"io"*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''' B) II'18 - A ,"5+o MAIN H'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' B0 II'1 - E:e(3lo* de 3ro&ra(a* *i(3le* ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' B0 III - Pro&ra(a (9"i(o e( C''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' B6 IV - Y*a"do o M3la% G'6) e( C''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' / IV'1 - Co"ceito* %á*ico*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' / IV') - O QPro=eto "o M3La% ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' / IV'0 - Cria"do o 3ro=eto co( o Pro=ect i;ard''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1 IV'B - Si(,la"do o 3ro&ra(a ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 8 IV' – Veriica"do o re&i*tro PORTD d,ra"te a *i(,la5+o''''''''''''''''''''''''''''''''''''''''''''' 6/ V - O* Microco"troladore* PIC e *e,* 3eri>rico* (ai* ,*,ai* - Fa(9lia* 16F e 18F Teoria de ,"cio"a(e"to'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''' 60 V'1 - I"trod,5+o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''60 V') – Circ,ito (9"i(o ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6B V'0 – Me(ria de Pro&ra(a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6B V'B – Me(ria de dado* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6 V' – Me(ria EEPROM de dado* ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6 V'6 – Circ,ito de Re*et e Cloc ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 66 V'G – M,lti3lica5+o 8 %it* : 8 %it* 3or 2ard$are''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 66 V'8 – I"terr,35?e* ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''' 6G V'8'1 -Tra%al2a"do co( i"terr,35?e* de alta e %ai:a 3rioridade' ''''''''''''''''''''''''''''''' 68 V' – F,*9vei* de co"i&,ra5+o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 68 V'1/ – O 3ort A e *,a* ,"5?e* e*3eciai*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6 V'1/'1 – Al&,(a* ,"5?e* de ace**o ao 3ortA di&ital ''''''''''''''''''''''''''''''''''''''''''''''''' 6 V'11 – O 3ort . e *,a* ,"5?e* e*3eciai*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' G/ V'1) – O 3ort C e *,a* ,"5?e* e*3eciai* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' G/ V'10 – O* 3ort* D e E co( *,a* ,"5?e* e*3eciai*' ''''''''''''''''''''''''''''''''''''''''''''''''''''''' G1 V'1B – I"terr,35?e* e:ter"a* ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' G1 V'1 – Ti(er /'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' G) V'16 – Ti(er 1'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' G0 V'16'1 – F,"5?e* 3ara co"trole do ti(er 1'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' G0 V'1G – Ti(er )'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' G0 V'18 – Ti(er 0 - A3e"a* "a li"2a 18F''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' GB V'1 – O co"ver*or A
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
V'00 – Co(3arador a"al&ico li"2a 16F8G:A e 18FB8H '''''''''''''''''''''''''''''''''''''''''''''' 8 V'0B – I"terace* CAN YS. ETWERNET'''' - ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''' 86 VI - A li"&,a&e( C e o* PIC* ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 8G VI'1 - Diretiva* de co(3ila5+o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 8G VI'1'1 - [a*( [e"da*(''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 8G VI'1') - [ca*e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''8G VI'1'0 - [dei"e "o(e *e7K"cia ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 88 VI'1'B - [i"cl,de \ar7,ivo] ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''88 VI'1' - [,*e* o35?e*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''' 88 VI'1'6 - [ide [e"di''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 88 VI'1'G - [INT^[[[[ o"de [[[[ i"dica o "o(e da roti"a ''''''''''''''''''''''''''''''''''''''''' 8 VI'1'8 - [PrioritU – Prioridade* 3or *ot$are ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 8 VI'1' - [ROM'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' / VI'1'1/ - [,*e delaU cloc_ valor do cloc e( W;H'''''''''''''''''''''''''''''''''''''''''''''''''' / VI'1'11 - [,*e Fa*t^IO 3ort H'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''/ VI'1'1) - [,*e *ta"dard^IO 3ort H - Dea,lt ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' / VI'1'10 - [,*e r*)0) .AYD _ ta:a `MIT _ 3i"oT: RCV _ 3i"oR: .ITS _ " H '''''' 1 VI'1'1B - [%Ute "o(e _ e"dere5o do %Ute ''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''' 1 [%it "o(e _ e"dere5o do %Ute ' "(ero do %it ''''''''''''''''''''''''''''''''''' 1 VI') - F,"5?e* e*crita* 3ara o* PIC* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1 VI')'1 - F,"5?e* (ate(ática*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''') VI')') - F,"5?e* de (a"i3,la5+o de %it ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ) VI')'0 - F,"5?e* de te(3o ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 0 VI')'B - F,"5?e* 3ara i"terr,35?e* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 0 VI')' - F,"5?e* 3ara o ca"al Arico* e*t,dado* "o ca3 V '''''''''''''''''''''''''''' VIII'1 – I"trod,5+o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''' VIII') – Y*a"do di*3laU* de cri*tal li7,ido co(o a,:ilio de '''''''''''''''''''''''''''''''''''''''''''' VIII')'1 - O di*3laU LCD 16`)''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' VIII'0 – E:e(3lo* do Ca39t,lo II''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/1 VIII'B – E:e(3lo do* Ca39t,lo III '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/1 VIII' – E:e(3lo* 3rático* 3ara trei"a(e"to ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/1 VIII''1 – Y*a"do *a9da* di&itai*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/) VIII'') – Y*a"do e"trada* e *a9da* di&itai* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/0 VIII''0 – Y*a"do o co"ver*or de a"al&ico 3ara di&ital co( re*ol,5+o de 8 %it* ''''1/0 VIII''B – Di*3laU LCD 16:) co( i"terace de B %it* '''''''''''''''''''''''''''''''''''''''''''''''''' 1/ VIII'' - Y*a"do o co"ver*or de a"al&ico 3ara di&ital co( re*ol,5+o de 1/ %it* e vi*,ali;a5+o do* re*,ltado* "o LCD'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/ VIII''6 – Y*a"do a EEPro( de dado*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/6 VIII''G – Y*a"do o ti(er / e( 8 %it* co( cloc e:ter"o '''''''''''''''''''''''''''''''''''''''''''1/G VIII''8 – Y*a"do o ti(er 1 16 %it*H co( cloc i"ter"o ''''''''''''''''''''''''''''''''''''''''''''' 1/G VIII'' – Y*a"do a i"terr,35+o e:ter"a INT/ "o 3i"o R./ ''''''''''''''''''''''''''''''''''''''' 1/8 VIII''1/ – E"via"do ,( %Ute 3elo ca"al *erial'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/ VIII''11 – Rece%e"do ,( %Ute 3elo ca"al *erial ''''''''''''''''''''''''''''''''''''''''''''''''''''''' 11/ VIII''1) – Co(,"ica5+o *erial SPI 3or 2ard$are ''''''''''''''''''''''''''''''''''''''''''''''''''''' 111 1/
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
I - I"trod,5+o ao* (icroco"troladore* e li"&,a&e"* de 3ro&ra(a5+o O* (icroco"troladore* De*de (e, 3ri(eiro livro e( 1'88 ,tili;o o ter(o QMicroco(3,tador-de-,(-*-c2i3 3ara dei"ir o* (icroco"troladore*' A 3ri"ci3al caracter9*tica do (icroco"trolador e*ta e( re,"ir e( ,( * c2i3 todo* o* 3eri>rico* "ece**ário* 3ara o 3ro=eto e a%rica5+o de di*3o*itivo* eletr"ico* do* (ai* diver*o* ti3o* de*de *i(3le* *i"ali;adore* e l,;e* 3i*ca-3i*ca at> e7,i3a(e"to* (>dico* *oi*ticado*' Wo=e te(o* (icroco"troladore* de a3e"a* 6 3i"o* (i"*c,lo* ideai* 3ara i"cl,ir i"teli&K"cia e( di*3o*itivo* (ecZ"ico* e( &eral di*3o*itivo* (ecatr"ico*H e at> c2i3* co( a* (ai* de 8/ 3i"o* co( a* (ai* variada* ca3acidade* diver*o* ti3o* de i"terace* YS. Et2er"et CAN '''H co"ver*ore* a"al&icodi&itai* e"tre o,tro*' Para a *,a e(3reitada "e*te (,"do (aravil2o*o de 3ro=eto* co( (icroco"troladore* al&,"* 3r>re7,i*ito* *+o "ece**ário*
1' Co"2eci(e"to* de "9vel (>dio de eletr"ica a"al&ica e di&ital )' Facilidade de ,*o de co(3,tadore* da li"2a PC %a*eado* e( i"do$* 3ara edi5+o de te:to* e (a"i3,la5+o de ar7,ivo* 0' Prática de (o"ta&e"* eletr"ica* 3ara a 3arte e:3eri(e"tal B' No5?e* de 3ro&ra(a5+o e( 7,al7,er li"&,a&e( o, co"2eci(e"to* de l&ica de 3ro&ra(a5+o'
A li"&,a&e( C Ne*te trei"a(e"to ,tili;are(o* a li"&,a&e( C 3ara 3ro&ra(ar o* PIC* e "+o o a**e(%ler' A 3ri"ci3al va"ta&e( do ,*o da li"&,a&e( C e*ta "o ato de 7,e a cre*ce"te co(3le:idade do* (icroco"troladore* vai tor"a"do a 3ro&ra(a5+o e( a**e(%ler cada ve; (ai* di9cil diic,lta"do 3ara o 3ro=eti*ta a (,da"5a de (odelo* co(o 3or e:e(3lo a (i&ra5+o "a li"2a (icroc2i3 da li"2a 16F 3ara a li"2a 18F' Co( o co(3ilador C a* co"*ta"te* (,da"5a* de ar7,itet,ra i"ter"a do c2i3 da* i"*tr,5?e* e do* al&orit(o* de de*e"volvi(e"to de *ot$are 3a**a a *er (,ito (ai* *i(3le* 3oi* a reco(3ila5+o de cada roti"a o, ,"5+o e*3ecial 3or e:e(3lo a 3ro&ra(a5+o do* re&i*tro* i"ter"o* 3ara ,*o do co"ver*or a"al&ico-di&italH 7,e co( certe;a > diere"te "a* li"2a* 16F e 18F 3a**a a *er tra"*3are"te 3ara o de*e"volvedor' De*ta or(a ao i"v>* de co"*,(ir te(3o ree*creve"do roti"a* o, todo ,( 3ro&ra(a o 3ro=eti*ta a3e"a* vai revi*ar a* ,"5?e* do *e, 3ro&ra(a 3ara a=,*tar-*e ao* 3eri>rico* do "ovo (odelo dedica"do *e, te(3o a e*crever a* ,"5?e* %a*eada* e( l&ica e "+o 3erde"do-*e e( detal2e* de %it* e %a"co* de (e(ria'
M>todo de e*t,do Ne*te trei"a(e"to "+o va(o* e*t,dar "a or(a tradicio"al' Va(o* 3ri(eiro ver a li"&,a&e( C %á*ica *e( *e 3reoc,3ar co( *,a a3lica5+o "o* 3ic* a3e"a* a"ali*a"do o* detal2e* 3ara co(3ilar o* 3ro&ra(a* (9"i(o* a3re*e"tado*' E( *e&,ida vere(o* o a(%ie"te de de*e"volvi(e"to M3la% da Microc2i3 e o co(3ilador C da CCS ver*+o de(oH ",(a a3re*e"ta5+o &ráica de co(o *e ,*a a erra(e"ta' De3oi* e*t,dare(o* o* 3ri"ci3ai* 3eri>rico* da* a(9lia* 16F e 18F %a*eado* "o* (odelo* 16F8GG 1GF8GGA e 18FB8' A3* e*te e*t,do voltare(o* ao e*t,do da li"&,a&e( C a&ora =á detal2a"do o* co(a"do* de*e"volvido* 3ara o* PIC*' Ne*ta 3arte do trei"a(e"to dedicare(o* "o**o (aior te(3o 3oi* =á 3odere(o* e*t,dar e ,tili;ar *i(,lta"ea(e"te o 3ic o co(3ilador C o a(%ie"te M3la% e( co(3ila5+o e *o%ret,do e( *i(,la5+o'
1)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Tere(o* e"t+o vário* e:e(3lo* co(3leto* co( e*7,e(a e *ot$are detal2ado' Para e"ri7,ecer ai"da (ai* e*te tra%al2o te(o* ar7,ivo* 3ara do$"load co( todo* o* 3ro&ra(a* =á di&itado* e 3ro"to* 3ara *ere( e:ec,tado* co( a ver*+o de(o do co(3ilador PCW co( o M3la% e co( o *ot$are de &rava5+o IC-PROJ e o* e*7,e(a* i"divid,ai* de cada e:3eriK"cia e de ,( &ravador 3ara o* 3ic*'
10
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II - A li"&,a&e( C %á*ica II'1 - I"icia5+o @ li"&,a&e( C A 3ri"ci3al va"ta&e( de *e ,*ar li"&,a&e"* de alto "9vel "o "o**o ca*o a li"&,a&e( CH e*ta "a (e"or i"tera5+o do 3ro=eti*ta co( o 2ard$are "o 7,e di; re*3eito ao co"trole do (e*(o a=,*te de %a"co* de re&i*tradore* *e7K"cia* de i"iciali;a5+o etc'''H' Co(o e:e(3lo va(o* ver a *e7K"cia de e*crita "a EEPROM de dado* do 18FB8 e( a**e(%ler MOVL MOVF MOVL MOVF .CF .CF .SF .CF MOVL MOVF MOVL MOVF .SF .SF
223ADD42SS EEADR 223DA5A EEDATA EECON1 EEPJD EECON1 CFJS EECON1 REN INTCON JIE 2 EECON) /AA2 EECON) EECON1 R INTCON JIE
Y*e letra* (i"*c,la* e( todo o 3ro&ra(a reco(e"dadoH Toda* a* ,"5?e* e variávei* deve( *er declarada* Palavra* re*ervada* "+o 3ode( *er ,*ada* co(o ide"tiicadore* de variávei* e ,"5?e* Se(3re e*creva co(e"tário* e( *e,* 3ro&ra(a*
II'0 - Modelo %á*ico de ,( 3ro&ra(a e( C b,atro ele(e"to* e*t+o 3re*e"te* e( ,( 3ro&ra(a C Co(e"tário* Diretiva* de co(3ila5+o Dei"i5?e* de dado* .loco* co( i"*tr,5?e* e ,"5?e* Modelo %á*ico de*co"*idera"do *er ,( 3ro&ra(a 3ara 3ic*H
1B
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
#include <....>
Vidal Pereira da Silva r
(Diretivas de compilação)
// comentário ocupando uma linha / comentários entre !/ " e ! /" uma linha / int i $ % ; &loat 'empo;
podem ocupar mais de
(Variáveis de 8 bits) (Variável de ponto flutuante)
(oid main) * instruções do programa principal
, (oid dela-) * instruções da função (rotina) delay
,
II'B - Co(e"tário* Co(e"tário* *+o i"or(a5?e* 7,e vocK d,ra"te a e*crita do 3ro&ra(a o"te H vai i"*eri"do e 7,e 3er(ite( a vocK 3ro&ra(adorH e a o,tro* e"te"dere( o *i&"iicado do 7,e e*ta *e"do eito' %oa 3rática co(e"tar o (á:i(o 3o**9vel de li"2a* e at> (e*(o i"cl,ir &ra"de* %loco* de co(e"tário* e:3lica"do o 3or7,e do 7,e e*ta *e"do eito 3oi* a3* ,( certo te(3o "e( (e*(o o criador do 3ro&ra(a le(%rará de t,do o 7,e e*tava 3e"*a"do "o (o(e"to da e*crita' O co(3ilador i&"ora t,do 7,e e*tiver dei"ido co(o co(e"tário' H O 3ro&ra(a o"te e( C deve ter ter(i"a5+o Q 'C 3or e:e(3lo te*te'c
2istem dois tipos de comentários: •
Co(e"tário* 7,e oc,3a( a3e"a* 1 li"2a
E*te ti3o de co(e"tário > i"iciado co( d,a* %arra* co"=,"ta* ** Ne*te ca*o t,do 7,e e*tiver a3* a* d,a* %arra* *erá i&"orado 3elo co(3ilador at> o i"al da li"2a' E:e(3lo
x = x + 2;
<< *o(a ) @ variável :
1
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
•
Vidal Pereira da Silva r
Co(e"tário* co( (lti3la* li"2a*
E*te e*tilo de co(e"tário > i"iciado co( a *e7K"cia * 6 e i"ali;ado 3ela *e7K"cia 6 * ' Ne*te ca*o t,do 7,e e*tiver ENTRE e*ta* d,a* *e7K"cia* *erá i&"orado 3elo co(3ilador "+o i(3orta"do 7,a"ta* li"2a* e:i*ta e"tre o* doi* (arcadore*' ideal 3ara e:cl,ir te(3oraria(e"te trec2o* de cdi&o' E:e(3lo
x = x + 2; /
tempo++; a !"#$(%&);
/
x = ; No e:e(3lo aci(a a* li"2a* te(3o e a_SbRT)H *er+o i&"orada* "o (o(e"to da co(3ila5+o'
II' - Diretiva* de co(3ila5+o Jeral(e"te *+o i"*tr,5?e* 3ara o co(3ilador e e( al&,"* ca*o* devido a* "ece**idade* i(3licar+o "a i"cl,*+o de al&,"* trec2o* de cdi&o =á 3ro"to' A* diretiva* i"or(a( 3or e:e(3lo o 3roce**ador 3ara o 7,al o cdi&o deverá *er &erado o valor do cloc 7,e *erá ,*ado 3ela c3, etc'' A* diretiva* *e(3re co(e5a( co( 7 ' Y( %o( e:e(3lo > a diretiva 7,e i"cl,i "o 3roce**o de co(3ila5+o a* dei"i5?e* do c2i3' Por e:e(3lo
#include <01.3>
A ter(i"a5+o 'W i"dica ,( Weader File da li"&,a&e( C o, *e=a ,( ca%e5al2o'
II'6 - I"dicador de i( de i"*tr,5+o O co(3ilador C "+o > ,( co(3ilador de li"2a co(o o a**e(%ler' O co(3ilador C 3roc,ra o *i"al de 7,e a i"*tr,5+o o, o %loco de i"*tr,5?e* =á aca%o,' E*te *i"al > o Q Q 3o"to e vir&,laH 3ara ,(a i"*tr,5+o i*olada o, o f 3ara o %loco (ai* tarde alare(o* *o%re %loco* de i"*tr,5?e*H' No e:e(3lo a%ai:o a* d,a* (a"eira* *+o correta* 3oi* o > 7,e *i"ali;a o i( da i"*tr,5+o'
x = x + 2;
x= x + 2 ;
claro 7,e vocK vai ,*ar o e:e(3lo da e*7,erda 3oi* *e, cdi&o deve e*tar *e(3re %e( le&9vel'
16
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II'G - Dei"i5+o de variávei* co"*ta"te* e ide"tiicadore* Toda* a* variávei* e co"*ta"te* ,*ada* "o 3ro&ra(a deve( *er devida(e"te dei"ida* co( ,( "o(e e ,( ti3o' O (e*(o vale 3ara ide"tiicadore* de ,"5?e* e roti"a*' O* dado* %á*ico* 3ode( *er de 8 16 e 0) %it* de co(3ri(e"to e devido a* caracter9*tica* 3ec,liare* do* (icroco"troladore* variávei* de 1 %it ta(%>( 3ode( *er dei"ida*' E(%ora a* variávei* 3o**a( *er de*i&"ada* 3elo* "o(e* tradicio"ai* da li"&,a&e( C c2ar lo"& i"t '''H va(o* ,*ar o* "o(e* a%ai:o 3er(itido* 3elo co(3ilador da CCS 7,e *+o e7,ivale"te* e (,ito (ai* *i(3le* de e"te"der' Variávei*
Ide"tiicador
Fai:a
'
•
variável i"teira de 8 %it*
INT8
de / @ )
H
•
variável i"teira de 16 %it*
INT16
de / @ 6'0 H
•
variável i"teira de 0) %it*
INT0)
de / @ B')B'6G')6 H
•
variável de 3o"to l,t,a"te
FLOAT
- 1' E B a 0'B E 08H
•
variável de 1 %it
INT1
3ode a**,(ir / o, 1H
II'G'1 – Si"ali;adore* de "(ero* "e&ativo* e 3o*itivo* A* variávei* do ti3o INT8 INT16 e INT0) 3ode( o, "+o ter *i"al "e&ativo' Para &ara"tir 7,e a variável *e=a *e(3re 3o*itiva ,*a(o* unsigned a"te* da dei"i5+o da (e*(a' Ca*o *e=a "ece**ário tratar "(ero* "e&ativo* ,*are(o* signed '
unsi4ned int5 tempo; si4ned int5 espa8o;
E:'
// tempo irá de 6 5.7 // espa8o irá de 972.:5 6 72.:5:
Detal2e* i(3orta"te* •
O%*erve 7,e o i"dicativo signed di(i",i o alca"ce da variável 3ela (etade'
•
O co(3ilador da CCS ,*a co(o 3adr+o 7,a"do "+o i"dicado o ti3o 89S;92D'
•
•
Co( variávei* FLOAT "+o 3reci*a(o* ,*ar i"dicativo* de *i"al 3oi* o alca"ce =á vai de ,( valor "e&ativo ao 3o*itivo' Se de*e=ar &ara"tir total co(3ati%ilidade co( o,tro* co(3iladore* *e(3re ,*e o* 7,aliicadore* "a* dei"i5?e* da* variávei*'
1G
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II'G') - Se7K"cia de declara5+o de variávei* e co"*ta"te*
Tipo
Nome
unsi4ned
int
tempo;
// a (ariá(el !tempo" (ai de 6 2
o3cio"alH Um grupo de variáveis de mesmo tipo pode ser declarada na mesma linha.
II'G'0 - Atri%,i"do valore* A atri%,i5+o de valore* > eita 3elo *i"al de i&,aldade _ ' E:e(3lo
tempo = 27; // aui a (ariá(el tempo passa a ter o (alor 27 decimal.
II'G'B – Atri%,i"do valore* i"iciai* "a declara5+o Pode(o* ta(%>( i"dicar o valor i"icial da* variávei* "a declara5+o da* (e*(a*' De*ta or(a o co(3ilador =á colocará "o i"icio do 3ro&ra(a a* i"*tr,5?e* "ece**ária* 3ara alocar o* valore*' S,a 3ri"ci3al ,tilidade e*ta e( &ara"tir 7,e "+o va(o* e*7,ecer de i"iciali;ar o* valore*' E:e(3lo uint8
// declaramos e %á demos um (alor
velocidade'inicial ;
II'G' – IMPORTANTE
Devemos sempre austar os valores iniciais de cada variável do programa antes de usá-las= pois o valor no reset 0 9D2524.9AD,+
18
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II'G'6 - Co(o e*crever o* "o(e* de variávei* co"*ta"te* e ,"5?e* Todo la%el "o(e o, ide"tiicadorH *e=a de variável co"*ta"te o, ,"5+o •
•
•
•
Deve co(e5ar 3or letra o, 3or *,%li"2ado ^ Ter "o (á:i(o 0) caractere* N+o ,*ar caractere* e*3eciai* o, de co"trole g h j ''''H' No(e* de ,"5?e* e roti"a* i"ter"a* ta(%>( "+o 3ode( *er ,tili;ado*'
- E:e(3lo* de dei"i5?e* Correta*
I"correta*
'
Te*te te*te TESTE ^1)A :^)^
0local >>> começa com número ! 3artegdoi* k caractere inválido g H
IMPORTANTE E*te co(3ilador C i"icial(e"te NO diere"cia letra* (i"*c,la* de (ai*c,la*' No* e:e(3lo* aci(a Te*te te*te e TESTE *+o a (e*(a variável 3ara o co(3ilador'
DCA: 8se nomes de variáveis óvios e em portugu>s= assim não terá prolemas de incompatiilidade+ Por e:e(3lo
Int
(elocidade = ;
// (ariá(el %á iniciali?ada
Int72 tempo@de@resposta;
// esta (ariá(el de(era ser iniciali?ada no pro4rama
0loat distancia = .2;
II'G'G – TU3ede
-
Redei"i"do ti3o*
A declara5+o TmPEDEF > ,*ada 3ara dei"ir(o* "ovo* ti3o* %a*eado* e( o,tro* =á e:i*te"te* Va(o* ver atrav>* de ,( e:e(3lo *i(3le*
t-pede& si4ned int sint; Ne*te e:e(3lo va(o* a;er co( 7,e o co(3ilador Qe":er&,e o "ovo ti3o S95? co(o *e tiv>**e(o* di&itado S;92D 95? Pode(o* redei"ir 7,a"to* ti3o* 7,i*er(o* 3ara o (e*(o ti3o ori&i"al e 7,a"do cria(o* ,( "ovo ti3o co( TmPEDEF o ti3o ori&i"al co"ti",a vale"do' Ne*te e:e(3lo cria(o* doi* "ovo* ti3o* 7,e te( o (e*(o 3adr+o
II'8 - F,"5?e* e roti"a* C2a(a(o* ,"5+o ,( trec2o de 3ro&ra(a 7,e reali;a deter(i"ada o3era5+o ,"5+o 7,e lK teclado ,"5+o 7,e e*creve "o di*3laU '''H %e( co(o a* ,"5?e* 3r>-dei"ida* SbRT A.S ACOS '''H' M,ita* ve;e* a* 3alavra* Q,"5+o e Qroti"a* reere(-*e a (e*(a o3era5+o' No e:e(3lo a%ai:o te(o* a ,"5+o MAIN alare(o* dela de3oi*H 7,e > a roti"a e:ec,tada "o re*et do 3ro&ra(a' A ,"5+o MAIN c2a(a ,(a ROTINA 3ara ler tecla* e a roti"a de ler tecla* c2a(a ,(a FYNnO 3ara calc,lar o valor a%*ol,to da tecla'
No ca39t,lo VI reere"te ao co(3ilador da CCS vere(o* vária* ,"5?e* 7,e e:i*te( 3ara o* PIC* e co(o ,"cio"a('
)/
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II' - E:3re**?e* ",(>rica* e de *tri"& caractere*H Va(o* ver "e*te ite( o* ti3o* de e:3re**?e* 3er(itida* 3ara valore* ",(>rico* e 3ara a (a"i3,la5+o de caractere*' N(ero* Deci(ai*
N+o 3ode( co(e5ar 3or / ;eroH E:e(3lo*
N(ero* Octai* Po,co ,tili;ado*H
1)0 ) 1B0B 0'1B '''
Deve( co(e5ar 3or / ;eroH E:e(3lo*
N(ero* .i"ário*
/B /G'''
Deve( i"iciar 3or /% E:e(3lo
N(ero* We:adeci(ai*
/%1/1/1/1/
Deve( i"iciar 3or /: E:e(3lo
Stri"& de 1 caractere
/:0) /:A '''
E"tre A3*troo* E:e(3lo
Stri"& de vário* caractere*
; A ''''
E"tre a*3a* Q Q E:e(3lo
Qte*te de e*crita
II'1/ - O3eradore* l&ico* e arit(>tico* %á*ico* da li"&,a&e( C Te(o* a7,i o* 3ri"ci3ai* o3eradore* l&ico* e arit(>tico* da li"&,a&e( C O3eradore* arit(>tico* -
-
Adi5+o I"cre(e"to da variável i"dicada D > e7,ivale"te a D _ D 1H S,%tra5+o Decre(e"to da variável i"dicada `- - > e7,ivale"te a ` _ ` - 1H
M,lti3lica5+o
<
Divi*+o 3arte i"teira da divi*+o 3ara variávei* i"teira*H Se a variável de re*,ltado "+o or i"teira o o3erador Q < Q coloca "a (e*(a a3e"a* a 3arte i"teira do re*,ltado'
j
E:e(3lo x=/2; // x= 2 e o resto G descartado Re*to da divi*+o 7,a"do reali;a(o* divi*+o de i"teiro*H Se a variável de re*,ltado or i"teira o o3erador Q j Q coloca "a (e*(a a3e"a* o RESTO do re*,ltado'
)1
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática E:e(3lo H=2;
Vidal Pereira da Silva r
// H= e a parte inteira 2 G descartada
O3era5?e* 3ara co(3ara5+o l&ica \
Co(3arador l&ico Q(e"or 7,e
]
Co(3arador l&ico Q(aior 7,e
\_
Co(3arador l&ico Q(e"or o, i&,al 7,e
]_
Co(3arador l&ico Q(aior o, i&,al 7,e
g_
Co(3arador l&ico Qdiere"te de
__
Co(3arador l&ico Qi&,al a H
H Se ",(a co(3ara5+o ,*ar(o* _ o co(3ilador e(itirá ,( avi*o MAS ará a atri%,i5+o &era"do ,( 3ro&ra(a errado lo&ica(e"te' E:e(3lo correto
SE A __ ''''' << Veriica *e A > i&,al a
E:e(3lo errado
SE A _ '''''' << Pri(eiro a; A i&,al a e o << te*te aca%a da"do verdadeiro
O3era5?e* l&ica*
AND l&ico o, relacio"al toda* a* co"di5?e* verdadeira*H
pp
OR l&ico o, relacio"al ,(a da* co"di5?e* > verdadeiraH
g
NOT l&ico o, relacio"al vK *e a co"di5+o > TRYE o, FALSEH
O3era5?e* %i"ária* (ate(ática*H
AND %i"ário %it a %it "a* variávei*H
p
OR %i"ário %it a %it "a* variávei*H
k
`OR %i"ário %it a %it "a* variávei*H
q
NOT %i"ário i"verte o e*tado de cada %it da variávelH
mportante: 9ão con!undir operaç"es @;CAS com operaç"es (9B4AS num0ricas) E:e(3lo 3ara i"verter a variável ` e e*crever "o 3ort D
E = JE; Kutput@M = ) E *;
// operador NK' Linário // escre(e no portd M
E:e(3lo 3ara ;erar o %it 0 da variável `
E = E L;
// operador FNM Linário
))
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
O3era5?e* de de*loca(e"to %i"ário \\
"
De*loca o valor i"dicado " %it* 3ara a e*7,erda de*carta"do o* " %it* MAIS *i&"iicativo* e acre*ce"ta"do " ;ero* @ direta' E:e(3lo E = L
E = E << ; E = E << 2;
]]
// E = decimal // E = = 2 decimal // E = = decimal
"
De*loca o valor i"dicado " %it* 3ara a direita de*carta"do o* " %it* MENOS *i&"iicativo* e acre*ce"ta"do " ;ero* @ e*7,erda' E:e(3lo E = L
II'1/'1 - Precede"cia o, 3rioridadeH de o3eradore* Precede"cia reere-*e a Qorde( *e7,e"cial co( 7,e ,(a o3era5+o > e:ec,tada 3elo co(3ilador' Se ",(a i"*tr,5+o tiver(o*
E = a + L c; b,al *eria a 3ri(eira o3era5+o reali;ada Seria a *o(a de a e % Prioridade
O3era5+o
1 ) 0 B 6 G 8 1/ 11 1) 10
H - - q g - < j \\ ]] \ ] \_ ]_ __ g_ k p pp _ _ <_ j_ _ -_ \\_ ]]_ _ k_ p_
E( "o**o e:e(3lo a *e7,e"cia real *erá Pri(eiro 6 c &era"do ,( re*,ltado 3arcial 7,e c2a(are(o* de P De3oi* s_aP
)0
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II'1/') - Co"ver*+o de ti3o* tU3e ca*ti"&H M,ita* ve;e* ocorre de 3reci*ar(o* co3iar ,(a variável e( o,tra o, at> (e*(o reali;ar o3era5?e* arit(>tica* e"tre ela*' Ne*te* (o(e"to* te(o* de ter c,idado co( a* co"ver*?e* e"tre o* ti3o* de variávei* 3oi* o co(3ilador "+o vai avi*ar ca*o al&,( valor ve"2a a *er Qtr,"cado "a o3era5+o' A3e"a* 3ara *i(3liicar ,*are(o* o* "o(e* var8 e var16 3ara variávei* de 8 e 16 %it* e 3ara acilitar ,*are(o* valore* e( 2e:adeci(al' E:e(3lo 1 co3iar variável de 8 %it* 3ara ,(a de 16 %it* var8 _ /:1) var16 _ var8
<< re*,ltado _ /://1)
O co(3ilador a=,*to, a variável de 16 %it* co( ;ero* a e*7,erda' E:e(3lo ) co3iar variável de 16 %it* 3ara ,(a de 8 %it* Var16 _ /:1)0B Var8 _ var16
<< re*,ltado _ /:0B
A7,i o co(3ilador Q(ato, a 3arte alta /:1)H e ,*o, a3e"a* a 3arte %ai:a "a o3era5+o' DICA: Sempre que for usar tamanhos diferentes certifique-se de transformar todos para o mesmo tipo, pois os erros de cálculo decorrentes das converses automáticas s!o imprevis"veis e #$% s!o sinali&ados pelo compilador
Ao i"v>* de dei:ar o co(3ilador a;er a co"ver*+o 3ode(o* e*3eciicar o ti3o de co"ver*+o 7,e de*e=a(o* co( o *e&,i"te or(ato
tipo) valor E*te or(ato de e*crita > c2a(ado de TmPE CASTINJ' b,a"do e*creve(o* de*ta or(a te(o* ,(a co"ver*+o te(3orária e( (e(ria 3ara ,*o a3e"a* "a o3era5+o de*e=ada' Se (,lti3licar(o* d,a* variávei* de 8 %it* o re*,ltado *erá o,tra variável de 8 %it* (e*(o 7,e o re*,ltado *e=a direcio"ado 3ara ,(a variável de 16 %it* 3or7,e a arit(>tica > reali;ada ANTES do re*,ltado *er e*crito "a variável i"al'
int a = ; int L = ; int5 c = ; a = ; L = ; c = a L; Ne*te ca*o o re*,ltado *era 16' Ve=a(o* 1// 1// _ 1//// E( 2e:adeci(al te(o* ,( valor de 16 %it* i&,al a /:)G1/' Co(o o re*,ltado *erá de 8 %it* a3e"a* o %Ute i"al *erá a3roveitado re*,lta"do /:1/ 7,e e( deci(al da 16
)B
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Co(o re*olver co( o tU3e ca*ti"&
int a = ; int L = ; int5 c = ; a = ; L = ; c = )int5* a L;
// primeiro passa a (aria(el !a" para 5 Lits$ lo4o a // multiplica8o será em (ariá(eis de 5 Lits
E( "o**o 3ro&ra(a 3ode(o* a;er o *e&,i"te 7,al _ 1/ << a=,*ta(o* o 9"dice "o 11o ele(e"to dado* 7,alu _ B/ << e e*creve(o* "a (atri; "a 3o*i5+o << i"dicada "a variável
)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
.P,45A952:
1'
O 9"dice de ace**o a (atri; vai de / at> tamanho-1. No "o**o e:e(3lo irá de / @ 1'
)'
CYIDADOg Se vocK ,*ar co(o 9"dice da (atri; ,( ",(ero (aior 7,e o *e, li(ite o co(3ilador ,*ará ,(a 3o*i5+o de (e(ria RAM de o,tra variável' E:e(3lo
II'11'1 - Matri;e* %idi(e"*io"ai* Pode(o* ai"da ,*ar (atri;e* %idi(e"*io"ai* o, *e=a co(o e( ,( ta%,leiro de :adre;' E:e(3lo i"t16 ta%ela 1/u1/u Ne*te e:e(3lo cria(o* ,(a (atri; co( 1// ele(e"to* 1/ ` 1/H de 16 %it* o, *e=a ,*a(o* )// 3o*i5?e* de (e(ria de dado*'
II'1) - Co"trole do 3ro&ra(a e( C Y( do* 3o"to* (ai* i(3orta"te* do a3re"di;ado da li"&,a&e( C e*ta "a *,a *i"ta:e i*to > co(o o 3ro&ra(a deve *er e*crito' At> a&ora vi(o* a3e"a* teoria* *o%re variávei* dado* e ,"5?e*' Vere(o* a 3artir de a&ora co(o t,do i*to > i"te&rado de or(a a 3rod,;ir ,( re*,ltado til' Para tal va(o* e*t,dar a* e*tr,t,ra* de (o"ta&e( de 3ro&ra(a* e ver co(o *e co"trola o l,:o de Qa5?e* 7,e o 3ro&ra(a deve to(ar' Para acilitar o a3re"di;ado "+o va(o* "o* 3reoc,3ar a&ora co( o PIC e "e( co( a* ,"5?e* criada* 3ara o (e*(o (a* a3e"a* co( a or(a co(o e*creve(o* o 3ro&ra(a e( C'
II'1)'1 - .loco* de declara5?e* Se(3re 7,e (ai* de ,(a i"*tr,5+o tiver de *er e:ec,tada 3ara ,(a certa roti"a a* (e*(a* dever+o e*tar co"tida* de"tro de ,( BLOCO de declara5?e*' Y( %loco de declara5?e* te( i"9cio co( a a%ert,ra de ,(a c2ave e > i"ali;ado 3elo ec2a(e"to da c2ave f ' Co(o ,( %loco "+o ter(i"a "o i( da li"2a (a* *i( ao ec2ar a c2ave 3ode(o* e*crever o (e*(o de or(a (ai* clara coloca"do *e,* ele(e"to* e( vária* li"2a* e ta%,la"do a* col,"a* co"or(e o* %loco* v+o *e i"te&ra"do 3er(iti"do (el2or coloca5+o de co(e"tário* e vi*,ali;a5+o do 3ro&ra(a'
)6
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
E:e(3lo 1
x = ; tempo = x 2; ,
E:e(3lo )
x = ; tempo = x 2;
Vidal Pereira da Silva r
// posso colocar um // comentário para cada // linha
,
O* doi* e:e(3lo* aci(a reali;a( a (e*(a tarea (a* o e:e(3lo ) > (ai* ácil de *er lido e 3o*terior(e"te e"te"dido'
+1$+1+1 G 8tili/ação de !luogramas para representar a se#H>ncia das instruç"es Va(o* *e(3re 7,e 3o**9vel ,tili;ar l,:o&ra(a* *i(3le* 3ara a,:iliar "o**o e"te"di(e"to do l,:o do 3ro&ra(a' E( "o**o* l,:o&ra(a* te(o* o* de*e"2o* %á*ico*
Te*te OX
Te*te* 3ara to(ada* de deci*?e*
.loco de ,"5?e*
.loco de li"2a* de cdi&o 7,e 3ode( *er ,*ada* e( vária* *it,a5?e* Seta* i"dicativa* de deci*+o o, de *e7K"cia do 3ro&ra(a
II'1)') - .loco IF e:ec,ta *e a co"di5+o or verdadeiraH Pode(o* e"te"der o %loco IF co(o ,( te*te *i(3le* o"de o 3ro&ra(a ará ,( te*te e e( ,"5+o da re*3o*ta ao (e*(o al*o o, verdadeiroH e:ec,tará ,(a o, o,tra a5+o 3ro**e&,i"do a 3artir dai' Te(o* d,a* o35?e* %á*ica* *e"do 7,e a co"di5+o de te*te deverá e*tar e"tre 3arK"te*e*
-
SE te*te _ ogH Qeecta e"ta#"$ declaraç%o#&e"$
*i(3le* co( a3e"a* ,(a declara5+o ca*o o te*te *e=a verdadeiro
i A __ / H A _ 1/ IF
<< SE a variável A e*tiver ;erada atri%,i 1/ @ (e*(a'
co( (ai* de ,(a declara5+o ca*o o te*te *e=a verdadeiro' Ne*te ca*o o &r,3o de declara5?e* deverá e*tar ",( .LOCO e"tre c2ave* f '
)G
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
i te(3o ] 1/ H te(3o _ / co"tador _ co"tador 1 f IF
co( e:ce5+o *e o te*te al2a e:ec,ta o,tra declara5+o o, %locoH' Pode "a e:ce5+o e:ec,tar ,(a i"*tr,5+o a3e"a* o, ,( %loco' i te*te o H declaraç%o individal o 'loco el*e declaraç%o individal o 'loco da eceç%o
I(3orta"te A i"*tr,5+o declara5+oH *i(3le* "+o 3reci*a e*tar "a (e*(a li"2a do IF o, do ELSE' Ver ite( II'11')'1 "o* e:e(3lo* de IF* a"i"2ado*H' 'lu(ograma gen)rico para o controle I':
te*te a reali;arH +rpo de in"trç&e" para te"te (O)*
f
)8
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
el*e in"trç%o para te"te (N,O O)*
i
te*te a reali;arH in"trç%o para te"te (O)* el*e +rpo de in"trç&e" para te"te (N,O O)* f
i
te*te a reali;arH +rpo de in"trç&e" para te"te (O)*
f el*e +rpo de in"trç&e" para te"te (N,O O)*
f
+1$+$+1 - IJs aninhados emutidos um no outro) C2a(a(o* a e*tr,t,ra de QIF* a"i"2ado* 7,a"do a i"*tr,5+o a *er e:ec,tada 3ara ,( te*te *e=a verdadeiro o, al*oH > "a verdade o,tro IF' Va(o* ver doi* e:e(3lo* 7,e a=,dar+o a e*clarecer o a**,"to'
2emplo 1
O%*erve o* doi* trec2o* de 3ro&ra(a a *e&,ir
i& ) E * i& )H* a = a 2; else a = a 1;
O O O O O O O
i& ) E * i& )H* a = a 2; , else a=a1
No trec2o da e*7,erda o el*e reere-*e ao i! K) 3oi* e*ta Q(ai* 3r:i(o de*te' So(e"te *e o* i* `H e mH re*,ltare( al*o* > 7,e a li"2a a _ a B *erá e:ec,tada' Se o i `H re*,ltar al"o "e"2,(a o3era5+o *erá reali;ada' No trec2o da direita o el*e reere-*e ao i! L)= 3oi* o i mH e*ta de"tro de ,( %loco "+o *e"do vi*9vel 3ara o el*e' Se o i `H re*,ltar verdadeiro (a* o imH re*,ltar al"o "e"2,(a o3era5+o *erá reali;ada'
)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
2emplo $
Vidal Pereira da Silva r
Vário* IF* *e7e"ciai*
i& ) posi8o == * peso = ;
// PQ se posi8o = . // R . 0a? peso = .
else
i& )posi8o == 2* peso = 2;
// No G . PQ se posi8o= 2. // R 2. 0a? peso = 2.
else i& )posi8o == 7* peso = 1;
// No G 2. PQ se posi8o = 7. // R 7. 0a? peso = 1.
else i& )posi8o == 1* peso = ;
// No G 7. PQ se posi8o = 1. // R 1. 0a? peso = .
else peso = ;
// No G 1. 0a? peso = .
II'1)'0 - .loco FOR e:ec,tar 3or ,( certo "(ero de ve;e*H
A id>ia do %loco FOR > e:ec,tar ,(a i"*tr,5+o o, ,( %loco de i"*tr,5?e* re3etida(e"te 3or ,( "(ero de ve;e* deter(i"ado 3ela c2a(ado do loo3'
S,a *i"ta:e > a *e&,i"te or inicializaç%o M condiç%o de te"te M a"te o incremento H i"*tr,5+o M o or inicializaç%o M condiç%o de te"te M a"te o incremento H &r,3o de i"*tr,5?e* H f
'lu(ograma gen)rico para o controle '%*:
I"iciali;a5+o
Te*te OX
Se o te*te or al*o *ai do loo3' N+o
Si(
.loco 3ara te*te OX A=,*te o, i"cre(e"to Co"ti",a o 3ro&ra(a
0/
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
E:e(3lo 1 Para (el2or e"te"di(e"to ve=a(o* ,( e:e(3lo de ,( loo3 7,e co"ta de 1 a 1// e e*creve e*te valor ",(a variável c2a(ada CONTADOR'
&or ) i = ; i < ; i++ * CKN'FMKS = i; /erc0cio propo"to a5a ",(a ol2a de 3a3el a *i(,la5+o do FOR aci(a 3ara ver *e e"te"de, o co"ceito
E:e(3lo ) Se de*e=ar(o* e*crever "a variável co"tador e ai"da *o(ar e*te* "(ero* 3ode(o* ,*ar o *e&,i"te 3ro&ra(a
// declarei contador como (ariá(el de Lits // declarei a (ariá(el soma como 5 Lits. / a (ariá(el ue G usada no loop tamLGm precisa ser declarada. Neste caso$ L-te G su&iciente / // &a8o soma = para iniciali?ar a (ariá(el // i (ai de 6 // escre(e ! i ! em contador // a soma anterior G somada a ! i !
+1$+&+1 - @oop in!inito com I,4 Pode(o* criar ,( loo3 i"i"ito co( a declara5+o
!or M M ) Jr,3o de i"*tr,5?e* 7,e *er+o e:ec,tada* i"dei"ida(e"te f Le(%re-*e 7,e o 3ro&ra(a de ,( (icroco"trolador "+o te( i( *e(3re e*ta roda"do' Jeral(e"te "o**o 3ro&ra(a *e(3re terá ao (e"o* 1 loo3 i"i"ito'
01
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II'1)'B - O co"dicio"al WILE e"7,a"toH O WILE e:ec,ta a i"*tr,5+o o, o %loco de i"*tr,5?e* Qe"7,a"to a co"di5+o de te*te or verdadeira'
NSe logo no inicio do teste a condição resultar O!alsaO= nada será eecutado+ Si"ta:e
$2ile te*te H in"trç%o para te"te verdadeiro o
$2ile te*te H &r,3o de i"*tr,5?e* 3ara te*te verdadeiroH f
'lu(ograma gen)rico para o controle +I:
Se o te*te or al*o *ai do loo3' Te*te OX
N+o
Si(
.loco 3ara te*te OX
Co"ti",a'''
Va(o* 3roceder "ova(e"te a *o(a do* "(ero* de 1 a 1// co(o "o e:e(3lo a"terior'
i = ; soma = ;
// nunca esuecer de iniciali?ar // todas as (ariá(eis do pro4rama.
Thile ) i < * soma = soma + i; i++;
// &a8a enuanto i < / como o U3IV apenas &a? o teste de(o incrementar a (ariá(el /
,
0)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
+1$+E+1 - @oop in!inito com QR@2 $2ile 1 H << o, 3ode(o* e*crever $2ile tr,eH declara5?e* e:ec,tada* eter"a(e"te H f A co"di5+o %oolea"a Q1 *e(3re *erá verdadeira 1 _ tr,eH lo&o o %loco do $2ile *erá e:ec,tado eter"a(e"te MAS aco"*el2a-*e ,*ar o FORH 3ara evitar 7,e o co(3ilador e(ita ,( avi*o *o%re o ato da co"di5+o *e(3re re*,ltar verdadeira'
II'1)' - O co"dicio"al DO ' ' ' ' WILE a5a ''' e"7,a"toH O co"dicio"al DO ' ' ' ' WILE ,"cio"a de or(a *e(el2a"te ao WILE e:ceto 3elo *e&,i"te ato /pelo menos uma ve& a instru0!o ou o 1loco ser!o e(ecutados2 +
S,a *i"ta:e >
do in"trç%o para te"te verdadeiro $2ile te*te H M o
do
&r,3o de i"*tr,5?e* 3ara te*te verdadeiroH
f $2ile te*te H M A i"*tr,5+o o, o %locoH > e:ec,tada Q3elo (e"o* ,(a ve; 3or7,e "e*te or(ato o te*te de"tro do 2ile *erá reali;ado APwS a e:ec,5+o do %loco e"7,a"to 7,e "o %loco 2ile co(,( o te*te > e:ec,tado ANTES' 'lu(ograma gen)rico para o controle D%...+I:
.loco de declaracoe*
Si(
Te*te OX N+o Co"ti",a'''
00
Se o te*te or al*o *ai do loo3 a3* e:ec,tar 1 ve; o %loco'
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II'1)'6 – O co(a"do .REAX O co(a"do .REAX 3er(ite a *aida de 7,al7,er loo3' Ao e"co"trar o %rea o 3ro&ra(a 3,la 3ara a i"*tr,5+o lo&o a3* o loo3' E:e(3lo
i& ) i == * // se !i" &or $ sai do loop Lrea; , //>>>>>>>>>>>>>>>>>>>>>>>> este ponto G o &inal do loop
E*te 3ro&ra(a vai *o(a"do ) @ variável *o(a at> 7,e i *e=a i&,al a i"de3e"de"te do loo3 ir ate /' Ne*te ca*o o valor i"al da *o(a *erá 1/' E*t,de o e:e(3lo 7,e e*ta "a 3a*ta rea "o ar7,ivo 3ara do$"load "o li" 2tt3<<$$$'"e$to"c%ra&a'co('%r
II'1)'G – O co(a"do CONTINYE O co(a"do .REAX vi*to a"terior(e"te 3er(ite a Q*a9da do loo3 a 7,al7,er (o(e"to e"cerra"do *,a e:ec,5+o' á o co(a"do CONTINYE ,"cio"a de or(a *i(ilar (a* *e( *air do loo3 a3e"a* 3,la"do 3ara o 3r:i(o valor do (e*(o' Ao e"co"trar o co(a"do CONTINYE o 3ro&ra(a Q3,la toda* a* i"*tr,5?e* e"tre o CONTINYE e o 3o"to o"de a; a at,ali;a5+o do loo3 E:e(3lo
// (ai para o &inal do loop$ WF no sai$ apenas // a%usta o contador do mesmo soma = soma + i; // so &a? a soma se !i" &or menor ue 5 , //>>>>>>>>>>>>>>>>>>>>>>>> este ponto G o &inal do loop
,
0B
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
E*t,de o e:e(3lo 7,e e*ta "a 3a*ta continue "o ar7,ivo 3ara do$"load "o li" 2tt3<<$$$'"e$to"c%ra&a'co('%r
II'1)'8 - O co"dicio"al SITCW O SITCW te*ta a variável e co"or(e *e, valor Q3,la i*to > reali;a ,( de*vioH direta(e"te 3ara o &r,3o de i"*tr,5?e* co"or(e a clá,*,la CASE' Ca*o "e"2,(a da* co"di5?e* 3revi*ta* "o* vário* CASE *e=a( *ati*eita* e:ec,ta o %loco DEFAYLT *e 2o,ver o dealt "+o > o%ri&atrioH'
'lu(ograma gen)rico para o controle S+I3C:
Te*te da variável 3ara cada re*,ltado 2á ,( ca*eH Ca*e 1
Ca*e )
Ca*e 0
Ca*e B
'''''''
Dea,l t
Me*(o 7,e a3e"a* ,(a i"*tr,5+o *e=a ,*ada 3ara ,( certo CASE deve(o* i"cl,ir a i"*tr,5+o (42AT 7,e a; co( 7,e o 3ro&ra(a vá i(ediata(e"te 3ara o i( do SITCW co"ti",a"do a 3artir da9 ver ite( II'1)'6 aci(aH' Ca*o o .REAX "+o *e=a colocado o 3ro&ra(a co"ti",ará 3elo CASE lo&o a%ai:o do 7,e oi c2a(ado o, "o DEFAYLTH re*,lta"do e( erro de *e7K"cia l&ica' Se, or(ato &eral > *$itc2 variável H ca*e con"tante1 i"*tr,5+o o, &r,3o de i"*tr,5?e* H %rea ca*e con"tante2 i"*tr,5+o o, &r,3o de i"*tr,5?e* H %rea
+ + + dea,lt i"*tr,5+o o, &r,3o de i"*tr,5?e* 3ara al*o &eral H %rea f
0
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Va(o* ver ,( e:e(3lo 7,e a; o (e*(o 7,e o IF a"i"2ado 7,e vi(o* a"terior(e"te'
sTitch ) posi8o * case X peso = ; Lrea; case 2X peso = 2; Lrea; case 7X peso = 1; Lrea; case 1X peso = ; Lrea; de&aultX
// CFK posi8o = .... // sai do CFV.
// CFK posi8o NYK se%a $ 2$ 7 // ou 1$ executa este Lloco
sTitch ) posi8o * case X peso = ; Lrea; case 2X peso = 2; Lrea; case 7X peso = 1; Lrea; case 1X peso = ; Lrea; de&aultX peso = ; Lrea; ,
// CFK peso=$ .... // CFK peso=2$ ....
II'1)' - O co(a"do RETYRN O co(a"do RETYRN e"cerra i(ediata(e"te a e:ec,5+o da ,"5+o e e:ec,ta ,( retor"o 3ara a ,"5+o de c2a(ada' o (e*(o 7,e e"co"trar o i( da ,"5+o (a* de or(a 3ro3o*ital' O co(a"do RETYRN 3er(ite ai"da i"dicar ,( valor 3ara *er devolvido 3ara a ,"5+o de c2a(ada' Se "e"2,( valor or i"dicado e a ,"5+o de c2a(ada e*tiver e*3era"do ,( retor"o o valor rece%ido *erá i"dei"ido' E:e(3lo C2a(a(o* a ,"5+o do%rar e"via"do ,( valor e a (e*(a RETORNA o re*,ltado
int int
i; doLro = ;
int doLrar )int (alor*
// receLe um (alor e de(ol(e o doLro
06
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
return (alor+(alor;
, (oid main )(oid* &or) i= ; i< ; i++ * // i (ai de a doLro = doLrar ) i *; , , IMPORTANTE 1H Vere(o* adia"te 7,e todo 3ro&ra(a deve ter a ,"5+o MAIN H' S 3ara co"*tar "o re*et o 3roce**ador *erá de*viado *e(3re 3ara a ,"5+o MAIN H' )H No ite( II'1B'0 va(o* detal2ar a id>ia de 3a**ar valore* e"tre a* ,"5?e* E*t,de o e:e(3lo 7,e e*ta "a 3a*ta return "o ar7,ivo 3ara do$"load "o li" 2tt3<<$$$'"e$to"c%ra&a'co('%r
II'10 - A%revia5?e* tei* 3ara i"*tr,5?e* arit(>tica* II'10'1 - I"cre(e"to e Decre(e"to D,a* dela* ora( (o*trada* "o ite( II'8 O3eradore* l&ico* e arit(>tico* %á*ico* da li"&,a&e( CH a *a%er
I"cre(e"to da variável i"dicada
O o3erador acilita a e*crita de i"*tr,5?e* 3ara o i"cre(e"to de variávei*' Ao i"v>* de e*crever 3ode(o* e*crever ver ite( I'1)') a *e&,irH
- -
te(3o _ te(3o 1 te(3o o te(3o
Decre(e"to da variável i"dicada
O o3erador - - acilita a e*crita de i"*tr,5?e* 3ara o decre(e"to de variávei*' Ao i"v>* de e*crever
te(3o _ te(3o - 1
3ode(o* e*crever
te(3o- - o - -te(3o
0G
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
II'10') - Co(%i"a"do a%revia5?e* Pode(o* co(%i"ar ",(a "ica li"2a a%revia5?e* e atri%,i5?e* de or(a a acilitar a e*crita do 3ro&ra(a' 3mportante4 co","dire('
Co(o o e*ta ANTES do ` 3ri(eiro o ` *erá i"cre(e"tado 3ara de3oi* m rece%er o valor' Altera"do a 3o*i5+o do i"cre(e"to tere(o* m _ `
m _ ` ` _ ` 1
Co(o o e*ta DEPOIS do ` 3ri(eiro o valor de ` *erá co3iado 3ara m e de3oi* i"cre(e"tado'
E*t,de o e:e(3lo 7,e e*ta "a 3a*ta areviaç"es "o ar7,ivo 3ara do$"load "o li" 2tt3<<$$$'"e$to"c%ra&a'co('%r
II'10'0 – O3era5?e* co( re*,ltado "a (e*(a variável Se(3re 7,e ,tili;ar(o* "o re*,ltado a (e*(a variável 3ode(o* a%reviar a o3era5+o o 7,e red,; o tra%al2o de di&ita5+o' 3n"trç%o normal
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
O podemo" chamar de orma mai" ele+ante4
E = ]uadrado)*;
... int5 ]uadrado)int 3* ,
return)3 3*;
// chama a &un8o \uadrado\ en(iando // como par^metro o n[mero dese%ado // e o resultado será automaticamente // arma?enado na (ariá(el usada na // chamada$ E // crio uma (ariá(el local para receLer o // par^metro // retorna uma (ariá(el \int5\
II'1 - A variável ti3o VOID e o* 3rotti3o* de ,"5?e* E:i*te ,( ti3o de variável e*3ecial c2a(ada VOID' Se, *i&"iicado *eria (ai* o, (e"o* do ti3o VAsIO e "+o oc,3a e*3a5o de (e(ria' ,*ada 3ri"ci3al(e"te "a c2a(ada de roti"a* o, "o retor"o da* (e*(a* 3ara i"dicar 7,e "e"2,( valor oi Qe"viado o, *erá Qretor"ado 3ela ,"5+o' Para (el2or e"te"di(e"to ve=a(o* ,(a roti"a 7,e "+o 3reci*a de 3arZ(etro* e "ada retor"a
e'eclas) *; . (oid e'eclas) * . ,
// chama a rotina sem en(iar nada // este (oid indica ue a rotina no // en(ia par^metros de (olta
II'1'1 - Protti3o* de ,"5?e* O* 3rotti3o* de ,"5?e* i"dica( ao co(3ilador - 7,al o ti3o de variável a ,"5+o retor"a - 7,a"ta* e ta(%>( 7,ai* o* ti3o* da* variávei* a ,"5+o rece%e (ai* co"2ecida* 3or 3arZ(etro* o, ar&,(e"to*H Ca*o d,ra"te a c2a(ada da ,"5+o o 3ro&ra(ador e*creva (ai* o, (e"o* ar&,(e"to* o, erre o ti3o declaro, i"t e (a"da loatH o co(3ilador *i"ali;a o erro a=,da"do "o de*e"volvi(e"to do 3ro&ra(a O,tra acilidade e*ta "a locali;a5+o da ,"5+o' Ve=a(o* Por 3adr+o d,ra"te o 3roce**o de co(3ila5+o o co(3ilador C *e(3re %,*ca a* ,"5?e* acima do 3o"to o"de *+o c2a(ada*' Para evitar erro* de co(3ila5+o co(o 3or e:e(3lo o co(3ilador "+o e"co"trar ,(a roti"a 3or7,e a (e*(a e*ta a%ai:o do 3o"to de c2a(ada OY e( o,tro ar7,ivo co(o ,(a %i%liotecaH 3ode(o* avi*ar o co(3ilador da e:i*tK"cia da* roti"a* ,*a"do o co"ceito de 3rotti3o' E*ta declara5+o da roti"a eita a3e"a* co( *e, "o(e *e( *,a* i"*tr,5?e* e i"ali;ada 3elo Q M Q > co"2ecida 3or protótipo+
B/
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
E:e(3lo*
(oid e'eclas )(oid*;
// Vste prot_tipo indica ue a rotina e'eclas no // receLe par^metros e tamLGm no retorna // (alores.
(oid 'empo )int ---*;
// Vste prot_tipo indica ue a rotina 'empo // receLerá um (alor do tipo int$ ue receLerá o // nome de --- para seu uso$ mas no retornará // nada.
II'16 - E*tr,t,ra* Y(a e*tr,t,ra > ,( a&r,3a(e"to de variávei* or(a"do ,(a "ova variável (ai* co(3le:a 7,e da ao 3ro&ra(ador (ai* le:i%ilidade "a (a"i3,la5+o de dado*' Pode(o* re*,(ir 7,e ,(a e*tr,t,ra > ,( co"=,"to de variávei* de vário* ta(a"2o* 7,e *+o a&r,3ada* e( ,(a (atri; (a* c,=o* ele(e"to* *+o c2a(ado* 3elo* *e,* "o(e* (ai* o "o(e da (atri;' Ve=a(o* ,( e:e(3lo 7,e vai e*clarecer t,do I(a&i"e 7,e vocK 7,er criar ,( co"=,"to de dado* 3ara *alvar o* *e&,i"te* ele(e"to* relativo* a 0 veic,lo* - velocidade - di*tZ"cia - te(3o VocK 3oderia criar a**i(
Y(a (a"eira (ai* ele&a"te e ácil de *er vi*,ali;ada > 3ela ,tili;a5+o de ,(a e*tr,t,ra o"de a&r,3are(o* o* ti3o* %á*ico* do* dado* e( ,( co"=,"to co( ,( "o(e &e">rico ,*ado a3e"a* 3ara reere"ciar ao co(3ilador o ti3o de dado* e 7,e c2a(are(o* de Qveic,lo'
struct
,;
Mados`erais
// nome 4enGrico da estrutura
int (elocidade; int5 distancia; int72 tempo;
struct Mados`erais
(eiculo$(eiculo2$(eiculo7; // nome das (ariá(eis ue contero os dados da estrutura
Para ,*ar a* variávei* "+o 3reci*are(o* (ai* ,*ar o* "o(e* i"divid,ai* (a* *i( o "o(e do co"=,"to o 3o"to deci(al o "o(e da variável' Por e:e(3lo 3ara e*crever 1/ "a variável velocidade do veic,lo ) ,*are(o* a *e&,i"te "ota5+o
B1
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
veiculo5.velocidade 6 789
Ne*te ca*o a variável velocidade Qe*crita de or(a i"divid,al "+o *erá reco"2ecida 3elo co(3ilador' velocidade 6 789
** 244, D2 C,.P@AUV,
A&ora i(a&i"e 7,e vocK 7,er a;er i*to 3ara 1// ve9c,lo*' Ao i"v>* de criar ,(a e*tr,t,ra e colocar "ela1// variávei* o, *e=a
e a velocidade do ve9c,lo 10 3ode *er *alva da *e&,i"te or(a veiculo 7;< . velocidade 6 7889
Pode(o* ver "e*te* e:e(3lo* 7,e e*tr,t,ra* e (atri;e* "o* d+o ,(a e"or(e le:i%ilidade "a (a"i3,la5+o de variávei* co(3le:a* e ai"da tor"a o 3ro&ra(a (ai* le&ivel 3ara o ,*,ário' E*t,de o e:e(3lo 7,e e*ta "a 3a*ta estruturas "o ar7,ivo 3ara do$"load "o li" 2tt3<<$$$'"e$to"c%ra&a'co('%r
II'1G - Y"io"* E(%ora a declara5+o de ,(a YNION *e=a *i(ilar a declara5+o de e*tr,t,ra* a YNION te( co(o caracteri*tica 3ri"ci3al o ato de 7,e toda* a* variávei* da (e*(a QCOMPARTILWAM a (e*(a área de (e(ria' "a e*tr,t,ra a* variávei* *+o *e7e"ciai* e i"de3e"de"te*H' Ve=a(o* ,( e:e(3lo 7,e vai e*clarecerá t,do' I(a&i"a 7,e vocK te( ,(a variável loat 3o"to l,t,a"te 7,e oc,3a B %Ute* de ra(H e de*e=a *alvala "a ee3ro( de dado*' Co( o e:e(3lo da YNION va(o* (o*trar co(o a;er i**o acil(e"te' Pri(eiro va(o* criar ,(a ,"io" 7,e vai co(3artil2ar a variável loat co( ,(a (atri; de B %Ute*
B)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
union pacote &loat Palor72; int L-tesb1; ,; union pacote
Vidal Pereira da Silva r
// nome 4enGrico da union // (ariá(el &loat de 72 Lits // matri? para aLri4ar os 1 L-tes do &loat
dado;
// dado G a (ariá(el ue ANV os dados
.apa de memória ocupada pela union:
loat Variável
W
dado
++++
I"t8 %Ute*1u
Valor0) Oc,3a B %Ute*
I"t8 %Ute*/u I"t8 %Ute*)u
++++
I"t8 %Ute*0u
E:e(3lo de ,tili;a5+o
(alor72 = 72.27;
// (alor ponto &lutuante. Como sal(ar na // eeprom g
Trite@eeprom ) $ L-tes b *; Trite@eeprom ) $ L-tes b *; Trite@eeprom ) 2 $ L-tes b 2 *; Trite@eeprom ) 7 $ L-tes b 7 *;
// com o auxilio da union // sal(amos L-te a L-te // os 1 L-tes ue compoem // a union
E*t,de o e:e(3lo 7,e e*ta "a 3a*ta 2tt3<<$$$'"e$to"c%ra&a'co('%r
unions "o ar7,ivo 3ara do$"load "o li"
II'18 - A ,"5+o MAIN H Todo 3ro&ra(a e( C deve ter ,(a ,"5+o c2a(ada MAIN H 7,e > a roti"a 7,e *erá e:ec,tada 7,a"do o 3ro&ra(a or c2a(ado e( "o**o ca*o a3* o re*et da c3,H' E:e(3lo de ,( 3ro&ra(a 7,e "ada a; (a* 7,e 3ode *er co(3ilado [i"cl,de \16F8GGA'W] void (ai" voidH
<< a ,"5+o MAIN "+o rece%e o, devolve valore*
f
II'1 - E:e(3lo* de 3ro&ra(a* *i(3le* B0
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Vere(o* "e*te ite( al&,"* 3ro&ra(a* 3e7,e"o* e *i(3le* *e( ,"5+o t>c"ica e*3ec9ica a3e"a* 3ara il,*trar o* co"ceito* vi*to* at> a&ora' Y*e-o* 3ara trei"ar o ,*o do M3la% e do co(3ilador C Ca3' IIIH' Pro&ra(a 1
Calc,la a *o(a do* "(ero* de 1 a 1//'
[i"cl,de \16F8GGA'W] i"t8 i"t16
i *o(a
<< variável i ,*ada "o loo3 / a )H << *o(a 3ode ir de de / a 60
void (ai" H or H *o(a _ / << i"iciali;ei a variável *o(a or i _ 1 i \ 1/1 iH *o(a _ *o(a i f f
Pro&ra(a ) Co"ta i"dei"ida(e"te de 1 a 1/' Se(3re 7,e c2e&ar a 1/ i"cre(e"ta a variável ` e reco(e5a' [i"cl,de \16F8GGA'W] i"t8 i : void (ai" voidH i _ / : _ / or H i i i __ 1/ H : i _ / f f f
<< declarei 7,e i e : *+o << variávei* do ti3o i"t8 << i"iciali;ei a* variávei* << ica eter"a(e"te "e*te loo3 << i"cre(e"ta i << vK *e i _ 1/' << ' I"cre(e"ta : e a; i _ /'
Pro&ra(a 0 I"cre(e"ta i"dei"ida(e"te a variável c2a(ada co"tador e e*creve "o* led* colocado* "o 3ortd D [i"cl,de \16F8GGA'W] i"t8 co"tador << declarei 7,e co"tador > ,(a << variável do ti3o i"t8 8 %it*H void (ai" voidH co"tador _ / or H << ica eter"a(e"te "e*te loo3 o,t3,t^D co"tadorH co"tador f f
BB
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
E*te* 0 3ro&ra(a* e*t+o "a* 3a*ta* e:1 e:) e e:0 "o ar7,ivo 3ara do$"load "o li" 2tt3<<$$$'"e$to"c%ra&a'co('%r
B
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
IV - Y*a"do o M3la% G'6) e( C IV'1 - Co"ceito* %á*ico* O M3La% > ,( a(%ie"te i"te&rado 3ara o e*t,do e de*e"volvi(e"to co( a a(9lia PIC de (icroco"troladore*' S,a 3ri"ci3al caracter9*tica > a total i"te&ra5+o de *e,* (d,lo* co( o a(%ie"te i"do$* e 3ri"ci3al(e"te co( o co(3ilador C da CCS 3er(iti"do a ácil co3ia de ar7,ivo* e trec2o* de ar7,ivo* de ,( a3licativo 3ara o,tro' Para *e e*crever ,( 3ro&ra(a "o M3La% 3reci*a(o* a"te* a**i(ilar o co"ceito de Q3ro=eto'
IV') - O QPro=eto "o M3La% E"te"de-*e 3or proeto ,( co"=,"to de ar7,ivo* e i"or(a5?e* 7,e di; ao M3La% 7,al a *it,a5+o de ,( certo tra%al2o e( 3artic,lar' Por e:e(3lo ",( certo 3ro=eto de*i&"ado E`EMPLO'PT te(o* d,a* =a"ela* a%erta* e:e(3lo'c e e:e(3lo'l*t' E( o,tro 3ro=eto de*i&"ado TESTE'PT te(o* trK* =a"ela* a%erta* te*te'c te*te'l*t' e File Re&i*ter i"do$' Co( o &ere"cia(e"to de 3ro=eto* 3re*e"te "o M3La% "+o 3reci*a(o* Qle(%rar 7,ai* a* =a"ela* 7,e cada 3ro=eto e*tava ,*a"do "o (o(e"to e( 7,e e"cerra(o* o tra%al2o 3oi* ao carre&ar(o* o 3ro=eto de*e=ado toda* a* i"or(a5?e* relativa* ao (e*(o *er+o rec,3erada*' 356O7T8NT/4 9á a"tando a" anela" para e iem mai" o meno" na" me"ma" po"iç&e" e dimen"&e" apre"entada" ne"te cap0tlo: para acilitar "e aprendizado.
/
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
IV'0 - Cria"do o 3ro=eto co( o Pro=ect i;ard I"icie o M3La%' Na tela i"icial *elecio"e 6roect > 6roect ;izard co(o "a i&,ra 1 e "a =a"ela 7,e vai *e a%rir *elecio"e AVANnAR'
Fi&,ra 1
1
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Ca*o o PIC i"dicado "+o *e=a o 18FB8 *elecio"e "o (e", co"or(e i&,ra )
Fi&,ra )
E de ,( clic "o %ot+o QAva"5ar'
)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Ao 3re**io"ar o %ot+o QAva"5ar ire(o* 3ara a =a"ela de *ele5+o do ti3o de co(3ilador' Na 3ri(eira ve; vocK 3rovavel(e"te o%terá a =a"ela da i&,ra 0 7,e i"dica o co(3ilador 3adr+o – MPASM Tool*,iteH
Fi&,ra 0
Se or o ca*o *elecio"e "a li"2a Active Tool*,ite a o35+o CCS c Compiler '''''' e o%terá a tela a *e&,ir
Fi&,ra 0a
0
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Ca*o o* a=,*te* "+o e*te=a( i&,ai* ao* aci(a a=,*te ,( a ,( e 3re**io"e o %ot+o QAva"5ar (ai* ,(a ve;' A3arecerá a =a"ela da i&,ra B 3ara a=,*te do "o(e e local do 3ro=eto
Fi&,ra B
Selecio"e 3elo %ot+o .ROSE 7,al diretrio o, 3a*taH de*e=a ,*ar o, crie ,(a 3a*ta 3ara e*te e*t,do c2a(ada CYRSOPIC "o drive C e 3ree"c2a o "o(e do 3ro=eto co(o CYRSOPIC' Ao i"al *,a tela devera e*tar a**i(
Fi&,ra
Na =a"ela 7,e vai a3arecer a3e"a* *elecio"e QAva"5ar (ai* ,(a ve; 3oi* ai"da "+o cria(o* o ar7,ivo do 3ro&ra(a o"te'
B
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
De3oi* *elecio"e QCo"cl,ir e o M3la% voltara a tela i"icial' Para co"ti",ar *elecio"e "o (e", 3ri"ci3al a *e7K"cia Ne= e o%tere(o* ,(a =a"ela 3adr+o co(o "a i&,ra 6
Fi&,ra 6
Ne*ta =a"ela di&ite o te:to e:ata(e"te co(o a%ai:o
#include <18f458.h> void main ( ) { for ( ; ; ) { output_high (pin_d); output_lo! (pin_d); " "
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
e de3oi* *elecio"e "o (e", Save a"... a=,*ta"do co"or(e i&,ra G a%ai:o
Fi&,ra G
Selecio"e *alvar e o (3la% icará a**i( o, *i(ilar – redi(e"*io"e *,a* =a"ela* *e "ece**árioH
Fi&,ra 8
6
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Para 3oder(o* co(3ilar o 3ro&ra(a deve(o* avi*ar ao M3la% 7,e e*te o"te *erá ,*ado e 3ara tal ,*a(o* a *e7K"cia 6roect > 8dd
Na =a"ela da i&,ra *elecio"e o o"te Qc,r*o3ic'c e de ,( clic e( QA%rir
Fi&,ra
Ne*te 3o"to 3or *e&,ra"5a vai 7,e o $i"do$* trava ggggH *alva(o* t,do 6roect > Save 6roect
A&ora 3ode(o* co"ti",ar'''''
Para *a%er *e e*ta t,do correto 3re**io"e I1[ 3ara co(3ilar o 3ro&ra(a' Ca*o "e"2,( erro te"2a *ido co(etido o%tere(o* a =a"ela da i&,ra 1/
G
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Fi&,ra 1/
E( ca*o de erro* verii7,e "a =a"ela ,utput= "a a%a N(uild 7,al > o primeiro erro indicado+ Ca*o *e=a "ece**ário co( o (o,*e de*lo7,e a =a"ela ate c2e&ar "o 3ri(eiro erro i"dicado 3elo co(3ilador' DK ,( clic-d,3lo e:ata(e"te *o%re a li"2a de erro' O M3la% vai alter"ar a* =a"ela* e irá 3ara a =a"ela do 3ro&ra(a o"te co( o c,r*or =á colocado *o%re a li"2a o"de e"co"tro, o erro' Corri=a e*te erro e tecla F1/ "ova(e"te 3ara co(3ilar re3eti"do ta"ta* ve;e* 7,a"ta* o co(3ilador i"dicar erro at> "+o 2aver (ai* erro al&,(' I(3orta"te Al&,(a* ve;e* a li"2a 7,e i"dica e*tar co( erro e*ta correta' Ne*te ca*o verii7,e a li"2a a"terior 3oi* a alta de ,( *i(3le* M ao i( de ,(a li"2a &era erro "a 3r:i(a'
IV'B - Si(,la"do o 3ro&ra(a Para 3oder(o* *i(,lar o 3ro&ra(a "o M3la% co(o *e e*tive**e &ravado "o 3ic deve(o* a=,*tar o M3la% 3ara tra%al2ar co( o .pla Sim' Ve=a "a i&,ra 11 co(o co"i&,rar o e:e(3lo 3ara ,*ar o *i(,lador
8
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Fi&,ra 11
Ne*te i"*ta"te o%*erve 7,e "a %arra de co(a"do* do M3la% a3arecera( al&,"* %ot?e* "ovo* i&,ra 1) NO CANTO SYPERIOR DIREITOH
Fi&,ra 1)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
O* 3ri"ci3ai* %ot?e* *+o .ot+o RYN'
]]] E:ec,ta ra3ida(e"te *e( at,ali;a5+o "a tela
.ot+o PAYSE'
]]] Para a *i(,la5+o
.ot+o ANIMATE'
]]] Roda a *i(,la5+o 3a**o a 3a**o
.ot+o RESET'
]]] Rei"icia o 3roce**ador
.ot+o STEP'
]]] A cada cli7,e e:ec,ta ,( 3a**o de 3ro&ra(a e 3ara e*3ere"ado o,tro co(a"do'
De ,( clic "o %ot+o ANIMATE e ve=a "a tela do 3ro&ra(a o"te ,( c,r*or i"dica"do 7,al li"2a e*ta *e"do e:ec,tada *i(,ladaH' De3oi* de ,( clic "o %ot+o PAYSE 3ara 3arar a *i(,la5+o e co"ti",ar o e*t,do'
IV' – Veriica"do o re&i*tro PORTD d,ra"te a *i(,la5+o No (e", 3ri"ci3al *elecio"e Vie$ ] atc2 co"or(e i&,ra 10 a *e&,ir
Fi&,ra 10
VocK o%terá a =a"ela da i&,ra 1B
6/
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Fi&,ra 1B
O %ot+o Add SI4= e *,a re*3ectiva =a"ela de *ele5+o 7,e e*ta i"dicada co( ADCON/H *erve 3ara vi*,ali;ar(o* o* re&i*tro* Qdo 3ic e o %ot+o Add SFmol co( *,a =a"ela de *ele5+o i"dica"do CCP^1H *erve 3ara ver(o* a* variávei* criada* "o 3ro&ra(a o, dei"ida* "o ar7,ivo de dei"i5?e* 3or e:e(3lo "o ar7,ivo 18FB8'WH'
Va(o* *elecio"ar o PORTD 3ara vi*,ali;a5+o' Co( o (o,*e *elecio"e a cai:a o"de i"icial(e"te e*ta ADCON/ e e*col2a o PORTD e de3oi* de ,( cli7,e e( Add SI4 i&,ra 1H
Fi&,ra 1
S,a* =a"ela* dever+o e*tar co(o "a i&,ra 16 a=,*te-a* co( o (o,*e 3ara icare( 3arecida*H
61
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
Fi&,ra 16
Para ver o PORTD *e"do a=,*tado 3elo 3ro&ra(a de ,( cli7,e "o %ot+o ANIMATE e o%*erve t,do ocorre"do *i(,lta"ea(e"te "a
tela do o"te o c,r*or i"dica cada li"2a *e"do e:ec,tada "a =a"ela atc2 vocK verá o valor do PORTD alter"a"do e"tre / e 1)8 Para vi*,ali;ar o PORTD e( %i"ário o, deci(al de ,( cli7,e co( o %ot+o DIREITO do (o,*e SO.RE a variável PORTD e "o ite( 3ro3riedade * *elecio"e o or(ato de*e=ado e 7,ai* o35?e* de*e=a'
4raticando ) que se aprende
Re3ita e*ta *e7K"cia co( o,tro* "o(e* de ar7,ivo* ,*a"do todo* o* e:e(3lo* dado* "o* ca39t,lo* II e III 3ara trei"ar o ,*o do M3la%' Modii7,e e*creva co(a"do* "ovo* e*creva co(a"do* errado* 3ara ver a* (e"*a&e"* de erro e"i( PRATIbYE g A3* ter %ai:ado e co3iado o* ar7,ivo* co"or(e i"dicado "o a"e:o I ve=a a* 3a*ta*
Cap$+++'
o"de te(o* o* e:e(3lo* 1 ) 0 e re&ra* dado* "o ca3it,lo II
Cap&+++'
o"de te(o* o 3ro&ra(a (9"i(o 3ara *i(,la5+o "o (3la%'
6)
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
V - O* Microco"troladore* PIC e *e,* 3eri>rico* (ai* ,*,ai* - Fa(9lia* 16F e 18F Teoria de ,"cio"a(e"to V'1 - I"trod,5+o Ne*te ca39t,lo va(o* de*crever o 2ard$are do* (icroco"troladore* PIC i"icia"do 3ela (e(ria de 3ro&ra(a e de3oi* 3a**a"do 3ara cada 3eri>rico' Se(3re 7,e ,( 3eri>rico or e:cl,*ivo de ,(a certa a(9lia 3or e:e(3lo a (,lti3lica5+o 3or 2ard$are e:i*te a3e"a* "a a(9lia 18FH dare(o* de*ta7,e a e*ta diere"5a' b,a"do "+o (e"cio"ado co"*idere 7,e o 3eri>rico e:i*te e( toda a li"2a 3ic' Y*are(o* co(o %a*e e( "o**o e*t,do o 3ic 16F8GG e o 18FB8 *,3ortado* 3ela ver*+o de de(o"*tra5+o do co(3ilador C o 16F8GGA te( co(o diere"5a do 16F8GG a3e"a* o co(3arador a"al&icoH' Para ver a* diere"5a* e( rela5+o ao* de(ai* (odelo* de 3ic co"*,lte o data%oo do (e*(o 7,e 3ode *er e"co"trado "o *ite $$$'(icroc2i3'co( O* 3ic* e*t,dado* te( co(o 3ri"ci3ai* caracter9*tica* • • • • • • • • • • • • •
Pode( rodar at> 1/ MIPS (il2?e* de i"*tr,5?e* 3or *e&,"doH – 18F At> 0B 3i"o* 3ara ,*o co(o e"trada o, *a9da Ca3acidade de dre"ar<or"ecer ) (A<3i"o Vária* o"te* de i"terr,35+o Ti(er* 3ro&ra(ávei* de 8 e 16 %it* (d,lo* PM Co(,"ica5+o I)C o, SPI Co(,"ica5+o Serial A**9"cro"a TTL Co"ver*or A 8 e"trada* Co(3arador a"al&ico atc2 Do& 3ro&ra(ável Modo Slee3 3ara eco"o(ia de e"er&ia Prote5+o co"tra leit,ra do cdi&o
60
MICROCONTROLADORES PIC 16F E 18F – Teoria e Prática
Vidal Pereira da Silva r
V') – Circ,ito (9"i(o V
1/X
Vdd MCLR
))3F
O*c1
1/ MW;
O*c)
))3F BGR
V**
Fi&,ra 1 – Circ,ito (9"i(o co( o PIC
V'0 – Me(ria de Pro&ra(a A (e(ria de 3ro&ra(a te( 3or o%=etivo ar(a;e"ar a* Qi"*tr,5?e* a *ere( e:ec,tada* 3elo 3roce**ador' E*ta (e(ria te( co(o 3ri"ci3al caracter9*tica "+o *er volátil i*to > "+o 3erde a* i"or(a5?e* 7,a"do a e"er&ia > de*co"ectada' E( co"tra3artida "+o 3ode *er ,*ada co(o (e(ria te(3orária de dado*' A co(3le:idade i"ter"a do 2ard$are aca%a cria"do 3ara o e*t,da"te ,(a certa diic,ldade i"icial 3or i*to o ,*o da li"&,a&e( C tor"a-*e ,(a o35+o atrae"te 3oi* al>( de *er (ai* ácil a i(3le(e"ta5+o do 3ro&ra(a a3licativo ta(%>( co"2ecido 3or ir($areH 3reci*a(o* a3e"a* co"2ecer o ,"cio"a(e"to %á*ico de cada 3eri>rico vi*to 7,e o co(3ilador C =á 3o**,i i(3le(e"tada* toda* a* ,"5?e* 3ara tal' O (a3a de &rava5+o da (e(ria de 3ro&ra(a *erá a,to(atica(e"te 3ree"c2ido 3elo co(3ilador'