You are on page 1of 79

NAPREDNI ALATI ZA PROGRAMIRANJE

MIKROKONTROLERA
Savremeni integrisani mikroprocesori su zastupljeni u većini modernih
uređaja, te zadovoljavaju veći dio potreba samih uređaja.

Termin mikroračunar predstavlja uređaj koji mora da sadrži


mikroprocesor, programsku memoriju, memoriju podataka i
ulazno/izlazni uređaj.

Mikrokontroler je čip u kojem su smješteni svi elektronski krugovi koji


su potrebni da bismo dobili jedan računarski sistem.

4 osnovna sklopa unutar čipa koji su potrebni da bismo ga mogli zvati


računarom a to su: CPU, Programska memorija, RAM memorija i ulazno
- izlazni portovi
Mikrokontroler predstavlja mikroračunar integrisan u jednom
silicijumskom čipu.
Arhitektura posjeduje odvojene magistrale za programski kod i
za podatke.

Posjeduje određen broj internih integrisanih programibilnih


elektronskih kola, koja doprinose povećanoj stabilnosti i
pouzdanosti sistema.

Za povezivanje sa spoljnim uređajima implementirano mu je pet


portova, od čega su tri 8-bitna, jedan 6-bitni i jedan 3-bitni.

Podržava dva načina adresiranja RAM memorije, a to su direktni


i indirektni.
Mikrokontroler posjeduje sljedeće blokove:

 Flash programska memorija


RAM memorija
Aritmetičko – logička jedinica
Akumulator
Stack
EEPROM memorija
Razne periferne uređaje (portovi, tajmeri, A/D konvertor i
dr.)
 Za izbor mikrokontrolera važna je mogućnost testiranja
samog programa za mikrokontroler na nekom od simulatora
u različitim okolnostima.

Postoji širok spektar simulatora raznih proizvođača

PIC Simulator IDE je jedna od aplikacija koja ima korisnički


orjentisan interfejs za Windows operativne sisteme

 Podržava mikrokontrolere serije 16FXXX i 12FXXX.


Za razliku od mikroprocesora, koji je projektovan za rad u
personalnom računaru, mikrokontroler je projektovan za
ugradnju u različite uređaje i sisteme gdje ima definisanu
namjenu pa se ovakvi “mali računari” nazivaju i namjenski
(embedded) računari.
Svim mikrokontrolerima su zajednička sljedeća svojstva:

Mali radni takt( 10 MHz)


Mali broj jednostavnih instrukcija (red veličine oko 100)
Radna memorija(RAM -reda KB)
Stalna memorija s programskim kodom(uEPROM izvedbi)
Brojači različitih namjena kao sat, brojač impulsa, BCD brojač...
Brojač za nadzor ispravnog rada – WDT(WatchDog Timer)
Ulazno/izlazni portovi za prihvat i slanje podataka
A/D i D/A pretvornici razlučivosti prema namjeni (uobičajeni 8-bit)
Širok raspon napona napajanja (2V – 6V)
 Prekidi (Interrupts)

Prekid je mehanizam mikrokontrolera koji omogućava da se na neke


događaje odgovori u trenutku kada se oni dese, bez obzira što
mikrokontroler radi u tom trenutku.

Svaki prekid mijenja tok izvršavanja programa, prekida ga, te


nakon izvršenja prekidnog potprograma nastavlja na istom
mjestu

 Kontrolni registar prekida naziva se INTCONi nalazi se na adresi


0 Bh..
Njegova uloga je da omogući ili zabrani prekide, a u slučaju da su
zabranjeni,registrira pojedinačne zahtjeve prekida preko svojih bitova
GIE bit može zabraniti ili omogućiti sve prekide odjednom.

To je vrlo korisno kod pisanja programa jer omogućuje da se


na neko vrijeme zabrane svi prekidi.
Prekidi koji su ostali ne riješeni obrađuju se nakon ponovnog
setiranja GIE bit-a.

 Ako se obradi bilo koji od ovih prekida mora se resetirati bit


