Článek v rubrice NÁVODY.
Organizace paměti mikroprocesoru 8051
Co to vůbec je ta 8051?
8051 je označení mikrokontroléru, který byl vyvinut v roce 1980. Jedná se o 8-bitový procesor s harvardskou architekturou. Programování procesoru 8051 je dodnes součástí výuky na mnoha počítačově zaměřených školách.
Organizace paměti u x51
Toto je ten obrázek rozdělení paměťového prostoru u procesoru 8051.
Speciální funkční registry procesoru 8051
Nejvrchnější oblast (ta růžová) s nápisem "Oblast SFR" je prostor pro tzv. speciální funkční registry. Nacházejí se na adresách 80h - 0FFh (viz horní schéma).
A
- Střadač (akumulátor)
- 8 bitový
- označován jako Acc (pokud se přistupuje k jednotlivým bitům, např.: Acc.0)
B
- pro všeobecné použití a společně s A na aritmetické operace
- 8 bitový
PSW
= processor status word (stavové slovo mikroprocesoru) - 8bitovýVýznam jednotlivých bitů:
- P = příznak parity (Parity flag)
- Indikuje lichou paritu střadače. Je-li ve střadači lichý počet jedniček, je příznak parity roven 1.
- Příznak je aktualizován po každé instrukci a závisí výhradně na obsahu střadače, nikoliv na typu instrukce.
- OV = příznak přetečení výsledku aritmetické operace (Overflow)
- F0
- Uživatelský příznak
- Pouze pro programátora
- Příznak je pozůstatkem po vývojově předcházejícím procesoru 8048, který nebyl vybaven takovou škálou příznaků.
- AC
- Vnitřní přenos (Auxiliary carry)
- je nastaven dojde-li při sčítání k přenosu mezi čtvrtým (b3) a pátým (b4) bitem střadače.
- využíván při dekadické korekci DAA
- Přenos při operacích s BCD čísly ve zhuštěném tvaru
- C
- někdy taky CY
- Příznak přenosu (Carry) je nastaven při aritmetické operaci, při které dochází k přenosu z osmého (b7) do devátého (b8) bitu a při některých instrukcích porovnání.
- indikuje přenos do vyššího řádu
- RS0 a RS1
- určují aktuální banku, jejíž registry R0 až R7 budou používány
- po resetu je nastavena banka 0 (RS0=0 a RS1=0)
RS1 | RS0 | Banka | Adresa banky |
---|---|---|---|
0 | 0 | banka 0 | 00h - 07h |
0 | 1 | banka 1 | 08h - 0Fh |
1 | 0 | banka 2 | 10h - 17h |
1 | 1 | banka 3 | 18h - 1Fh |
SP
- stack pointer - ukazatel zásobníku
- 8bitový
- po resetu má nastavenou hodnotu 7
DPL a DPH (dohromady DPTR)
- DPTR - ukazatel dat (data pointer)
- DPTR je 16 bitový registr
- DPH = 8 horních bitů
- DPL = 8 dolních bitů
- DPL a DPH tvoří dohromady DPTR
PC
- = Čítač instrukcí (program counter)
- ukazuje na adresu programové instrukce
- není přímo přístupný programátorovi
- je 16-bitový čítač instrukcí
- po resetu je nastaven na 0 (první instrukce má adresu 0)
Adresy SFR u 8051
Registr | Adresa v hexa |
---|---|
Acc | E0H |
B | F0H |
PSW | D0H |
SP | 81H |
DPTR | 82, 83H |
P.0 | 80H |
P.1 | 90H |
P.2 | A0H |
P.3 | B0H |
IP | B8H |
IE | A8H |
TMOD | 89H |
TCON | 88H |
TH0 | 8CH |
TH1 | 8AH |
TL1 | 8BH |
SCON | 98H |
SBUF | 99H |