Professional Documents
Culture Documents
5 Lab
5 Lab
str.1/9
Prekidi
Uvod
Cilj 5. vjebe je primjena dosad nauenih znanja pri izradi timera koji mjeri neko predodreeno vrijeme (npr. kuhanje jaja,
razvijanje fotografskog filma.
Osim Proteus ISIS simulatora, u ovoj vjebi e se koristiti i stvarna razvojna ploica sa 8051 mikrokontrolerom.
Kako bi sat (timer) bio to toniji, potrebno je koristiti sustav prekida (eng. interrupt).
Prekidi
Pri normalnom radu mikrokontrolera dolazi do situacija kada vanjske jedinice (ureaji i senzori) ili dodatne jedinice u samom
mikrokontroleru zahtjevaju to bru reakciju. Kako program koji se izvodi na mikrokontroleru u tom trenutku moe biti u nekoj
dugotrajnoj petlji, potreban je dodatan sustav koji moe ostvariti ovakav zahtjev. Taj su sustav prekidi (eng. interrupts).
Razliiti mikrokontroleri drugaije pristupaju problemu prekida, ali oni su nuni za funkcioniranje svih mikroprocesora i
mikroupravljaa.
ERRO 2013/14.
str.2/9
Prekidi u 8051
Intel 8051 podrava 5 razloga za prekid, odnosno 5 tipova prekida:
dva vanjska prekida se pruaju putem pinova INT0 i INT1, koji su spojeni na port 3 pin 2 i port 3 pin 3
dva unutarnja prekikoja se generiraju preljevom timera 0 i timera 1
unutarnji prekid pri primanju ili slanju podataka putem serijske komunikacije.
Kako bi mikrokontroler znao na koje poticaje ( s unutarnjih ili vanjskih jedinica) treba reagirati, potrebno je podesiti registre
specijalne namjene IE i TCON, te, ako je potrebno, registre IP i TMOD.
ERRO 2013/14.
str.3/9
ERRO 2013/14.
str.4/9
ERRO 2013/14.
str.5/9
Prioriteti prekida
Ugradbeni sustav s mikrokontrolerom radi cijelo vrijeme, te je mogua istovremena aktivacija vie prekida. Kako je potrebno
neko vrijeme za programski kod koji reagira na prekid (to nazivamo "obradom prekida"), mogui su i novi prekidi tijekom
"obrade prekida", Kako bi se smanjili mogui problemi, postoji prioritet (redoslijed) prekida:
1.
2.
Timer 0
3.
4.
Timer 1
5.
Serijska komunikacija
(prioritet 1 je najvii odnosno najvaniji pririotet)
Vii prioritet moe prekinuti nii prioritet tijekom njegove obrade, ali obrnuto ne vrijedi (npr. tijekom obrade prekida Timera 1
moe doi do vanjskog prekida 0. Obrada Timera 1 se zaustavlja, te se zapoinje s obradom vanjskog prekida 0. Ako tada doe
prekid Timera 0, ne prekida se obrada vanjskog prekida, ali e se po zavretku obrade krenuti s obradom Timera 0, a tek po
zavretku toga se mikrokontroler vraa na obradu prekida Timera 1).
Koritenjem registra IP (Interrupt Priority) mogue je podignuti vanost nekog prekida. Stvara se dvorazinski sustav gdje je
razina 1 vanija, te e se prekidi te razine izvriti prije onih s razine 0.
ERRO 2013/14.
str.6/9
2.
3.
Timer 0 (PT0=1)
4.
5.
Timer 1 (PT1=1)
6.
7.
8.
Timer 0 (PT0=0)
9.
10.
Timer 1 (PT1=0)
11.
Uz ove registre i prekide postoje i registri i postupci koji su vezani uz serijsku komunikaciju, a koji se u ovim materijalima nee
obraivati.
ERRO 2013/14.
str.7/9
Obrada prekida
Kada sklopovi mikrokontolera zakljue kako je dolo do prekida, skae na programske lokacije dane u tablici:
Interrupt
Zastavica
System reset
RST
0000H
External interrupt 0
IE0
0003H
Timer 0
TF0
000BH
External interrupt 1
IE1
0013H
Timer 1
TF1
001BH
RI or TI
0023H
Serial port
Razmak izmeu navedenih adresa je nedovoljan za programski kod koji obrauje prekid, pa je esto na tim adresama
bezuvjetan skok na drugu lokaciju koja sadri kod za obradu.
Obrada prekida moe biti pozvana u bilo kojem trenutku. Kako je nuno napisati "univerzalnu" rutinu za obradu, uobiajen
redoslijed u obradi prekida je:
1. spremanje konteksta (spremanje trenutnih vrijednosti registara koji e tijekom obrade biti prepisani drugim
vrijednostima, koje su nune za obradu prekida)
2. obrada prekida
3. vraanje konteksta (povrat vrijednosti u registre kako bi nastavili s osnovnim programom)
4. resetiranje zastavice koja je aktivirala prekid (TF1, TF0, IE1 ... ) - pogledati materijale s predavanja
Specifinosti obrade prekida 8051 u SDCC (i drugim C prevodiocima) su objanjene dalje u tekstu.
ERRO 2013/14.
str.8/9
Rad s timerima
8051 ima 2 Timera: Timer0 i Timer1. Timeri istovremeno rade i kao brojai, te se njihove karakteristike definiraju kroz TMOD
registar (Timer Mode)
T1M0
0
1
0
1
MOD
0
1
2
3
OPIS
13-bit timer
16-bit timer
8-bit auto-reload
Split mode
T0M0
0
1
0
1
MOD
0
1
2
3
OPIS
13-bit timer
16-bit timer
8-bit auto-reload
Split mode
ERRO 2013/14.
str.9/9
oznaka prekida
0
1
2
3
4
adresa lokacije
003
0x0B
013
0x1B
023