online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

 

Online dokumentumok - kep
  

Az MPLAB beallítasa és az elsö program



Fájl küldése e-mail



egyéb tételek

 
 
 

Az MPLAB beállítása és az elsö program

Tartalom
Az MPLAB beállítása
Az elsö program
A program lefordítása és hibakeresése (debuggolása)
Beégetés

Az MPLAB beállítása Úgy gondolom, az MPLAB merevlemezre való telepítése nem igényel különösebb instrukciót, így kezdjük rögtön a beállításával. Indítsuk el a Start menü -> Programok ->Micr 212h77c ochip MPLAB -> MPLAB helyröl. Ha Windows 3.1 vagy 3.11-et használunk, akkor a Programkezelö Microchip MPLAB programcsoportjából indítsuk az MPLAB ikont. Ekkor a program föablakát láthatjuk.
Nyissunk meg egy új projektet a Project/New project menüponttal. Ekkor a program az új projekt nevét fogja kérni. Névnek állítsuk be hogy "tan.pjt", könyvtárnak pedig mindegy hogy mit, de a kiválasztott könyvtár legyen üres az áttekinthetöség kedvéért. A legjobb, ha külön erre a célra létrehozunk egy új könyvtárat.

Ha ezzel megvagyunk, nyomjunk OK-t.
Ezután a projekt jellemzöit kell megadnunk. A Development Mode mezeje melletti Change gombra klikkeljünk rá. Ekkor megadhatjuk, hogy milyen PIC-hez akarunk fejleszteni. Mi most a PIC16F84-gyel foglalkozunk, ezért állítsuk be az alábbiakat:
- MPLAB-SIM Simulator
- Processor: 16F84





A többi beállítással nem kell foglalkoznunk, nyomjunk OK-t.
Klikkeljünk az Add Node gombra. A fájlnévhez írjuk be hogy "elso.asm", könyvtárnak pedig válasszuk ki ugyanazt a könyvtárat, amit az elöbb is megadtunk.



Ha ezzel készen vagyunk, nyomjunk OK-t. A kész beállítás panel ezek után így kell, hogy kinézzen:



Jelöljük ki az "elso [.hex]" sort, majd klikkeljünk a Node Properties-re.
Töltsük ki a táblázatot úgy, hogy ezt kapjuk:



Nyomjunk OK-t. Majd a projekt beállítása ablakon is nyomjuk egy OK-t. Visszakerültünk a föképernyöre. Válasszuk ki a Project/Save Project menüpontot, hogy elmentsük a beállításokat.
Válasszuk ki a File/New menüpontot, majd a File/Save As-t. Fájlnévnek írjuk be hogy "elso.asm", a könyvtárnak pedig válasszuk ki a szokásos projektkönyvtárunkat, ha nem az lenne kijelölve. Ezt OK-zzuk le. Az ablak fejlécében meg is jelenik a fájl neve. Méretezzük az ablakut úgy, hogy kényelmesen elférjen alá egy másik ablak is. Innentöl ezt az ablakot programablaknak fogjuk hívni, mert a programunkat ebbe írjuk majd.
Válasszuk ki a Window/Watch Windows/New Watch Window menüpontot. A megjelenö ablak tetején levö Symbol sorba írjunk egy "w"-t, majd klikkeljünk az Add gombra. Ugyanígy írjuk be hogy "portb", majd újfent klikkeljünk az Add gombra.



Végül nyomjunk Close-ot. Az új ablakban, amit a föképernyöre kaptunk, megjelennek az általunk kiválasztott regiszterek. Ez az ablak a Watch ablak, ami futás közben a regiszterek állapotát mutatja. (Ez hibakeresésnél nagyon hasznos. Márpedig hibákat mindig ejt az ember programozás közben.) Késöbb további regisztereket is felveszünk ebbe. Húzzuk a Watch ablakot a programablak mellé vagy alá, hogy mindkettöt látni lehessen. Példaként itt van hogy én hogy csináltam, de akárhogyan máshogy is átrendezhetjük, akár a Window/Tile Horizontal ill. Tile Vertical menüpont segítségével is.



