Professional Documents
Culture Documents
MIKROUPRAVLJACI
MIKROUPRAVLJACI
...
MIKROUPRAVLJAČI 1 – MK1
..........................
Mikroupravljači
1 ON-LINE SUSTAV............................................................................................................3
2 ARHITEKTURA RAČUNALA.......................................................................................5
3 MIKROUPRAVLJAČI (MIKROUPRAVLJAČI).........................................................7
3.1 POJAM, NAMJENA.................................................................................................7
3.2 OSNOVNI MODULI MIKROUPRAVLJAČA........................................................7
3.3 UNUTARNJA STRUKTURA MIKROUPRAVLJAČA...........................................8
4 MIKROUPRAVLJAČ ATMEL AT89C2051.................................................................11
4.1 OSNOVNA OBILJEŽJA................................................................................................11
4.2 KONFIGURACIJA PINOVA..........................................................................................12
4.3 UŠTEDA ENRGIJE................................................................................................13
4.4 RADNI UVJETI......................................................................................................14
4.5 OSNOVNE IZVEDBE KUČIŠTA MIKROUPRAVLJAČA AT89C2051..............15
4.6 MIKROUPRAVLJAČ ATMEL AT89C2051- BLOK SHEMA, PROGRAMSKI MODEL.......17
4.7 MEMORIJA MIKROKONTOLERA.................................................................................18
4.7.1 PROGRAMSKA MEMORIJA.............................................................................18
4.7.2 PODATKOVNA MEMORIJA..............................................................................18
4.7.3 RAM MEMORIJA...............................................................................................19
4.7.4 MEMORIJSKO PODRUČJE SPECIJALNIH FUNKCIJSKIH REGISTARA
(SFR) 21
5 ASEMBLER....................................................................................................................30
5.1 ADRESNI DIO INSTRUKCIJE.............................................................................30
5.2 ADRESE U INSTRUKCIJAMA ZA OBAVLJANJE ARITMETIČKIH I
LOGIČKIH OPERACIJA......................................................................................................31
5.3 SIMBOLIČKI OBLIK ADRESA U MEMONIČKOM JEZIKU............................34
5.4 INSTRUKCIJE ZA PROVOĐENJE ARITMETIČKIH OPERACIJA.......................................34
5.4.1 Instrukcije za zbrajanje i oduzimanje (ADD, ADDC, SUBB).............................34
5.4.2 Instrukcije za množenje i dijeljenje (MUL, DIV)................................................35
5.5 LOGIČKE INSTRUKCIJE.....................................................................................36
5.6 UPRAVLJAČKE INSTRUKCIJE...........................................................................38
6 KOMBINACIJSKI I SEKVENCIJSKI ZADACI.......................................................41
6.1 KOMBINACIJSKI ZADACI..................................................................................41
6.2 SEKVENCIJSKI ZADACI.....................................................................................42
1 ON-LINE sustav
ON-LINE sustav je dobio ime po tome što se podaci prenose po liniji u
računalo. Pod tom "linijom" podrazumijevamo razne električne vodiče i
sustave potrebne za prijenos podataka.
Podaci u jednom on-line sustavu se obrađuju u tzv.realnom vremenu.
Vrijeme potrebno da neka informacija dođe sa mjesta nastanka do
računala se najčešće mjeri u mikrosekundama. S obzirom na sredine u
kojima se nešto mjeri ili upravlja, to kratko vrijeme obrade vrlo često zna
biti veoma važno, čak i presudno za rad pojedinog procesa.
Sve ono što se može mjeriti i pratiti, vrši se na on-line način. Ti se
sustavi najčešće upotrebljavaju u industriji, građevinarstvu,
brodogradnji, itd.
Neki problemi se naprosto ne mogu riješiti bez on-line sustava, jer ništa
drugo nema takvu moć obrade i brzinu prijenosa podataka kao on-line
sustav. Pritom se uzima u obzir da, kad moć i nije dovoljna za rad
nekog sustava, mogu se upotrijebiti i više procesora, što zadovoljava
čak i najzahtjevnije sustave.
Osnovni zaključak je da se upotrebom on-line sustava može brzo i
kvalitetno dobiti informacija o stanju procesa. Ako još sustav i odlučuje
o tome što treba poduzeti, a on to i poduzme, onda je njegova moć i
veća.
Osnovni sklopovski elementi za on-line način rada
Sredina koja
se
mjeri ili
upravlja
ekran
prikaz podataka
2 Arhitektura računala
CPU + Memorija
Harvard arhitektura
ADRESE
PODATKOVNA
PODATCI
MEMORIJA PC
CPU
ADRESE
PROGRAMSKA
PODATCI
MEMORIJA
Programski model
- Programski model: registri vidljivi programeru
- Neki registri nisu vidljivi (IR).
Asemblersi jezik
''jedan-na-jedan'' sa instrukcijama
Osnovne karakteristike:
- Jedna instrukcija po redu
- Labele daju imena za adresu (obično u prvoj koloni)
- Instrukcije često počinju u kasnijim kolonama
- kolone se izvode do kraja reda
3 MIKROUPRAVLJAČI (MIKROKONTROLERI)
POJAM, NAMJENA
BROJAČI
GENERATOR TAKTA R A M ROM
A/D
WATCHDOG
SERIJSKI PORT
MIKROPROCESOR
najčešće 8-bitni procesori s poznatijim setom instrukcija
mogu biti CISC ili RISC (za brže mikroupravljače)
MEMORIJA MIKROUPRAVLJAČA
memoriju mikroupravljača dijelimo na radnu i programsku
memoriju
programska memorija sadrži programske instrukcije i po tipu
mogu biti ROM, PROM, EPROM i EEPROM
programska memorija može biti ugrađena na samom čipu ili
izvedena kao vanjska (najčešće kombinirano)
programatorima se upisuje sadržaj u programsku memoriju
programski kod je zaštićen od neovlaštenog čitanja
radna memorija je tipa RAM, a koristi se za rukovanje podacima,
čuvanje i prikupljanje podataka
kapacitet ove memorije nije velik, ali je moguće vanjsko
proširivanje (do 64k)
sastavni dio ove memorije mogu piti pojedini registri procesora
ULAZNO/IZLAZNI SKLOPOVI
sklopovi za paralelni ulaz i izlaz podataka sastavni su dio svakog
mikroupravljača
svi ti izvodi mogu biti definirani kao ulazni ili izlazni, što se
određuje preko odgovarajućih registara
U/I izvodi se mogu koristiti i za proširenje memorije, kontrolu
prekida i sl.
pristup ulazima ili izlazima obavlja se preko za to predviđenih
registara
GENERATOR TAKTA
u sve mikroupravljače standardno se ugrađuje generator takta,
koji zahtjeva jedino vanjski kvarc kristal
uz izvor stabilne frekvencije dodaje se jedino nekoliko diskretnih
komponenti (ponekad je dovoljno dodati RC kombinaciju)
preko posebnog ulaza može se dovesti takt generiran negdje
izvana
PREKIDNI SUSTAV
namjena sustava je nadziranje svih izvora interrupta (prekida
rada) vanjskih i unutrašnjih
prekide dijelimo na maskirane i nemaskirane, a razlikuju se i po
prioritetu
prekidna maska može onemogućiti prekid
vanjski prekidi nisu predviđeni za posebne namjene i o njima
odlučuje korisnik
unutrašnji se uglavnom koriste za usklađivanje izvršenja tekućeg
programa
neki jednostavniji mikroupravljači nemaju prekidni sustav
WATCHDOG
specijalno brojilo za praćenje rada mikroupravljača
sadržaj brojila se povećava, a ispravni način rada vraća brojilo
na početnu vrijednost
ako mikroupravljač radi nepravilno, brojilo raste i kada dostigne
određenu vrijednost, prekida izvršenje tekućeg programa
ODABIR MIKROUPRAVLJAČA
Konfiguracija pinova
Opis pinova:
VCC: Napon napajanja
GND: Masa
UŠTEDA ENRGIJE
RADNI UVJETI
GND
STACK
B REGISTER ACC POINTER
PROGRAM
ADDRESS
REGISTER
TEMP2 TEMP 1
BUFFER
ALU
PC
INCREMENTER
INTERRUPT, SERIAL
PSW PORT, AND TIME
BLOCKS PROGRAM
COUNTER
TIMING
INSTRUCTION
AND REGISTER DPTR
RST CONTROL
PORT 1 PORT 3
ANALOG
COMPARATOR
LATCH LATCH
OSC
PORT 1 PORT 3
Memorija mikrokontolera
62 KB
v a n jsk e
p ro g ra m sk e m e m o rije 64 KB
ili v a n jsk e p ro g ra m sk e
m e m o rije
0800
07FF 2 KB
in te g rira n e
0000 p ro g ra m sk e m e m o rije 0000
Vidimo da možemo integriranoj memoriji pridružiti 62 KB vanjske
memorije ili možemo dodati čitavih 64 KB vanjske memorije. U tom
slučaju mikroupravljač adresira samo vanjsku memoriju i zanemaruje
integriranu programsku memoriju.
FF
64 KB
P o d ru čje
ili v a n jsk e R A M
fu n k c ijs k ih re g is ta ra
m e m o rije
80
7F
P re o sta li s lo b o d n i d io
R A M m e m o rije
00 0000
Područje funkcijskih registara programeru je dostupno samo preko
direktnog adresiranja, dok je RAM memorija dostupna direktnim ili
indirektnim adresiranjem. Pri pristupanju vanjskoj RAM memoriji koristi
se asemblerska naredba MOVX.
78 7F
70 77
68 6F
60 67 RAM
58 5F SEGMENT
50 57
48 4F
40 47
38 3F
30 37
28 ...7 F 2 F SEGMENT S MOGUĆNOŠĆU
2 0 0 ... 27 A D R E S IR A N JA P O JE D IN O G B IT A
18 4 1F
BANKE
10 3 17 R E G IS T A R A
08 2 0F
00 1 07
DPTR-a
DPH Značajniji bajt DPTR-a 83H 00000000
P1 Registar porta 1 90H 11111111
P3 Registar porta 3 0B0H 11111111
IP Kontrola prekida 0B8H XXX00000
IE Kontrola prekida 0A8H 0XX00000
TMOD Kontrola tajmera/brojila 89H 00000000
TCON Kontrola tajmera/brojila 88H 00000000
TH0 Tajmer/brojilo 0 – 8CH 00000000
značajniji bajt
TL0 Tajmer/brojilo 0 – manje 8AH 00000000
značajniji bajt
TH1 Tajmer/brojilo 1 – 8DH 00000000
značajniji bajt
TL1 Tajmer/brojilo 1 – manje 8BH 00000000
značajan bajt
SCON Serijski prijenos 98H 00000000
podataka
SBUF Buffer serijskog prijenosa 99H Nedefinirano
PCON Kontrola napajanja 87H 0XXX0000
ACC AKUMULATOR
Akumulator je jedan od registara mikroupravljača koji je izdvojen po
funkciji. Akumulator se upotrebljava za privremeno pohranjivanje jednog
operanda, sudjeluje pri izvođenju aritmetičkih i logičkih operacija nad
podacima, te u programiranom prijenosu podataka između
mikroupravljača i vanjskog svijeta. U akumulator se spremaju rezultati
aritmetičkih i logičkih operacija izvedenih u aritmetičko-logičkoj jedinici.
Akumulatori su obično smješteni na jednom od ulaza aritmetičko-
logičke jedinice i u kombinaciji s privremenim registrima (R0 – R7)
odjeljuju ulaz od izlaza aritmetičko-logičke jedinice.
B REGISTAR
B registar ima ulogu istu kao i akumulator. Štoviše on je drugi
akumulator koji omogućava djelotvornije rukovanje podacima.
rutinu.
TR1 TCON.6 Ovaj bit služi za uključenje odnoso isključenje
(ON/OFF) tajmera 1 odnosno brojila 1. Postavlja
ga program koji se izvodi.
TF0 TCON.5 Zastavica prekoračenja za tajmer/brojilo 0. Ova
se zastavica automatski postavlja u 1 kada dođe
do prekoračenja kod tajmera/brojila 0, a postavlja
ju sam hardver. Isto tako ona se automatski briše
kada procesor pokrene odgovarajuću prekidnu
rutinu.
TR0 TCON.4 Ovaj bit služi za uključenje odnosno isključenje
(ON/OFF) tajmera 0 odnosno brojila 0. Postavlja
ga program koji se izvodi.
IE1 TCON.3 Postavlja ga hardver kada se uoči vanjski prekid
preko INT1, isto tako ga briše hardver kada se
izvrši vanjski prekid.
IT1 TCON.2 Postavlja se od strane programa kako bi se
specifirala razina vanjskog prekida preko INT1.
IE0 TCON.1 Postavlja ga hardver kada se uoči vanjski prekid
preko INT0, isto tako ga briše hardver kada se
izvrši vanjski prekid.
IT0 TCON.0 Postavlja se od strane programa kako bi se
specifirala razina vanjskog prekida preko INT0.
ASEMBLER
instrukcija se sastoji od dva dijela:
Troadresne instrukcije
sadrže adrese rezultata, prvog operanda, te drugog operanda
primjer;
MUL R, W, X ; R:= W*X
Dvoadresne instrukcije
sadrže prvi i drugi operand, a međurezultat se smješta na mjesto
prvog operanda
primjer;
MOV P, Y ; P:=Y
DIV P, Z ; P:= Y/Z
Jednoadresne instrukcije
kod jednoadresnih instrukcija smatra se da je jedan operand
prethodno smješten u akumulatoru i da se rezultat operacije
smješta u akumulator
primjer;
ADD X;
LOAD X ; A:= X
STORE Y ; Y:= A
Bezadresne instrukcije
ovo je moguće u stogovno organiziranom stroju.
sastoje se od dvije instrukcije:
o PUSH, stavlja podatak na vrh stoga
o POP, uzima podatak s vrha stoga
ADRESE U INSTRUKCIJAMA ZA OBAVLJANJE
ARITMETIČKIH I LOGIČKIH OPERACIJA
LOGIČKE INSTRUKCIJE
X Y XΛY X Y XVY X Y X Y
X X
0 0 0 0 0 0 0 0 0
0 1
0 1 0 0 1 1 0 1 1
1 0
1 0 0 1 0 1 1 0 1
1 1 1 1 1 1 1 1 0
00000011 RR A
Tehnička škola Ruđera Boškovića Zagreb 36
Mikroupravljači
00010011 RRC A
00100011 RL A
00110011 RLC A
11000100 SWAPA
11100100 CLR A
11110100 CPL A
X EQU 01010101B ;
Y EQU 00001111B ;
Z EQU 30H ;
org 2000h
MOV A,#X ;zapisati u akumulator A vrijednost 01010101B
ANL A,#Y ;načiniti I operaciju s vrijednosti 00001111B
MOV Z,A :pohraniti rezultat na adresi 30H
X EQU 01010101B ;
Y EQU 00001111B ;
Z EQU 30H ;
org 2000h
MOV A,#X ;zapisati u akumulator A vrijednost 01010101B
ORL A,#Y ;načiniti ILI operaciju s vrijednosti 00001111B
MOV Z,A :pohraniti rezultat na adresi 30H
X EQU 01010101B ;
Y EQU 00001111B ;
Z EQU 30H ;
org 2000h
MOV A,#X ;zapisati u akumulator A vrijednost 01010101B
XRL A,#Y ;načiniti isključivo-ILI operaciju s vrijednosti
00001111B
MOV Z,A :pohraniti rezultat na adresi 30H
UPRAVLJAČKE INSTRUKCIJE
00000010 a15 – a8 a7 – a0
LJMP adr16
a10a9a800001 a7 – a0
AJMP adr11
01110011JMP @A+DPTR
00000000 NOP
Xk Yk = F(Xk) yk
ponavljati
pročitati vrijednosti ulaznih varijabli
obaviti nužna izračunavanja
poslati rezultate na izlaze
čekati propisano vrijeme
do beskonačnosti ili do isključivanja
Org 2000h
Petlja:
Lcall ulaz ; pročitati vrijednosti ulaznih varijabli
Lcall funkcija ; obaviti nužna izračunavanja
Lcall izlaz ; poslati rezultate na izlaze
Lcall cekati ; čekati propisano vrijeme
Sjmp petlja ;vratiti se na početak petlje
G(Xk ,Zk)
Xk Yk
H(Xk ,Zk)
Zk Zk+1
Yk=G(Xk,Zk),
Zk+1=H(Xk,Zk)
PRIMJER:
Želimo brojati koliko se puta pritisne tipka spojena na ulaz P 4.0.
Svaki put kad se tipka pritisne brojilo poveća vrijednost varijable za 1 i
na izvodu P 5.7 generira impuls trajanja 1 ms. Kada brojilo dosegne
broj 100, treba skočiti negdje na nastavak programa.
Xk Zk Yk Zk+1
0 0 0 0
0 1 0 0
1 0 1 1
1 1 0 1
CLR P5.7
S_0:
JNB P4.0, S_0
SETBP5.7
INC BROJILO
LCALLCEKATI_1MS
CLR5.7
CJNE BROJILO, #100,S
LJMP NASTAVAK
S:
CLRP5.7
S_1:
JB P4.0,S_1
SJMP S_0