Zaregistrujte banky a přidělte paměť zásobníku v mikrokontroléru 8051

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





Sbírka registrů pro všeobecné účely (R0-R7) se nazývá registry bank, které přijímají jeden bajt dat. Bankovní registr je součástí RAM paměť ve vestavěné mikrokontroléry a slouží k ukládání pokynů k programu. Každý mikrokontrolér se skládá z různých paměťových bank a každý bankovní registr se skládá z jedinečné adresy pro rozpoznání umístění úložiště.

Zaregistrujte banky v 8051

Zaregistrujte banky v 8051

Zaregistrujte banky v 8051



Mikrokontrolér 8051 sestává ze čtyř registrových bank, jako jsou Bank0, Bank1, Bank2, Bank3, které jsou vybrány registrem PSW (Program Status Word). Tyto banky registrů se nacházejí ve vnitřní paměti RAM mikrokontroléru 8051 a používají se ke zpracování dat, když je mikrokontrolér naprogramován.


Přepínání registračních bank



Ve výchozím nastavení je mikrokontrolér 8051 napájen z registrační banky 0 a pomocí programového stavového slova (PSW) můžeme přepnout na jiné banky. Dva bity PSW se používají pro přepínání mezi bankami registrů. K těmto dvěma bitům přistupují bitově adresovatelné instrukce SETB a CLR.

Na základě možných kombinací RS1 a RS0 PSW se odpovídajícím způsobem změní banka registrů, tj. Pokud jsou RS1 a RS0 0, pak je vybrána banka 0. Podobně jsou banky 1, 2 a 3 vybrány podle hodnot RS1 a RS0.

Skládání alokace paměti do mikrokontroléru 8051

Zásobník je oblast paměti s náhodným přístupem (RAM) přidělená k dočasnému uložení všech parametrů proměnných. Zásobník je také zodpovědný za připomenutí pořadí, ve kterém je funkce volána, aby ji bylo možné správně vrátit. Kdykoli je funkce volána, parametry a místní proměnné s ní spojené jsou přidány do zásobníku (PUSH). Když se funkce vrátí, parametry a proměnné jsou odstraněny („POP“) ze zásobníku. Z tohoto důvodu se velikost zásobníku programu průběžně mění, když je spuštěný.


Registr používaný k přístupu do zásobníku se nazývá registr ukazatele zásobníku. Ukazatel zásobníku je malý registr používaný k ukazování na zásobník. Když něco vložíme do paměti zásobníku, ukazatel zásobníku se zvětší.

Skládání alokace paměti do mikrokontroléru 8051

Skládání alokace paměti do mikrokontroléru 8051

Příklad

Když se mikrokontrolér 8051 zapne, hodnota ukazatele zásobníku je ve výchozím nastavení 07, jak je znázorněno na obrázku výše. Pokud provedeme operaci „PUSH“, bude adresa ukazatele zásobníku zvýšena a přesunuta do jiného registru. Abychom se tomuto problému vyhnuli, musíme před spuštěním programu přiřadit ukazateli zásobníku jiné umístění adresy.

PUSH provoz

„PUSH“ se používá k převzetí hodnot z libovolného registru a uložení na počáteční adresu ukazatele zásobníku, tj. 00h pomocí operace „PUSH“. A pro další ‚PUSH 'zvýší +1 a uloží hodnotu na další adresu ukazatele zásobníku, tj. 01h.

PUSH provoz zásobníku

PUSH provoz zásobníku

PUSH operace znamená (první dovnitř první ven)

Příklad: WAP v assembleru pro operaci PUSH

0000h
MOV 08h, # 21h
MOV 09h, # 56h
PUSH 00h
PUSH 01h
KONEC

Provoz POP

Používá se k umístění hodnot z maximální adresy ukazatele zásobníku na adresu jakéhokoli jiného registru. Pokud tento „POP“ použijeme znovu, sníží se o 1 a hodnota uložená v jakémkoli registru bude uvedena jako „POP“.

POP operace ve skladu

POP operace ve skladu

Provoz POP znamená „Last in First out“.

000H
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
KONEC

Registry mikrokontroléru 8051

Pokud provádíme jakoukoli operaci, ať už sčítání nebo odčítání, pak tyto operace nelze provést přímo v paměti, a proto se provádějí pomocí registrů. Existují různé typy se registruje v mikrokontroléru 8051 .

Tyto registry jsou rozděleny do dvou typů na základě jejich operací:

• Univerzální registry

• Speciální funkční registry

Registry pro obecné účely