Ha az elrendezéssel készen vagyunk, válasszuk ki a Project/Save Project menüpontot, hogy beállításainkat véglegesítsük. Befejeztük a konfigurálást, kezdhetünk is programozni.

Az elsö program

Ha elkészítettük az elözö részben tárgyalt PIC próbapanelt és égetöpanelt, valamint beleégettük a PIC-ünkbe a teszt.hex file-t, akkor elöször is sikeresen kitaláltuk hogyan kell kezelni az égetöprogramot (amit a késöbbiekben majd az elsö program végén tárgyalunk is), másrészt elgondolkodhattunk azon, hogy milyen jó lenne ha magunk is tudnánk ilyet írni. Miért is ne, írjunk egy ilyet!
Programozás közben tartsuk be az alábbi szabályokat, mert egyrészt átláthatóbbá teszi a programot, másrészt az MPLAB szólni fog miatta ha megszegjük öket:
1. Címke csak az elsö oszlopba kerülhet,
2. utasítás csak a másodikba,
3. operandus pedig csak a harmadikba (és logikusan csak utasítás után).
4. Megjegyzéseket pontosvesszövel kell bevezetni és bárhol állhatnak.
5. Ez pedig csak ajánlott: Az oszlopokat TAB-bal válasszuk el.

Rögtön az elsö kérdés ami felmerül bennünk: Hogy mi van? Mi ez az egész? Mi az hogy operandus, miféle oszlopok, hova kell címke?
Mindjárt láthatjuk miröl van szó.
Elöször is gépeljük be az alábbi programrészletet a programablakba, aztán jön a magyarázat:
(Begépeléskor nyomjunk egy TAB-ot azoknál a soroknál, ahol jól láthatóan beljebb kezdödik a szöveg. Ugyanígy az "ENDC" sortól kezdve az összes üres helynél TAB-ot használjunk, ne space-t!)

LIST P=16F84 #INCLUDE "P16F84.INC" __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF CBLOCK 0x0C T1 T2 ENDC

ORG 0 START BSF STATUS,RP0 ;BANK1 MOVLW B'00011111' MOVWF TRISA MOVLW B'00000000' MOVWF TRISB BCF STATUS,RP0 ;BANK0

Egyre bonyolultabb? Lássuk hogy mik ezek a kínai dolgok. Nem kell megijedni, a fenti kódrészletet egy ideig nem szükséges megértenünk, csak az MPLAB-nak ad további instrukciókat, valamint a PIC-et állítja be. Egy jó ideig a programjaink ezekkel a sorokkal kezdödnek majd. (Ettöl függetlenül az elejét egy kicsit nagyító alá vesszük.)
Kezdjük elöször is a fogalmakkal: Láthatjuk, hogy a sorok java része beljebb kezödik (pontosan egy TAB-nyi távolságra a sor elejétöl), ezek a második oszlopban vannak. A "TRISA", "TRISB", stb. pedig a harmadik oszlopban. Ezek az operandusok, vagyis az utasításokhoz rendelt paraméterek. Ha ránézünk a kódra, már rögtön láthatjuk is, hogy miért "oszlop" a nevük. A TAB billentyü segítségével oszlopokba rendezhetjük az egyes elemeket. Megfigyelhetjük, hogy van még egy ";BANK1" és egy ";BANK0" rész is. Mint feljebb említettem, ezek az ún. kommentek, vagyis ami a pontosvesszö után áll azt, az MPLAB nem veszi figyelembe. Így rakhatunk magunknak megjegyzéseket a forráskódba, ill. hibakeresés közben ezzel iktathatunk ki egy-egy sort. Ezek után lássuk, hogyan épül fel egy sor:
<címke> <utasítás> <operandus>
Most pedig egy picit nézzük meg a kód elejét! Az elsö három sorral nem kell foglalkoznunk.
Az azt követö sorok már érdekesebbek.

CBLOCK 0x0C T1 T2 ENDC

