Lista rozkazowa


Opis mikrokontrolera 8051
Lista rozkazowa
Timery
Warszawa, 2005-10-01
IMiO PW, LPTM, Lista rozkazowa 8051 -2-
Oznaczenia i skróty:
A - akumulator
C - wska nik przeniesienia
DPTR - wska nik danych, rejestr 16-bitowy
Rn - rejestr R0-R7 z aktywnego banku rejestrów
direct - 8-bitowy adres lokacji w wewn trznej pami ci danych
(adresowanie bezpo rednie)
@Ri - 8-bitowa lokacja w wewn trznej pami ci danych dost pna po rednio
poprzez zawarto rejestru R1 lub R0 (adresowanie
rejestrowe po rednie)
#n - sta a 8-bitowa (adresowanie natychmiastowe)
#nn - sta a 16-bitowa (adresowanie natychmiastowe)
bit - adres bitu dost pnego bezpo rednio (z obszaru 20H-2FH wewn trznej
pami ci danych lub z niektórych rejestrów specjalnych)
/bit - negacja zawarto ci bitu o adresie "bit"
rel - przesuni cie 8-bitowe o warto ciach zawartych
w przedziale <-128, 127>
etykieta - adres 11-bitowy lub 16-bitowy
IMiO PW, LPTM, Lista rozkazowa 8051 -3-
1. Tryby adresowania wewn trznej pami ci danych:
a) Adresowanie bezpo rednie (mo liwe dla ca ego obszaru wewn trznej pami ci danych), np.
instrukcja:
mov A, 32H (A) (32H)
oznacza, e do akumulatora wpisywana jest zawarto komórki pami ci o adresie 32H.
UWAGA! Je eli trzeba zastosowa adresowanie bezpo rednie w stosunku do akumulatora, to
wówczas trzeba u ywa symbolu ACC, np. instrukcje push ACC i pop ACC.
b) Adresowanie natychmiastowe, np. instrukcja:
mov A, #32H (A) 32H
oznacza, e do akumulatora wpisywana jest warto 32H.
c) Adresowanie rejestrowe; dotyczy tylko akumulatora, rejestru DPTR oraz rejestrów R0-R7
z wybranego banku rejestrów, np. instrukcja:
mov A, R0 (A) (R0)
oznacza, e do akumulatora jest podstawiana zawarto rejestru R0  oba operandy, A i R0,
s w tej instrukcji adresowane rejestrowo.
UWAGA! T sam operacj realizuje równie instrukcja
mov ACC, R0 (A) (R0),
ale w tym przypadku akumulator adresowany jest bezpo rednio.
d) Adresowanie rejestrowe po rednie (dla obszaru 00H - 7FH wewn trznej pami ci danych),
np. instrukcja
mov A, @R0 (A) ((R0))
oznacza, e do akumulatora wpisywana jest zawarto komórki pami ci, której adres znajduje
si w rejestrze R0.
e) Adresowanie bezpo rednie bitów (dla obszaru 20H - 2FH wewn trznej pami ci danych
oraz adresowanych bitowo rejestrów specjalnych), np. instrukcja:
IMiO PW, LPTM, Lista rozkazowa 8051 -4-
mov C, ACC.7 (C) (ACC.7)
oznacza, e do wska nika przeniesienia C (PSW.7) wpisywana jest warto najstarszego bitu
akumulatora.
Inne przyk ady adresowania bezpo redniego bitów:
mov TCON.5, C
jb 21H.3, skacz
jnb P1.0, p tla
IMiO PW, LPTM, Lista rozkazowa 8051 -5-
2. Lista rozkazowa
2.1. Operacje arytmetyczne
W przypadku dwuargumentowych operacji arytmetycznych jednym z argumentów jest
zawsze akumulator. Wynik operacji jest równie zawsze umieszczany w akumulatorze.
Instrukcja D ugo Czas Opis
(bajty) (cykle)
ADD A, Rn 1 1 Dodawanie bez przeniesienia
ADD A, direct 2 1
ADD A, @Ri 1 1
ADD A, #n 2 1
ADDC A, Rn 1 1 Dodawanie z przeniesieniem
ADDC A, direct 2 1
ADDC A, @Ri 1 1
ADDC A, #n 2 1
SUBB A, Rn 1 1 Odejmowanie (zawsze z po yczk )
SUBB A, direct 2 1
SUBB A, @Ri 1 1
SUBB A, #n 2 1
INC A 1 1 Inkrementacja (zwi kszanie o 1)
INC Rn 1 1
INC direct 2 1
INC @Ri 1 1
INC DPTR 1 2
DEC A 1 1 Dekrementacja (zmniejszanie o 1)
DEC Rn 1 1
DEC direct 2 1
DEC @Ri 1 1
MUL AB 1 4
Mno enie A B (m odszy bajt wyniku zapisywany
jest do A, starszy do rejestru B)
DIV AB 1 4 Dzielenie ca kowite A/B (wynik dzielenia
zapisywany jest do A, reszta dzielenia do rejestru B)
DA A 1 1 Korekcja dziesi tna A (dla kodu BCD)
2.2. Operacje logiczne
Instrukcja D ugo Czas Opis
(bajty) (cykle)
ANL A, Rn 1 1 iloczyn logiczny (wynik w pierwszym argumencie)
ANL A, direct 2 1
ANL A, @Ri 1 1
ANL A, #n 2 1
ANL direct, A 2 1
ANL direct, #n 3 2
IMiO PW, LPTM, Lista rozkazowa 8051 -6-
ORL A, Rn 1 1 suma logiczna (wynik w pierwszym argumencie)
ORL A, direct 2 1
ORL A, @Ri 1 1
ORL A, #n 2 1
ORL direct, A 2 1
ORL direct, #n 3 2
XRL A, Rn 1 1 suma roz czna - exclusive-or (wynik w pierwszym
XRL A, direct 2 1 argumencie)
XRL A, @Ri 1 1
XRL A, #n 2 1
XRL direct, A 2 1
XRL direct, #n 3 2
CLR A 1 1 zerowanie akumulatora
CPL A 1 1 negacja poszczególnych bitów akumulatora
(negacja logiczna akumulatora)
RL A 1 1 rotacja w lewo
RLC A 1 1 rotacja w lewo poprzez bit przeniesienia
RR A 1 1 rotacja akumulatora w prawo
RRC A 1 1 rotacja akumulatora w prawo poprzez bit
przeniesienia
SWAP A 1 1 zamiana miejscami po ówek akumulatora
2.3. Przes ania danych
Instrukcja D ugo Czas Opis
(bajty) (cykle)
MOV A, Rn 1 1 przes anie w obr bie wewn trznej pami ci
MOV A, direct 2 1 danych
MOV A,@Ri 1 1 (pierwszy argument jest celem, drugi ród em
MOV A,#n 2 1 mov cel, ród o)
MOV Rn, A 1 1
MOV Rn, direct 2 2
MOV Rn, #n 2 1
MOV direct, A 2 1
MOV direct, Rn 2 2
MOV direct, direct 3 2
MOV direct, @Ri 2 2
MOV direct, #n 3 2
MOV @Ri, A 1 1
MOV @Ri, direct 2 2
MOV @Ri, #n 2 1
MOV DPTR, #nn 3 2
MOVC A, @A+DPTR 1 2 przes ania pomi dzy pami ci programu i
MOVC A, @A+PC 1 2 akumulatorem
MOVX A, @DPTR 1 2 przes ania z /do zewn trznej pami ci danych
MOVX A, @Ri 1 2
MOVX @DPTR, A 1 2
MOVX @Ri, A 1 2
IMiO PW, LPTM, Lista rozkazowa 8051 -7-
PUSH direct 2 2 po o enie na stos
POP direct 2 2 zdj cie ze stosu
XCH A,Rn 1 1 wymiana zawarto ci mi dzy rejestrami
XCH A,direct 2 1
XCH A,@Ri 1 1
XCHD A, @Ri 1 1 wymiana m odszej cyfry
2.4. Operacje na bitach
Instrukcja D ugo Czas Opis
(bajty) (cykle)
CLR C 1 1 zerowanie wska nika przeniesienia C
CLR bit 2 1 zerowanie bitu
SETB C 1 1 ustawianie wska nika przeniesienia C
SETB bit 2 1 ustawianie bitu
CPL C 1 1 negacja wska nika przeniesienia C
CPL bit 2 1 negacja bitu
ANL C,bit 2 2 iloczyn logiczny
ANL C, /bit 2 2
ORL C,bit 2 2 suma logiczna
ORL C, /bit 2 2
MOV C, bit 2 1 przes anie
MOV bit, C 2 2
JC rel 2 2 skacz, je eli C=1
JNC rel 2 2 skacz, je eli C=0
JB bit, rel 3 2 skacz, je eli bit=1
JNB bit, rel 3 2 skacz, je eli bit=0
JBC bit, rel 3 2 skacz, je eli bit=1i wyzeruj bit
2.5. Skoki w programie
Instrukcja D ugo Czas Opis
(bajty) (cykle)
*)CALL etykieta - - wywo anie procedury etykieta
RET 1 ´2 powrót z procedury
RETI 1 2 powrót z procedury obs ugi przerwania
*) JMP etykieta - - skok bezwarunkowy
JZ rel 2 2 skok warunkowy, je eli A=0
JNZ rel 2 2
skok warunkowy, je eli A 0
CJNE A, direct, rel 3 2 porównaj dwa pierwsze argumenty i skocz
CJNE A, #n, rel 3 2 je eli nie s sobie równe
CJNE Rn, #n, rel 3 2
CJNE @Ri, #n, rel 3 2
DJNZ Rn, rel 2 2 zdekrementuj pierwszy argument i skocz,
DJNZ direct, rel 3 2 je eli wynik ró ny od zera
NOP 1 1 nic nie rób
*)
W rzeczywisto ci istnieje wi cej wariantów tej instrukcji. W zale no ci od sytuacji asembler przet umaczy form podan w tabeli na odpowiedni wariant.
IMiO PW, LPTM, Lista rozkazowa 8051 -8-
Uk ady czasowo-licznikowe mikrokontrolera 8051
Mikrokomputer 8051 zawiera dwa 16-bitowe liczniki T0 i T1 spe niaj ce rol uk adów
czasowo-licznikowych. Mog one spe nia funkcj licznika zliczaj cego impulsy zewn trzne
doprowadzone odpowiednio do wej P3.4 (licznik T0) lub P3.5 (licznik T1). Mog te pe ni
funkcj czasomierza zliczaj cego wewn trzne impulsy zegarowe w celu generowania
opó nie i/lub generowania przerwa zegarowych o zaprogramowanej cz stotliwo ci. Ka dy
z tych liczników mo e pracowa w jednym z czterech trybów (modów) pracy.
Do programowania pracy liczników T0 i T1 s u dwa rejestry specjalne (SFR): rejestr trybu
pracy TMOD (SFR o adresie 89H) oraz rejestr steruj cy TCON (SFR o adresie 88H z
mo liwo ci adresowania bitowego). Rejestr TMOD (Rys. 1) s u y do ustawiania trybu pracy
i funkcji realizowanych przez liczniki.
Rys. 1. Rejestr trybu pracy TMOD
Poszczególne bity rejestru TMOD maj nast puj ce znaczenie:
Bity M 1, M0 s u do ustawienia trybu (modu) pracy:
Tabela 1:
M0 M1 Tryb Opis
0 0 0 timer 13-bitowy
0 1 1 timer 16-bitowy
1 0 2 timer 8-bitowy z automatycznym prze adowaniem (autoreload)
1 1 3 timer dzielony (split timer)
W tym trybie timer TR1 nie jest programowany w TMOD, natomiast
licznik T0 dzia a jak dwa niezale ne timery 8-bitowe: TL0
programowany jest bitami Timera 0, natomiast TH0 programowany
jest bitami timera T1
C/T - okre lenie realizowanej funkcji (okre lenie ród a zegara dla liczników):
C/T = 0 - czasomierz (zegar wewn trzny),
C/T = 1 - licznik impulsów zewn trznych (zegar zewn trzny odpowiednio z lini P3.4
(dla T0) i P3.5 (dla T1)).
GATE - bramkowanie zewn trznym sygna em sygna u zegarowego liczników:
GATE = 0 - bramkowanie zewn trzne nieaktywne
GATE = 1 - dzia anie liczników mo liwe je eli odpowiednio:
sygna P3.2 = 1 (dla licznika T0)
sygna P3.3 = 1 (dla licznika T1)
IMiO PW, LPTM, Lista rozkazowa 8051 -9-
Rys. 2. Rejestr steruj cy TCON.
Rejestr TCON (Rys.2) s u y do kontroli (status) i sterowania prac liczników T0 i T1. Rejestr
TCON mo e by adresowany bitowo. Poszczególne bity tego rejestru s u do:
TCON.6 (TR1) i TCON.4 (TR0) - steruj zliczaniem liczników T0 i T1;
TRi = 0 (i = 0, 1) powoduje zatrzymanie licznika Ti,
TRi = 1 (i = 0, 1) powoduje prac licznika Ti.
TCON.7 (TFl) i TCON.5 (TF0)  to wska niki przepe nienia liczników. Ustawiane
sprz towo po przepe nieniu licznika. Kasowane
sprz towo po wej ciu w obs ug przerwania licznika.
Pozosta e bity rejestru TCON zwi zane s z prac systemu przerwa i tak:
TCON.3 (IE1) - wska nik zg oszenia przerwania na wej ciu INT1,
TCON.1 (IE0) - wska nik zg oszenia przerwania na wej ciu INT0,
TCON.0 (IT0) - sterowanie sposobem zg oszenia przerwania na wej ciu INT0
IT0 = 0  przerwanie zg aszane opadaj cym zboczem sygna u INT0
IT0 = 1  przerwanie zg aszane niskim poziomem sygna u INT0
TCON.2 (IT1) - sterowanie sposobem zg oszenia przerwania na wej ciu INT1
IT1 = 0  przerwanie zg aszane opadaj cym zboczem sygna u INT1
IT1 = 1  przerwanie zg aszane niskim poziomem sygna u INT1
16-bitowe liczniki uk adu czasowo-licznikowego dost pne s programowo jako rejestry
specjalne (SFR), odpowiednio:
TH0 (SFR o adresie 8CH) - bardziej znacz cy bajt licznika T0,
TL0 (SFR o adresie 8AH) - mniej znacz cy bajt licznika T0,
TH1 (SFR o adresie 8DH) - bardziej znacz cy bajt licznika T1,
TL1 (SFR o adresie 8BH) - mniej znacz cy bajt licznika T1.
Je eli jest realizowana funkcja czasomierza (tzn. w s owie TMOD odpowiedni bit C/T jest
równy 0), to zawarto licznika jest zwi kszana o 1 w ka dym cyklu maszynowym. Cykl
maszynowy trwa 12 taktów zegara. Cz stotliwo sygna u zegarowego liczników wynosi
zatem fC = fosc /12, gdzie fosc jest cz stotliwo ci oscylatora mikrokontrolera (typowo fosc
jest równe 11,0582 MHz).
IMiO PW, LPTM, Lista rozkazowa 8051 -10-
System przerwa mikrokontrolera 8051
System przerwa mikrokotrolera 8051 mo e przyjmowa zg oszenia nast puj cych przerwa :
- zewn trznych:
- z wej cia INT0 (IE0 - TCON.1)
- z wej cia INT1 (IE1 - TCON.3)
- z uk adów czasowo-licznikowych:
- przepe nienie licznika T0 (TF0 - TCON.5)
- przepe nienie licznika Tl (TF1 - TCON.7)
- z portu szeregowego:
- koniec nadawania znaku (TI - SCON.1) lub koniec odbierania znaku (RI - SCON.0).
Z ka d z przyczyn przerwania jest zwi zany odpowiedni wska nik. Wpisanie jedynki do
wska nika powoduje zg oszenie przerwania. Wyzerowanie wska nika powoduje skasowanie
zg oszenia. Odbywa si to automatycznie - odpowiednio przy wyst pieniu przyczyny
przerwania i przy jego przyj ciu (jedynie wska niki TI i RI nie s zerowane automatycznie).
Wszystkie wymienione wska niki mog by te ustawiane i zerowane programowo.
System przerwa mo e by w czany i wy czany globalnie oraz ka de ze róde przerwania
mo e by indywidualnie maskowane przez ustawienie odpowiedniego bitu w rejestrze
steruj cym IE (SFR o adresie 0ABH z mo liwo ci adresowania bitowego). Wyzerowanie
danego bitu w rejestrze IE oznacza zablokowanie zg aszania odpowiadaj cego mu
przerwania, wpisanie jedynki - odblokowanie zg oszenia przerwania odpowiadaj cego temu
bitowi. Po zainicjowaniu mikrokomputera (po RESET-cie) s owo steruj ce IE jest
wyzerowane, tzn. system przerwa jest wy czony, a wszystkie ród a przerwa
zamaskowane.
Rys. 3. Rejestr steruj cy systemem przerwa IE.
Poszczególne bity rejestru IE maj nast puj ce znaczenie:
Tabela 2:
Bit Nazwa Opis
IE.7 EA W czenie/Wy czenie systemu przerwa
0 - system przerwa nieaktywny
1 - system przerwa aktywny
IE.6 - Zarezerwowane
IE.5 ET2 W czenie/Wy czenie przerwania Timera 2 (tylko w 8052)
IE.4 ES W czenie/Wy czenie przerwania Portu Szeregowego
IE.3 ET1 W czenie/Wy czenie przerwania Timera 1 (TF1)
IE.2 EX1 W czenie/Wy czenie przerwania zewn trznego 1 (IE1)
IE.1 ET0 W czenie/Wy czenie przerwania Timera 0 (TF0)
IE.0 EX0 W czenie/Wy czenie przerwania zewn trznego 0 (IE0)
IMiO PW, LPTM, Lista rozkazowa 8051 -11-
Ka demu z przerwa , mo e zosta przypisany wy szy (po ustawieniu bitu) lub ni szy (po
wyzerowaniu bitu) priorytet przez ustawienie lub wyzerowanie w a ciwego bitu w rejestrze
steruj cym priorytetem IP (SFR o adresie 0B8H mo liwo ci adresowania bitowego).
Rys. 4. Rejestr priorytetów przerwa IP
Poszczególne bity rejestru IP maj nast puj ce znaczenie:
Tabela 3:
Bit Nazwa Przerwanie Opis Priorytet
IP.7 - - Zarezerwowane
IP.6 - - Zarezerwowane
IP.5 PT2 ET2 Priorytet przerwania Timera 2 (tylko w 8052) najni szy
IP.4 PS ES Priorytet przerwania Portu Szeregowego
IP.3 PT1 ET1 Priorytet przerwania Timera 1 (TF1)
IP.2 PX1 EX1 Priorytet przerwania zewn trznego 1 (IE1)
IP.1 PT0 ET0 Priorytet przerwania Timera 0 (TF0)
IP.0 PX0 EX0 Priorytet przerwania zewn trznego 0 (IE0) najwy szy
W przypadku jednoczesnego zg oszenia dwóch przerwa , jako pierwsze przyjmowane jest
przerwanie maj ce wy szy priorytet. Natomiast, przy jednoczesnym zg oszeniu kilku
przerwa o tym samym priorytecie, o kolejno ci przyj cia zadecyduje ustalony priorytet
zg osze , przedstawiony w Tabeli 3.
W czasie wykonywania programu obs ugi przerwania o ni szym priorytecie b dzie przyj te
zg oszenie przerwania o wy szym priorytecie (je eli nie jest zablokowane), a nie b dzie
przyj te zg oszenie przerwania o tym samym (tj. ni szym) priorytecie. W czasie
wykonywania programu obs ugi przerwania o wy szym priorytecie b dzie przyj te adne
zg oszenie przerwania.
IMiO PW, LPTM, Lista rozkazowa 8051 -12-
Troch u ytecznych informacji o 8051
IMiO PW, LPTM, Lista rozkazowa 8051 -13-


Wyszukiwarka

Podobne podstrony:
8051 Lista rozkazow
!!! Tylko lista rozkazów 51
Skrócona lista rozkazów mikroprocesora 8086
!!! Lista rozkazów 51 na podstawie KURSU EDW
ATMEL lista rozkazow
Wykład 6 Lista rozkazów
lista zadań
MakijaĹĽ LISTA PRZEBOJĂ“W
Lista zadan nr 3 z matematyki dyskretnej
Lista afirmacji głos

więcej podobnych podstron