koji je izazvao prekid jer će se u suprotnom prilikom povratka
u glavni program prekid ponovno obraditi.
Na slici prikazana je opća shema prekida pomoću sklopki.

Pomoću GIE sklopke omogućujemo bilo koji od četiri


moguća prekida.

Koristeći sklopke EEIE,TOIE, RBIF, INTE određujemo vrste


prekida, dok nam sklopke sa desne strane EEIF, TOIF, RBIF,
INTF pokazuju koji se prekid dogodio nekom trenutku.
Asembler
Asemblerski jezik je jezik kojim čovjek i mikrokontroler komuniciraju.

Asemblerski jezik je razumljiv čovjeku, sastoji se od riječi i abecednih


znakova.

Program napisan u asemblerskom jeziku mora se prevesti u niz nula i


jedinica da bi ga mikrokontroler razumio.

Razlikujemo pojam ASEMBLER i ASEMBLERSKI JEZIK.

Asembler je program prevodilac koji prevodi asemblerski jezik u jezik


nula i jedinica, a asemblerski jezik je skup pravila po kojima se piše
program za mikrokontroler.
Program.asm predstavlja datoteku na disku računara koja je
napisana po pravilima asemblerskog jezika.

Program.hex je datoteka koja je prevedena u jezik nula i jedinica


i to heksadecimalnim zapisom, ta datoteka se pomoću
programatora upisuje u mikrokontroler.

Program se u asemblerskom jeziku može pisati u bilo kojem


programu za obradu teksta koji može spremiti datoteku kao
ASCII
Osnovni elementi su:
-Labele
-Naredbe
-Operandi
-Komentari
-Direktive
U razvojno okruženje su integrisane sljedeće komponente:

Basic prevodioc,
Asembler,
Disasembler,
generator HEX datoteke,
interaktivni asemblerski editor,
veći broj simuliranih IO uređaja.
ROM
Mikrokontroleri sa ROM (Read Only Memory) memorijom su namijenjeni
velikim proizvođačima.
Ova vrsta memorije, omogućava samo čitanje tvornički upisanih podataka i u
slučaju serijske proizvodnje cijena im je relativno pristupačna.
Krajnjim korisnicima mikrokontrolera, ova vrsta memorije nije dostupna.

OTP ROM
Mikrokontroleri sa OTP (One Time Programmable) memorijom omogućavaju
upis programa samo jednom. Izvedene su tako da se prilikom programiranja
prekidaju veze u memoriji što dovodi do fizičkog odvajanja pa se nakon toga
može samo čitati.
 Ovakve vrste memorija su takođe namijenjene proizvođačima za serijsku
proizvodnju.
UV EPROM

Mikrokontroleri sa UV EPROM (UV Erasable Programmable


ROM) memorijom imaju mogućnost reprogramiranja.

Izvedeni su tako da se površina čipa može vidjeti preko


malog prozora kroz koji se može osvijetliti UV svjetlom što
nakon nekoliko minuta dovodi do brisanja programa.
Izgled mikrokontrolera sa UV EPROM memorijom
• FLASH i EEPROM Memorije
Ova vrsta memorije je nastala 80-ih godina u Intelovim
laboratorijama kao nasljednik UV EPROM-a.

Omogućuje upisivanje i brisanje memorije električnim putem i


najpogodnija je.

FLASH memorija se najčešče koristi za čuvanje programske


memorije. Upis se vrši tako što, nakon setovanja mikrokontrolera u
programski mod, upisujemo bajt po bajt.
EEPROM je izveden tako da se može pristupiti svakom
pojedinom bajtu, tj. možemo upisati ili obrisati samo jedan
bajt unutar memorije, dakle postoji mogućnost adresiranja.

FLASH zauzima manje silicijumske površine na čipu pa je


zbog toga, odabran za smještanje programske memorije.
RAM (Random Access Memory) memorija je
namijenjena za pohranjivanje podataka i
međurezulata do kojih se dolazi u toku rada.

