Keresés

Címkék

2025-04-05

Regiszterek

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?)
  • ¤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.

Nincsenek megjegyzések:

Megjegyzés küldése

Mit gondolsz?