Ha programoztunk már valaha valamilyen nyelven, akkor röviden annyit mondhatunk, hogy ez itt a T1 és T2 nevü változók deklarálása, vagyis hogy mit fogunk használni a programban. A változókat a PIC esetében regisztereknek nevezzük. Ha még sosem foglalkoztunk más programnyelvvel, akkor ezt úgy kell felfogni, hogy veszünk egy-egy darabot a memóriából és elkereszteljük öket T1, valamint T2-nek. Innentöl pedig bármilyen értéket beleírhatunk 0 és 255 között, valamint ezt vissza is olvashatjuk, amikor csak akarjuk. A CBLOCK után álló 0x0C azt jelzi, hogy a PIC hanyadik regiszterétöl kezdve foglalja le nekünk T1 és T2 regisztereket a program. Ez lehetöleg mindig 0C legyen (A "0x" bevezetés hexadecimális értéket jelöl), mert az az elöttiek más célokra vannak fenntartva.
A további részekben van maga a program, amit már a PIC futtatni fog. Itt beállítjuk a PIC 5 bites A portját fogadásra (input), a 8 bites B portját pedig kivitelre (output). Feltünhet, hogy az utasításokban igen sok W szerepel. Van ugyanis egy W nevü regiszterünk, ez más néven az akkumulátor. Ez a regiszter a PIC legközpontibb regisztere. Ennek a segítségével végez müveleteket, a müveletek erdeménye is ide kerül (ha nem adunk meg mást), valamint az utasítások és különbözö regiszterek között is ezzel vihetünk át adatokat. A sok állítgatás után éppen itt az ideje, hogy begépeljünk valami hasznosat is. Akkor hát rajta!



VISSZA:         MOVLW B'10000000' MOVWF PORTB CALL     DELAY MOVLW    B'01000000' MOVWF    PORTB CALL     DELAY MOVLW    B'00100000' MOVWF    PORTB CALL     DELAY MOVLW    B'00010000' MOVWF    PORTB CALL     DELAY MOVLW    B'00001000' MOVWF    PORTB CALL     DELAY MOVLW    B'00000100' MOVWF    PORTB CALL     DELAY MOVLW    B'00000010' MOVWF    PORTB CALL     DELAY MOVLW    B'00000001' MOVWF    PORTB CALL     DELAY MOVLW    B'00000000' MOVWF    PORTB CALL     DELAY MOVLW    B'00000001' MOVWF    PORTB CALL     DELAY MOVLW    B'00000010' MOVWF    PORTB CALL     DELAY MOVLW    B'00000100' MOVWF    PORTB CALL     DELAY MOVLW    B'00001000' MOVWF    PORTB CALL     DELAY MOVLW    B'00010000' MOVWF    PORTB CALL     DELAY MOVLW    B'00100000' MOVWF    PORTB CALL     DELAY MOVLW    B'01000000' MOVWF    PORTB CALL     DELAY MOVLW    B'10000000' MOVWF    PORTB CALL     DELAY MOVLW    B'00000000' MOVWF    PORTB CALL     DELAY GOTO     VISSZA

Jó hosszú, de nem érthetetlen, lévén, hogy majdnem ugyanaz ismétlödik egyfolytában: egy MOVLW, egy MOVWF és egy CALL utasítás. Ráadásul az operandus csak a MOVLW-nél változik.
Mit is csinál ez a rész? Az elején van egy VISSZA címke, melyre a programrészlet végén hivatkozunk (
GOTO VISSZA). A GOTO parancs hatására a program a megadott címkétöl fog folytatódni. (Jelen esetben a VISSZA címkétöl, vagyis a programrészlet végén visszaugrunk az elejére). Ezután jön a három ismétlödö sor:

MOVLW B'01000000' MOVWF PORTB CALL DELAY

A MOVLW parancs feladata az, hogy az operandust töltse be az akkumulátorba (W regiszterbe). Azt mondtuk, hogy a regiszterek 0 és 255 között kaphatnak értéket. Akkor mi ez a B'01000000'? Nos, ez egy bináris érték. Az MPLAB lehetövé teszi, hogy a számokat megadhassuk hexadecimális, decimális, vagy bináris formátumban. Ezt többféleképpen is tehetjük, néhány példa:

