You are on page 1of 13

MIKROKONTROLERSKI SISTEMI D U [ K O \ U R I ^ I N dipl.

ing

Softver kontakt: djdusko@eunet.yu

B AS C O M- 8 0 5 1 : Wi n do w s B AS I C
kompajler za 8051
Verujem da je ve}ina nas zapo~injala svoje ra~unarsko opismenjavanje - pro-
gramiranje uz pomo} BASIC-a jer je bio izuzetno lak za rad. Zamislite sada tu
lako}u pisanja programa pomo}u BASIC-a ali ovog puta pri programiranju
mikrokontrolera...

S amo ime BASIC je skre}enica od:


Begginers All-purpose Simbolic
Instruction Code. Jednostavno re~eno pro-
ISP (IIn System Programming - omogu}uju
nam programiranje kontrolera bez va|enja
istog iz ciljnog ure|aja) pa jo{ razno-razna
gramski jezik za po~etnike. Ovaj atribut, "za pomagala ali softverske alatke sa kojima sve
po~etnike", ga je dugo pratio te mnogi pro- to obavljamo se u glavnom nisu menjale
grameri koji su "dr`ali" do sebe i svog pro- (mislim, mi ih nismo menjali) ba{ ne{to
gramerskog renomea, ~esto su ga bez naro~ito - ili da budemo iskreni, nismo bili
posebnih razloga izbegavali. pri parama da sebi priu{timo nekakav ozbil-
jan razvojni sistem u nekom vi{em pro-
Pa ipak, svedoci smo da i posle toliko vre- gramskom jeziku, sa dibagerom i drugim
mena, ~ak i pojava novih programskih jezi- pomagalima (~ast izuzecima).
n S v i ma n a ma k o j i s e ka, BASIC zauzima zavidno mesto u
b a v i mo mi k ro k o n t ro l e ri - masovnosti upotrebe a i onaj nesretni atribut Uglavnom se pisalo u asembleru, nadgleda-
ma j e d o b ro p o zn a t ga polako napu{ta. Postao je mo}na, savre- lo i simuliralo opet na nekim drugim soft-
razvoj ni proces pi sanj a- mena, {iroko priznata programska alatka. verskim paketima, programiralo se na
b ri s an j a "p ro g rama" d o k (pravljenim) programatorima za koje je
se ne do|e do kona~nog A kakvo je stanje u oblasti programiranja obi~no bilo problema da se nabavi nova
re{enj a. K ako t o l ako i mikrokontrolera? Uglavnom se programi- verzija programa za podr{ku novog tipa
krat ko i zg l ed a o vako ralo pomo}u asemblera, u skorije vreme mikrokontrolera i...
napi sano na papi ru. A u sre}e se C jezik ali u veoma poznatom nam ...
p ra k s i ... P a j o { a k o p ro - BASIC-u, mo`e se re}i, skoro nimalo. ...i sve je to na kraju ipak i radilo.
g ram u p i su j emo u
k l a s i ~ a n E P R O M. . . No vratimo se samom naslovu ovog ~lanka. B A S C O M = B A S i c C O Mpi l e r
BASCOM-8051 je programski produkt koji
n H o l a n d s k a f i rma }emo u nastavku opisati i poku{ati da Vas No da li sada mo`e sve to nekako lak{e?
MC S E l ect ro n i cs j e p ro - zaintrigiramo za isti. Ukoliko ste Naravno. Upravo pomenuti BASCOM-
gramski m paket om B A S - zaljubljenik mikrokontrolera i njihovog pro- 8051 je sjajno re{enje za gore opisani sce-
C O M-8051 obuhvat i l a gramiranja ili se mo`da time profesionalno nario. Radi se o BASIC kompajleru za Intel-
sl e d e}e ko mp o n e n t e bavite, evo prikaza jedne izuzetno zan- ovu familiju MCS-51 mikrokontrolera i
ra zv o j n o g s i s t e ma : imljive alatke za tu namenu. njegovih derivata koje danas proizvode
Philips, Siemens, Dallas, Atmel, Temic i
n Celokupan softver je MI K R O K O N T R O L E R I . . . drugi.
pi san za MS Wi ndows
95/ 98/ N T. I sporu~uj e se Svima nama koji se bavimo mikrokontroler- Holandska firma MCS Electronics je pro-
n a t ri d i s k e t e i p o s l e ima je dobro poznat razvojni proces pisanja- gramskim paketom BASCOM-8051 obuh-
ra s p a k i v a n j a a rh i v a i brisanja "programa" dok se ne do|e do vatila slede}e komponente razvojnog sis-
s t a rt o v an j a "s et u p " p ro - kona~nog re{enja. Kako to lako i kratko tema:
grama mo`emo se izgleda ovako napisano na papiru. A u prak- Editor
upust i t i u rad sa B A S - si... Pa jo{ ako program upisujemo u BASIC kompajler
COM-om. klasi~an EPROM... Asembler
Simulator
No tehnologija je napredovala, pojavili su se Terminal emulator
mikrokontroleri sa FLASH memorijom pa LCD dizajner

^asopis za automatiku, elektroniku, programiranje i informisanje 63


BASCOM-8051

LIB menad`er ~isto edukativan - da testirate rad generi{u se mogu po `elji


Programator (programski deo) pojedinih BASIC naredbi, mada se u uklju~iti/isklju~iti (meni - Options /
2KB da dosta toga napisati... Compiler /Output) a na raspolaganju
Celokupan softver je pisan za MS Pa da nastavimo sa opisom kako bi su nam HEX datoteka, HEX datote-
Windows 95/98/NT. Isporu~uje se smo lak{e potom sve i isprobali. ka u starom Intel-ovom formatu,
na tri diskete i posle raspakivanja Debug fajl (koristi ga simulator),
arhiva i startovanja "setup" progra- R AZ VO J N O O KR U @ E N J E Report fajl te Error fajl.
ma mo`emo se upustiti u rad sa Slede}a po redu je ikona sa rukom i
BASCOM-om. Jedna mala napom- Startovanjem BASCOM-a otvara papirom i omogu}ava nam uvid u
ena u vezi same instalacije, instala- nam se IDE (Integrated rezultat kompajliranja (Report fajl).
ciona procedura zahteva da imate Development Enviroment) - razvo- Primer jednog izve{taja o kompajli-
prijavljen bar jedan {tampa~ na jno okru`enje unutar koga }emo ranju je dat na slici 3. Pored
va{em ra~unaru pre startovanja obavljati sve poslove te mo`emo osnovnih "sistemskih" podataka
"setup" programa. Dakle ukoliko zapo~eti sa pisanjem programa. Radi (verzija kompajlera, tip mikrokon-
nemate instaliran {tampa~ prvo se o kvalitetnom editoru koji pozna- trolera, datum i sl.) imamo detaljan
instalirajte {tampa~ pa tek potom je sve "cake" na koje nas je prikaz svih upotrebljenih resursa
pokrenite instalaciju BASCOM-a. Windows radno okru`enje naviklo, mikrokontrolera kao i spisak
Naravno da {tampa~ ne morate imati na primer, pritiskom na F1 funkcijs- kori{tenih promenljivih, njihov tip,
fizi~ki priklju~en. ki taster otvara nam se help sistem sa adrese na kojima se nalaze i to u
IMAM ^AST DA obja{njenjem za naredbu na kojoj je heksadecimalnoj i decimalnoj
NAJAVIM... bio kursor. Pored obja{njenja sin- notaciji. Na kraju liste, ne vidi se na
takse za svaku naredbu, dat je i mali slici, stoji spisak kori{tenih konstan-
Mo`da se pitate pa za{to vas gnjav- primer upotrebe naredbe koji ti i njihove vrednosti.
im sa svim ovim detaljima oko mo`emo iskopirati u editor ukoliko
instalacije? Evo i odgovora. Uspeo `elimo da ga isprobamo ili koristi- Slede}a u nizu je ikona sa ~ipom ali
sam, prvenstveno zahvaljuju}i pre- mo. ovog puta crvene boje. Pritiskom na
dusretljivosti gospodina Mark C. Na slici 2. je dat prikaz tool bar-a t.j. ovo dugme pokre}emo simulator u
Alberts-a iz MCS Electronics, da dugmi}a sa ikonama pa }emo ih koji se automatski u~itava teku}i
ekskluzivno za ~asopis Mikro redom pregledati. Krenimo s leva na program iz editora. Naravno,
Elektronika pribavim BASCOM- desno. Prve dve ikone su verujem potrebno je da program bude
8051 DEMO koji se mo`e down- op{te poznate te ih ne}u posebno ni prethodno i kompajliran jer simula-
load-ovati sa sajta Mikro opisivati. Tre}a ikona je "Save File" tor osim izvornog koda u~itava i
Elektronike! Koliko je to sve a slede}a "Save File As". Li~no mi DBG fajl koji se generi{e tek pri-
ekskluzivno proceni}ete sami kada se veoma dopada {to je opcija sni- likom kompajliranja. Ovo je va`no
Vam ka`em da i pored veoma razvi- manja teku}eg programa pod drugim imati na umu naro~ito ako smo ve}
jene distributivne mre`e (prodaje se imenom "na dohvat mi{a". Narednih kompajlirali program pa potom
na svim kontinentima) pomenuti sedam ikona su opet op{te poznate te dodali - izmenili ne{to. Ukoliko
DEMO u svetu distribuira samo jo{ idemo na ikonu sa dvogledom koja ponovo ne kompajliramo program u
jedan ~asopis i isti (misli se na slu`i za nala`enje specificiranog simulatoru }emo imati prethodnu
DEMO) se ne mo`e na}i ni na sajtu teksta. Zatim sledi ikona sa papirom verziju!
MCS Electronics (www.mcselec.com)... i "{trikliranim" znakom (neki bi Pretpostavljam da svi ve}
rekli, kao logo na nekim poznatim naslu}ujete ~emu slu`i dugme sa
Dakle, ne}ete morati da `murite i patikama). Pritiskom na ovo dugme ZIF-om kao ikonom. To je poziv -
zami{ljate kako izgleda i radi ovo o vr{i se sintaksna provera napisanog start programatora. U zavisnosti
~emu ~itate. Imate mogu}nost da po programa i nikakvi fajlovi se ne kako podesimo razvojno okru`enje
~itanju ovog prikaza odmah probate generi{u. (Option stavka u meniju) pritiskom
i uverite se u valjanost istog. DEMO Sledi ikona sa ~ipom. Ovim dugme- na ovo dugme mo`emo samo "poz-
verzija je potpuno funkcionalna sa tom startujemo kompajler. Kao vati" program za rad sa programa-
jedinim ograni~enjem da generisani rezultat (ukoliko nema sintaksnih torom i potom ru~no odraditi sve
kod ne mo`e biti ve}i od 2KB. gre{aka) dobijamo binarni - izvr{ni potrebno ili pak podesiti da
Cilj ove DEMO verzije nije da Vam kod za na{ mikrokontroler. Propratni automatski zapo~ne programiranje
omogu}i da pi{ete "program", ve} fajlovi koji se u ovom procesu uz, opciono, i verifikaciju po obavl-

Slika 2. Toolbar

64 MIKROELEKTRONIKA Novembar / Decembar 2000


BASCOM-8051

Slika 3. Izgled
Report fajla
|
Da ne bi ste napu{tali razvojno
okru`enje radi testiranja serijske
komunikacije va{eg ure|aja u
razvoju, mo`ete se poslu`iti sasvim
solidnim, ugra|enim terminal emu-
latorom. Ako pak koristite neki od
monitorskih programa za Va{u
razvojnu plo~u, opcijom "File
Upload" mo`ete "preneti" teku}i
program u HEX formatu moni-
torskom programu. Unutar
pode{avanja za monitorski program,
mo`ete opciono specificirati i
zaglavlja koja }e biti poslata pre
odnosno posle slanja samog HEX
fajla kao {to je prikazano na slici 5.
Tako|e se, po `elji, mo`e specifici-
rati i ka{njenje u ms posle svake
poslate linije. Jedino u slu~aju da
posedujete ALTAIR ROM, umesto
HEX datoteke {alje se binarni fajl.
Komunikacija se obavlja na brzini
(Baud Rate-u) koja je odre|ena za
terminal emulator sem za spomenuti
ALTAIR ROM gde je
podrazumevana komunikacija 115K
Baud-a. Zapo~eti prenos se prekida
pritiskom na ESC taster. Podesivi
parametri terminal emulatora su
prikazani na slici 6.

Ostale su nam jo{ dve ikone. Znak


pitanja je, naravno, startovanje help
sistema a vrata su za "izlazak" iz
Slika 4. Pode{avanje opcija programatora ~ BASCOM IDE-a - kraj rada.

jenom programiranju. Sam BAS-


COM podr`ava, dakle ima ugra|en
softver za rad sa jedanaest vrsta pro-
gramatora i plus podr{ku eksternom
programatoru - programatoru kojeg
ste napravili/kupili a nije u listi onih
jedanaest pomenutih. Na slici 4.
imate prikaz konfiguracionog
ekrana za izbor programatora koji je
pode{en za rad sa eksternim pro-
gramatorom. Vrati}emo se na pro-
gramatore malo kasnije a sada da
polako zavr{imo zapo~eti opis.
Slede}a ikona pretstavlja terminal
emulator.

Slika 5. Pode{avanje opcija monitora }

^asopis za automatiku, elektroniku, programiranje i informisanje 65


BASCOM-8051

Compiler / LCD) postoji i "check


box" kojim se nala`e LCD dizajneru
da gornja tri bita budu setovana
(slovna matrica je 5x8 bita) - slika 8.
Naime, postoje LCD-ovi koji ne
prikazuju ispravno definisane
karaktere ukoliko nemaju zadovol-
jen prethodno pomenut uslov! Na
slici 8. vidimo i mogu}nost da BAS-
COM-u "saop{timo" na kojim
pinovima su vezani pojedini signali
LCD-a, tako da u programu samo
koristimo naredbe za rad sa LCD-
om dok BASCOM pri kompajliran-
ju vodi ra~una o hardverskom
Slika 6. Pode{avanje opcija komunikacije ~ povezivanju i generisanju signala.

Od stavki u meniju skrenuo bih pritiskom na OK dugme, u progra-


pa`nju na slede}e: mu na mestu gde nam se nalazio
kursor, dobijamo:
LCD dizajner
LIB manager Deflcdchar ?,2,4,14,17,16,16,17,14

Izborom Tools / LCD designer t.j. BASCOM-ovu naredbu za


otvara nam se prozor kao na slici 7. generisanje nacrtanog znaka. Jedino
Poznato Vam je da standardni LCD je potrebno umesto znaka pitanja
ima pored CG ROM-a i CG RAM upisati broj od nula do sedam (jer
(Character Generator RAM) u kome LCD ima osam UDG karaktera)
mo`emo definisati proizvoljne odnosno adresu na kojoj }e biti
znake i/ili simbole (ili koji mo`emo sme{ten definisani znak. Sada kada
koristiti kao obi~an RAM za na{ nam zatreba prethodno definisani Slika 7. Korisni~ki znak ~
kontroler). Ovom alatkom mo`emo znak jednostavno koristimo stan-
lako dizajnirati UDG (User Defined dardnu naredbu za ispis na LCD i Ka`em imamo mogu}nost, po{to se
Graphics) karaktere pri radu sa potom `eljeni UDG karakter: isto mo`e uraditi i eksplicitno u
LCD-om. Da ne bi smo "pe{ke" LCD Chr(n) samom programu naredbom:
prera~unavali setovane bite za gde je n adresa UDG karaktera. Za
definisani karakter, potrebno je jed- detalje pogledajte u Help-u. U CONFIG LCDPIN = PIN, DB4=
nostavno ucrtati pomo}u mi{a okviru konfigurisanja BASCOM-a P1.1, DB5=P1.2, DB6=P1.3,
`eljeni znak u matricu kao na slici i za rad sa LCD-om (Options / DB7=P1.4, E=P1.5, RS=P1.6

~ime se prethodno definisane vred-


nosti u Options/Compiler/LCD
poni{tavaju. Ne bih trebao da se
du`e zadr`avam i obja{njavam
podr{ku LCD-u u ovom "uvodnom"
delu, no moram da naglasim da je
ona izuzetna. Tako na primer, pored
4-bitne podr{ke LCD-a (tzv. smart
mode) BASCOM mo`emo konfig-
urisati i za rad sa 8 bita t.j. u BUS
modu(direktiva $LCD=&Haddress),
kao i kombinaciju pomenutih modo-
va - LCD se nalazi mapiran u mem-
Slika 8. Pode{avanje opcija
kompajlera
|

66 MIKROELEKTRONIKA Novembar / Decembar 2000


BASCOM-8051

orijskoj mapi mikrokontrolera ali kori{tene promenljive i njihov tip stringa. Dakle string dimenzije 10
radi sa 4 bita... kao i sve kori{tene potprograme - bajtova zauzima 11 bajtova memo-
Za kraj ovog opisa ostalo mi je jo{ funkcije. U zavisnosti od tipa rije.
da spomenem LIB menad`er. Ovo je promenljive definisano je i njeno
zapravo novitet koji postoji tek od memorisanje. Pa tako: BASCOM inicijalizuje procesor i
verzije 1.0.0.20 a to je ujedno i verz- uklju~uje rutine iz biblioteka spram
ija DEMO BASCOM-a koji Vam Bit promenljiva zauzima 1/8 bajta kori{tenih naredbi u napisanom pro-
nudimo. Kada iz Tools/LIB manag- (BASCOM "sla`e" bit promenljive gramu. Ono {to uvek uradi je inici-
er izaberemo ovu opciju, pojavi}e tako da popunjava bit adresibilni jalizacija SP (Stek Pointer-a) i
nam se prozor kao na slici 9. deo internog RAM-a) interne Error bit promenljive. Sve
Izborom biblioteke sa leve strane Byte promenljiva se memori{e ostalo je zavisno od kori{tenih
dobijamo na uvid koje sve rutine kao osmobitni broj bez predznaka. naredbi. Ukoliko pak `elimo da
sadr`i doti~na biblioteka te mo`emo Opseg vrednosti od 0 do 255. apsolutno raspola`emo resursima
mikrokontrolera, mo`emo pomo}u
kompajlerskih direktiva $NOINIT i
$NOSP nalo`iti kompajleru da ni{ta
od resursa ne inicijalizuje - zauzi-
ma.

Sve kori{tene promenljive se, uko-


liko se druga~ije ne navede,
sme{taju u interni RAM mikrokon-
trolera pa otuda i postoje
ograni~enja u vezi maksimalnog
broja kori{tenih promenljivih.

Maksimalni broj BIT


promenljivih 120
Maksimalni broj BYTE
promenljivih 20
Maksimalni broj INTEGER/
WORD promenljivih 10

Navedene cifre ipak treba uzeti sa


Slika 9. LiB menad`er ~
rezervom jer se prvenstveno odnose
da ih dodajemo ili bri{emo. Na ovaj Integer (dva bajta) - memori{e se na "klasi~an" 8051 mikrokontroler
na~in mo`emo lako organizovati kao {esnaestobitni broj sa predz- sa 128 bajta internog RAM-a. Ve}
svoje rutine, no vremenom }e biti nakom. Opseg vrednosti od -32.768 za 8052 i sli~ne mikrokontrolere koji
dodate i "interne" rutine BASCOM- do 32.767. imaju 256 bajta internog RAM-a
a te }e ih korisnici mo}i sami, po Word (dva bajta) - memori{e se ra~unica je druga~ija (samo se ne
potrebi, prilago|avati svojim speci- kao {esnaestobitni broj bez predz- pove}ava broj bit promenljivih po{to
fi~nostima. naka. Opseg vrednosti od 0 do se one memori{u u bit adresibilnoj
65.535. zoni RAM-a mikrokontrolera - u
ISPOD HAUBE Long (~etiri bajta) - memori{e se prvih 128 bajta RAM-a). Zatim,
kao tridesetdvobitni broj sa prez- zavisno od broja potprograma i nji-
Po{to smo se upoznali sa osnovama nakom. Opseg vrednosti od - hovih gne`|enja zauzimamo i vi{e
BASCOM-ovog razvojnog 2.147.483.648 do 2.147.483.647. prostora za SP, te nije lako dati gen-
okru`enja da vidimo sa ~ime to Single (~etiri bajta) - memori{e se eralnu ocenu o zauze}u mikrokon-
zapravo raspola`emo t.j. {ta BAS- kao tridesetdvobitni binarni broj u trolerskih resursa. U dokumentaciji
COM zapravo poseduje od komandi skladu sa IEEE notacijom za se navodi podatak da je maksimalno
i kako raspola`e resursima pokretni zarez jednostruke pre- zauze}e memorije od strane kompa-
mikrokontrolera. ciznosti. Opseg 1E-38 do 1E+38 jlera (sa SP-om) 56 bajta i da zavisi
String - maksimalna du`ina string od kori{tenih naredbi.
BASCOM program veoma li~i na promenljive je 254 bajta. Na kraju
MS QBASIC t.j. na po~etku pro- svakog stringa postoji jo{ jedan bajt Spomenutu zavisnost zauze}a resur-
grama je potrebno definisati sve vrednosti 0 koji ozna~ava kraj sa mikrokontrolera pogledajmo na

^asopis za automatiku, elektroniku, programiranje i informisanje 67


BASCOM-8051

slede}em primeru. Ukoliko na{ pro- kako u internom tako i u eksternom $BAUD
gram sadr`i PRINT ili INPUT RAM-u, te u slu~aju da se radi o $CRYSTAL
naredbu BASCOM, po ugledu na eksternom RAM-u BASCOM za $DEFAULT XRAM
poznati Intel-ov 8052AH-BASIC njih pru`a neograni~enu podr{ku t.j. $IRAMSTART
mikrokontroler koji ima ugra|en jedino kapacitet Va{e eksterne $LARGE
BASIC interpreter, inicijalizuje memorije pretstavlja limit. $LCD
TIMER1 mikrokontrolera kao $MAP
"Baud rate" generator za serijsku Imena promenljivih i labela mogu $NOBREAK
komunikaciju preko koje se vr{i biti du`ine do 32 karaktera. $NOINIT
ispis odnosno unos podataka. Maksimalni broj ALIAS naredbi je $NONAN
128. Maksimalni broj labela je 5000. $NOSP
Drugi primer je vezan za kori{tenje Maksimalni broj imena $OBJ
interapt rutina. Na "ulasku" u rutinu promenljivih je 1000 (ako nekome $RAMSIZE
za obradu prekida BASCOM gurne ovo nije dovoljno u MCS-u }e mu $RAMSTART
na stek 23 registara (i isto toliko ih i rado iza}i u susret te napraviti speci- $REGFILE
skine sa steka na "izlasku") tako da u jalnu verziju za podr{ku i ve}eg $ROMSTART
prekidnoj rutini mo`ete slobodno broja promenljivih). Maksimalni $SERIALINPUT
koristiti bilo koju naredbu po{to je broj gne`|enja pojedinih naredbi je: $SERIALINPUT2LCD
kompletan softverski kontekst $SERIALOUTPUT
glavnog programa sa~uvan. Ukoliko FOR .. NEXT 50 $SIM
vam treba br`i "odziv" pri obradi IF .. THEN 50
prekida, potrebno je da u programu DO .. LOOP 50 Jedna od veoma lepih osobina BAS-
napi{ete: WHILE .. WEND 50 COM-a je i to {to omogu}ava lako
SELECT .. CASE 25 "preplitanje" asemblerskog koda i
ON Interrupt Label NOSAVE BASIC-a. Direktivama $ASM -
DIREKTIVE KOMPAJLERA $END ASM ozna~avamo blok u
(gde je Interrupt: INT0, INT1, SER- kome sledi ~isto asemblerski kod.
IAL, TIMER0 ,TIMER1 ili Spomenuo sam ve} nekoliko kom- No, BASCOM dozvoljava da i bez
TIMER2 a Label labela na kojoj pajlerskih direktiva i BASCOM- prethodnog "upozorenja" napi{emo
zapo~inje obrada prekida). Opcija ovih naredbi. Kako detaljan opis naredbe u asembleru. Upita}ete se
NOSAVE nala`e kompajleru da ne svake direktive i naredbe zahteva pa ~emu onda formalizam najave
generi{e kod za ~uvanje registara na prostor jedne knjige, u nastavku }u asemblerskog koda? Odgovor je,
stek. Sada je na korisniku da u zav- dati ~isto spisak klju~nih re~i a zbog labela. Svaku napisanu labelu
isnosti od upotrebljenih registara u opisa}u samo pojedine, "intere- BASCOM interno ozna~ava tako {to
samoj interapt rutini iste na ulasku santne" direktive - naredbe da Vam joj ispred doda ta~ku. Na primer:
sa~uva i po zavr{etku restaurira - olak{am sam po~etak rada sa BAS-
vrati im vrednosti koje su imali na COM-om. GOTO Test
ulasku u rutinu. Za sve detalje vezane za sintaksu i ...
prakti~nu primenu BASCOM-ovih Test:
Dakle, jedini pravi pokazatelj naredbi (i direktiva), osim u helpu
zauze}a resursa je izve{taj po kom- mo`ete pogledati i u primerima koje BASCOM "prevodi" u slede}i
pajliranju u kome imamo detaljan dobijate uz BASCOM. U procesu asemblerski kod:
prikaz svih promenljivih i njihovih instalacije BASCOM-a bi}e kreiran
adresa. Da bi se dobila jo{ potpunija i SAMPLES direktorijum, odmah LJMP .Test
slika preporu~ljivo je po kompajli- ispod samog BASCOM-ovog ...
ranju pokrenuti simulator i simu- direktorijuma, u kome imate primere .Test:
lacijom utvrditi maksimalnu dubinu upotrebe svake BASCOM-ove
steka (ispisuje se u statusnoj liniji naredbe. Savetujem Vam da Vidimo da ukoliko `elimo da refer-
simulatora). obavezno pogledate date primere te enciramo neku BASIC labelu iz
da ih probate i pod simulatorom. asemblera, treba da koristimo ime
U slu~aju da mikrokontroler raspo- labele ispred koje stoji jo{ i ta~ka.
la`e i eksternim RAM-om (na Od kompajlerskih direktiva BAS-
razvojnoj - ciljnoj plo~i) mogu}e je COM poznaje slede}e: Ako u asemblerskom kodu `elimo
definisanje promenljivih i u ekster- da referenciramo labelu koju ne}e
nom RAM-u. Isto tako i STRING $ASM - $END ASM koristiti BASIC ve} samo asembler,
promenljive mogu biti sme{tene $INCLUDE tada je potrebno staviti uskli~nik

68 MIKROELEKTRONIKA Novembar / Decembar 2000


BASCOM-8051

ispred labele, kao u slede}em U prethodnom primeru kod referen- kanala, te kristal koji }emo koristiti.
primeru: ciranja ni`eg bajta {esnaestobitne Kako Baud Rate zavisi od upotre-
promenljive mogli smo i da bljenog kristala t.j. ne mogu se za
LJMP Test izostavimo "+0". Obratimo pa`nju i sve vrednosti upotebljenih kristala
... na pisanje komentara. U BASCOM- dobiti sve standardne brzine za
!Test: u se komentar ozna~ava, pored komunikaciju, u izve{taju o kompa-
uobi~ajene komande REM, apos- jliranju imamo podatak koliki }e
Uskli~nikom se ina~e "saop{tava" trofom a u asemblerskim linijama se zapravo biti Baud Rate za upotre-
kompajleru da sledi (jedna) asem- mo`e korisiti i ta~ka-zarez (;;) znak. bljeni kristal, te mo`emo videti da li
blerska naredba. Ovo je va`no Blok komentar se zapo~inje sa '( se `eljena brzina mo`e ostvariti sa
zapamtiti za slu~aj da vam zatreba (apostrof i otvorena zagrada) a izabranim kristalom.
SWAP asemblerska naredba! Kako zavr{ava sa ') (apostrof i zatvorena Za kraj ovog skra}enog prikaza
postoji identi~na po sintaksi BASIC zagrada). kompajlerskih direktiva, spomenuo
naredba SWAP (ali sasvim druga~ija bih $REGFILE direktivu. Sa ovom
po semantici), do `eljene asem- Kao slede}u zanimljivu direktivu direktivom nala`emo kompajleru da
blerske naredbe dolazite kucaju}i: kompajlera, izdvojio bih $SIM. u~ita fajl sa opisom registara za
Ovom direktivom se nala`e kompa- `eljeni mikrokontroler:
!SWAP A jleru da NE generi{e kod za vre- REG51.DAT
menske pauze (tipa WAIT, WAIT- 8052.DAT
Ukoliko koristite pomenute direk- MS i DELAY) i prvenstveno je 80C51.DAT
tive $ASM i $END ASM, unutar namenjena za potrebe simulatora. 80C320.DAT
njih mo`ete referencirati labele Da ne bi smo ~ekali na izvr{enje 80C520.DAT
shodno gornjim pravilima. Na pomenutih pauzi, koje pri simulaciji 80515C.DAT
primer: znaju da se odu`e, dovoljno je na 80517.DAT
po~etku programa staviti ovu direk- 80535.DAT
Petlja: tivu, kompajlirati program i potom 80537.DAT
$Asm pokrenuti simulator. Ne zaboravite 80552.DAT
djnz a, Test da obri{ete pomenutu direktivu i 89C1051.DAT
sjmp .Petlja ponovo kompajlirate program pre 89C2051.DAT
Test: nego {to zapravo isprogramirate 89C4051.DAT
$End Asm mikrokontroler po uspe{noj simu- 89S8252.DAT
laciji!
Kada smo ve} kod asemblera, da
spomenem i mogu}nost referenci-
ranja BASIC promenljive u asem-
bleru. Jednostavno stavljanjem
promenljive u viti~astu (ili srednju)
zagradu mo`emo referencirati
BASIC promenljivu unutar asem-
blerskog koda. Slede}i primer ilus-
truje prethodno re~eno:

Dim var As Bit


Dim b1 As Byte
Dim w As Word

Reset var 'resetujemo promenljivu iz BASIC-a


setb {vvar} ' sada setujemo vrednost iz ASM-a
Print var
mov {bb1},,#5
Print b1 Slika 10. Pode{avanje fajla sa definicijom registara ~
w=512
mov {bb1},,{w w+0} ; uzimamo ni`i bajt Uz $BAUD uvek ide i $CRYSTAL Ime fajla je u stvari oznaka
Print b1 ' ispis: 0 direktiva. Ovim direktivama se mikrokontrolera (sa izuzetkom
mov {bb1},,{w w+1} ; uzimamo vi{i bajt kompajer konfiguri{e za Baud Rate REG51.DAT fajla koji pretstavlja
Print b1 ' ispis: 2 - brizinu serijskog komunikacionog osnovni opis 8051). U pitanju su

^asopis za automatiku, elektroniku, programiranje i informisanje 69


BASCOM-8051

ASCII datoteke, te se lako moze Na raspolaganju su nam CONFIG 1WRESET


1WREAD
-H- -P-


kreirati opis i nekog novog MICROWIRE, MWREAD ,
1WWRITE HEX P1,P3
HEXVAL PEEK
-A- HIGH POKE
mikrokontrolera. Sli~no ranije MWWRITE , MWWOPCODE. Za ABS


HIGHW
HOME


POWERDOWN
PRINT
opisanim kompajlerskim direktiva- detaljan opis primene pogledajte ALIAS
ASC -I-


PRINTBIN
PRINTHEX

ma, direktnim navo|enjem ove MICROW.BAS program u poddi- -B- I2CRECEIVE




PRIORITY
PUT
I2CSEND
direktive poni{tavaju se prethodna rektorijumu SAMPLES.

BAUD
BITWAIT


I2CSTART
I2CSTOP
-R-

pode{avanja Options / Compiler /



BCD
BREAK


I2CRBYTE
I2CWBYTE


READ
REM

Misc vezana za izbor mikrokontrol- Dok su SPI i MicroWire {iroko pri- -C-


IDLE
IF


RESET
RESTORE

era (vidi sliku 10.). Upozorenje za hva}eni i od strane drugih proiz-
INCR RETURN
CALL INKEY RIGHT
CLOSE INP RND
prekora~enje du`ine generisanog vo|a~a elektronskih komponenti

CLS
CHR


INPUT
INPUTBIN
ROTATE

koda va`i samo za registrovanu (SPI je patent Motorola-e a



CONFIG
CONST


INPUTHEX
INSTR
-S-


verziju BASCOM-a ("check box" MicroWire National
COUNTER SELECT
CPEEK -L- SET
CURSOR
na slici 10.). Semiconductor-a), 1WIRE za sada
SERVO
LCASE SHIFT
-D- LCD SHIFTCURSOR
poseduju isklju~ivo DALLAS-ovi DATA


LCDHEX

SHIFTIN

N A R E D B E B A S C O M- a
LEFT SHIFTOUT
produkti. Rad sa ovim komponenta-

DEBOUNCE
DECR


LEN
LOAD


SHIFTLCD
SOUND

ma nam je izuzetno olak{an BAS-
DECLARE LOCATE SPACE
DEFINT LOOKUP SPIIN
DEFBIT
U nastavku sledi spisak BASCOM- COM-ovom podr{kom. Od ove
LOOKUPSTR SPIOUT
DEFBYTE LOOP START
DEFLCDCHAR LOW STOP
ovih naredbi sortiran po abecedi. verzije je ~ak uklju~ena podr{ka za

DEFWORD
DELAY


LOWW
LOWERLINE


STOP TIMER
STR
1WIRE interfejs na vi{e pinova t.j.

DIM
DISABLE -M-


STRING
SUB

Ve} i letimi~an pogled na spisak mo`emo imati vi{e 1WIRE "kanala"
DISPLAY SWAP
DO MAKEDEC

otkriva bogat instrukcijski set. Kako na istom mikrokontroleru (po{to
MAKEBCD -T-
-E- MAKEINT
MAX THEN
sam ve} napomenuo da se ne}u bav- neke 1WIRE komponente nisu

ELSE
ENABLE


MID
MIN
THIRDLINE
TO

iti detaljnijim opisom svake adresibilne te se ne mo`e vi{e njih



END
END IF


MOD
MWINIT -U-

naredbe, izdvojio bih samo nekoliko vezivati na istu liniju).
ERASE MWREAD
EXIT MWWOPCODE UCASE
UPPERLINE
naredbi za ilustraciju komfora u radu
MWWRITE
-F-
-N- -V-

sa BASCOM-om. BASCOM podr`ava i Philips-ov FOR


FOURTHLINE NEXT VAL
FUSING
I2C serijski interfejs i to tako|e
VARPTR
-O-
-G- -W-
Pored ve} spomenute sjajne podr{ke putem softverske emulacije. No za GET


ON Interrupt
ON Value WAIT
za rad sa LCD-om, BASCOM u razliku od prethodnih slu~ajeva,

GETAD
GETAD2051


OPEN
OUT


WAITKEY
WAITMS

svom instrukcijskom setu ima i skup ovde nam je potreban i dodatni


GETRC WHILE .. WEND
GETRC5

komandi koje rade sa SPI , hardver. Na slici 11. je prikazan
GOSUB
GOTO

MicroWire, 1Wire te I2C magis- "dodatni hardver" da bi smo Tabela 1 Sve instrukcije BASKOM
tralama za serijsku komunikaciju sa AT89C2051 mikrokontroleru Bejzika ~
perifernim integrisanim kolima. omogu}ili da radi sa I2C interfej-
som. Radi se o prostom vezivanju "saop{timo" na kojim pinovima
Skup SPI naredbi (CONFIG SPI, ~etiri otpornika. Sada je jo{ samo mikrokontrolera }e se nalaziti I2C
SPIIN, SPIOUT) se mo`e koristiti i potrebno da BASCOM-u linije. Startovanjem menija
kod mikrokontrolera koji nemaju
hardverski ugra|en SPI. Dovoljno je
na po~etku programa specificirati:

Config SPI = SOFT, DIN = P1.0 ,


DOUT = P1.1, CS = P1.2, CLK =
P1.3

i sve {to nam je posle toga potrebno


da bi smo pro~itali, recimo neki SPI
A/D konvertor, je:

SPIIN var, num

gde je var niz od num elemenata


tipa bajt.

Sli~no je sa naredbama za rad sa


MicroWire serijskim interfejsom. Slika 12. Pode{avanje I2C komunikacije ~

70 MIKROELEKTRONIKA Novembar / Decembar 2000


BASCOM-8051

Options/Compiler/I2C otvara nam se prozor dat na slici Ukoliko na ove vrednosti dodate ~etiri, izabrani na~in
12. gde jednostavno pridru`imo SCA i SDL linijama rada }e se odnositi na eksterni CLOCK signal. Na
odgovaraju}e pinove. Posle ovoga mo`emo koristiti primer, ako za vrednost option parametra navedete 5,
I2CSTART, I2CSTOP, I2CRBYTE, I2CWBYTE, definisali ste da }e se u~itavanje/slanje bita vr{iti na
I2CRECEIVE, I2CSEND naredbe. uzlaznu ivicu spolja{njeg CLOCK signala.
Verovatno ste se zapitali ~emi slu`i RC5-port "combo U zavisnosti od upotrebljene promenljive bi}e generisan
box" na slici 12. Radi se o interesantnoj naredbi za pri- i broj {iftovanja. Tako za bajt promenljivu ima}emo
jem i dekodovanje (kod i adresa) komande sa daljinskog {iftovanje osam puta dok }e se za integer promenljivu
upravlja~a - GETRC5. Ova komanda je predvi|ena da, desiti {esnaest {iftovanja.
uz dodatni infracrveni senzor (tipa SFH506-36 -
Siemens), mo`e dekodovati infracrvene daljinske Neobavezni deo SHIFTIN naredbe je PRE parametar
upravlja~e koji su kodirani po Philips-ovom RC5 stan- (bez zareza) kojim se nala`e semplovanje ulaznog sig-
dardu. Povezivanjem kao na slici 13. i upotrebom nala pre nego {to po~ne da se generi{e CLOCK signal.
primera RC5.BAS bi}ete u mogu}nosti da dekodujete Bez PRE opcije prvo se CLOCK setuje, pa se sempluje
RC5 daljinski upravlja~. Eto zgodne tastature za Va{ ulazni signal i potom se resetuje CLOCK linija.
budu}i ure|aj...
Moglo bi se jo{ dosta pisati o primerima i primenama
BASCOM-ovih naredbi obzirom da ima jo{ dosta
interesantnih naredbi ne svojstvenih drugim kompajler-

Slika 11. I2C komunikacija ~

Obzirom da je serijska komunikacija sa perifernim inte-


grisanim kolima veoma interesantna pri upotrebi
mikrokontrolera, spomenuo bih jo{ SHIFTIN i
SHIFTOUT naredbe. Koriste se kada `elimo da u neku
varijablu serijski u~itamo niz bitova (SHIFTIN) ili da iz
neke varijable serijski prenesemo (SHIFTOUT) niz
bitova na odre|eni pin porta mikrokontrolera.
Sintaksa za pomenute akcije je:

SHIFTIN pin , pclock , var , option [PRE]


SHIFTOUT pin , pclock , var , option
gde su kori{tene oznake:
pin - pin na portu koji }e slu`iti za ulaz/izlaz
pclock - pin na portu koji }e generisati
CLOCK signal
var - promenljiva nad kojom se vr{i u~itavanje/slanje
bitova
Pomo}u option parametara odre|ujemo na~in rada i to u
skladu sa slede}im vrednostima:
0 - MSB (najve}i te`inski bit) se {iftuje prvi ~
Slika 13. Povezivanje preko porta 232
unutra/napolje na silaznu ivicu CLOCK-a ima (kao na primer GETAD2051 - naredba zasnovana
1 - MSB se {iftuje prvi unutra/napolje na uzlaznu ivicu na aplikaciji gde se uz pomo} spolja{njeg RC ~lana i
CLOCK-a ugra|enog komparatora mikrokontrolera dobija jednos-
2 - LSB (najmanji te`inski bit) se {iftuje prvi tavan AD konvertor). No, kako imate mogu}nost da po
unutra/napolje na silaznu ivicu CLOCK-a download-ovanju pomenute DEMO verzije i sami pro-
3 - LSB se {iftuje prvi unutra/napolje na uzlaznu ivicu bate, prepusti}u Vama da se sami upoznate i isprobate
CLOCK-a BASCOM-ov set instrukcija.

^asopis za automatiku, elektroniku, programiranje i informisanje 71


BASCOM-8051

SIMULATOR

U razvojnom procesu ~esto nam


zatreba da evaluiramo - proverimo
deo koda ili samo neku rutinu, pa
ukoliko nemamo adekvatnu softver-
sku alatku nema nam druge nego da
uzastopno programiramo nove i
nove verzije testnog programa do
kona~nog uspe{nog ishoda. Uz
pomo} BASCOM-a pomenuti na~in
evaluacije mo`ete zaboraviti ili bar
drasti~no smanjiti broj iteracija,
zbog ugra|enog simulatora koji Vam
stoji na raspolaganju.

Po kompajliranju programa, mo`ete


startovati simulator (ikona sa crven-
im integralcem) i otvori}e Vam se
prozor kao na slici 14. Uo~imo {est
celina na pomenutoj slici. U gorn-
jem delu ekrana su navigacioni tas-
teri ispod kojih se nalazi "watch
window" prozor sa listom
promenljivih koje `elimo da nad-
gledamo u toku izvr{avanja progra-
ma ili, izborom "break" jezi~ka, liste
promenljivih koje izazivaju prekid
izvr{enja programa kada definisane
promenljive poprime zadate vred-
nosti. Slede}a celina je terminal Slika 14. Simulator ~
emulator koji se nalazi ispod
pomenutog "watch" prozora. Svaki U bilo kom trenutku izvr{enja pro- trolera pa ~ak i nekih "spolja{njih"
ispis na serijski port, u toku grama mo`emo mi{em kliknuti na ure|aja. Prvi po redu takav taser
izvr{avanja programa unutar simu- "tik counter" i resetovati ga! otvara prozor za simulaciju hard-
latora, bi}e prikazan u ovom pro- vera. To je taster sa ikonom LCD-a.
zoru. Ako program tra`i unos vred- Kao prvu celinu spomenuo sam Na slici br. 15 vidimo izgled
nosti za neku varijablu (INPUT navigacione tastere. U prvom redu pomenutog prozora. Vizuelizacija
naredba) tada je potrebno mi{em su Run, Pause i Stop tasteri iza kojih stanja portova (P0 do P3 u zavisnos-
kliknuti na prozor terminal emulato- slede Step into code (izvr{avanje ti od upotrebljenog mikrokontrolera)
ra (da bi smo prebacili fokus na isti) samo jedne naredbe), Step over code je ura|ena pomo}u LED-ova
te sa tastature ra~unara otkucati (tako|e izvr{avanje samo jedne "oka~enih" na pomenute portove.
vrednost. Po pritisku na Enter tipku naredbe pri ~emu se sada i potpro- Ukoliko LED svetli doti~ni bit je
simulator nastavlja dalje izvr{avanje grami tretiraju kao "jedna" naredba) setovan (pod uslovom da je selekto-
programa sa prethodno unetom te Run to (izvr{enje do linije koju vana opcija CG - Common
vredno{}u. ~etvrtu celinu pretstavlja ozna~imo u prozoru sa izvornim Ground). Ako kliknemo na neki
prozor sa "izvornim" programom programom). Ovim tasterima LED menjamo vrednost bita na
koji se evaluira. Desno od njega odre|ujemo na~in izvr{enja progra- portu.
nalazi se manji prozor u kome ma unutar simulatora.
imamo prikaz svih internih registara Osim toga imamo na raspolaganju i
mikrokontrolera. I poslednja {esta U nastavku, nalazi se jo{ par veoma jedan sedmo segmentni displej.
celina je statusna linija na kojoj se interesantnih tastera koji za razliku Desnim klikom na pomenuti displej
ispisuje "tik counter", broja~ od prethodnih ne odre|uju na~in otvara nam se novi - konfiguracioni
izvr{enih naredbi (asemblerskih) i izvr{enja programa, ve} nam prozor (slika 16.) u kome
vreme trajanja-izvr{enja programa, poma`u u vizuelizaciji stanja pro- defini{emo koji segment displeja je
kao i ranije pomenuta dubina steka. grama odnosno resursa mikrokon- vezan za koji bit porta.

72 MIKROELEKTRONIKA Novembar / Decembar 2000


BASCOM-8051

Na kraju tu je i sam LCD emulator koje je mogu} rad sa sva ~etiri porta Pritiskom na neki od ovih tastera u
na kome }e se, sli~no terminalskom ali vi{e o tome nekom drugom pri- toku simulacije - izvr{avanja pro-
emulatoru, ispisivati sve na{e likom). Dakle za sada je podr`ano grama, generi{e se signal odgovara-
poruke iz programa koje su upu}ene samo ~itanje i setovanje portova, {to ju}eg interapta te na taj na~in
LCD-u. Na slici br.15 vidimo da na zna~i da }e se ovaj segment simula- mo`ete proveriti ispravnost rada
emuliranom LCD-u imamo i ispis tora i dalje razvijati! rutina za obradu interapta.
UDG karaktera. Tako|e sa iste slike Prikaz strelice koja ozna~ava pro-
mo`ete videti da se duga~ka naredba gramsku liniju koja se izvr{ava, PROGRAMATOR(I)
mo`e preneti i u slede}i red stavl- uzima dosta procesorskog vremena
janjem "_" (underline) karaktera na pa ukoliko `elite da ubrzate simu- Pa, po{to smo napisali i testirali pro-
kraju prethodnog reda (kome laciju isklju~ite ovu opciju. To nam gram, na redu je programiranje
prethodi bar jedan space karakter). omogu}ava slede}i taster u nizu koji mikrokontrolera. U uvodu prikaza
Odmah do tastera za simulaciju obja{njavamo. Za njim slede tasteri BASCOM-a sam spomenuo da
podr`ava dvanaest tipova program-
atora, a evo i liste svih dvanaest:

MCS Flash Programmer


MCS SPI Programmer
BlowIT Programmer
PG2051
PG302
JPK Systems X-programmer
Peter Averill's TAFE Programmer
SE512/SE514
EPROM Simulator on LPT
Atmel Programmer by DL2TM
OM Combined Programmer
External programmer
Slika 15. Simulacija hardvera ~
Vi{e detalja o pojedinim programa-
hardvera imamo i taster za simu- za: prikaz sadr`aja internog RAM-a, torima mo`ete na}i na Internetu.
laciju hardvera u "realnom svetu" - eksternog RAM-a te EEPROM-a u Neki od modela su komercijalni a za
Real Hardware Simulation. slu~aju da koristimo AT89S8252. Na neke (MCS Flash Programmer,
Pritiskom na ovaj taster kraju ove grupe tastera nalazi se i BlowIT Programmer i dr.) mo`ete
omogu}avamo testiranje programa u taster koji uklju~uje/isklju~uje na}i {eme pa ~ak i nacrte {tampanih
realnom spoljnom okru`enju bez da osve`avanje prikaza vrednosti plo~ica.
zaista programiramo mikrokontrol- promenljivih za vreme izvr{avanja
er. Na{ PC ra~unar }e izvr{avati programa. Iz li~nog iskustva u radu mogu Vam
napisani program i preko paralelnog preporu~iti MCS SPI Programmer sa
porta prenositi stanja emuliranog kojim }ete u`ivati u svim blagodeti-
kontrolera spoljnom periferalu a ma ISP programatora. Bez va|enja
tako|e preko paralelnog porta }e se mikrokontrolera iz ciljnog ure|aja,
vr{iti i u~itavanje stanja iz bez napu{tanja BASCOM-ovog
"spolja{njeg sveta". Jasno Vam je da razvojnog okru`enja, pritiskom na
je za tako ne{to potreban specifi~an ikonu sa ZIF-om automatski
dodatni hardver, no o svemu tome Slika 16. Definisanje veza za sedmoseg
zapo~inje programiranje te potom i
detaljnije pogledajte u aplikaciji mentni displej ~ verifikacija programa. Naravno, za
AN-10 na adresi http://www.mcse- ovo je preduslov da koristite
lec.com/applicat.htm . Ovakav na~in Na kraju svih tastera imamo i jedan mikrokontroler sa ugra|enim hard-
simulacije ima i svojih ograni~enja: "regler" koji ima zadatak da uspora- verskim SPI interfejsom a to su
mogu se samo P1 i P3 portovi va rad simuliranog programa za AT89S8252 ili AT89C53 mikrokon-
emulirati te nije podr`ana emulacija slu~aj da `elite da u kontinualnom troleri. Ovo je idealno re{enje za
interaptova (postoji jo{ jedna verzija re`imu rada simulatora nadgledate razvojne potrebe.
dodatnog hardvera za "spolja{nju promenljive.
simulaciju" koja je delo Poljskog Ispod opisane grupe tastera imamo U slu~aju da ciljni mikrokontroler
~asopisa Elektronika Prakticzna kod tastere za generisanje interapta. nije neki od gore navedenih, koris-

^asopis za automatiku, elektroniku, programiranje i informisanje 73


BASCOM-8051

tim Atmel-ov programator ~iji sa programatorima koji se vezuju kalkulacije po izrazu. Ako `elite da
detaljan opis mo`ete na}i u doku- preko paralelnog porta. Ukoliko izra~unate izraz tipa:
mentu DOC0285.PDF na Atmel- imate samo jedan paralelni port u D=A+B+C
ovom sajtu. Kako je pomenuti pro- ra~unaru, vodite ra~una da ne tada to u BASCOM-u treba da
gramator prikazan u nekom od rani- ostavite priklju~en programator po napi{ete u formi:
jih brojeva Mikro Elektronike, zavr{etku rada sa istim jer neki pro- D=A+B
verujem da }e upotreba istog biti grami, kao na primer MS Word, D=D+C
interesantna mnogim ~itaocima. Za menjaju stanja - status na paralel- To je zato {to BASCOM koristi
rad sa ovim programatorom potreb- nom portu po svom startovanju te prostiji aritmeti~ki kalkulator bez
no je konfigurisati BASCOM da mogu izazvati ne`enjene posledice optere}ivanja steka, pa je time i br`e
koristi "spolja{nji" korisni~ki softver na zaboravljenom mikrokontroleru izvr{avanje! No, kao posledicu
- External Programmer. Originalni u priklju~enom programatoru! pomenutog mo`ete imati upotrebe
softver za rad sa programatorom je Najjeftinije re{enje ovog problema pomo}nih promenljivih u slu~aju
dat u rudimentnom obliku kao je nabavka stare (ispravne) Hercules re{avanja kompleksnijih izraza.
"gomila" DOS izvr{nih programa za kartice i njene ugradnje u ra~unar
svaki tip mikrokontrolera, pa je naj- kao drugog paralelnog porta. U tom Slede}a ozbiljna zamerka je na IF
jednostavnije da napravite batch fajl slu~aju Hercules port postaje LPT1 naredbu. Iako podr`ava slo`enu
u kome se uz pomo} obi~nih DOS port na koji konektujete sve strukturu (ElseIf..Then) ozbiljna
komandi mo`e realizovati sistem {tampa~e pod Windows-om a pro- mana joj je {to mo`e da barata samo
menija za izbor mikrokontrolera koji gramatoru na raspolaganju ostaje sa prostim uslovom. Dakle samo
se `eli programirati. Sada taj batch slobodan paralelni port sa plo~e koji jedan izraz. Ako `elimo da
fajl navedete kao ime programa za je sada LPT2 port. napi{emo:
rad sa hardverom programatora -
pogledajte sliku br. 4. IDEALNA ALATKA? If A=5 And B=6 Then
Procedura
Pomenuti Atmel-ov programator Do sada smo se u okviru nekog pro- EndIf
zahteva jo{ par preduslova za ispra- jekta redovno bavili i "programiran-
van rad. Kao prvo, u BIOS-u Va{eg jem" vezanim za razno-razne per- tada to u BASCOM-u treba da
ra~unara morate podesiti EPP iferale. Sada pomo}u BASCOM-a, napi{emo na slede}i na~in:
(Enhanced Paralell Port) mod za koji ima veoma bogat instrukcijski
paralelni port zbog bidirekcionalnog set za ovu podr{ku, imamo vi{e vre-
na~ina rada samog hardvera pro- mena i usredsre|eniji smo na samo If A=5 Then
gramatora. Kao drugo, ukoliko re{avanje problema. To su If B=6 Then
koristite Windows 95 (uz eventualni neosporne ~injenice no kako ste u Procedura
update LPT.VXD drajvera) ne}ete prethodnim redovima uglavnom EndIf
morati napu{tati BASCOM-ovo ~itali "hvalospeve" o BASCOM-u EndIf
razvojno okru`enje pri programi- red bi bio da spomenemo i po koju
ranju sa pomenutim programatorom. manu, da ne bi ste jo{ pomisli da je Za slu~aj da nam treba ne{to poput:
Na `alost, svi oni koji koriste odgovor na podnaslov ta~an.
Windows 98 mora}e da restartuju
ra~unar u MSDOS modu radi pro- Kao prvo moglo bi se zameriti {to su If A=5 Or B=6 Then
gramiranja, te potom da sa~ekaju da sve promenljive u BASCOM-u Procedura
se ra~unar ponovo podigne u globalne. No to i nije neka velika EndIf
Windows ambijentu kako bi nas- mana naro~ito kada se radi o projek-
tavili rad sa BASCOM-om. Ova tu gde koristimo samo interne u BASCOM-u to mo`emo uraditi na
neprijatnost u radu posledica je resurse kontrolera jer, dozvoli}ete slede}i na~in:
~injenice da Microsoft u verziji mi da karikiram situaciju, ako na
Windows-a 98 ne podr`ava rad EPP raspolaganju imate 5 slobodnih baj-
porta! Pravo re{enje za pomenuti tova unutar mikrokontrolera onda je If A=5 Then
problem je izrada bidirekcione PC to 5 bajt promenjivih pa sad zovite Procedura
kartice na koji bi se ka~io samo pro- ih globalnim ili lokalnim sve jedno ElseIf B=6 Then
gramator, kao {to je i opisano u je. Procedura
Atmel-ovom dokumentu EndIf
DOC0285.PDF. Druga ozbiljnija primedba je ta {to
I na kraju pri~e o programatorima, je dozvoljena upotreba samo prostih I kao poslednja primedba (po
jedno generalno upozorenje pri radu aritmeti~kih izraza - samo jedne autorovom mi{ljenju) to je

74 MIKROELEKTRONIKA Novembar / Decembar 2000


BASCOM-8051

nedostatak trigonometrijskih funkcija. BASCOM se vala {iroj javnosti, jer sa 2KB programske memorije se
neprestano dora|uje pa se tako o~ekuje i "otklanjanje" stvarno mo`e dosta toga (a zahvaljuju}i BASCOM-u i
napomenutih mana, prvenstveno IF naredbe i dopune lako) napraviti! x
trigonometrijskim funkcijama, u skorijoj budu}nosti.
BASKOM se mo`e naru~iti i kod nas! Paket
Mo`da }ete kada budete i sami radili sa BASCOM-om kota 69$ (140DM) kao i bilo gde u svetu. Program
otkriti po jo{ neki "nedostatak". No nemojte se je zati}en licencom koja va`i za samo jedan
ustru~avati te sve primedbe i sugestije slobodno ra~unar. Distribuira se preko interneta ili na CD-u.
po{aljite, putem elektronske po{te na adresu Za vie informacija obratite se na redakcijske tele-
mark@mcselec.com. Podr{ka je odli~na i obi~no u roku fone 011 684 919 i 011 684 391 ili preko formulara
od 24 ~asa dobijate odgovor. Sem toga, postoji i BAS- za kontakt na sajtu mikroElektronike.
COM-ova mail lista na kojoj tako|e mo`ete postavljati
pitanja i razmenjivati iskustva. Za sve Vas koji }e joj se
tek sada priklju~iti, postoji i arhiva mail liste na adresi
http://www.grote.net/bascom/bascom-archive.html. U
poslednje vreme, na mail listi, se pri~alo o TCP-IP pro-
tokolu i 8051 mikrokontrolerima, izradi interfejsa za
priklju~enje IDE HDD-ova na mikrokontrolere, izradi
MP3 Player-a sa mikrokontrolerima kao i mnogim
drugim interesantnim pitanjima koja su postavljali i na
njih odgovarali BASCOM korisnici iz celog sveta!

ZA KRAJ

MCS Electronics je firma koja osim BASCOM-8051


ima jo{ i BASCOM-LT te BASCOM-AVR produkte.
BASCOM-LT je prete~a BASCOM-8051 i u mnogo
~emu je skromniji ali jo{ uvek upotrebljiv produkt.
Ra|en je za {esnaestobitnu platformu (Windows 3.11)
nema podr{ku za floating point aritmetiku te ima slabije
podr`ane nizove. Do skora je BASCOM-8051 imao
mogu}nost da pri kompajliranju izaberete da li }e se
generasti kod u skladu sa BASCOM-LT ili BASCOM-
8051 bibliotekama. Od verzije koja se nudi u pomenu-
tom DEMO-u ova opcija vi{e ne postoji i ne}e je biti ni
u narednim verzijama. BASCOM-8051 instrukcijski set
se "malo" pro{irio u odnosu na svog prethodnika...

[ta re}i o BASCOM-AVR produktu. Sve re~eno -


opisano vezano za razvojno okru`enje va`i i za BAS-
COM-AVR. Naravno u pitanju su podr{ke drugim pro-
gramatorima no detaljnije mo`da u nekom budu}em,
posebnom ~lanku. Mo`da za kraj re}i samo to da je to
najmla|i produkt. Zbog velikog interesovanja korisnika,
izba~ena je prvo verzija kompajlera koja nije imala
podr{ku aritmetici sa pokretnim zarezom, pa je posle
usledila nova verzija koja je i to pokrila te se sada
o~ekuje verzija u kojoj bi bio uklju~en i simulator.

Mislim da je dovoljno re~eno da bi ste se "zagrejali" za


opisani produkt. Pa ako je tako, drago mi je da sam u
tome uspeo te o~ekujem da ve} kre}ete da download-
ujete DEMO verziju koja je, ne zaboravite, celokupno
razvojno oru`enje za AT89C2051 mikrokontroler!
Nadam se da }e te uskoro poslati i neku od Va{ih intere-
santnih ruko-umotvorina redakciji kako bi ga prezento-

^asopis za automatiku, elektroniku, programiranje i informisanje 75

You might also like