kategória | ||||||||||
| ||||||||||
| ||
|
||||||||||
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.
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 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.
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!)
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: 813