H'40' vagy 0x40 vagy 40 - hexadecimális 40
D'64' vagy .64 - decimális 64
B'01000000' - bináris 01000000

A fenti példák mind ugyanazt az értéket adják vissza, csak más számrendszerben adtuk meg öket. Arra ügyeljünk ha hexadecimális számot elötag nélkül adunk meg (tehát csak 40-et és nem pl. 0x40-et), hogy ha a szám betüvel kezdödik (pl. C0), akkor egy nullát feltétlenül elé kell írnunk (Tehát pl. 0F0)! Felmerülhet a kérdés, hogy miért nem írtuk be akkor egyszerüen azt, hogy MOVLW .64? Nos azért nem, mert ezt az értéket kívánjuk kiküldeni a B portra, ahova a LED-ek csatlakoztatva vannak, aztán így egyszerübb megadni: a bináris érték 8 helyiértéke megfelel a 8 LED-nek. Amelyik helyiérték 1, ott a LED világítani fog, amelyik 0, ott nem fog világítani. A fenti érték - miután kiküldtük a B portra - tehát a második LED-et kigyújtja.
A következö parancs (
MOVWF) az akkumulátor tartalmát (melybe az imént raktuk a bináris értékünket) kiküldi az operandusban megadott regiszterbe, jelen esetben a B portra. Már most elgondolkodhattunk azon, hogy ha már ilyen minimális különbségek vannak az utasítások között - és ez még csak a kezdet -, akkor mi lesz késöbb? Nos, igazából azok vannak elönyben, akik tudnak angolul. Ezek a furcsán kinézö utasítások ugyanis angol rövidítések. A MOV kezdetü utasítások az angol "move" (mozgatás) szóból származnak, tehát valamit valahova mozgatnak. Hogy mit hova, azt az utasítás vége mondja meg:
L - az operandusként megadott konstans
F - az operandusként megadott regiszter
W - az akkumulátor

Tehát a MOVWF PORTB az az akkumulátor tartalmát tölti be a PORTB-be, a MOVFW PORTB meg éppen fordítva, vagyis a PORTB-t olvassa vissza az akkumulátorba.
Láthatjuk, hogy a két
MOV utasítás mindössze annyit tett, hogy a B portra kiküldött egy konstans értéket. De akkor miért kellett közbeiktatni az akkumulátort? Nem lehetett volna egy olyan utasítást használni, hogy MOVLF? A válasz az, hogy nem. Egy utasítás ugyanis csak egy operandust tartalmazhat, így viszont kettöt kellett volna megadni (a bináris értéket és a PORTB-t). Van egy speciális eset, amikor aritmetikai müveleteknél - pl. egy összeadás esetén - megmondhatjuk hogy a végeredmény az operadusban levö regiszterbe (ha az operandus egy regiszter) vagy az akkumulátorba kerüljön. Ekkor ezt az operandus mellé kell írni vesszövel elválasztva.
További információt a
MOV utasításokról a letölthetö dokumentum 62. oldalán találhatunk.
Menjünk tovább. Egy
CALL DELAY utasítást láthatunk. A CALL utasítással meghívhatunk egy szubrutint. A szubrutinok lényege, hogy hívásukkor lefutnak úgy, mintha egy GOTO utsaítással ugrottunk volna oda, majd a rutin végén visszatér a futás arra a pontra, ahonnan hívtuk a rutint. Így a szubrutint a program bármely pontjáról meghívhatjuk (és mint a CALL DELAY utasítások számából látható, meg is hívjuk párszor a DELAY-t), mindig ugyanoda fog visszatérni, ahonnan hívták. A DELAY szubrutin feladata, hogy várakozik egy rövid ideig. Erre szükségünk van, hiszen miután kigyújtottunk egy LED-et, hagyni kell azt egy kicsit égni, mielött a következöre mennénk. Feltünhet persze, hogy ha a CALL úgy müködik elöször mint a GOTO, akkor kéne valami DELAY címkét látnunk. Valóban, a várakoztató rutint még nem írtuk meg. Nos, akkor jöjjön az!



