Systematyczny przegląd. (CISC) SFR umieszczane są w wewnętrznej pamięci danych (80H 0FFH). Adresowanie wyłącznie bezpośrednie. Rejestry o adresach podzielnych przez 8 są też dostępne bitowo. Adres n-tego bitu m-tego rejestru: A = m + n np. trzeci bit rejestru 0E0H adresuje się jako 0E3H. Oczywiście, kwestię, czy adres 0E3H odnosi się do bitu czy do rejestru rozstrzyga kontekst, w którym ten adres występuje. SFR, które w poszczególnych modelach kontrolerów nie są wykorzystane zgodnie z ich pierwotną funkcją, czyli do sterowania konkretnymi funkcjami układów mikrokontrolera, mogą być wykorzystane jako zwykłe komórki pamięci danych. Producenci naogół przestrzegają przed takim wykorzystaniem SFR-ów. Omówione zostaną DPTR, DPL, DPH, PCON, TCON, TMOD, TL0,TH0,TL1,TH1, SBUF, SCON,IE, IP oraz PSW 1/9
Systematyczny przegląd. ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 Akumulator występuje pod dwoma oznaczeniami: A i ACC. Oznaczenie ACC odnosi się do akumulatora traktowanego jako jeden z rejestrów SFR (o adresie E0 ). B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0 B rejestr o adresie 0F0H, jest często nazywany pomocniczym akumulatorem. Pełni zasadniczą rolę w operacjach mnożenie i dzielenia. DPTR jest 16-bitowym rejestrem używanym przy adresowaniu zewnętrznych pamięci danych oraz przenoszenia (MOVC) w ramach pamięci programu. Faktycznie, składa się z dwoch 8-mio bitowych połówek DPH (083H) i DPL (082H) odpowiednio, dla starszych i młodszych bitów. Jak wynika z adresów, rejestry te NIE są dostępne bitowo. 2/9
Istnieje wielka różnorodność kontrolerów w ramach rodziny 51 i stąd wiele rejestrów SFR różni się w znaczeniu bitów, w zależności od typu kontrolera. Przed użyciem kontrolera, należy zatem dokładnie poznać struktury rejestrów w dokumentacji producenta. IE Rejestr zezwoleń na przerwanie. (Przykład dla typów 52, C52, LV52, C54, C55, C154, C501, C502, S852) EA -- ET2 ES ET1 EX1 ET0 EX0 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA- bit globalnego zezwolenia na przerwania. EA=0, zablokowanie przerwań ET2-bit zezwolenia na przerwanie od układu licznikowego T2 ES- bit zezwolenia na przerwanie of łącza szeregowego ET1-bit zezwolenia na przerwanie od układu licznikowego T1 EX1-bit zezwolenia na przerwanie zewnętrzne INT1 ET0-bit zezwolenia na przerwanie od układu licznikowego T0 EX0-bit zezwolenia na przerwanie zewnętrzne INT0 REJESTR IE ma adres 0A8H i jego bity są zatem adresowalne indywidualnie. Po załączeniu (lub RESET) kontrolera wszystkie bity zezwoleń są wyzerowane 3/9
IP podstawowy rejestr priorytetów przerwań (Przykład dla typów 52, C52, LV52, C54, C55, C58, C501, C502, S8252) -- -- PT2 PS PT1 PX1 PT0 PX0 IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 PT2-bit zezwolenia na przerwanie od układu licznikowego T2 PS- bit zezwolenia na przerwanie of łącza szeregowego PT1-bit zezwolenia na przerwanie od układu licznikowego T1 PX1-bit zezwolenia na przerwanie zewnętrzne INT1 PT0-bit zezwolenia na przerwanie od układu licznikowego T0 PX0-bit zezwolenia na przerwanie zewnętrzne INT0 REJESTR IP na adres 088H i jego bity są zatem adresowalne indywidualnie. Efektywny priorytet przerwania, decydujący o kolejności jego obsługi, zależy od: - poziomu priorytetu danego przerwania, ustalanego w rejestrze IP - naturalnego priorytetu przerwań. Ustawienie bitu IP.n = 1 oznacza ustawienie wysokiego priorytetu dla danego przerwania 4/9
PCON rejestr przeznaczony głównie do sterowania pracą mikrokontrolerów przy zmniejszonym poborze mocy, ale bit SMOD (PCON.7) rządzi podwajaniem szybkości transmisji łącza szeregowego. (Przykład dla typów C51, 52, C52,... ) SMOD -- -- -- GF1 GF0 PD IDL 7 6 5 4 3 2 1 0 SMOD- GF1- GF0- PD- IDL- bit sterujący szybkością transmisji łącza szeregowego bit ogólnego zastosowania bit ogólnego zastosowania ustawienie =1 powoduje przejście w stan zamrożenia ustawienie = 1 powoduje przejście w stan uśpienia Bity PD i IDL są zerowane sprzętowo przy wyjściu mikrokontrolera ze stanu zamrożenia, czy uśpienia. Instrukcja ustawiające bit PD (lub IDL) jest ostatnią instrukcją wykonaną przed przejściem w stan zamrożenia (lub uśpienia). Rejestr ten, o adresie 087H, NIE jest adresowalny bitowo. 5/9
SCON rejestr dla sterowania łącza szeregowego. SM0 SM1 SM2 REN TB8 RB8 TI RI 7 6 5 4 3 2 1 0 na SM0 SM1 0 0 tryb 0, transmisja synchroniczna 0 1 tryb 1, transmisja asynchroniczna, 8-mio bitowa, szybkość transmisji regulowana 1 0 tryb 2, transmisja asynchroniczna, 9-cio bitowa, stała szybkość transmisji (1/32 lub 1/64 częstotliwości zegarowej 1 1 tryb 3, transmisja asynchroniczna, 9-cio bitowa, o regulowanej szybkości SM2 - bit pozwalający na pracę wieloprocesorową. Przy transmisji synchronicznej wpływa na szybkość transmisji REN - zezwolenie na czytanie (=1). Ustawiany i zerowany programowo TB8-9-ty bit danych wysyłany w trybie 2 lub 3. Ustawiany i zerowany programowo. Zwykle stosowany dla transmisji z kontrolą parzystości RB8-9-ty bit danych odbieranych przez łącze szeregowe w trybie 2 lub 3 TI - wskaźnik przerwania od nadajnika łącza. Ustawiany po nadaniu ostatniego bitu (lub raczej początku nadawania bitu stopu). Musi być zerowany programowo. RI - wskaźnik przerwania od odbiornika łącza szeregowego. Ustawiany przy transmisji każdego bajtu. Musi być zerowany programowo. 6/9
Rejestr TCON przeznaczony (wraz z rejestrem TMOD, opisanym dalej) do sterowania pracą układów licznikowych T0 i T1. TCON ma adres 088H i jest zatem dostępny bitowo. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 7 6 5 4 3 2 1 0 TF1, TF0 WSKAŹNIKI PRZERWANIA, USTAWIANE I ZEROWANE SPRZĘTOWO, TR1, TR0 BITy WŁĄCZAJĄCE I WYŁĄCZAJĄCE UKŁADY LICZNIKOWE (1 i 0, odpowiednio). Np.: komenda SETB TR1 ; spowoduje uruchomienie licznika T1 IE1, IE0 BITY ZEZWOLEŃ NA PRZERWANIA ZEWNĘTRZNE, IT1, IT0 STEROWANIE PRZERWANIAMI ZEWN.: 0 PRZERWANIA OD NISKIEGO POZIOMU, 1 PRZERWANIE OD OPADAJĄCEGO ZBOCZA Wiele mikrokontrolerów posiada więcej niż dwa wewnętrzne układy licznikowe. Sterowanie pracą tych dodatkowych liczników odbywa się poprzez użycie dodatkowych SFR. Na przykład mikrokontrolery C52, CL52, C55... wyposażone są w trzy 16-bitowe układy licznikowe. Dodatkowy rejestr T2 ma odpowiadające mu rejestry specjalne, T2CON (0C8H) (T2MOD 0C9H), RCAP2L, RCAP2H, T2L, T2H, które służą do sterowania jego pracy, nieco różniącej się od pracy liczników T0 i T1. 7/9
Rejestr TMOD, o adresie 089H, używany jest dla ustawienia pracy układu albo jako licznika cykli maszynowych albo licznika sygnałów zewnętrznych wybrania trybu pracy, GATE C/T M1 M0 GATE C/T M1 M0 7 6 5 4 3 2 1 0 GATE (TMOD.7, lub TMOD.3) BIT STERUJĄCY. 0 STEROWANIE WYŁĄCZNIE PRZEZ TR1, 1- ZLICZANIE, GDY /INT1 I TR1=1 C/T - 0 ZLICZANIE CYKLI MASZYNOWYCH ( CZASOMIERZ ) 1 - ZLICZANIE IMPULSÓW ZEWNĘTRZNYCH ( LICZNIK ) M1 M0 0 0 TRYB 0, układ pracuje jako 13-bitowy czasomierz/licznik 0 1 TRYB1, układ pracuje jako 16-bitowy czasomierz/licznik 1 0 TRYB2, układ pracuje jako 8-bitowy licznik z automatycznym przeładowaniem 1 1 TRYB3, działania T0 i T1 różnią się, w tym trybie. T0 wykorzystuje swoje liczniki TL0 i TH0 jako niezależne, 8-mio bitowe liczniki. TLO działa podobnie jak licznik w trybie 0, a THO jako czasomierz, który startuje i zatrzymuje bit TR1 i którego przepełnienie sygnalizuje TF1. Przez to działanie licznika T1 jest zubożone. 8/9
Rejestry TL0, TH0, TL1, TH1 o adresach, odpowiednio, 08AH, 08BH, 08CH, 08DH - młodszy i starszy bajt (odpowiednio) licznika T0 i T1. Dokładna rola tych rejestrów zależy od trybu pracy układu licznikowego. W zasadzie przechowują stan zliczeń, lub wartość, od której rozpoczyna się dalsze zliczanie. Przepełnienie (przejście od stanu samych jedynek do samych zer) powoduje ustawienie wskaźnika przerwania. Czy jest to przepełnienie TLn, czy układu THnTLn to zależy od trybu. 9/9