Užregistruokite bankus ir kaupkite atmintį 8051 mikrovaldiklyje

Užregistruokite bankus ir kaupkite atmintį 8051 mikrovaldiklyje

Bendrosios paskirties registrų rinkinys (R0-R7) vadinamas registrų bankais, kurie priima vieną baitą duomenų. Banko registras yra dalis RAM atmintis įdėtoje mikrovaldikliai ir jis naudojamas programos instrukcijoms saugoti. Kiekvienas mikrovaldiklis susideda iš įvairių atminties bankų, o kiekvieną banko registrą sudaro unikalus adresas, skirtas atpažinti saugojimo vietą.



Registruokite bankus 8051 m

Registruokite bankus 8051 m

Registruokite bankus 8051 m

8051 mikrovaldiklis susideda iš keturių registrų bankų, tokių kaip „Bank0“, „Bank1“, „Bank2“, „Bank3“, kuriuos pasirenka PSW (Program Status Word) registras. Šie registrų bankai yra vidinėje mikrovaldiklio 8051 RAM atmintyje ir naudojami duomenims apdoroti, kai mikrovaldiklis yra užprogramuotas.






Registrų bankų keitimas

Pagal numatytuosius nustatymus 8051 mikrovaldiklis yra maitinamas registrų banku 0 ir, naudodamiesi programos būsenos žodžiu (PSW), galime pereiti prie kitų bankų. Du PSW bitai naudojami perėjimui tarp registrų bankų. Šiuos du bitus pasiekia bitų adresavimo instrukcijos SETB ir CLR.



Remiantis galimomis PSW RS1 ir RS0 kombinacijomis, atitinkamai keičiamas registrų bankas, t.y., jei RS1 ir RS0 yra 0, tada pasirenkamas bankas 0. Panašiai, bankas 1, 2 ir 3 parenkami pagal RS1 ir RS0 vertes.

Krūptis atminties paskirstymas 8051 mikrovaldiklyje

Šūsnis yra laisvosios kreipties atminties (RAM) sritis, skirta laikinai laikyti visus kintamųjų parametrus. Šūsnis taip pat yra atsakingas už funkcijos iškvietimo eilės priminimą, kad ją būtų galima tinkamai grąžinti. Kai tik funkcija yra iškviečiama, su ja susiję parametrai ir vietiniai kintamieji pridedami prie kamino (PUSH). Grįžus funkcijai, parametrai ir kintamieji pašalinami („POP“) iš rietuvės. Štai kodėl programos kamino dydis nuolat keičiasi, kol programa veikia.


Registras, naudojamas prieiti prie kamino, vadinamas kamino rodyklių registru. „Stack pointer“ yra nedidelis registras, naudojamas nukreipti į rietuvę. Kai ką nors įstumiame į rietuvės atmintį, kamino rodyklė padidėja.

Krūptis atminties paskirstymas 8051 mikrovaldiklyje

Krūptis atminties paskirstymas 8051 mikrovaldiklyje

Pavyzdys

Kai įsijungia 8051 mikrovaldiklis, pagal numatytuosius nustatymus kamino rodyklės vertė yra 07, kaip parodyta aukščiau pateiktame paveikslėlyje. Jei atliksime „PUSH“ operaciją, kamino rodyklės adresas bus padidintas ir perkeltas į kitą registrą. Norėdami išvengti šios problemos, prieš paleisdami programą, turime kaupo žymekliui priskirti kitą adresą.

PUSH operacija

„PUSH“ naudojamas vertėms paimti iš bet kurio registro ir kaupti pradiniame kamino rodyklės adrese, t. Y. 00h, naudojant operaciją „PUSH“. Kitam „PUSH“ jis padidina +1 ir išsaugo vertę kitame kamino žymiklio adresu, t. Y. 01h.

„Stack“ operacija PUSH

„Stack“ operacija PUSH

„PUSH“ operacijos priemonės („First in First out“)

Pavyzdys: WAP surinkimo kalba PUSH operacijai

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

POP operacija

Jis naudojamas vertėms nuo didžiausio kamino žymeklio adreso iki kito registro adreso. Jei vėl naudosime šį „POP“, tada jis mažėja 1, o bet kuriame registre saugoma vertė pateikiama kaip „POP“.

POP operacija „Stack“

POP operacija „Stack“

POP operacija reiškia „Paskutinis iš pirmo karto“.

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

8051 mikrovaldiklio registrai

Jei atliksime bet kokią operaciją, nesvarbu, ar suma, ar atimtis, tada šių operacijų negalima atlikti tiesiogiai atmintyje, todėl jos atliekamos naudojant registrus. Yra įvairių tipų registruojasi 8051 mikrovaldiklyje .

Šie registrai pagal jų operacijas skirstomi į du tipus:

• Bendrosios paskirties registrai

• Specialių funkcijų registrai

Bendrosios paskirties registrai