DELAY:           MOVLW d'150' MOVWF T1 DEL: MOVLW d'255' MOVWF T2 DEL1:             NOP NOP NOP NOP NOP NOP NOP NOP DECFSZ T2,f GOTO DEL1 DECFSZ T1,f GOTO DEL RETURN END

Na ebben már van pár címke. Meg pár ismerös utasítás is, de javarészt azért ismeretlen. A MOVLW MOVWF párost már ismerjük (Konstans érték akkumulátorba, akkumulátor regiszterbe), vagyis T1 és T2 regisztereket feltöltjük kezdöértékekkel. Itt már decimális számokat használtunk, nem egyszerüsítené a feladatunkat a bináris vagy hexadecimális értékek használata. A NOP utasítás feladata, hogy ne csináljon semmit. Abszolút semmit. Mindössze azért kell (és ennyi), hogy amíg ezeken átfut a program, eltelik egy kis idö. A DECFSZ már egy kicsit érdekesebb (és bonyolultabb). Ennek az a feladata, hogy az operandusban megadott regisztert (itt csak regiszter lehet az operandus) eggyel csökkentse. Ha pedig ez a regiszter nulla értékü lesz a csökkentéstöl (tehát 1 volt az értéke), akkor a következö utasítást ugorja át a program. (Itt fennáll az operandusok speciális esete, vagyis meg kell adni az operandus mellé, hogy T2 eggyel csökkentett értéke hova kerüljön. "f" esetén vissza T2-be, "w" esetén pedig az akkumulátorba. Ez utóbbi esetben logikusan T2 értéke változatlan marad.)
A
GOTO DEL1 hatására visszaugrunk a DEL1 címkére. Látható, hogy addig fogunk visszaugrani, amíg a DECFSZ T2,f utasítás le nem nulláza T2 regisztert. Ekkor ugyanis átugorjuk a GOTO DEL1 utasítást.
A
DECFSZ T1,f utasítás ugyanígy fog müködni. Minthogy T1 még nem 1, ezért visszaugrunk a DEL címkére. Hoppá, itt viszont T2 megint felveszi a kezdeti értékét, tehát az elözö ciklus újra lefut. Aztán megint csökken egyet T1, majd a ciklus újra lefut. Mindezt pontosan 150-szer teszi meg, minthogy addig nem tudunk továbblépni, amíg T1 nem nullázódik le és DECFSZ T1,f tovább nem engedi. Hasonlóan az elözö, DECFSZ T2,f-hez, T1 kinullázódásakor átlépünk a GOTO DEL utasításon.
A
RETURN utasítás segítségével visszatérünk arra a pontra, ahonnan egy CALL-lal hívtuk a szubrutint. Az END utasítás már nem a szubrutinhoz tartozik. Ez egy formai megkötés, hogy minden programnak ezzel kell végzödnie.
Készen is vagyunk az elsö programmal. A teljes, megírt programot letölthetjük
innen

A program lefordítása és hibakeresése (debuggolása)

A programot a Project/Build All vagy a CTRL+F10 billentyükkel fordíthatjuk le. Ekkor bejön az MPASMWIN nevü program ablaka és elkészíti nekünk a végleges kódot. Ezután visszatérünk az MPLAB föképernyöjére, ahol egy új ablak jelenik meg, a hibákat felsorolva. Ha mindent jól gépeltünk be, akkor ezt kell hogy kapjuk:

Ezután kezdhetünk debuggolni ha akarunk, vagyis lépésenként megnézni hogy mi is történik az egyes sorok lefutása után. Az MPLAB teljesen emulálni tudja a PIC-et, így még beégetés elött megtekinthetjük mit is csinál a program. Ehhez tegyük aktívvá a programablakot (klikkeljünk rá egyszer) és nyomjunk F6-ot. Így a forráskódban a program belépési pontjára ugrunk (ahol ténylegesen indul a program) és inverzben látjuk azt a sort, amelyik következönek végre fog hajtódni.

