A regiszterek olyan elemek a mikrokontrollerben, amik számokat tárolnak magukban addig, amíg áram alatt van a mikrokontroller. A tárolt szám 0 és 255 közti lehet, mivel mindegyik 8 bites (kivéve a DPTR-t és PC-t), és 111111112 = 25510. Vannak általános és kötött felhasználású regiszterek, vagyis amiknek tárolt értékei kihatással vannak a processzor működésére. Illetve vannak olyanok, amelyeken bizonyos instrukciók kizárólagosan használhatóak, vagyis csak azt azzal az adott regiszterrel működnek. Ilyen pl.: matematikai műveletek elvégzése, indirekt mutatás memóriában, külső memóriával való kommunikáció. Mindegyiknek van neve, és rövidítése.
Ezek a regiszterek a következők (a @ jel a belső memóriában elfoglalt helyet jelenti; a ¤-jelölésűekről később bővebb szó esik; a bitek melletti @ jel a bitcímet jelenti):
- Aritmetika A (a) @ 0E0h: egyike a matematikai műveleteket végző regisztereknek. Képes összeadni, kivonni, osztani, szorozni, bites műveletekre, illetve regiszterek közötti, és külső memóriával történő értékátvitelre.
- 7@0e7h
- 6@0e6h
- 5@0e5h
- 4@0e4h
- 3@0e3h
- 2@0e2h
- 1@0e1h
- 0@0e0h
- Aritmetika B (b) @ 0F0h: a másik matematikai műveletek végzésére képes regiszter. Ez kizárólag osztásra és szorzásra használható, mivel ez a két művelet az a és b regisztereket veszi tényezőkként.
- 7@0f7h
- 6@0f6h
- 5@0f5h
- 4@0f4h
- 3@0f3h
- 2@0f2h
- 1@0f1h
- 0@0f0h
- Regiszter 0-7 (R0-R7) @ 0h-7h/8h-Fh/10h-17h/18h-1Fh: szabadon használható regiszterek. 32 ilyen van összesen, viszont egyszerre csak 8-at lehet elérni. Váltogatni lehet az osztályok között a PSW regiszterrel. Az R0 és R1 képesek indirekt mutatásra.
- ¤Data Pointer (DPTR): a külső memóriával való kommunikációra szolgáló regiszter, mivel a külső memória 65.536 bájtot tárol, így 16 bites regiszterre van szükség, hogy annak teljes területére lefedést kapjunk. A DPTR is 16 bites.
- Programstátusz (PSW) @ D0h: a processzor általános működését befolyásoló regiszter. Bitenkénti lebontásban:
- 7@0d7h: carry zászló
- 6@0d6h: BCD carry zászló
- 5@0d5h: felhasználói zászló
- 4@0d4h: regiszterosztály-választás 1
- 3@0d3h: regiszterosztály-választás 0
- 2@0d2h: túlcsordulás
- 1@0d1h: ---
- 0@0d0h: paritás (páratlan számú 1-es bit van az "A" regiszterben?)
- 7@0d7h: carry zászló
- ¤Veremmutató (SP) @ 81h: megmutatja, hogy a veremben hol található a legfentibb elem.
- Port 0 @ 70h, Port 1 @ 90h, Port 2 @ A0h, Port 3 @ B0h: a processzor tüskekiosztásában leolvasható portok, amivel külső eszközökkel lehet kommunikálni.
- ¤IE @ A8h: megadja, melyik megszakítások jöhetnek létre.
- 7@0afh: összes be/ki
- 6@0aeh: ----
- 5@0adh: I2
- 4@0ach: soros port
- 3@0abh: I1
- 2@0aah: INT1
- 1@0a9h: I0
- 0@0a8h: INT0
- ¤IP @ B8h: megadja, melyik megszakítások élveznek elsőbbséget
- 7: ----
- 6: ----
- 5@0bdh: I2
- 4@0bch: soros port
- 3@0bbh: I1
- 2@0bah: INT1
- 1@0b9h: I0
- 0@0b8h: INT0
- ¤TL0 @ 8ah, TH0 @ 8ch: a 0-s időzítő álláspontja (L: kisebb byte, H: nagyobb byte).
- ¤TL1 @ 8Bh, TH1 @ 8Dh: az 1-es időzítő álláspontja.
- ¤Időzítőüzemmód (TMOD) @ 89h: ezzel állíthatóak be az időzítők működésének elvei, külön-külön; nincs megfelelő bitcíme.
- 7: 0: csak akkor fusson az 1-es időzítő, ha INT1=1
- 6: id. 1 léptetési üzemmód
- 1: számláló
- 0: időzítő
- 5: id. 1 számlálási üzemmód 1
- 4: id. 1 számlálási üzemmód 0
- 3: 0: csak akkor fusson a 0-s időzítő, ha INT1=1
- 2: id. 0 léptetési üzemmód
- 1: id. 0 számlálási üzemmód 1
- 0: id. 0 számlálási üzemmód 0
- ¤Időzítőirányítás (TCON) @ 88h: az időzítők vezérlése, külön-külön + külső megszakítások.
- 7@8fh: I1 túlcsordult
- 6@8eh: I1 be/ki
- 5@8dh: I0 túlcsordult
- 4@8ch: I0 be/ki
- 3@8bh: INT1 átváltott 1-ről 0-ra
- 2@8ah: INT1 érzékelési esemény
- 0: lekapcsolás
- 1: lekapcsolt állapot
- 1@89h: INT0 átváltott 1-ről 0-ra
- 0@88h: INT0 érzékelési esemény
- ¤SBUF @ 99h: soros porton küldött, és rajta keresztül fogadott adat érhető el. Olvasáskor a fogadott adatforgalmat tárolhatjuk el, beleírással pedig forgalmat hozhatunk létre, vagyis küldhetünk 1 byte digitális információt.
- ¤SCON @ 98h: a soros port üzemelésének kezelése.
- Egyéb konfigurációk (PCON) @ 87h: egyéb, sehová sem csoportosítható beállításokat találunk itt; nincs bitcíme. Bitenként lebontva:
- 7: kétszeres baud-sebesség
Ha 1: soros port 1-es, 2-es, 3-as módja esetén kétszer gyorsabb adatátviteli sebesség. - 6: ---
- 5: ---
- 4: ---
- 3: felhasználói zászló
- 2: felhasználói zászló
- 1: lekapcsolt üzem
aktiválásakor a processzor "hibernálódik", és csak a belső RAM tartalma marad meg. Az ALE és PSEN tüskék 0V-on maradnak. A tápfeszültség ilyenkor min. 2V kell, hogy legyen. Az RST tüske megbolygatásával (azaz melegindítással) lehet visszaállítani az általános üzemmódot. - 0: készenléti üzem
aktiváláskor a processzor "lepihen", és annak a kivételével, hogy a CPU-n kívül minden más egység kapja az órajelet, azonos a lekapcsolt üzemmel. ALE és PSEN tápfeszültségen maradnak. Kilépni melegindítással, vagy bármilyen, előzőleg engedélyezett megszakítással lehet.
- 7: kétszeres baud-sebesség
Nincsenek megjegyzések:
Megjegyzés küldése
Mit gondolsz?