Registry speciálních funkcí

Registry speciálních funkcí (dále jen SFR) jsou určité paměťové místo, kde se soustřeďují důležité informace o stavu mikroprocesoru a jeho periferních obvodů, ale zároveň i informace ovlivňující jeho další činnost. Jsou umístěny v paměti dat na adresách 80H až FFH, tedy nad oblastí vnitřní paměti (00H až 7FH, kde se nacházejí registrové banky,bitová oblast a zbývající RAM k volnému použití). Základní verze mikroprocesoru 8051 obsahuje 21 spec.funk.registrů, z nichž jsou některé bitově adresovatelné.
Registry speciálních funkcí (SFR)

Obr. 1  Umístění registrů speciálních funkcí (SFR) v paměti dat
Jedno políčko tabulky představuje 1 byte. Po stranách tabulky jsou uvedeny hexadecimální adresy. Registry v prvním sloupci tabulky jsou bitově adresovatelné (toto je ale také do určité míry závislé na použitém překladači, některý překladač podporuje bitové adresování např. i u PCON pomocí symbolického označení - SMOD,PD,IDL), ostatní jsou adresovatelné pouze po bytech (tedy jako celý registr). Některá políčka (=registry) v této paměťové oblasti, jak je vidět z obrázku č.1, jsou prázdná, jsou buď používány interně nebo byly původně určeny k budoucí inovaci mikroprocesoru.


Registry speciálních funkcí lze rozdělit na registry řídící a datové. Příkladem řídících SFR je TCON,SCON,PCON,TMOD,IE,IP a další. Mezi datové patří ACC,B,SBUF,DPH,DPL a další. Samotné rozdělení ale pro nás nemá velký význam, pro nás bude důležitý jejich samotný význam.
Práce se SFR je obdobná práci s ostatnímy registry CPU.
Assemblerový překladač obecně umožňuje specifikovat bitové adresy různými způsoby, a to zadáním symbolického jména konkrétního bitu (pokud jeho symbol překladač zná), zadáním přímé bitové adresy a zadáním pozice bitu v daném registru. Uvedeme si to na příkladu instrukce SETB (nastavení bitu) a SFR registru TCON (řízení čítačů/časovačů). Budeme chtít spustit čítač/časovač 0, tzn. musíme nastavit bit TR0 v registru TCON.
SETB TR0		;zadání symbolickým jménem bitu
SETB 8CH		;zadání přímou adresou bitu
SETB TCON.4		;zadání pozicí bitu v daném registru

Nyní si popíšeme jednotlivé registry speciálních funkcí:

A nebo ACC - akumulátor nebo také střadač - záleží na vás, na které označení si zvyknete. Jako symbol se někdy používá jen A, jindy ACC. Pro samotný zápis symbolu v programu záleží na požitém překladači, který z těchto symbolů podporuje. V literatuře se většinou setkáte se symbolem ACC. Jde o registr, ve kterém je uložen druhý operand při aritmetickologických operacích a kam se po provedení této operace uloží výsledek. Umožnuje tak i postupné přičítání zpracovávaných čísel (zdrojový byte), což si lze předtavit jako funkci M+ na kapesním kalkulátoru.
Symbolické
označení
registru
Angl. jméno registru, z kterého bylo
symbolické označení odvozeno
 Adresa  Obsah registru
 po resetu (binárně) 
ACC Accumulator E0H 00000000
B B Register F0H 00000000
PSW Program Status Word D0H 00000000
SP Stack Pointer 81H 00000111
DPTR Data Pointer (2 byty)
  DPL   Low Byte 82H 00000000
  DPH   High Byte 83H 00000000
P0 Port 0 80H 11111111
P1 Port 1 90H 11111111
P2 Port 2 A0H 11111111
P3 Port 3 B0H 11111111
IP Interrupt Priority Control B8H XXX00000
IE Interrupt Enable Control A8H 0XX00000
TMOD Timer/Counter Mode Control 89H 00000000
TCON Timer/Counter Control 88H 00000000
TH0 Timer/Counter 0 High Byte 8CH 00000000
TL0 Timer/Counter 0 Low Byte 8AH 00000000
TH1 Timer/Counter 1 High Byte 8DH 00000000
TL1 Timer/Counter 1 Low Byte 8BH 00000000
SCON Serial Control 98H 00000000
SBUF Serial Data Buffer 99H XXXXXXXX
PCON Power Control 87H 0XXX0000 (CMOS verze)
0XXXXXXX (HMOS verze)
X - neurčitý stav

RS1 RS0 Banka Adresy registrů R0 až R7
0 0 0 00H až 07H
0 1 1 08H až 0FH
1 0 2 10H až 17H
1 1 3 18H až 1FH

Zpět na hlavní stránku povídání

Copyright © Michal Fuksa 2001