Za razliku od svih do sad pomenutih njen sadržaj se


nepovratno gubi prilikom prestanka napajanja.

Kako sam riječ kaže "Radna memorija", zbog toga


nam nije ni potreban njezin sadržaj nakon nestanka
napajanja.( RAM memorija takvog tipa koja čuva
podatke samo dok je prisutno napajanje.)
Najčešće korišteni i najpraktičniji razvojni sistem za
mikrokontrolere su razvojne pločice (engl. development
board)

Osnovna prednost ovakve razvojne okoline je njezina


jednostavnost za upotrebu, dok je njezina mana što ne
udovoljava svim uvjetima koji su postavljeni za
kategorizaciju.
Led (engl. Light emitting diode) diode koriste se za prikazivanje
digitalnog stanja pojedinog izvoda (engl. pin) mikrokontrolera.
Tipično se spajaju na način da dioda svijetli kada je na izvodu
mikrokontrolera stanje logičke jedinice, a ne svijetli kada je izvod u
stanju logičke nule ili stanju visoke impedancije.
Pri spajanju LED dioda na mikrokontroler potrebno je paziti da
dioda ne zahtijeva više od 20 mA struje, što je tipična
mogućnost izvoda mikrokontrolera.

Ukoliko struja prelazi navedenu vrijednost moguće je


iskoristiti LED diodu drugačijih karakteristika ili između
mikrokontrolera i diode postaviti pojačalo

Ekrane korištene s mikrokontrolerima možemo podijeliti na


LED i LCD (engl. Liquid crystal display) po njihovoj unutarnjoj
strukturi, odnosno na alfanumeričke i grafičke po njihovim
mogućnostima prikaza.
Z/1 Potrebno je realizovati mikrokontrolerski program koji
obezbjeđuje naizmjenično paljenje i gašenje LED diode tako da
dioda bude uključena 1 s i isključena 1 s.

• Za čekanje na protok određenog vremena koristi se funkcija


delay(ms) u kojoj se vrijeme zadaje u ms.
Z/2 Potrebno je realizovati mikrokontrolerski program koji upravlja
radom LED diode tako da ona svijetli dok je taster (BTN) pritisnut a
ugašena je ako taster nije aktiviran.
Z/3U ovom projektu napraviti ćemo da trepte dvije diode, tako da
kada se jedan uključi, drugi će se isključiti.

• Izvršiti ćemo deklaraciju dva LED-a,led1(na pinu 2),led 2( na pinu


5).To možemo da odradimo na istom iskazu jer su oba int. Tako da će
oba pina biti izlaz i podesiti ćemo ih na različita stanja. Nakon jedne
sekunde ćemo promijeniti stanje i čekati ćemo još jednu sekundu
int led1=2, led2=5;

void setup(){
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}

void loop(){
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
delay(1000);
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
delay(1000);
}
MPLAB IDE

U sklopu sa PICDEM Z razvojnim okruženjem koristi se


softverski paket MPLAB IDE .

 MPLAB IDE je integrisano softversko razvojno


okruženje i predstavlja Windows baziranu aplikaciju
namijenjenu za programiranje Microchip
mikrokontrolera.
Iako se za programiranje mikrokontrolera mogu koristiti
različiti alati, za razvoj kako u asembleru, tako i u drugim
programskim jezicima najpogodnije je koristiti razvojno
okruženje MPLAB
Neke od prednosti korištenja ovog okruženja su:
pravljanje projektima;
 podrška za Microchip-ov asembler, koji je sastavni dio okruženja;
podrška za gotovo sve kompajlere koji se mogu naci za Microchip
mikrokontrolere;
integrisani debugger;
 integrisani simulator Microchip-ovih mikrokontrolera, sa
mogucnošcu uvida u vrijednosti memorije i svih registara;
raspoloživost drugih naprednih funkcija
Programski paket MPLAB izgleda kao i većina Windows programa.