Ha az F7-et megnyomjuk, akkor hajtódik végre az utasítás és ugrunk a következöre. Nyomjuk meg párszor az F7-et és azt tapasztalhatjuk, hogy a watch ablak mindig mutatja a benne levö regiszterek aktuális értékét. Ha valamelyik regiszter megváltozott az elözö lépés óta, azt pirossal tünteti fel. Zavaró lehet, hogy egy jó ideig bináris értékeket ír a program az akkumulátorba, de a watch ablak hexadecimálisan írja ki. A kijelzés átírásához klikkeljünk a watch ablak bal felsö sarkában levö ikonra (Windows 3.1 és 3.11 alatt a bal felsö sarokban levö mínusz jelre) és válasszuk ki az Edit Watch menüpontot. Válasszuk ki a "w"-t, majd nyomjuk meg a Properties gombot. Válasszuk ki a Binary opciót, majd nyomjunk OK-t.

Ugyanezt tegyük meg a "PORTB" regiszterrel is. Ha azzal is megvagyunk, nyomjunk Close-t az Edit Watch Symbol ablakon és vissztérünk a föképernyöre.
Most már a kijelzés tökéletes. Minthogy a PORTB regisztert is átállítottuk binárisra, láthatjuk hogy - virtuálisan - éppen melyik LED világít és melyik nem. Tanulámnyozzuk, hogy hogyan dolgoznak az egyes utasítások. Érdemes felvenni a watch ablak listájába még a T1 és T2 regisztereket, hogy jobban láthassuk a DELAY szubrutin müködését. Ehhez tegyük aktívvá a watch ablakot és nyomjunk rajta egy Insert billentyüt. A felugró menüböl pedig válasszuk ki a T1-et, majd klikkeljünk az Add gombra. Ezután válasszuk ki a T2-t és megint klikkeljünk az Add gombra. Végül zárjuk be az ablakot a Close gombbal. A már megismert módon megváltoztathatjuk a kijelzést - ezúttal ajánlott decimálisra, mert abban jobban láthatjuk a két regiszter csökkenését. Nézegessük a program futását, érdemes kísérletezgetni. A programot újraindítani az F6 billentyüvel tudjuk.



Beégetés

PIP02 (Csak a COM84 égetöhöz!)

Lássuk, hogyan müködik a program, mikrokontrollerrel! A letölthetö PIP02 égetöprogram DOS alapú, de gond nélkül müködik Windows alatt is, amennyiben számítógépünk órajele nem haladja meg az 500 MHz-et. Ha ennél gyorsabb gépünk van, akkor használjuk a valamivel bonyolultabb IC-Prog szoftvert. (Ez fut 500 MHz alatt és felett is, de csak Windows alatt.) Az IC-Prog útmutatója a következö fejezetben található.

A PIP02-t kicsomagolás után indítsuk a START.BAT fájlal. Ha a PIC égetö nem a COM2 portra csatlakozna, akkor ezt módosítsuk a START.BAT fájlon belül egy szövegszerkesztö segítségével. Az égetöprogramot elöre beállítottam PIC16F84-re és a megfelelö égetöre (melynek kapcsolási rajza az elözö számban található meg), így nem lesz semmi gondunk vele.
Miután a programot elindítottuk, válasszuk ki a File/Load menüpontot, vagy egyszerüen nyomjunk F3-at. Keressük meg a projektkönyvtárunkat. A lefordítás során generált nekünk az MPLAB egy ELSO.HEX nevü fájlt. Ezt jelöljük ki (vagy írjuk be felülre a nevét) és nyomjunk Open-t.

Ha még eddig nem tettük volna meg, helyezzük a PIC-et az égetöbe, ügyelve a helyes polaritásra! Ezután válasszuk ki a Device/Program menüpontot, vagy egyszerüen nyomjunk F5-öt. Az égetés megkezdödik. Eközben egy folyamatjelzö mutatja, hány százalékig van meg az égetés.

