Регистрирайте банки и разпределете паметта на стека в микроконтролера 8051

Опитайте Нашия Инструмент За Премахване На Проблемите





Колекцията от регистри с общо предназначение (R0-R7) се нарича банки с регистри, които приемат един байт данни. Банковият регистър е част от RAM памет във вградената микроконтролери и се използва за съхраняване на програмните инструкции. Всеки микроконтролер се състои от различни банки памет, а всеки банков регистър се състои от уникален адрес за разпознаване на мястото за съхранение.

Регистрирайте банки през 8051

Регистрирайте банки през 8051

Регистрирайте банки през 8051



Микроконтролерът 8051 Състои се от четири регистрирани банки, като Bank0, Bank1, Bank2, Bank3, които са избрани от PSW (Program Status Word) регистър. Тези регистърни банки присъстват във вътрешната RAM памет на микроконтролера 8051 и се използват за обработка на данните, когато микроконтролерът е програмиран.


Превключване на регистър банки



По подразбиране микроконтролерът 8051 се захранва с регистрационна банка 0 и, използвайки Word Status Word (PSW), можем да преминем към други банки. Двата бита PSW се използват за превключване между регистриращите банки. Достъпът до тези два бита става чрез битово адресируеми инструкции SETB и CLR.

Въз основа на възможните комбинации от RS1 и RS0 на PSW, банката на регистъра се променя съответно, т.е. ако RS1 и RS0 са 0, тогава се избира банка 0. По същия начин Bank1, 2 и 3 са избрани според стойностите на RS1 и RS0.

Разпределение на паметта на стека в микроконтролер 8051

Стекът е област с памет с произволен достъп (RAM), разпределена за временно съхраняване на всички параметри на променливите. Стекът е отговорен и за напомняне на реда, в който се извиква функция, за да може тя да бъде върната правилно. Всеки път, когато се извика функцията, параметрите и локалните променливи, свързани с нея, се добавят към стека (PUSH). Когато функцията се върне, параметрите и променливите се премахват (“POP”) от стека. Ето защо размерът на стека на програмата се променя непрекъснато, докато програмата работи.


Регистърът, използван за достъп до стека, се нарича регистър на указателя на стека. Показалецът на стека е малък регистър, използван за насочване към стека. Когато натискаме нещо в паметта на стека, указателят на стека се увеличава.

Разпределение на паметта на стека в микроконтролер 8051

Разпределение на паметта на стека в микроконтролер 8051

Пример

Когато 8051 микроконтролер се включи, показалецът на стека съдържа стойност по подразбиране 07, както е показано на горната фигура. Ако изпълним операцията „PUSH“, тогава адресът на указателя на стека ще бъде увеличен и преместен в друг регистър. За да избегнем този проблем, преди да стартираме програмата, трябва да присвоим друго местоположение на адреса на указателя на стека.

PUSH операция

„PUSH“ се използва за вземане на стойностите от всеки регистър и съхраняване в началния адрес на указателя на стека, т.е. 00h, чрез използване на операцията „PUSH“. И за следващия ‘PUSH’ той увеличава +1 и съхранява стойността в следващия адрес на указателя на стека, т.е. 01h.

PUSH работа на стека

PUSH работа на стека

PUSH операционни средства (First in First out)

Пример: WAP на асемблерен език за работа с PUSH

0000ч
MOV 08h, # 21h
MOV 09h, # 56h
ТЪСКАЙ 00h
ТЛАКНЕТЕ 01h
КРАЙ

POP операция

Използва се за поставяне на стойностите от максималния адрес на указателя на стека към адрес на всеки друг регистър. Ако използваме отново този „POP“, той се намалява с 1 и стойността, съхранена във всеки регистър, се дава като „POP“.

POP операция в стека

POP операция в стека

POP операцията означава „Последно в първото излизане“.

000H
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
КРАЙ

Регистри на 8051 микроконтролер

Ако изпълняваме някаква операция, независимо дали е добавяне или изваждане, тогава тези операции не могат да бъдат извършени директно в паметта и следователно се извършват с помощта на регистрите. Има различни видове регистрира в 8051 микроконтролер .

Тези регистри се класифицират в два типа въз основа на техните операции:

• Регистри с общо предназначение

• Регистри със специални функции