Sastoji se od izbornika (ispod nazivne trake) s opcijama File, Edit,


itd., trake s alatima (područje s ikonama), radnog područja i status
trake koja se nalazi na dnu prozora.

Stvaranje projekta sastoji se od sljedećih koraka:


1. Odabir uređaja za koji se piše program
2. Stvaranje projekta
3. Odabira alata
4. Dodavanje datoteka projektu
5. Pisanje kôda
6. Prevođenje kôda u izvršni oblik
Odabir uređaja za koji se piše program obavezan je zbog toga kako bi
MPLAB znao koji će alati biti korišteni za izvršavanje napisanog
programa.
STVARANJE PROJEKTA
Projektom se organiziraju datoteke za prevođenje u izvršni oblik i
povezivanje.
 Za pokretanje Čarobnjaka potrebno je odabrati Project->Project
Wizard.
ODABIR ALATA- odabiru se jezični alati koji se koriste za
prevođenje kôda u izvršni oblik.
Projektu se daje ime i položaj na HD.
Četvrti korak (Project Wizard – Step Four) omogućava dodavanje
datoteka projektu.
PISANJE KÔDA (PISANJE PROGRAMA)

Tek nakon što obavimo sve prije navedene radnje možemo početi
pisati program. Napisat ćemo jednostavan program koji je dan u
nastavku.
Nakon što se program upiše u prozoru uređivača kôda,
naredbom Project->Build All asemblerski kôd programa prevodi se
u izvršni oblik.
 Rezultati prevođenja ispisuju se u Output prozoru pod jahačem
Build .
MPSIM SIMULATOR

Proces pisanja programa često se naziva razvojnim


ciklusom. Rijetko se sve faze razvoja od zamisli do
implementacije izvrše bez greške.

Češće, kôd se piše, ispituje i mijenja kako bi se dobila


aplikacija koja zadovoljava početne zahtjeve.
Simulator je dio MPLAB-ove radne okoline koji omogućava bolji
uvid u rad mikrokontrolera.

Kroz simulator možemo posmatrati trenutne vrijednosti varijabli,


vrijednosti u registrima i status na pinovima portova.

U slučaju kada je program jednostavan (kao u danom primjeru),


simulator nije od prevelike važnosti no ispravljanje logičkih
progrešaka bez simulatora bilo bi znatno teže ili gotovo
nemoguće.
mikrokontrolera''.
Simulator nam može biti od velike pomoći sa složenijim
programima koji uključuju mjerače vremena, različita stanja gdje
se nešto događa i drugi slični zadaci (osobito s matematičkim
operacijama).

Simulacija, kao što joj i samo ime govori označava ''simulaciju


rada mikrokontrolera''.

 Kao što mikrokontroler obavlja instrukcije jednu po jednu


tako je i simulator zamišljen – programer se kreće kroz program
korak-po-korak (redak-po-redak)
Kad se završi s pisanjem programa potrebno je pomoću
simulatora provjeriti da li program obavlja zadani zadatak.

Potrebno je provjeriti da li program radi upravo ono što je


određeno zahtjevima tj. zadatkom.

Tek kada se pomoću simulatora uvjerimo da program radi


upravo ono što je određeno u zadatku tada se prelazi na
ispitivanje programa u stvarnoj situaciji.
Nakon prevođenja kôda u izvršni oblik, prvu stvar koju koju je
potrebno učiniti, kao u pravoj situaciji, je resetiranje
mikrokontrolera opcijom izbornika Debugger->Reset->Processor
Reset

Resetiranje mikrokontrolera rezultira postavljanjem


postavljanje programskog brojila na nulu što se može vidjeti u
statusnoj liniji (pc:0x00)
Jedna od glavnih karakteristika simulatora je mogućnost pregleda
vrijednosti registara mikrokontrolera tijekom izvođenja programa.

Ti registri se još nazivaju specijalni funkcijski registri, ili SFR registri

You might also like