Registrujte banky a ukladajte alokované pamäte do mikrokontroléra 8051

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Zber registrov na všeobecné účely (R0-R7) sa nazýva register bánk, ktoré prijímajú jeden bajt údajov. Bankový register je súčasťou RAM pamäť v zabudovanej mikrokontroléry a slúži na ukladanie pokynov k programu. Každý mikrokontrolér pozostáva z rôznych pamäťových bánk a každý bankový register pozostáva z jedinečnej adresy na rozpoznanie miesta v úložisku.

Zaregistrujte banky v roku 8051

Zaregistrujte banky v roku 8051

Zaregistrujte banky v roku 8051



Mikrokontrolér 8051 pozostáva zo štyroch registrových bánk, ako sú Bank0, Bank1, Bank2, Bank3, ktoré sú vybrané registrom PSW (Program Status Word). Tieto banky registrov sa nachádzajú vo vnútornej pamäti RAM mikrokontroléra 8051 a používajú sa na spracovanie údajov, keď je mikrokontrolér naprogramovaný.


Zmena registračných bánk



V predvolenom nastavení je mikrokontrolér 8051 napájaný z registračnej banky 0 a pomocou programového stavového slova (PSW) môžeme prejsť na ďalšie banky. Dva bity PSW sa používajú na prepínanie medzi bankami registrov. K týmto dvom bitom sa pristupuje pomocou bitovo adresovateľných inštrukcií SETB a CLR.

Na základe možných kombinácií RS1 a RS0 PSW sa zodpovedajúcim spôsobom zmení banka registrov, tzn. Ak sú RS1 a RS0 0, potom sa vyberie banka 0. Podobne sú banky 1, 2 a 3 vybrané podľa hodnôt RS1 a RS0.

Skladanie alokácie pamäte do mikrokontroléra 8051

Zásobník je oblasť pamäte s náhodným prístupom (RAM) vyhradená na dočasné zadržanie všetkých parametrov premenných. Zásobník je tiež zodpovedný za pripomenutie poradia, v akom je funkcia volaná, aby ju bolo možné správne vrátiť. Kedykoľvek sa funkcia volá, parametre a miestne premenné, ktoré sú s ňou spojené, sa pridajú do zásobníka (PUSH). Keď sa funkcia vráti, parametre a premenné sa odstránia („POP“) zo zásobníka. Z tohto dôvodu sa veľkosť zásobníka programu neustále mení, keď je program v prevádzke.


Register používaný na prístup do zásobníka sa nazýva register ukazovateľa zásobníka. Ukazovateľ stohu je malý register, ktorý sa používa na zameranie na stoh. Keď niečo vložíme do pamäte zásobníka, ukazovateľ zásobníka sa zvýši.

Skladanie alokácie pamäte do mikrokontroléra 8051

Skladanie alokácie pamäte do mikrokontroléra 8051

Príklad

Keď sa mikrokontrolér 8051 zapne, hodnota ukazovateľa zásobníka je predvolene hodnota 07, ako je znázornené na obrázku vyššie. Ak vykonáme operáciu „PUSH“, adresa ukazovateľa zásobníka sa zvýši a presunie do iného registra. Aby sme sa vyhli týmto problémom, pred spustením programu musíme ukazovateľu zásobníka priradiť iné umiestnenie adresy.

PUSH prevádzka

„PUSH“ sa používa na získanie hodnôt z ľubovoľného registra a uloženie na začiatočnú adresu ukazovateľa zásobníka, t. J. 00h pomocou operácie „PUSH“. A pre ďalšie „PUSH“ zvýši +1 a hodnotu uloží na ďalšiu adresu ukazovateľa zásobníka, t. J. 01h.

PUSH prevádzka zásobníka

PUSH prevádzka zásobníka

PUSH prevádzka znamená (prvý dovnútra prvý von)

Príklad: WAP v montážnom jazyku pre operáciu PUSH

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

Prevádzka POP

Používa sa na umiestnenie hodnôt z maximálnej adresy ukazovateľa zásobníka na adresu iného registra. Ak tento „POP“ použijeme znova, zníži sa o 1 a hodnota uložená v ľubovoľnom registri sa zadá ako „POP“.

Prevádzka POP v zásobníku

Prevádzka POP v zásobníku

Prevádzka POP znamená „Last in First out“.

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

Registre mikrokontroléra 8051

Ak vykonávame ľubovoľnú operáciu, či už sčítaním alebo odčítaním, potom tieto operácie nie je možné vykonať priamo v pamäti, a preto sa vykonávajú pomocou registrov. Existujú rôzne typy zaregistruje sa v mikrokontroléri 8051 .

Tieto registre sú klasifikované do dvoch typov na základe ich činnosti:

• Registre na všeobecné účely

• Špeciálne funkčné registre

