Sunteți pe pagina 1din 5

Mediul de dezvoltare a aplicatiilor MPLAB

3. MPLAB IDE, PICC Pentru programarea PIC-ului poate fi utilizat mediul de dezvoltare MPLAB( !. Codul programului poate fi "#ri" intr-un lim$a% C "pe#ializat. Pentru PIC&'()*+ e,i"ta #ole#tia de programe utilitare PICC Lite( ! #are in#lude- un #ompiler, un a""am$ler, un lin.er. La generarea programului e"te #reat "i un fi"ier #od ma"ina #are poate fi "#ri" din MPLAB in memoria MC/. 3.&. Crearea unui proie#t in MPLAB Din meniul Pro%e#t "e "ele#teaza optiunea Pro%e#t 0izard1 a#ea"ta alegere e"te re#omandata inainte de realizarea primului proie#t in MPLAB deoare#e optiunea fa#iliteaza #onfigurarea unor parametri. 2e alege tipul mi#ro#ontroller-ului (Devi#e!- PIC&'()*+. 2e alege #ole#tia de programe folo"ita (A#tive 3ool"uite!- 4I-3EC4 PICC 3ool"uite1 a#ea"ta #ole#tie e"te di"poni$ila in MPLAB dupa in"talarea PICC Lite. 2e #reaza un dire#tor pentru fi"ierele proie#tului "i i "e da un nume proie#tului. 2e introdu# in proie#t fi"ierele programului1 pentru un program PICC pot fi introdu"e fi"iere "ur"a #u e,ten"ia .# "au .a", fi"iere 5eader #u e,ten"ia .5, fi"iere o$ie#t #u e,ten"ia .o$% "i fi"iere li$rar6 #u e,ten"ia .li$. 3.'. /tilizarea fi"ierelor PICC (i"ierele "ur"a "i 5eader #ontin #odul programului C. In #adrul #odului "e poate fa#e referire la fun#tii e,i"tente in fi"iere li$rar6. (i"ierele "ur"a pot fi "#ri"e in lim$a% # "au a""em$ler (e,ten"ia .a"!. Codul programului e"te #ompilat "i rezulta unul "au mai multe fi"iere o$ie#t (#ate unul pentru fie#are fi"ier "ur"a!. Legatura dintre fi"ierele o$ie#t "e fa#e in #adrul operatiei de lin.-are. 7ezultatul lin.-arii poate fi un fi"ier 5e, (#od o$ie#t! "au un fi"ier li$rar6. 8peratia de lin.-are permite ata"area unor fi"iere 5e, la fi"ierele o$ie#t. (i"ierele 5e, pot fi "#ri"e in memoria program a PIC-ului. 3.3. 2imularea in MPLAB Evolutia programului poate fi urmarita #u a%utorul fa#ilitatii MPLAB 2IM din meniul De$ugger(-92ele#t 3ool!.

Pentru a vedea #um variaza #ontinutul regi"trilor PICului, tre$uie "a fie de"#5i"a o ferea"tra 0at#5, din meniul :ie;1 regi"trii #u fun#tii "pe#iale (#um e"te <PI8, pentru informatia tran"mi"a pe pini! "unt numiti 2(7, iar varia$ilele din program "unt numite 26m$ol". 2e re#omanda a#tivarea optiunii Binar6, pentru vizualizarea #ontinutului. 8ptiunea 2etting" din meniul De$ugger permite modifi#area parametrilor "imulatorului. In ferea"tra Animation=7ealtime /pdate" (din 2etting"! tre$uie "a "ele#tati >Ena$le 7ealtime ;at#5 update"? pentru a vedea modifi#arile regi"trilor1 poate fi alea"a "i perioada de a#tualizare a regi"trilor in ferea"tra 0at#5. @. 8 prima apli#atie @.&. De"#rierea lu#rarii de la$orator Apli#atia propu"a #on"ta in implementarea unui #i#lu, #u durata nedeterminata, de aprindere "i "tingere a LED-ului DA (vezi fig.@!. Impli#it "e dore"te #a #elelalte LED-uri "a nu fie aprin"e. 2e va tine #ont la realizarea programului de faptul #a, pentru aprinderea unui LED, potentialul de la anod tre$uie "a fie mai mare de#at #el de la #atod. /n LED va ramane "tin" da#a am$ele potentiale "unt egale. Programul C in#lude un fi"ier 5eader pentru #onfigurarea PIC-ului, definirea #on"tantelor "i de#lararea fun#tiilor. (i"ierul "ur"a #ontine #od pentru #onfigurarea PIB-ilor PICului (intrare=ie"ire, tipul "emnalului ve5i#ulat! "i pentru aprinderea="tingerea diodei. @.'. Codul programului C
== == == == C---------------------C D LED 5eader file D D LED.5 D C---------------------C

Ein#lude Fpi#.59 == Configurare PIC GGC8B(I<(/BP783EC3 H B87EB H MCL7DI2 H P073EB H 0D3DI2 H IB3I8!1 == Con"tante Edefine #ount &AAAAA

== De#larare (un#tii void Init(void!1 void dela6(un"igned int!1


( ! ( !

MPLAB e"te un produ" al firmei Mi#ro#5ip


PICC e"te un produ" al firmei 4I-3EC4 2oft;are == C---------------------C == D LED "our#e file D == D LED.# D 2

==

C---------------------C

Ein#lude ILED.5I void main(void! J Init(!1 ;5ile(&! J <PI8 K A$AAA&AAAA1 dela6(#ount!1 <PI8 K A1 dela6(#ount!1 L L == Initializare void Init(void! J 37I2I8 K A$&&AA&&&&1 AB2EL K A$AAAAAAAA1 CMC8B K A$AAAAA&&&1 ADC8BA K A$AAAAAAAA1 L == Intarziere void dela6(un"igned int amount! J un"igned int inde,1 for(inde,KA1inde,Famount1inde,CC!1 L

== aprinde LED-ul DA == "tinge LED-urile

@.3. E,pli#area #odului #include <pic.h> (i"ierul pic.h #ontine definitii ale unor varia$ile >de "i"tem?, de e,emplu regi"trii ai PIC-ului1 vom putea "#rie <PI8 in lo# de adre"a (5e,a! #ore"punzatoare.
__CONFIG(UNPROTECT & BOREN & MCLR I! & P"RTEN & " T I! & INTIO#$

A#ea"ta #omanda modifi#a >Configuration $it"? ($iti de #onfigurare!. Bitii apartin regi"trului C8B(I<. Denumirile din paranteza "unt #ompu"e din doua #uvinte. Al doilea e"te (#u e,#eptiile /BP783EC3 "i IB3I8! EB M Ena$le (a#tiveaza! "au DI2 M Di"a$le (deza#tiveaza!. Deza#tivarea unui $it in"eamna #a nu "e mai #ite"# "emnale de la #ir#uitul reprezentat de $it, pe pinul #ore"punzator al MC/. 0D3 in"eamna 0at#5 Dog 3imer. 0D3 e"te un #ir#uit (o"#ilator 7C #are a#tiveaza un numarator M Counter! #are inregi"treaza erori (adre"e in#ore#te! in timpul e,e#utiei unui program. Dupa un numar de erori inregi"trate "e produ#e 7e"et. P073 in"eamna Po0e7 up 3imer. A#tivarea P073 introdu#e o intarziere M Dela6 (*'m"! la punerea "u$ ten"iune M Po;er up #are permite "ta$ilizarea #ea"ului MC/ (uniformizarea
3

o"#ilatiilor! inainte de e,e#utarea primei in"tru#tiuni de program. MCL7 in"eamna Ma"ter CLear 7e"et. A#tivarea MCL7 permite #ontrolarea a#tivarii fun#tiei 7e"et, la revenirea din "tarea 2leep (de e,emplu!. 2tarea 2leep #ore"punde lip"ei de a#tivitate a MC/. A#tiunea MCL7 #on"ta in punerea "u$ ten"iune a MC/. B87 in"eamna B7o;n-8ut (in manualul PIC&'()*+, e"te "#ri" B8D M Bro;n-8ut Dete#t!. Bro;n-8ut #ore"punde "#aderii ten"iunii de alimentare "u$ o anumita valoare (@:!. In a#ea"ta "ituatie "e a#tiveaza fun#tia 7e"et. IB3I8 pre#izeaza #a tre$uie "a fie luate in #on"iderare de #atre MC/ intreruperile venite pe pinii de intrare=ie"ire. Intreruperea e"te un "emnal #are arata #a pe pinul re"pe#tiv "e tran"mite informatie (portul e"te a#tiv!. La primirea intreruperii MC/ a#tiveza un #od "pe#ifi# de tratare a intreruperii, dupa #are #ontinua e,e#utarea programului. /BP783EC3 informeaza MC/ #a "e vor efe#tua operatii de #itire="#riere #u memoria de program "i #ea de date. In fi"ierul "ur"a, in fun#tia %&in(# are lo# o data, la in#eputul programului, initializarea unor regi"trii, dupa #are "e repeta aprinderea "i "tingerea LED-ului DA, operatii de#alate #u fun#tia del&'.
TRI!IO ( )*++))++++$

37I2I8 in"eamna 37I-2tate Input 8utput. Bitii regi"trului 37I2I8 "unt in #ore"pondenta #u pinii PIC-ului. Da#a un $it al 37I2I8 are valoarea & in"eamna #a pinul #u a#ela"i numar de ordine va primii "emnale din e,terior (pin de intrare!1 valoarea A a unui $it 37I2I8 #ore"punde unui pin de ie"ire. Bumerotarea $itilor "e fa#e de la dreapta la "tanga ($itul #el mai putin "emnifi#ativ e"te $itul A!. ++))++++ in"eamna #a numai pinii @ "i + "unt de ie"ire (pinii & "i ' "unt de intrare!. Prin modifi#area $itilor regi"trului <PI8 "e vor putea trimite "emnale doar pe pinii @ "i +, #are vor #ondu#e la aprinderea (doar a! diodei DA (vezi fig. @!.
,N!EL ( )*))))))))$