Kaip jau minėjome anksčiau šiame straipsnyje, yra keturi skirtingi banko registrai, kurių kiekvienas bankas turi 8 adresuojamus 8 bitų registrus ir vienu metu galima pasiekti tik vieną banko registrą. Bet, pakeitus banko registro numerį vėliavos registre, mes galime pasiekti kitus banko registrus, kurie buvo aptarti anksčiau šiame dokumente kartu su pertraukimo koncepcija 8051 m .

Specialiųjų funkcijų registrai

Specialieji funkcijų registrai, įskaitant kaupiklį, registrą B, duomenų rodyklę, PCON, PSW ir kt., Yra skirti iš anksto nustatytam tikslui gaminant, kurio adresas yra 80H - FFH, ir šios srities negalima naudoti duomenims ar programoms saugoti. Šie registrai gali būti įgyvendinami pagal bitų adresų ir baitų adresų registrus.

Specialiųjų funkcijų registrų tipai

8051 susideda iš keturių su įėjimu / išvestimi susijusių specialių funkcijų registrų, kuriuose yra iš viso 32 įvesties / išvesties linijos. Specialiųjų funkcijų registrai kontroliuoja reikšmes, nuskaitytas iš įvesties / išvesties linijų, ir specialiųjų funkcijų registrus, valdančius 8051 veikimą. Pagalbinių specialiųjų funkcijų registrai nėra tiesiogiai prijungti prie 8051, bet iš tikrųjų, be šių registrų, - 8051 negali tinkamai veikti. 8051 registrų rinkinys paaiškintas toliau.

Registruokite 8051 mikrovaldiklio rinkinį

Nuolatinės pastoviosios vertės nustatymas registre vadinamas registro rinkiniu. Vertės registruose nustatomos naudojant komandų rinkinį. 8051 atitinka CISC instrukcijas su „Harvard“ architektūra. CISC reiškia sudėtingą komandų rinkinių skaičiavimą . Įvairių tipų 8051 mikrovaldiklio instrukcijos apima:

  1. Aritmetinės instrukcijos
  2. Sąlyginės instrukcijos
  3. Skambinimo ir šuolio instrukcijos
  4. Ciklo instrukcijos
  5. Loginės instrukcijos
  6. Tauriųjų metalų instrukcijos

1. Aritmetinės instrukcijos

Aritmetinės instrukcijos atlieka keletą pagrindinių operacijų, tokių kaip:

  • Papildymas
  • Atimtis
  • Dauginimas
  • Padalijimas
8051 mikrovaldiklio aritmetinės instrukcijos

8051 mikrovaldiklio aritmetinės instrukcijos

Pavyzdžiai:

a. Papildymas:

Org 0000h
MOV R0, # 03H // perkelti reikšmę 3 yra registras R0 //
MOV A, # 05H // perkelkite 5 vertę akumuliatoriuje A //
Pridėkite A, 00H // akumuliatoriaus vertė „5“ su 0 ir saugoma akumuliatoriuje //
GALAS

b. Atimtis:

Org 0000h
MOV R0, # 03H // perkelti reikšmę 3 yra registras R0 //
MOV A, # 05H // perkelkite 5 vertę akumuliatoriuje A //
A PUBLIKIS, 03H // A = 5-3 galutinė vertė yra 2 kaupiama akumuliatoriuje A //
GALAS

C. Padauginimas:

Org 0000h
MOV R0, # 03H // perkelti reikšmę 3 yra registras R0 //
MOV A, # 05H // perkelkite 5 vertę akumuliatoriuje A //
MUL A, 03H // A = 5 * 3 galutinė vertė yra 15, saugoma akumuliatoriuje A //
GALAS

D. skyrius:

Org 0000h
MOV R0, # 03H // perkelti reikšmę 3 yra registras R0 //
MOV A, # 15H // perkelkite 5 reikšmę akumuliatoriuje A //
DIV A, 03H // A = 15/3 galutinė vertė yra 5 kaupiama akumuliatoriuje A //
GALAS

2. Sąlyginės instrukcijos

Centrinis procesorius gali vykdyti instrukcijas pagal sąlygą, patikrindamas vieno bitų būseną, arba baitų būsena vadinama sąlyginėmis instrukcijomis, tokiomis kaip:

Norėdami patikrinti vieno bitų būseną bitų adresų registre

JB - šuolis, jei žemiau

JNB- šuolis, jei ne aukščiau

Norėdami patikrinti nešiojimo bitų būseną

JC - šuolis, jei nešioji vėliavą

JNC-šuolis, jei nėra

Norėdami patikrinti akumuliatoriaus būseną 0 arba 1

JZ- šuolis, jei vėliava nulis

JNZ- šuolis, jei ne nulis

Tai viskas apie registrą, nustatytą 8051 mikrovaldiklyje, ir jų kamino atminties paskirstymą. Tikimės, kad šis straipsnis galėjo suteikti jums keletą esminių įžvalgų apie temą ir labai įdomių programų, lydinčių kiekvieną temą. Taip pat galite parašyti mums pagalbos koduojantis mikrovaldiklį taip pat apie naujausi mikrovaldiklio projektai .