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
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
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 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
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:
- Számtani utasítások
- Feltételes utasítások
- Hívás és ugrás utasítások
- Hurok utasítások
- Logikai utasítások
- 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
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 .