Az égetés végén ha egy emelkedö "füttyentést" hallunk és nem kapunk semmilyen üzenetet, akkor az égetés sikeres. (Ha teljesen biztosra akarunk menni, akkor F6-ra visszaolvassa az égetöprogram a PIC-böl az adatokat és leellenörzi hogy a betöltött fájlal megegyeznek-e. Siker esetén ugyanezt a hangeffektet kapjuk, szintén üzenet nélkül.)
Ha csak egy rövidebb sípolást kapunk és egy "Error Programming Device" üzenetet, akkor az égetés nem sikerült. Ilyenkor ellenörizzük a PIC égetöben való polaritás-helyességet, valamint sokszor segít ha elöször kitöröljük a Device/Erase menüponttal a PIC tartalmát. (Ez utóbbi esetben mindig a "füttyentés" hangot hallatja a program, függetlenül a sikerességtöl.) Ha ez sem segít, próbáljuk meg újraindítani vagy DOS alól futtatni a programot.
A fütty után a PIC-et kivehetjük az égetöböl és a próbapanelen kipróbálhatjuk. A PIC16F84-et újra lehet programozni, tehát nem kell félnünk attól, hogy "véglegesen" írtunk bele valamit, mint egy írható CD-nél. (A PIC 16C84 ellenben csak egyszer írható, ezért ügyeljünk arra, hogy milyet veszünk!)

IC-Prog

Ha IC-Prog-ot használunk, akkor az alábbi leírás segítségével állíthatjuk be a programot, ill. égethetünk vele.
Elöször is csomagoljuk ki a fájlokat egy könyvtárba, majd futtassuk az ICPROG.EXE fájlt. Minthogy elsö alkalommal indítjuk a programot, figyelmeztetni fog, hogy be kell konfigurálnunk. Nyomjunk OK-t a figyelmeztetésre, majd a megjelenö konfigurációs ablakban állítsuk be a menüpontokat az alábbi ábra szerint (A COM portot természetesen a saját gépünknek megfelelöen állítsuk be):





A JDM a COM84-gyel kompatíbilis égetö. Amennyiben más kapcsolást használunk, természetesen annak megfelelöen kell beállítani az égetö típusát.
Nyomjunk OK-t. Ha NT alapú Windows-t használunk (ide tartozik a Windows NT, Windows 2000 és Windows XP), akkor valószínüleg kapunk pár hibaüzenetet. Ezekkel egyelöre ne foglalkozzunk (okézzuk mindet), következö lépésben oldjuk meg azt, hogy a program hibátlanul menjen.
A következö lépést csak NT alapú Windows-t használóknak kell megtenni!
Válasszuk ki a Settings/Options menüpontot, a megjelenö ablakban pedig a Misc fület. Itt pipáljuk ki az Enable NT/2000/XP driver jelölönégyzetet! A program saját maga újraindítását fogja kérni, erre válaszoljunk Yes-szel.



A program újraindul, majd megerösítést kér a driver feltelepítésére. Erre is válaszoljunk Yes-szel. Most már a program müködik NT alatt is.

Mostantól a Win 95/98/Me-vel rendelkezök is csinálják:
A jobb-felsö sarokban levö legördülömenüböl (melyben SDA3506 van éppen kijelölve) válasszuk ki a PIC16F84-et. Az ablak kissé átalakul, mostantól teljesen be van állítva a program PIC16F84 égetésre. Próbáljuk ki a
teszt.hex fájllal!
Nyissuk meg a TESZT.HEX-et a File/Open menüparanccsal, vagy a nyitott mappa ikonnal!





Ha az égetöt csatlakoztattuk és a PIC is benne van, akkor klikkeljünk a második IC ikonra (a villámosra), vagy válasszuk ki a Command/Program All menüpontot, vagy egyszerüen nyomjunk F5-öt. A program rákérdez, hogy valóban fel akarjuk-e programozni a PIC-et. Nyomjunk Yes-t. (Érdekességképpen törlésnél ezt nem kérdezi meg a program, hanem azonnal töröl.)



Az égetés három fázisból áll: Elöször a program kerül be a memóriába, aztán a 64 bájtos EEPROM (késöbbiekben lesz annak a használatáról is szó), majd végül a beállítások. (Watchdog Timer, kódvédelem stb., szintén késöbb lesz róluk szó)
Ezután visszaolvassa a PICböl az adatokat a program, ellenörizve ezzel, hogy sikerült-e az égetés. Az eredményröl egy kis ablakban tájékoztat.


Találat: 25