Регистри с общо предназначение

Както обсъдихме по-рано в тази статия, че има четири различни банкови регистри, като всяка банка има 8 адресируеми 8-битови регистри и само един банков регистър може да бъде достъпен наведнъж. Но чрез промяна на номера на банковия регистър във флаговия регистър можем да получим достъп до други банкови регистри, които бяха обсъдени по-рано в този документ, заедно с концепция за прекъсване през 8051г .

Регистри със специални функции

Регистрите със специални функции, включително акумулатор, регистър B, указател за данни, PCON, PSW и др., Са създадени с предварително определена цел по време на производството с адрес от 80H до FFH и тази област не може да се използва за съхранение на данни или програми. Тези регистри могат да бъдат внедрени чрез битови адреси и байтови адресни регистри.

Видове регистри със специални функции

8051 се състои от четири входа / изхода, свързани със специални функционални регистри, в които има общо 32 I / O линии. Регистрите за специални функции контролират стойностите, прочетени от I / O линиите, и регистрите за специални функции, които контролират работата на 8051. Регистрите на спомагателните специални функции не са директно свързани с 8051 - но всъщност без тези регистри - 8051 не може да работи правилно. Регистърният набор от 8051 е обяснен по-долу.

Регистър комплект от 8051 микроконтролер

Задаването на фиксирана постоянна стойност в регистъра се нарича регистър набор. Стойностите се задават в регистрите с помощта на набор от инструкции. 8051 следва инструкциите на CISC с архитектура „Харвард“. The CISC означава сложни изчисления с набор от инструкции . Различните видове инструкции в микроконтролера 8051 включват:

  1. Аритметични инструкции
  2. Условни инструкции
  3. Инструкции за повикване и скок
  4. Инструкции за цикъл
  5. Логически инструкции
  6. Инструкции за кюлчета

1. Аритметични инструкции

Аритметичните инструкции изпълняват няколко основни операции като:

  • Събиране
  • Изваждане
  • Умножение
  • Дивизия
Аритметични инструкции в микроконтролера 8051

Аритметични инструкции в микроконтролера 8051

Примери:

а. Добавка:

Организация 0000ч
MOV R0, # 03H // преместване стойността 3 е регистър R0 //
MOV A, # 05H // преместване на стойността 5 в акумулатор A //
Добавете A, 00H // стойност на акумулатора ‘5’ с 0 и се съхранява в акумулатор //
КРАЙ

б. Изваждане:

Организация 0000ч
MOV R0, # 03H // преместване стойността 3 е регистър R0 //
MOV A, # 05H // преместване на стойността 5 в акумулатор A //
SUBB A, 03H // A = 5-3 крайна стойност се съхранява в акумулатора A //
КРАЙ

В. Умножение:

Организация 0000ч
MOV R0, # 03H // преместване стойността 3 е регистър R0 //
MOV A, # 05H // преместване на стойността 5 в акумулатор A //
MUL A, 03H // A = 5 * 3 крайната стойност е 15, съхранявана в акумулатора A //
КРАЙ

Г. Отдел:

Организация 0000ч
MOV R0, # 03H // преместване стойността 3 е регистър R0 //
MOV A, # 15H // преместване на стойността 5 в акумулатор A //
DIV A, 03H // A = 15/3 крайната стойност е 5, съхранявана в акумулатора A //
КРАЙ

2. Условни инструкции

Процесорът може да изпълнява инструкциите въз основа на условието, като проверява еднобитовото състояние или състоянието на байта се нарича условно указание като:

За да проверите еднобитовото състояние в бит-адресируем регистър

JB- скок, ако е отдолу

JNB- скок, ако не отгоре

За да проверите състоянието на носещия бит

JC- скок, ако носи флаг

JNC-скок, ако няма пренасяне

За да проверите състоянието на акумулатора или 0, или 1

JZ- скок при нулев флаг

JNZ- скок, ако не нула

Това е всичко за регистъра, зададен в микроконтролера 8051 и тяхното разпределение на стека памет. Надяваме се, че тази статия може да ви даде някои съществени прозрения по темата заедно с някои много интересни програми, придружаващи всяка тема. Можете също така да ни пишете за всяка помощ в кодиране на микроконтролера а също и за най-новите проекти за микроконтролер .