AB2EL in"eamna ABalog 2ELe#tion. Dupa #um "e poate vedea in figura + e,i"ta @ pini pentru tran"fer analogi#- ABA-<PA, AB&-<P&, AB'-<P', AB3-<P@1 <P in"eamna <eneral Purpo"e (Pin!. Bitii A3 #u valoarea A impun #a pinii enumerati anterior "a fie de"tinati trna"ferului digital (valoarea & #ore"punde intrarilor analogi#e!. Bitii @) "pe#ifi#a alegerea fre#ventei o"#ilatorului pentru "in#ronizarea #onver"iei (de "emnal! Analog=Digital. In e,emplul de fata nu e,i"ta intrari analogi#e, de#i nu e"te ne#e"ara #onver"ia Analog=Digital1 $itii @) pot avea ori#e valoare. Bitul * al AB2EL nu e"te implementat.
4

CMCON

( )*)))))+++$

CMC8B in"eamna CoMparator C8Btrol. Bitii A' #u valoarea & indi#a faptul #a pinii <P A' nu "unt #one#tati la #omparatorul analogi# "i informatia ve5i#ulata pe <P A' e"te digitala. <PA #ore"punde intrarii inver"oare a omparatorului, iar <P& intrarii neinver"oare. Bitul 3 #u valoarea & #omuta intre ele intrarile. Bitul @ #u valoarea & indi#a inver"area ie"irii. Bitul + e"te neimplementat. Bitul ) #u valoarea & indi#a faptul #a ie"irea e"te >&? logi# atun#i #and intrarea pozitiva e"te mai mi#a de#at #ea negativa. Bitul * e neimplementat. Comparatorul nu e"te #one#tat ($itii A' au valoarea &! de#i #eilalti $iti pot avea ori#e valoare.
, CON) ( )*))))))))$

