31. julija, 2007

Prvi koraki v Bascom 8051 programu

1.2 Uporaba simulatorja v Bascom-8051

Večina uporabnikov Bascom programskega jezika že ve, da ima Bascom-8051 vgrajen simulator. Z njegovo pomočjo boste lahko spremljali izvajanje vašega programa. Simulator ponavadi potrebujemo takrat, ko se program ne izvaja tako, kot bi mi želeli oziroma takrat, ko iščemo napako v programu. Takrat si bomo pomagali s simulatorjem, kjer bomo korak za korakom spremljali izvajanje programa in tudi spremljali vrednosti spremenljivk. Že kar na začetku pa povejmo, da ta simulator ne deluje v realnem času, kar pomeni, da se rutine izvajajo z določeno zakasnitvijo o čemer bo govora v nadaljevanju tega poglavja.

Zagon simulatorja

Slike BTPP BTPP 11d - Prvi koraki v Bascom 8051 programu Slike BTPP BTPP 11e - Prvi koraki v Bascom 8051 programu Pred zagonom simulatorja moramo imeti odprto aktivno okno datoteke oziroma programa, ki ga želimo spremljati na simulatorju. Program moramo predhodno prevesti (Compile). Predlagamo, da na vrhu vašega Bascom programa napišete ukaz $sim in program še enkrat prevedete. S tem ukazom namreč programu simulatorja dopovemo, da se razne časovno zakasnitvene ukaze (npr. Wait 1 itd.) ignorira. V nasprotnem primeru bo simulator izvajal ukaz zelo dolgo, saj se simulacija, kot rečeno, ne izvaja v realnem času.

Simulator zaženemo s pritiskom na tipko Simulate ali pritisnemo tipko F2. Po zagonu se nam odpre okno simulatorja. V simulatorju boste opazili več tipk. Na vrhu v levem kotu so tipke, s katerimi zaganjamo, ustavljamo in prekinjamo delovanje simulatorja oziroma izvajanje programa. Poleg teh treh tipk (Start , Pavza in Stop ) sta še tipki, ki omogočata izvajanje programa po korakih oziroma po nastavljenih t.i. Break pointih.

S pritiskom na Start tipko pričnemo s simulacijo programa, ki se precej počasneje odvija na našem zaslonu kot v mikrokontrolerju. Kljub temu, da je izvajanje programa počasnejše, je še vedno prehitro za spremljanje izvajanja. Zato si pomagamo z drsnikom , s katerim upočasnimo izvajanje programa. To naredimo tako, da kliknemo na drsnik in ko še držimo levo tipko miške pritisnjeno, premaknemo drsnik levo oziroma desno. V kolikor želimo začasno ustaviti program, da recimo preberemo vrednost neke nastavljene spremenljivke, potem to storimo s pritiskom na tipko Pavza. Program lahko nato izvajamo po korakih s tipko , ki se nahaja poleg tipke Stop. Sosednja tipka pa nam omogoča izvajanje programa po korakih med nastavljenimi prekinitvenimi točkami (Break Point, BP).

Prekinitvene točke v simulatorju so mesta, kjer se izvajanje simulatorja začasno ustavi. Če analiziramo dolg program želimo, da se določene rutine simulirajo hitro. Prekinitvene točke ponavadi postavljamo tam, kjer želimo videti, kako se program obnaša ob določenih pogojih oziroma kakšne so vrednosti spremenljivk. Prekinitvene točke v simulatorju nastavljamo tako, da se s kurzorjem v spodnjem oknu postavimo na program tam, kjer želimo imeti prekinitev. S klikom na desni gumb miške se nam odpre okno, kjer kliknemo Toggle breakpoint. Tako je označeno mesto v programu, kjer se bo izvršila začasna prekinitev simulacije. Prekinitvene točke izbrišemo tako, da ponovimo ravnokar opisani postopek (T oggle breakpoint).

Slike BTPP BTPP 11f - Prvi koraki v Bascom 8051 programuTipka Stop nam ustavi izvajanje programa in v kolikor še enkrat pritisnemo Start tipko, program štarta od začetka. Torej je funkcija Stop tipke tudi neke vrste reset programa, saj se vse vrednosti spremenljivk postavijo na začetne vrednosti.

Naslednja tipka nam odpre okno, kjer lahko opazujemo izvajanje programa na zunanjih priključkih mikrokontrolerja. V tem oknu boste videli dve ali štiri vrstice LED-ic in LED prikazovalnikov. Dve vrstici LED-ic se pojavita takrat, ko imamo v Bascomu izbrane mikrokontrolerje, ki imajo samo 20 priključkov (AT89C2051 in AT89C4051). Ta izbor nastavimo v meniju Bascom/Compiler/Misc. V kolikor izberemo mikrokontroler s 40 priključki, bomo videli 4 vrstice LED-ic.

V oknu za hardversko simulacijo vidimo okenca CG (common ground). Kljukice v teh oknih nam olajšajo simulacijo takrat, ko spremljamo prižiganje oziroma ugašanje LED-ic. Namreč pri realnem mikrokontrolerju LED-ice vklopimo z logično 0 na izhodu. Prve verzije simulatorja so vklapljale LED-ice samo z logično 1, kar ne ustreza realni situaciji. Zato je proizvajalec Bascoma uvedel okenca CG, kjer si sami nastavimo konfiguracijo svetenja LED-ic. V kolikor je kljukica v CG oknu to pomeni, da bodo LED-ice v simulatorju svetile z logično 1, v kolikor kljukice v CG oknu ni, bodo LED-ice svetile ob logični 0 na izhodu mikrokontrolerja. Z enojnim klikom na vsako LED-ico dosežemo to, da se LED-ica prižge oziroma ugasne. Na ta način tudi spremenimo vrednost spremenljivke, ki je dodeljena ustrezni LED-ici oziroma vhodno/izhodnim vratom.

Na desni strani LED-ic je postavljen 7-segmentni prikazovalnik. Če z desnim gumbom miške kliknemo na enega od segmentov, se nam odpre okno, kjer lahko izberemo na katerem izhodnem portu se nahaja ustrezen segment prikazovalnika. Pri nastavitvi izhodnih portov je pomembno, da vsak port, ki ga spremenimo, potrdimo s pritiskom tipke Enter . Ko smo naredili vse spremembe, vse skupaj potrdimo s klikom na gumb OK . Na žalost tukaj CG okenca ne delujejo in bodo torej segmenti v simulaciji svetili drugače, kot v realnosti.