Rekisteröi pankit ja pino muistin kohdentaminen 8051-mikrokontrolleriin

Kokeile Instrumenttia Ongelmien Poistamiseksi





Yleiskäyttöisten rekistereiden kokoelmaa (R0-R7) kutsutaan rekisteripankeiksi, jotka hyväksyvät yhden tavun tietoja. Pankkirekisteri on osa RAM-muisti sulautetussa mikrokontrollereita, ja sitä käytetään ohjelman ohjeiden tallentamiseen. Jokainen mikrokontrolleri koostuu useista muistipankeista, ja kukin pankkirekisteri koostuu ainutlaatuisesta osoitteesta tallennuspaikan tunnistamiseksi.

Rekisteröi pankit vuonna 8051

Rekisteröi pankit vuonna 8051

Rekisteröi pankit vuonna 8051



8051-mikrokontrolleri koostuu neljästä rekisteripankista, kuten Bank0, Bank1, Bank2, Bank3, jotka PSW (Program Status Word) -rekisteri valitsee. Nämä rekisteripankit ovat läsnä 8051-mikrokontrollerin sisäisessä RAM-muistissa, ja niitä käytetään tietojen käsittelyyn, kun mikrokontrolleri on ohjelmoitu.


Rekisteripankkien vaihtaminen



Oletusarvoisesti 8051-mikrokontrolleri saa virran rekisteripankista 0, ja käyttämällä ohjelmatilan sanaa (PSW) voimme vaihtaa muihin pankkeihin. PSW: n kahta bittiä käytetään vaihtamiseen rekisteripankkien välillä. Näihin kahteen bittiin pääsee bittiosoitteellisilla ohjeilla SETB ja CLR.

PSW: n RS1: n ja RS0: n mahdollisten yhdistelmien perusteella rekisteripankkia muutetaan vastaavasti, ts. Jos RS1 ja RS0 ovat 0, valitaan pankki 0. Vastaavasti pankit 1, 2 ja 3 valitaan RS1: n ja RS0: n arvojen mukaan.

Pinoa muistin allokointi 8051-mikrokontrolleriin

Pino on hajamuistin (RAM) alue, joka on varattu pitämään väliaikaisesti kaikki muuttujien parametrit. Pino vastaa myös funktion kutsumisjärjestyksen muistuttamisesta, jotta se voidaan palauttaa oikein. Aina kun toimintoa kutsutaan, siihen liittyvät parametrit ja paikalliset muuttujat lisätään pinoon (PUSH). Kun toiminto palaa, parametrit ja muuttujat poistetaan (“POP”) pinosta. Siksi ohjelman pinon koko muuttuu jatkuvasti ohjelman ollessa käynnissä.


Pinoa varten käytettyä rekisteriä kutsutaan pinon osoitinrekisteriksi. Pinoosoitin on pieni rekisteri, jota käytetään osoittamaan pinoon. Kun työnnämme jotain pinon muistiin, pinon osoitin kasvaa.

Pinoa muistin allokointi 8051-mikrokontrolleriin

Pinoa muistin allokointi 8051-mikrokontrolleriin

Esimerkki

Kun 8051-mikrokontrolleri käynnistyy, pinon osoittimen sisältämä arvo on oletusarvoisesti 07, kuten yllä olevassa kuvassa on esitetty. Jos suoritamme PUSH-operaation, pinon osoittimen osoitetta kasvatetaan ja siirretään toiseen rekisteriin. Tämän ongelman välttämiseksi meidän on määritettävä pinon osoittimelle toinen osoite ennen ohjelman käynnistämistä.

PUSH-toiminto

PUSH-arvoa käytetään arvojen ottamiseen mistä tahansa rekisteristä ja tallentamista pinon osoittimen aloitusosoitteeseen, ts. 00h, käyttämällä PUSH-toimintoa. Seuraavan PUSH-arvon kohdalla se lisää +1 ja tallentaa arvon pinon osoittimen seuraavaan osoitteeseen, ts. 01h.

PINNAN PUSH-toiminto

PINNAN PUSH-toiminto

PUSH-toiminto tarkoittaa (First in First out)

Esimerkki: WAP kokoonpanokielellä PUSH-toimintaa varten

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

POP-käyttö

Sitä käytetään sijoittamaan arvot pinon osoittimen maksimiosoitteesta mihin tahansa muuhun rekisterin osoitteeseen. Jos käytämme tätä 'POP' -ohjelmaa uudelleen, se pienenee 1: llä ja mihin tahansa rekisteriin tallennettu arvo annetaan nimellä 'POP'.

POP-toiminta pinossa

POP-toiminta pinossa

POP-toiminto tarkoittaa ”Last in First out”.

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

8051-mikrokontrollerin rekisterit

Jos suoritamme minkä tahansa operaation riippumatta siitä, onko summaus tai vähennys, näitä toimintoja ei voida suorittaa suoraan muistissa, ja siksi ne suoritetaan käyttämällä rekistereitä. On olemassa erilaisia rekisteröityy 8051-mikrokontrolleriin .

Nämä rekisterit luokitellaan kahteen tyyppiin niiden toiminnan perusteella:

• Yleiskäyttöiset rekisterit

• Erikoistoimintorekisterit

Yleiskäyttöiset rekisterit

Kuten aiemmin tässä artikkelissa keskusteltiin, on olemassa neljä erilaista pankkirekisteriä, joista jokaisella on 8 osoitettavaa 8-bittistä rekisteriä, ja vain yhteen pankkirekisteriin pääsee kerrallaan. Mutta muuttamalla pankkirekisterin numeroa lippurekisterissä voimme käyttää muita pankkirekistereitä, joista on aiemmin keskusteltu tässä asiakirjassa yhdessä keskeytyskonsepti vuonna 8051 .

Erikoistoimintorekisterit

Erityistoimintorekisterit, mukaan lukien akku, rekisteri B, datan osoitin, PCON, PSW jne., On suunniteltu ennalta määrättyyn tarkoitukseen valmistuksen aikana osoitteilla 80H - FFH, eikä tätä aluetta voida käyttää tietojen tai ohjelmien tallennustarkoituksiin. Nämä rekisterit voidaan toteuttaa bittiosoite- ja tavuosoiterekistereillä.

Erikoistoimintorekisterien tyypit

8051 koostuu neljästä tuloon / lähtöön liittyvästä erikoistoimintorekisteristä, joissa on yhteensä 32 I / O-linjaa. Erikoistoimintorekisterit ohjaavat I / O-riveiltä luettuja arvoja ja erikoistoimintorekisterit, jotka ohjaavat 8051: n toimintaa. Aputoimintorekistereitä ei ole kytketty suoraan 8051: ään - mutta itse asiassa ilman näitä rekistereitä - 8051 ei voi toimia oikein. Rekisteriseloste 8051 selitetään alla.

Rekisterisarja 8051-mikrokontrolleria

Kiinteän vakioarvon asettamista rekisteriin kutsutaan rekisterijoukoksi. Arvot asetetaan rekistereihin käskysarjan avulla. 8051 noudattaa CISC-ohjeita Harvard-arkkitehtuurilla. CISC tarkoittaa monimutkaista käskyjoukon laskentaa . 8051-mikrokontrollerin erityyppisiä ohjeita ovat:

  1. Aritmeettiset ohjeet
  2. Ehdolliset ohjeet
  3. Puhelu- ja hyppyohjeet
  4. Silmukkaohjeet
  5. Loogiset ohjeet
  6. Jalometalliharkkojen ohjeet

1. Aritmeettiset ohjeet

Aritmeettiset ohjeet suorittavat useita perustoimintoja, kuten:

  • Lisäys
  • Vähennyslasku
  • Kertolasku
  • Divisioona
Aritmeettiset ohjeet 8051-mikrokontrollerissa

Aritmeettiset ohjeet 8051-mikrokontrollerissa

Esimerkkejä:

a. Lisäys:

Org 0000h
MOV R0, # 03H // siirrä arvo 3 on rekisteri R0 //
MOV A, # 05H // siirrä arvo 5 varaajassa A //
Lisää A, 00H // akun arvo '5' 0: lla ja tallennettu akulle //
LOPPU

b. Vähennyslasku:

Org 0000h
MOV R0, # 03H // siirrä arvo 3 on rekisteri R0 //
MOV A, # 05H // siirrä arvo 5 varaajassa A //
ALALAUKKU A, 03H // A = 5-3 lopullinen arvo on 2 tallennettu akkuun A //
LOPPU

Kertolasku:

Org 0000h
MOV R0, # 03H // siirrä arvo 3 on rekisteri R0 //
MOV A, # 05H // siirrä arvo 5 varaajassa A //
MUL A, 03H // A = 5 * 3 lopullinen arvo on 15, tallennettu akkuun A //
LOPPU

D. jako:

Org 0000h
MOV R0, # 03H // siirrä arvo 3 on rekisteri R0 //
MOV A, # 15H // siirrä arvo 5 varaajassa A //
DIV A, 03H // A = 15/3 lopullinen arvo on 5 tallennettu akkuun A //
LOPPU

2. Ehdolliset ohjeet

Suoritin voi suorittaa ohjeet ehdon perusteella tarkistamalla yhden bittisen tilan tai tavun tilaa kutsutaan ehdollisiksi ohjeiksi, kuten:

Yhden bittisen tilan tarkistaminen bittisoitettavassa rekisterissä

JB - hyppää, jos alapuolella

JNB - hyppää, ellei yli

Kantobitin tilan tarkistaminen

JC - hyppää, jos lippu on mukana

JNC-hyppy, jos ei ole kantoa

Akun tilan tarkistamiseksi joko 0 tai 1

JZ - hyppää jos nolla lippua

JNZ - hyppää ellei nolla

Tämä koskee 8051-mikrokontrollerissa asetettua rekisteriä ja niiden pinomuistin allokointia. Toivomme, että tämä artikkeli on saattanut antaa sinulle tärkeitä oivalluksia aiheesta, ja erittäin mielenkiintoisia ohjelmia jokaiseen aiheeseen. Voit myös kirjoittaa meille apua varten mikrokontrollerin koodaus ja myös viimeisimmät mikrokontrolleriprojektit .