Jak jsme již dříve diskutovali v tomto článku, existují čtyři různé bankovní registry, přičemž každá banka má 8 adresovatelných 8bitových registrů a je možné přistupovat pouze k jednomu bankovnímu registru najednou. Ale změnou čísla bankovního registru ve vlajkovém registru můžeme přistupovat k dalším bankovním registrům, které byly dříve diskutovány v tomto dokumentu spolu s koncept přerušení v 8051 .

Speciální funkční registry

Registry speciálních funkcí včetně akumulátoru, registru B, datového ukazatele, PCON, PSW atd. Jsou navrženy pro předem stanovené účely během výroby s adresou 80H až FFH a tuto oblast nelze použít pro účely ukládání dat nebo programu. Tyto registry lze implementovat pomocí registrů bitové adresy a bajtové adresy.

Druhy registrů zvláštních funkcí

8051 se skládá ze čtyř speciálních funkčních registrů souvisejících se vstupem / výstupem, ve kterých je celkem 32 I / O linek. Registry speciálních funkcí řídí hodnoty načtené z I / O linek a registry speciálních funkcí, které řídí provoz 8051. Pomocné registry speciálních funkcí nejsou přímo spojeny s 8051 - ale ve skutečnosti bez těchto registrů - 8051 nemůže správně fungovat. Sada registrů 8051 je vysvětlena níže.

Zaregistrujte sadu mikrokontroléru 8051

Nastavení pevné konstantní hodnoty v registru se nazývá sada registrů. Hodnoty se nastavují v registrech pomocí sady instrukcí. Model 8051 se řídí pokyny CISC s architekturou „Harvard“. The CISC znamená komplexní výpočetní sadu instrukcí . Různé typy pokynů v mikrokontroléru 8051 zahrnují:

  1. Aritmetické pokyny
  2. Podmíněné pokyny
  3. Pokyny pro volání a skok
  4. Pokyny smyčky
  5. Logické pokyny
  6. Pokyny Bullion

1. Aritmetické pokyny

Aritmetické instrukce provádějí několik základních operací, například:

  • Přidání
  • Odčítání
  • Násobení
  • Divize
Aritmetické pokyny v mikrokontroléru 8051

Aritmetické pokyny v mikrokontroléru 8051

Příklady:

A. Přidání:

Org 0000h
MOV R0, # 03H // přesunout hodnotu 3 je registr R0 //
MOV A, # 05H // přesune hodnotu 5 v akumulátoru A //
Přidejte A, 00H // hodnotu akumulátoru „5“ s 0 a uložte jej na akumulátor //
KONEC

b. Odčítání:

Org 0000h
MOV R0, # 03H // přesunout hodnotu 3 je registr R0 //
MOV A, # 05H // přesune hodnotu 5 v akumulátoru A //
SUBB A, 03H // A = 5-3 konečná hodnota je 2 uložena v akumulátoru A //
KONEC

C. Násobení:

Org 0000h
MOV R0, # 03H // přesunout hodnotu 3 je registr R0 //
MOV A, # 05H // přesune hodnotu 5 v akumulátoru A //
MUL A, 03H // A = 5 * 3 konečná hodnota je 15, uložená v akumulátoru A //
KONEC

D. Divize:

Org 0000h
MOV R0, # 03H // přesunout hodnotu 3 je registr R0 //
MOV A, # 15H // přesune hodnotu 5 v akumulátoru A //
DIV A, 03H // A = 15/3 konečná hodnota je 5 uložena v akumulátoru A //
KONEC

2. Podmíněné pokyny

CPU může provádět instrukce na základě podmínky kontrolou stavu jednobitového stavu nebo stavu bytu se nazývá podmíněné instrukce, jako například:

Zkontrolovat jednobitový stav v bitově adresovatelném registru

JB - skok, pokud je níže

JNB - skok, pokud ne výše

Zkontrolovat stav přenosového bitu

JC - skok, pokud nese vlajku

JNC-skok, pokud není nošení

Ke kontrole stavu akumulátoru buď 0 nebo 1

JZ - skok, pokud je nulový příznak

JNZ - skok, ne-li nula

Jedná se o registraci nastavenou v mikrokontroléru 8051 a jejich alokaci paměti zásobníku. Doufáme, že vám tento článek mohl poskytnout některé základní poznatky o tomto tématu spolu s několika velmi zajímavými programy doprovázejícími každé téma. Můžete nám také napsat o jakoukoli pomoc v kódování mikrokontroléru a také o nejnovější projekty na mikrokontroléru .