Registreerige pangad ja korstmälu jaotamine mikrokontrolleris 8051

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Üldotstarbeliste registrite kogu (R0-R7) nimetatakse registripankadeks, mis aktsepteerivad ühte baiti andmeid. Pangaregister on osa Sisseehitatud RAM-mälu mikrokontrollereid ja seda kasutatakse programmi juhiste salvestamiseks. Iga mikrokontroller koosneb erinevatest mälupankadest ja iga pangaregister koosneb unikaalsest aadressist salvestuskoha tuvastamiseks.

Registreerige pangad 8051. aastal

Registreerige pangad 8051. aastal

Registreerige pangad 8051. aastal



8051 mikrokontroller koosneb neljast registripangast, näiteks Bank0, Bank1, Bank2, Bank3, mille valib PSW (Program Status Word) register. Need registripangad asuvad mikrokontrolleri 8051 sisemises RAM-mälus ja neid kasutatakse andmete töötlemiseks, kui mikrokontroller on programmeeritud.


Registripankade vahetamine



Vaikimisi on mikrokontroller 8051 sisse lülitatud registripangaga 0 ja Program Status Word (PSW) abil saame üle minna teistele pankadele. PSW kahte bitti kasutatakse registripankade vahel vahetamiseks. Neile kahele bitile pääseb juurde bittadresseeritavate käskudega SETB ja CLR.

PSW RS1 ja RS0 võimalike kombinatsioonide põhjal muudetakse registripanka vastavalt, st kui RS1 ja RS0 on 0, siis valitakse pank 0. Sarnaselt valitakse pangad 1, 2 ja 3 vastavalt RS1 ja RS0 väärtustele.

Virna mälu jaotamine 8051 mikrokontrolleris

Virn on muutmälu (RAM), mis on eraldatud kõigi muutujate parameetrite ajutiseks hoidmiseks. Virn vastutab ka funktsiooni kutsumise järjekorra meenutamise eest, et seda saaks õigesti tagastada. Alati, kui funktsiooni kutsutakse, lisatakse sellega seotud parameetrid ja lokaalsed muutujad virna (PUSH). Kui funktsioon naaseb, eemaldatakse virnast parameetrid ja muutujad (“POP”). Seetõttu muutub programmi virna suurus programmi töötamise ajal pidevalt.


Virnale juurdepääsuks kasutatavat registrit nimetatakse virnaosurite registriks. Virnaosuti on väike register, mida kasutatakse virna suunamiseks. Kui surume midagi virna mällu, suureneb virna osuti.

Virna mälu jaotamine 8051 mikrokontrolleris

Virna mälu jaotamine 8051 mikrokontrolleris

Näide

8051 mikrokontrolleri sisselülitamisel on virnaosuti väärtus vaikimisi 07, nagu on näidatud ülaltoodud joonisel. Kui teostame PUSH-toimingu, suurendatakse virnaosuti aadressi ja teisaldatakse see teisele registrile. Selle probleemi vältimiseks peame enne programmi käivitamist määrama virnaosutile teise aadressi asukoha.

PUSH-operatsioon

„PUSH-i” kasutatakse väärtuste võtmiseks mis tahes registrist ja salvestamiseks virnaosuti lähteaadressile, st 00h operatsiooni PUSH abil. Ja järgmise ‘PUSH’ puhul suurendab see +1 ja salvestab väärtuse virnaosuti järgmisel aadressil, st 01h.

Stacki PUSH-operatsioon

Stacki PUSH-operatsioon

PUSH-i töö tähendab (esimene sisse esimene välja)

Näide: WAP koostekeeles PUSH-i toimimiseks

0000h
MOV 08h, # 21h
MOV 09h, # 56h
LÜLITAGE 00h
TÕUKE 01h
LÕPP

POP-i töö

Seda kasutatakse väärtuste paigutamiseks virnaosuti maksimaalsest aadressist mis tahes muu registri aadressile. Kui me kasutame seda POP-i uuesti, väheneb see 1 võrra ja suvalisse registrisse salvestatud väärtus on POP.

POP-i toimimine virnas

POP-i toimimine virnas

POP-operatsioon tähendab ‘Last in First out’.

000H
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
LÕPP

8051 mikrokontrolleri registrid

Kui teostame mis tahes toimingu, olenemata sellest, kas liitmine või lahutamine, siis neid toiminguid ei saa otse mällu sooritada ja seetõttu tehakse neid registrite abil. Neid on erinevaid registreerub 8051 mikrokontrolleris .

Need registrid on nende toimingute põhjal jaotatud kahte tüüpi:

• Üldotstarbelised registrid

• Erifunktsioonide registrid

Üldotstarbelised registrid

