[ Pobierz całość w formacie PDF ]

PozostaÅ‚Ä… cz¹ść pami¹ci RAM zajmujÄ… rejestry ogólnego przeznaczenia (GPR). Liczba
ich zależy od typu procesora i wynosi od 25 do 368. W niektórych procesorach  np.
PIC16F87X  ogólnie dost¹pne rejestry o adresach wzgl¹dnych 70h  7Fh w ban-
kach 1, 2, 3 zamapowane sÄ… w banku 0, tzn. odwoÅ‚anie si¹ do nich powoduje, że ope-
racja wykonywana jest na rejestrze o tym samym adresie wzgl¹dnym w banku 0. Nie-
zaimplementowane rejestry z banku 1 sÄ… niekiedy mapowane w banku 0.
Rozdział 1. f& Schemat blokowy, pamięć, rejestry 33
Tabela 1.6. Mapa pamięci RAM w procesorze PIC12C509
Bank 0 Adres Bank 1 Adres
rejestru rejestru
INDF 00h 20h
TMR0 01h 21h
PCL 02h 22h
STATUS 03h 23h
FSR 04h 24h
Zamap.
OSCCAL 05h 25h
w
GPIO 06h 26h
banku 0
07h 27h
Ogólnie
dost¹pne
(GPR)
9 rej. 0Fh 2Fh
10h 30h
Ogólnie Ogólnie
dost¹pne dost¹pne
(GPR) (GPR)
16 rej 1Fh 16 rej. 3Fh
Rejestr STATUS
W procesorach Mid-Range rejestr STATUS (statusowy) zawiera bity określające stan
jednostki arytmetyczno-logicznej (ALU), czyli tzw. flagi Z, DC i C, bity wyboru ban-
ku IRP, RP0, RP1 oraz bity: ~TO i ~PD, które zależą od okoliczności resetu. Bity Z,
DC i C charakteryzujÄ… wynik operacji arytmetycznej lub logicznej. Jest on  tak jak
każdy rejestr  zapisywalny, tzn. można do niego przesłać wynik wykonania in-
strukcji. W takim przypadku modyfikacja bitów Z, DC i C jest zablokowana.
W procesorze PIC12C509 w rejestrze STATUS bit 6 jest niezaimplementowany, inne
jest też znaczenie bitu 7, który peÅ‚ni funkcj¹ flagi ustawianej przy zmianie stanu na li-
niach GP2:0.
Rejestr STATUS (adres 03h,
zaimplementowany we wszystkich bankach)
R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x
IRP RP1 RP0 ~TO ~PD Z DC C
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
gdzie:
R  bit odczytywalny
W  bit zapisywalny
34 Mikroprocesory jednoukładowe PIC
U  bit niezaimplementowany
n  stan po włączeniu zasilania (0, 1, lub x  stan nieokreślony)
Oznaczenia te stosowane b¹dÄ… przy opisie wszystkich rejestrów.
bit 7 (IRP)  bit wyboru banku dla adresowania pośredniego
0  Bank 0, 1 (0h  FFh)
1  Bank 2, 3 (100h  1FFh)
Dla procesorów używających tylko banku 0 i 1 bit 7 IRP nie jest używany i powinien
pozostać wyzerowany.
bity 6  5 (RPl:RP0)  bity wyboru banku dla adresowania bezpośredniego
00  Bank 0 (00h  7Fh)
01  Bank 1 (80h  FFh)
10  Bank 2 (100h  17Fh)
11  Bank 3 (180h  1FFh)
Każdy bank ma 128 bajtów. Dla procesorów używających tylko banku 0 i 1 bit 6 (RP1)
nie jest używany i powinien pozostać wyzerowany.
bit 4 (~TO)  bit przepełnienia licznika WDT
1  po włączeniu, wykonaniu instrukcji lub
0  nastąpiło przepełnienie licznika WDT
bit 3 (~PD)  bit sygnalizujący przejście w stan uśpienia
1  po włączeniu lub wykonaniu instrukcji
0  po wykonaniu instrukcji
bit 2 (Z)  bit (flaga) zera
1  wynikiem operacji arytmetycznej lub logicznej jest zero
0  wynikiem operacji arytmetycznej lub logicznej jest liczba różna od zera
bit 1 (DC)  bit przeniesienia połówkowego (Digit Carry)
1  nastąpiło przeniesienie z 3 na 4 bit
0  nie nastąpiło przeniesienie z 3 na 4 bit
bit 0 (C)  bit przeniesienia/pożyczki (Carry)
1  nastąpiło przeniesienie z najbardziej znaczącego bitu
0  nie nastąpiło przeniesienie z najbardziej znaczącego bitu
Dla operacji odejmowania (instrukcje: i ) bit C peÅ‚ni funkcj¹ zanegowanej
pożyczki.
Rozdział 1. f& Schemat blokowy, pamięć, rejestry 35
Rejestr STATUS dla procesora PIC12C509 (adres 03h)
R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x
GPWUF  PA0 ~TO ~PD Z DC C
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
bit 7 (GPWUF)  bit (flaga) ustawiana przy zmianie stanu na liniach GP3, 1, 0
0  po wyzerowaniu procesora po załączeniu zasilania (POR), z WDT i ~MCLR
1  po wyzerowaniu procesora po zmianie na liniach GP3, 1, 0 (od ostatniego
odczytu)
bit 5 (PA0)  bit wyboru banku
0  bank 0
1  bank 1
W przykładzie 1.3 pokazano kilka typowych rozkazów wykonywanych na rejestrze STA-
TUS. Zastosowano instrukcj¹ do wyzerowania zawartoÅ›ci rejestru STATUS.
Jak już wczeÅ›niej wspomniano, nie odnosi si¹ ona do bitów Z, DC i C. Kolejne linie
pokazujÄ…, jak można ustawić bity RP0 i RP1 oraz flag¹ przeniesienia (C). Ostatni frag-
ment pokazuje sprawdzanie, czy zawartość rejestru równa jest zero, przez spraw-
dzenie flagi Z, ustawianej podczas wykonywania instrukcji .
Przykład 1.3. Operacje na rejestrze STATUS
Modyfikacja i odtwarzanie
zawartości licznika rozkazów
Relacje pomi¹dzy licznikiem rozkazów, stosem a rejestrem STATUS najlepiej prze-
Å›ledzić na przykÅ‚adzie opisu zachowania si¹ procesora w typowych sytuacjach obej-
mujÄ…cych rozkazy odwoÅ‚ujÄ…ce si¹ do rejestru PCL, rozkazy skoków i wywoÅ‚aÅ„ pod-
programów. Przedstawione opisy posłużą w tym miejscu jedynie do ilustracji mecha-
nizmów modyfikacji i odtwarzania licznika rozkazów. Przykłady wykorzystujące te
mechanizmy podano przy okazji opisu rozkazów skoków w rozdziale 5.
36 Mikroprocesory jednoukładowe PIC [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • gabrolek.opx.pl