8051 - Paměť

Organizace a využívání paměti

  Mikroprocesory s jádrem 8051 jsou postaveny na Hardwardské architektuře. To znamená, že paměť dat je oddělena od paměti programu. Paměť programu se u tohoto čipu může nacházet nejen v součástce samotné, ale také v externí paměti. Toho se využívá například ve vývojových deskách…

  Aby se vnitřní paměť programu nepřekrývala s tou vnější, je na některých součástkách vyveden pin EA. Je-li tento pin nulován, pak se instrukce načítají pouze z vnější paměti. Je-li v log. „1“, pak se až po adresu FFFH užije vnitřní paměť.

  Aby ke stejné situaci nedocházelo při užití vnější programové paměti, užívají se pro přístup do této paměti speciální instrukce přesunu.


   Ale ani s využitím vnitřní paměti dat to není úplně jednoduché. Situaci ilustruje obrázek výše. Adresy 00H – 1FH obsazují registry. Tyto registry využíváme k vlastním výpočtům. Pokud využíváme tyto registry (užitím symbolických označení R1-R7 + změny bank, musíme mít na vědomí, že přepisem dat na jejich adresách vlastně dojde k přepisu samotných registrů, takže POZOR!!!

   Adresy 20H – 7F můžeme používat bez výčitek svědomí. Je vhodné si ty nejpoužívanější pojmenovat nějakým smysluplným jménem. Např.:

   sec1    EQU    59D
Tato operace, která je významná pouze pro překladač – nikoliv pro výsledný kód nám hodně usnadní přehlednost kódu. Místo :

   MOV    59D,    #30              
což znamená „přesuň číslo 30 na paměťové místo s adresou 59

   Můžeme psát

   MOV    sec1,    #30              
což znamená totéž

 Další paměťová místa už obsazují speciální registry, řídící jednotlivé periferie, nebo činnost samotného procesoru. Například zápisem

   MOV    SBUF,    #30               
odešleme po sériové lince číslo 30H (tedy pokud je správně nastavena)

Dnes se budeme zabývat pouze třemi z těchto registrů. Jsou to ACC (střadač – accumulator), B (regist B), PSW (Stavové slovo mikroprocesoru)

A(CC) – ACUMULATOR

Je základní řídící registr aritmeticko-logické jednotky. Tento registr používáme ve valné většině aritmetických i jiných operací (skokových, přesunových apod.) Tvoří vždy jeden z operandu aritmetických operací.

B – B REGISTER

Obsahuje druhý operand některých aritmetických funkcí (násobení, dělení) – druhým je střadač. A pak také výsledek těchto operací (opět jednu číst výsledku)


PSW - Stavové slovo

   Stavové slovo obsahuje informace o stavu procesoru

C
AC
F0
RS1
RS0
OV
--
P


    C - Carry - bit se nastaví když dojde při aritmetické operaci k přenosu – (číslo větší než FF, záporné číslo, operace rotací…)

   AC - Auxiliary Carry - částečný přenos – nastaví se pokud dojde k přenosu mezi třetím a čtvrtým bitem (počítáno od nultého)

   F0 - Uživatelský příznak - může být uživatelem libovolně využit

   RS0, RS1 - určují banku používaných registrů

RS1
RS0
Banka
Paměť
0
0
0
00H – 07H
0
1
1
08H – 0FH
1
0
2
10H – 17H
1
1
3
18H – 1FH


Komentovat článek

Jméno:  
Zpráva:

Komentáře k článku

Technik - 3.3.2007 17:24

Původní architektura mikroprocesorů I8051 není hardwardská, jak se lecke mylně píše. Aby to mohla být hardwardská architektura, nestčí jen oddělit datovou a kódovou pamět, ale tok dat a instrukcí musí probíhat po separátních sběrnicích. To 8051 zjevně nemá, neboť u ní existuje multiplex mezi daty a instrukcemi.

wek - 3.3.2007 09:53

Mno, trocha je to pomiesane... Tych pamatovych priestorov je v 8051 trocha viac. Pin /EA sluzi na prepinanie programovej pamate (aj to este zavisi od nastavenia fuses pri programovani), ktora nema nic spolocne s internou datovou pamatou, externou datovou pamatou ani oblastou SFR... Ale to je naozaj na dlhsie rozpravanie...