ADC8BA in"eamna Analog=Digital C8Btrol. Bitul A #u valoarea A "pe#ifi#a faptul #a modulul de #onver"ie AD e"te in#5i" "i nealimentat. Bitul & #u valoarea & ar #omanda in#eperea #onver"iei. Bitii ',3 "pe#ifi#a pinul pentru intrarea analogi#a. Bitii @,+ "unt neimplementati. Bitul ) "pe#ifi#a volta%ul de referinta. Bitul * pre#izeaza alinierea pe &) $iti a rezultatului #onver"iei- aliniere #u $itul #el mai "emnifi#ativ in "tanga "au #u $itul #el mai putin "emnifi#ativ in dreapta (pentru rezultat reprezenta$il pe mai putin de &) $iti!.
GPIO ( )*)))+))))$

<PI8 in"eamna <eneral Purpo"e Input=8utput. Bumai $itii A+ "unt implementati. :aloarea & pentru un $it in"eamna #a potentialul pinului #ore"punzator e"te ridi#at (ten"iunea de referinta=alimentare!.
GPIO ( )$

:aloarea primita putea fi "#ri"a "i A,AA (5e,a! "au A$AAAAAAAA. 3oti pinii de ie"ire prime"# potential "#azut. Conform #ir#uitului reprezentat in figura @, pentru a aprinde LED-ul DA "e impune #a potentialul pinului @ "a fie ridi#at, iar potentialul pinului + "a fie "#azut. LED-ul D' nu "e aprinde deoare#e pinul ' e"te de"emnat #a intrare (37I2I8,&!. 2tingerea LED-ului "e fa#e #o$orand potentialul de pe pinul @. Intarzierea aprinderii "i "tingerii "e fa#e printr-un #i#lu -./ e,e#utat de c.un0 ori. Da#a "e #unoa"te #ate #i#luri de #ea" ne#e"ita e,e#utarea in"tru#tiunii -./ atun#i "e poate determina valoarea in "e#unde a intarzierii.

S-ar putea să vă placă și