2008-08-14 16:46:13
Organizace paměti mikroprocesoru 8051
Nedávno jsem našel na disku obrázek - schéma organizace paměti 8051 - který jsem kreslil v době, kdy jsem byl nucen se v rámci studia na SPŠ procesorem 8051 zabývat. Řekl jsem si, že je škoda se o něj nepodělit. Přidávám k tomu i nějaký moje poznámky a vlastní obrázky.
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.

V pravé části jsou adresy registrů zapsány v šestnáctkové soustavě (hexadecimální - proto je tam to písmeno H) a vlevo jsou adresy klasicky v desítkové soustavě.
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)
- to pak dopíšu...
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 |
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
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 |
Komentáře:
[
1] Squatter | 2009-05-18 19:56:32
dik hodi se to jen tak dal
[
2] Squatter | 2009-05-18 19:57:33
dik hodi se to jen tak dal
[
3] Squatter | 2009-05-18 19:57:47
nestudujes ty na ustafu?