SFR u AT89C2051

V minulém článku mého seriálu o mikrokontroléru Atmel 2051 jsem se zmiňoval o zvláštní části paměťového prostoru, kterou je speciální funkční registr (SFR). Je to vlastně část paměti, nacházející se mezi adresami 80h a FFh, kde se umisťují důležité informace pro jednotlivé činnosti mikrokontroléru.

Akumulátor (česky střadač)

Akumulátor je základním registrem snad všech běžně používaných mikroprocesorů. Je využíván při provádění aritmetických a logických operacích a je využíván jako cílový i zdrojový registr. Značí se většinou A nebo případně ACC (záleží na instrukci).

Registr B

Registr B je používán při operacích násobení a dělení, jinak jej lze využít jako běžný registr.

PSW (Program Status Word)

Jedná se o registr složený z osmi bitů, z nich jeden není využit.

C (Carry) - jedná se o příznak přenosu, k němuž dochází při přesunu z osmého do devátého bitu.

AC (Auxiliary Carry) - je příznak pomocného přenosu, který je využíván při převodu číslic do BCD kódu (v desítkové soustavě).

F0 (Flag 0) - je příznak, jehož využití je zcela na potřebách programátora.

RS1, RS0 (Register Select) - slouží k výběru banky registrů, která se bude používat. Každá banka registrů obsahuje osm registrů (R0 - R8), z nichž každý má jeden byte. Banky jsou celkem čtyři, takže se jedná celkem o 32 B vyhrazených pro jednotlivé registry.

OV (Overflow) - je využíván jako příznak přetečení, ke kterému dochází při některých aritmetických operacích.

P (Parity) - je paritní bit, který je nastaven na sudou paritu akumulátoru (je-li v akumulátoru sudý počet jedniček, je nastaven na hodnotu 1; jedná se tedy o jakýsi devátý doplňující bit akumulátoru).

Porty P1 a P3

Pomocí registrů P1 a P3 lze nastavovat logickou hodnotu na jednotlivých vývodech mikrokontroléru nebo z nich číst vstupní hodnoty.

SP (Stack Pointer)

SP je ukazatel vrcholu zásobníku, který je při plnění navyšován o jedničku a při vyprazdňování o jedničku snižován. Zásobník může být umístěn kdekoliv v paměti RAM a slouží k uchovávání hodnot v případě volání obsluhy přerušení, volání podprogramu apod. Nahraje se do něj například obsah akumulátoru, ke kterým je pak pracováno a po ukončení procedury se zase vyzvedne jeho původní hodnota. Jedná se tedy o jakousi zálohu hodnot.

DPTR (Data Pointer)

Jedná se o šestnáctibitový registr, který je složen ze dvou osmibitových registrů: DPL a DPH. U 8051 bývá používán pro adresování externí paměti, kterou však u AT89C2051 nelze zapojit, tudíž je jeho využití minimální.

PC (Program Counter)

PC je čítač instrukcí, čili další šestnáctibitový registr, který však není přímo programově přístupný. Zjednodušeně řečeno ukazuje na místo v programové paměti, z něhož bude vykonána instrukce.

Další registry v SFR

Vysvětlování těchto registrů považuji pro začátek za vcelku zbytečné, takže se o nich jen zmíním a vysvětlím je až tehdy, když to bude potřeba. Jedná se o registry IE (slouží k povolování přerušení), SCON (řízení sériového portu), SBUF (vyrovnávací paměť sériového portu), TCON (ovládá funkci časovačů), TMOD (nastavení módu časovačů), TL0, TH0, TL1, TH1 (dva šestnáctibitové čítače složené z osmibitových) a PCON (řízení odběru proudu).

Štítky:

© Copyright Pavel Voborský 2008

Zanechat komentář