Registre na všeobecné účely

Ako sme už diskutovali vyššie v tomto článku, existujú štyri rôzne bankové registre, pričom každá banka má 8 adresovateľných 8-bitových registrov a naraz je možné pristupovať iba k jednému bankovému registru. Ale zmenou čísla bankového registra vo vlajkovom registri môžeme získať prístup k ďalším bankovým registrom, o ktorých sa už v tomto dokumente hovorilo spolu s koncept prerušenia v roku 8051 .

Registre špeciálnych funkcií

Registre špeciálnych funkcií vrátane akumulátora, registra B, ukazovateľa údajov, PCON, PSW atď. Sú určené na vopred určené účely počas výroby s adresou 80H až FFH a túto oblasť nie je možné použiť na účely ukladania údajov alebo programov. Tieto registre je možné implementovať pomocou registrov bitových adries a bajtových adries.

Typy registrov zvláštnych funkcií

8051 sa skladá zo štyroch vstupno / výstupných registrov špeciálnych funkcií, v ktorých je celkom 32 I / O liniek. Registre špeciálnych funkcií riadia hodnoty načítané z I / O liniek a registre špeciálnych funkcií, ktoré riadia činnosť 8051. Pomocné registre špeciálnych funkcií nie sú priamo spojené s 8051 - ale v skutočnosti bez týchto registrov - 8051 nemôže správne fungovať. Sada registrov 8051 je vysvetlená nižšie.

Zaregistrujte sadu mikrokontroléra 8051

Nastavenie pevnej konštantnej hodnoty v registri sa nazýva sada registrov. Hodnoty sa nastavujú v registroch pomocou inštrukčnej sady. Model 8051 dodržiava pokyny CISC s architektúrou „Harvard“. The CISC je skratka pre komplexné výpočtové systémy . Medzi rôzne typy pokynov v mikrokontroléri 8051 patria:

  1. Aritmetické pokyny
  2. Podmienené pokyny
  3. Pokyny na volanie a skok
  4. Pokyny slučky
  5. Logické pokyny
  6. Pokyny týkajúce sa drahých kovov

1. Aritmetické pokyny

Aritmetické pokyny vykonávajú niekoľko základných operácií, ako napríklad:

  • Dodatok
  • Odčítanie
  • Násobenie
  • Divízia
Aritmetické pokyny v mikrokontroléri 8051

Aritmetické pokyny v mikrokontroléri 8051

Príklady:

a. Doplnenie:

Org. 0000 h
MOV R0, # 03H // presunúť hodnotu 3 je register R0 //
MOV A, # 05H // presunie hodnotu 5 v akumulátore A //
Pridajte A, 00H // hodnotu akumulátora „5“ s 0 a uložte ho na akumulátor //
KONIEC

b. Odčítanie:

Org. 0000 h
MOV R0, # 03H // presunúť hodnotu 3 je register R0 //
MOV A, # 05H // presunie hodnotu 5 v akumulátore A //
SUBB A, 03H // A = 5-3 konečná hodnota je 2 uložená v akumulátore A //
KONIEC

C. Násobenie:

Org. 0000 h
MOV R0, # 03H // presunúť hodnotu 3 je register R0 //
MOV A, # 05H // presunie hodnotu 5 v akumulátore A //
MUL A, 03H // A = 5 * 3 konečná hodnota je 15, uložená v akumulátore A //
KONIEC

D. divízia:

Org. 0000 h
MOV R0, # 03H // presunúť hodnotu 3 je register R0 //
MOV A, # 15H // presunie hodnotu 5 v akumulátore A //
DIV A, 03H // A = 15/3 konečná hodnota je 5 uložená v akumulátore A //
KONIEC

2. Podmienené pokyny

CPU môže vykonávať pokyny na základe podmienky kontrolou stavu jednobitového stavu alebo stavu bytu sa nazýva podmienené pokyny, ako napríklad:

Na kontrolu jednobitového stavu v bitovo adresovateľnom registri

JB - skok, ak je dole

JNB - skok, ak nie vyššie

Na kontrolu stavu prenosového bitu

JC - skok, ak nesie vlajku

Skok JNC, ak nie je prenos

Ak chcete skontrolovať stav akumulátora, buď 0 alebo 1

JZ - skok, ak je nulový príznak

JNZ- skok, ak nie nula

Toto je všetko o registri nastavenom v mikrokontroléri 8051 a ich alokácii pamäte zásobníka. Dúfame, že tento článok vám mohol poskytnúť základné informácie o tejto téme spolu s niektorými veľmi zaujímavými programami, ktoré každú tému sprevádzajú. Môžete nám tiež napísať o akúkoľvek pomoc v kódovanie mikrokontroléra a tiež o najnovšie projekty na mikrokontroléri .