Fórum témák
» Több friss téma |
Cikkek » Mesterkedések PIC24 és dsPIC33 mikrovezérlőkkel Mesterkedések PIC24 és dsPIC33 mikrovezérlőkkel
Szerző: icserny, idő: Jún 13, 2009, Olvasva: 20972, Oldal olvasási idő: kb. 3 perc
LED-villogtató program - I. változatA megépített áramkör program nélkül legfeljebb levélnehezéknek használható. Keltsük hát életre a megépített áramkört egy LED-villogtató programmal! Ezt a funkciót későbbi programjainkba is érdemes beépíteni, mert a LED villogása jelzi, hogy fut a program. A programot C nyelven írjuk meg, és a Microchip C30 fordítójával fordítjuk le. A cél most elsősorban nem a program megértése, hanem a kapcsolás működésének ellenőrzése. Ha eddig még nem tettük meg, akkor telepítsük a Microchip honlapjáról letölthető MPLAB fejlesztői környezetet, és a PIC24 C fordítót! A program és a keretéül szolgáló MPLAB projekt-létrehozásának lépéseit az MPLAB IDE v8.15a változatával az alábbiak szerint hajtottam végre (gondolom, az újabb változatban is hasonlóan történhet):
A program beírásához a Project menüben válasszuk ki az "Add New File to Project" (új állomány hozzáadása a projekthez) menüpontot, és a felbukkanó ablakban adjuk meg az elérési útvonalat, valamint az új forrásfájl nevét (például legyen a neve ledvill1.c). Írjuk be az alábbi programot!
A program működését itt csak vázlatosan ismertetjük, a mikrovezérlő programozásával kapcsolatos részletes magyar nyelvű tananyag a PIC-kwik projekt honlapján található. Természetesen a mikrovezérlő adatlapja kötelező olvasmány, azt semmilyen tananyag sem pótolja! A program elején az #include direktívával beolvastatjuk a mikrovezérlőt leíró definíciós állományt. Ezt az egyszerűség kedvéért tekintsük a mikrovezérlő adatlapja géppel olvasható kiadásának... Ennek hatására tud majd pl. a fordító konkrét regisztereket rendelni az ADPCFGL, TRISB, TMR1, stb. nevekhez. Nem kötelelző kiírni a konkrét mikrovezérlő típusszámát, az MPLAB lehetővé teszi, hogy az ábrán látható #include <p24hj128gp502> direktíva helyett az általánosabb #include <p24Hxxxx.h> formát használhatjuk. Ez arra jó, hogy ha másik mikrovezérlőt használunk (pl. PIC24HJ64GP502, vagy PIC24HJ64GP202), akkor elegendő egyetlen helyen, a Device Select menüben változtatni, s nem kell miatta belenyúlni a forrásállományba. A dsPIC33FJ mikrovezérlők esetén pedig az #include <p33Fxxxx.h> direktívát használjuk! A #define direktívával egy DELAY (késleltetés) nevű számkonstanst definiálunk. Ennyi "óraütést" fogunk majd leszámláltatni a LED állapotváltozása között. A főprogram (main függvény) első részében inicializáljuk a mikrovezérlőt: először is minden analóg bemenetet letiltunk. Ha az AD1PCFGL regiszter valamelyik bitje nulla, akkor a hozzá rendelt analóg bemenet a megfelelő lábra kapcsolódik. Ha a bit értéke 1, akkor a hozzá rendelt analóg bemenet AVSS-re kapcsolódik (analóg föld), a mikrovezérlő megfelelő lába pedig digitális ki/bemenetként használható, lásd az adatlap Register 19-8 nevű táblázatát! A TRISB regiszterrel a B port bitjeinek adatáramlási irányát állíthatjuk be. Ha TRISB valamelyik bitje 0, akkor a hozzá rendelt láb kimenetként viselkedik. Ha pedig 1, akkor bemenetként. Itt most csak az RB15 lábat állítjuk kimenetnek, a B port többi bitje bementként viselkedik. Ezt úgy érjük el, hogy a TRISB regiszter legmagasabb helyiértékű bitjébe 0-át, a többibe 1-et írunk. A helyes működéshez elengedhetetlen, hogy az RB15 kimenetet nyitott nyelőelektródás (ez a TTL logikai áramköröknél megszokott nyitott kollektoros kimenet MOSFET-es megfelelője) üzemmódba állítsuk! Ehhez az ODCB regiszter 15. bitjét 1-be kell állítani. Ahhoz, hogy a LED villogását észlelni tudjuk, a LED ki- és bekapcsolásai között szünetet kell tartani. Az ehhez szükséges várakozási időket a mikrovezérlő beépített, 16 bites Timer1 számlálója segítségével fogjuk mérni úgy, hogy az utasításciklusokat számláltatjuk vele, amíg a DELAY konstansban előírt felső határt el nem érjük. Gyakorlatilag úgy használjuk a számlálót, mint a tojásfőzésnél a homokórát: elindítjuk, és nézzük, hogy leperegtek-e már a homokszemek. Esetünkben a DELAY konstans értéke szabja meg, hogy hány virtuális homokszemünk lesz az órában. A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |