Regisztrálja a bankokat és a verem memória-allokációt a 8051 mikrovezérlőben

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Az általános célú regiszterek (R0-R7) gyűjteményét nyilvántartási bankoknak hívják, amelyek egy bájt adatot fogadnak el. A banknyilvántartás a RAM memória a beágyazottban mikrokontrollerek, és a program utasításainak tárolására szolgál. Minden mikrovezérlő különféle memóriabankokból áll, és minden bankregiszter egyedi címből áll a tároló helyének felismerésére.

Regisztrálja a bankokat a 8051-ben

Regisztrálja a bankokat a 8051-ben

Regisztrálja a bankokat a 8051-ben



A 8051 mikrovezérlő négy regiszterbankból áll, mint például a Bank0, Bank1, Bank2, Bank3, amelyeket a PSW (Program Status Word) nyilvántartás választ ki. Ezek a regisztrációs bankok a 8051 mikrokontroller belső RAM memóriájában találhatók, és az adatok feldolgozására szolgálnak, amikor a mikrokontrollert programozzák.


Nyilvántartási bankok váltása



Alapértelmezés szerint a 8051 mikrovezérlő a 0 regiszterbankkal van ellátva, és a Program Status Word (PSW) használatával átválthatunk más bankokra. A PSW két bitjét a regiszterbankok közötti váltásra használják. Ehhez a két bithez a SETB és CLR bitcímezhető utasítások férnek hozzá.

A PSW RS1 és RS0 lehetséges kombinációi alapján a regiszterbank ennek megfelelően megváltozik, azaz ha RS1 és RS0 értéke 0, akkor a 0 bankot választja. Hasonlóképpen, az 1., 2. és 3. bankot az RS1 és RS0 értékei szerint választják ki.

Verem memória allokáció a 8051 mikrovezérlőben

A verem a véletlen hozzáférésű memória (RAM) területe, amely a változók összes paraméterének ideiglenes tárolására van kijelölve. A verem felelős azért is, hogy emlékeztesse a függvény meghívási sorrendjét, hogy helyesen vissza lehessen adni. Amikor a függvény meghívásra kerül, a hozzá tartozó paraméterek és helyi változók hozzáadódnak a veremhez (PUSH). Amikor a függvény visszatér, a paraméterek és a változók eltávolításra kerülnek („POP”) a veremből. Ezért egy program veremmérete folyamatosan változik a program futása közben.


A verem eléréséhez használt regisztert veremmutató regiszternek nevezzük. A veremmutató egy kis regiszter, amely a veremre mutat. Amikor benyomunk valamit a verem memóriájába, a verem mutató növekszik.

Verem memória allokáció a 8051 mikrovezérlőben

Verem memória allokáció a 8051 mikrovezérlőben

Példa

Amikor egy 8051 mikrovezérlő bekapcsol, a verem mutató mutató értéke alapértelmezés szerint 07, amint azt a fenti ábra mutatja. Ha „PUSH” műveletet hajtunk végre, akkor a verem mutató címe megnövekszik, és egy másik regiszterbe kerül. A probléma elkerülése érdekében a program elindítása előtt más címhelyet kell rendelnünk a veremmutatóhoz.

PUSH művelet

A „PUSH” arra szolgál, hogy az értékeket bármilyen regiszterből vegye és tárolja a verem mutató kezdő címében, azaz 00h-t a „PUSH” művelet segítségével. És a következő „PUSH” esetében növeli a +1 értéket, és az értéket a veremmutató következő címében tárolja, azaz 01h.

A Stack PUSH művelete

A Stack PUSH művelete

A PUSH művelet azt jelenti (First in First out)

Példa: WAP szerelési nyelven a PUSH működéséhez

0000h
MOV 08h, # 21h
MOV 09h, # 56h
PUSH 00h
PUSH 01h
VÉGE

POP művelet

Arra szolgál, hogy az értékeket a veremmutató maximális címétől bármely más regiszter címéhez helyezze. Ha újra használjuk ezt a „POP” -t, akkor 1-gyel csökken, és a bármely regiszterben tárolt értéket „POP” -ként adjuk meg.

POP művelet veremben

POP művelet veremben

A POP művelet azt jelenti, hogy ’Last in First out’.

000H
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
VÉGE

A 8051 mikrokontroller regiszterei

Ha bármilyen műveletet hajtunk végre, legyen az összeadás vagy kivonás, akkor ezeket a műveleteket nem lehet közvetlenül a memóriában végrehajtani, ezért a regiszterek használatával hajtják végre. Különböző típusúak regisztrál a 8051 mikrovezérlőben .

Ezeket a nyilvántartásokat működésük alapján két típusba sorolják:

• Általános célú nyilvántartások

• Speciális funkció regiszterek

Általános célú nyilvántartások

Amint a cikkben korábban tárgyaltuk, négy különböző bankregiszter létezik, mindegyik bank 8 címezhető 8 bites regiszterrel rendelkezik, és egyszerre csak egy bankregiszterhez lehet hozzáférni. De a bankregiszter számának megváltoztatásával a lobogó szerinti nyilvántartásban hozzáférhetünk más bankregiszterekhez, amelyekről a cikkben korábban tárgyaltunk, megszakítás koncepciója 8051-ben .

Különleges funkciók nyilvántartásai

A speciális funkcióregisztereket, beleértve az Akkumulátort, a B regisztert, az Adatmutatót, a PCON-t, a PSW-t stb., Előre meghatározott célra terveztük a gyártás során a 80H – FFH címmel, és ez a terület nem használható adat- vagy programtárolási célokra. Ezek a regiszterek bitcím- és bájtcímregiszterekkel valósíthatók meg.

A speciális funkciós nyilvántartások típusai

A 8051 négy bemenettel / kimenettel kapcsolatos speciális funkció regiszterből áll, amelyekben összesen 32 I / O vonal található. A speciális funkció regiszterek vezérlik az I / O sorokból kiolvasott értékeket, és a speciális funkció regiszterek, amelyek vezérlik a 8051 működését. A kiegészítő speciális funkció regiszterek nem közvetlenül kapcsolódnak a 8051-hez - de valójában ezen regiszterek nélkül - a 8051-hez. nem tud megfelelően működni. A 8051 regiszterkészletet az alábbiakban ismertetjük.

Regisztráljon 8051 mikrokontrollert

A regiszterben rögzített állandó érték beállítását regiszterkészletnek nevezzük. Az értékeket a regiszterekben az utasításkészlet segítségével állítják be. A 8051 követi a CISC utasításait, a „Harvard” architektúrával. Az A CISC összetett utasításkészlet-számítást jelent . A 8051 mikrokontroller különböző típusú utasításai a következők:

  1. Számtani utasítások
  2. Feltételes utasítások
  3. Hívás és ugrás utasítások
  4. Hurok utasítások
  5. Logikai utasítások
  6. Veretlen utasítások

1. Számtani utasítások

A számtani utasítások számos alapvető műveletet hajtanak végre, például:

  • Kiegészítés
  • Kivonás
  • Szorzás
  • Osztály
Számtani utasítások a 8051 mikrokontrollerben

Számtani utasítások a 8051 mikrokontrollerben

Példák:

a. Kiegészítés:

Szerv 0000h
MOV R0, # 03H // a 3. érték áthelyezése R0 regiszter //
MOV A, # 05H // mozgassa az 5 értéket az A akkumulátorban //
Adja hozzá A, 00H // az „5” akkumulátor értékét 0-val és tárolja a // akkumulátoron //
VÉGE

b. Kivonás:

Szerv 0000h
MOV R0, # 03H // a 3. érték áthelyezése R0 regiszter //
MOV A, # 05H // mozgassa az 5 értéket az A akkumulátorban //
A SUBB, 03H // A = 5-3 végső érték 2 tárolva van az A akkumulátorban //
VÉGE

C. Szorzás:

Szerv 0000h
MOV R0, # 03H // a 3. érték áthelyezése R0 regiszter //
MOV A, # 05H // mozgassa az 5 értéket az A akkumulátorban //
MUL A, 03H // A = 5 * 3 végső érték 15, az A akkumulátorban tárolva //
VÉGE

D. Osztály:

Szerv 0000h
MOV R0, # 03H // a 3. érték áthelyezése R0 regiszter //
MOV A, # 15H // mozgassa az 5 értéket az A akkumulátorban //
DIV A, 03H // A = 15/3 végső érték 5 tárolva van az A akkumulátorban //
VÉGE

2. Feltételes utasítások

A CPU végrehajthatja az utasításokat a feltétel alapján az egybites állapot ellenőrzésével, vagy a bájt állapotát feltételes utasításoknak nevezzük, például:

Az egybites állapot ellenőrzése a bitcímezhető regiszterben

JB- ugrás, ha lent van

JNB- ugrás, ha nem fent

A hordozó bit állapotának ellenőrzése

JC - ugrás, ha hordoz lobogót

JNC-ugrás, ha nincs hordozás

Az akkumulátor állapotának ellenőrzésére 0 vagy 1

JZ- ugrás, ha nulla zászló

JNZ- ugrás, ha nem nulla

Ez mind a 8051 mikrovezérlőben beállított regiszterről és verem memória-allokációjukról szól. Reméljük, hogy ez a cikk lényeges betekintést engedhetett a témába, az egyes témákat kísérő nagyon érdekes programokkal együtt. Írhat nekünk bármilyen segítségért a mikrovezérlő kódolása és a a mikrokontroller legújabb projektjei .