Nagu me selles artiklis varem arutasime, on neli erinevat pangaregistrit, kusjuures igal pangal on 8 adresseeritavat 8-bitist registrit ja korraga pääseb juurde ainult ühele pangaregistrile. Kuid muutes pangaregistri numbrit lipuregistris, pääseme juurde teistele pangaregistritele, mida on käesolevas dokumendis varem käsitletud koos katkestamise kontseptsioon aastal 8051 .

Erifunktsioonide registrid

Erifunktsioonide registrid, sealhulgas akumulaator, register B, andmekursor, PCON, PSW jne, on kavandatud etteantud otstarbel tootmise ajal aadressiga 80H kuni FFH ja seda piirkonda ei saa kasutada andmete või programmi salvestamise eesmärgil. Neid registreid saab rakendada bitt- ja bait-aadressiregistritega.

Erifunktsioonide registrite tüübid

8051 koosneb neljast sisendiga / väljundiga seotud erifunktsioonide registrist, milles on kokku 32 sisend- / väljundliini. Erifunktsioonide registrid kontrollivad sisend- / väljundjoontelt loetud väärtusi ja erifunktsioonide registrid, mis kontrollivad 8051. toimimist. Spetsiaalsete abifunktsioonide registrid pole otseselt ühendatud seadmega 8051 - aga tegelikult ilma nende registriteta - 8051 ei saa korralikult töötada. Registrikomplekti 8051 selgitatakse allpool.

Registrikomplekt 8051 mikrokontroller

Püsiva püsiväärtuse määramist registris nimetatakse registrikomplektiks. Väärtused määratakse registrites käsukomplekti abil. 8051 järgib CISC-i juhiseid ‘Harvardi’ arhitektuuriga. The CISC tähistab keerukat käskude arvutamist . Mikrokontrolleri 8051 erinevad juhised hõlmavad järgmist:

  1. Aritmeetilised juhised
  2. Tingimuslikud juhised
  3. Kõne- ja hüppejuhised
  4. Silmusjuhised
  5. Loogilised juhised
  6. Väärismetallikangide juhised

1. Aritmeetilised juhised

Aritmeetilised juhised täidavad mitmeid põhitoiminguid, näiteks:

  • Lisamine
  • Lahutamine
  • Korrutamine
  • Jaotus
Aritmeetilised juhised mikrokontrolleris 8051

Aritmeetilised juhised mikrokontrolleris 8051

Näited:

a. Lisaks:

Org 0000h
MOV R0, # 03H // teisaldage väärtus 3 on register R0 //
MOV A, # 05H // teisaldage väärtus 5 akumulaatoris A //
Lisage A, 00H // akumulaatori väärtus ‘5’ 0-ga ja salvestatakse akumulaatorisse //
LÕPP

b. Lahutamine:

Org 0000h
MOV R0, # 03H // teisaldage väärtus 3 on register R0 //
MOV A, # 05H // teisaldage väärtus 5 akumulaatoris A //
ALA A, 03H // A = 5-3 lõplik väärtus on 2 akumulaatorisse A //
LÕPP

C. Korrutamine:

Org 0000h
MOV R0, # 03H // teisaldage väärtus 3 on register R0 //
MOV A, # 05H // teisaldage väärtus 5 akumulaatoris A //
MUL A, 03H // A = 5 * 3 lõplik väärtus on 15, salvestatud aku A //
LÕPP

D. jaoskond:

Org 0000h
MOV R0, # 03H // teisaldage väärtus 3 on register R0 //
MOV A, # 15H // teisaldage väärtus 5 akumulaatoris A //
DIV A, 03H // A = 15/3 lõplik väärtus on 5 salvestatud akumulaatorisse A //
LÕPP

2. Tingimuslikud juhised

Keskprotsessor saab käske tingimusel täita, kontrollides ühe bitise olekut või baitide olekut nimetatakse tingimuslikeks juhisteks, näiteks:

Ühe bitise oleku kontrollimiseks bitiaadressi registris

JB - hüpata, kui allpool

JNB - hüpata, kui mitte ülal

Kandebiti oleku kontrollimiseks

JC - hüpata, kui kannate lippu

JNC-hüpata, kui pole kandmist

Akumulaatori oleku kontrollimiseks kas 0 või 1

JZ- hüpata kui null lipp

JNZ- hüppa kui mitte null

See kõik puudutab 8051 mikrokontrolleris seatud registrit ja nende virnamälu jaotust. Loodame, et see artikkel võis teile anda olulisi teadmisi selle teema kohta koos igale teemale lisatud väga huvitavate programmidega. Abi saamiseks võite meile ka kirjutada mikrokontrolleri kodeerimine ja ka uusimad mikrokontrolleri projektid .