Прекъсвания в 8051 микроконтролер и структура и програмиране

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





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

Прекъсва в 8051 микроконтролер

Прекъсва в 8051 микроконтролер



Прекъсванията в микроконтролера 8051 са по-желателни, за да се намали редовната проверка на състоянието на свързаните устройства или вградените устройства. Прекъсването е събитие, което временно спира основната програма, предава контрола на специална кодова секция, изпълнява свързаната със събитието функция и възобновява основния програмен поток там, където е спрял.


Прекъсванията са от различни видове като софтуер и хардуер, маскируеми и немаскируеми, фиксирани и векторни прекъсвания и т.н. Прекъсване на услугата (ISR) се появява в картината, когато възникне прекъсване, и след това казва на процесора да предприеме подходящи действия за прекъсването и след изпълнението на ISR контролерът скача в основната програма.



Видове прекъсвания в 8051 микроконтролер

Микроконтролерът 8051 може да разпознае пет различни събития, които причиняват прекъсване на основната програма от нормалното изпълнение. Тези пет източника на прекъсвания през 8051 г. са:

  1. Прекъсване на препълването на таймера 0 - TF0
  2. Прекъсване на препълване на таймер 1 - TF1
  3. Външно хардуерно прекъсване - INT0
  4. Външно хардуерно прекъсване - INT1
  5. Прекъсване на серийната комуникация - RI / TI

Таймерът и серийните прекъсвания се генерират вътрешно от микроконтролера, докато външните прекъсвания се генерират от допълнителни устройства за свързване или превключватели, които са външно свързани към микроконтролера. Тези външни прекъсвания могат да бъдат задействани с ръб или ниво. Когато възникне прекъсване, микроконтролерът изпълнява рутинната услуга за прекъсване, така че местоположението на паметта да съответства на прекъсването, което го позволява. Прекъсването, съответстващо на местоположението в паметта, е дадено в таблицата с вектори на прекъсвания по-долу.

Таблица на векторите на прекъсванията

Таблица на векторите на прекъсванията

Структура на прекъсване на 8051 микро контролер

При „RESET“ всички прекъсвания се деактивират и следователно всички тези прекъсвания трябва да бъдат активирани от софтуер. Във всички тези пет прекъсвания, ако някой или всички са активирани, това задава съответните флагове за прекъсване, както е показано на фигурата. Всички тези прекъсвания могат да бъдат зададени или изчистени по бит в някакъв специален регистър на функциите, който е Interrupt Enabled (IE), а това от своя страна зависи от приоритета, който се изпълнява чрез IP приоритет за прекъсване.


Структура на прекъсване на микроконтролер 8051

Структура на прекъсване на микроконтролер 8051

Регистър за разрешаване на прекъсвания (IE): Този регистър е отговорен за активирането и деактивирането на прекъсването. Това е малко адресируем регистър, в който EA трябва да бъде настроен на такъв за разрешаване на прекъсвания. Съответният бит в този регистър позволява конкретно прекъсване като таймер, външни и серийни входове. В IE регистъра по-долу бит, съответстващ на 1, активира прекъсването и 0 деактивира прекъсването.

Регистър за разрешаване на прекъсвания (IE)

Регистър за разрешаване на прекъсвания (IE)

Приоритетен регистър на прекъсванията (IP): Също така е възможно да се променят нивата на приоритет на прекъсванията чрез задаване или изчистване на съответния бит в регистъра за прекъсване (IP), както е показано на фигурата. Това позволява прекъсването с нисък приоритет да прекъсне прекъсването с висок приоритет, но забранява прекъсването от друго прекъсване с нисък приоритет. По същия начин прекъсването с висок приоритет не може да бъде прекъснато. Ако тези приоритети на прекъсване не са програмирани, микроконтролерът изпълнява по предварително зададен начин и неговият ред е INT0, TF0, INT1, TF1 и SI.

IP регистър

IP регистър

TCON регистър: В допълнение към горните два регистъра, регистърът TCON определя вида на външното прекъсване към микроконтролера 8051, както е показано на фигурата. Двете външни прекъсвания, независимо дали са задействани ръб или ниво, се указват от този регистър чрез набор или се изчистват чрез подходящи битове в него. Освен това е малко адресируем регистър.

Регистрирайте се в TCON

Регистрирайте се в TCON

Прекъсване на програмирането през 8051г

1. Програмиране на таймер прекъсване

Прекъсванията на таймера 0 и таймера 1 се генерират от битовете на таймерния регистър TF0 и TF1. Тези прекъсвания програмиране чрез C код включва:

  • Избор на таймера чрез конфигуриране на регистъра TMOD и неговия режим на работа.
  • Избор и зареждане на началните стойности на TLx и THx за подходящи режими.
  • Активиране на IE регистрите и съответния бит на таймера в него.
  • Задаване на бита на таймера за стартиране на таймера.
  • Записване на подпрограмата за таймера за необходимото време и изчистване на стойността на таймера TRx в края на подпрограмата.
Програмиране на прекъсване на таймера

Програмиране на прекъсване на таймера

2. Програмиране на външни хардуерни прекъсвания

Микроконтролерите 8051 се състоят от две външни хардуерни прекъсвания: INT0 и INT1, както беше обсъдено по-рано. Те са активирани на щифт 3.2 и щифт 3.3. Те могат да бъдат задействани с ръб или ниво. При задействане на ниво ниското при пин 3.2 позволява прекъсването, докато при пин 3.2 - преходът от високо към ниско позволява прекъсване, задействано от ръба. Това задействане на ръба или задействане на ниво се решава от регистъра TCON, който беше обсъден по-горе. The процедура за програмиране през 8051г е както следва:

  • Активирайте съответния бит външно прекъсване в IE регистъра.
  • Ако задейства ниво, просто напишете подпрограмата, подходяща за това прекъсване, или иначе разрешете бита за регистрация TCON, съответстващ на прекъсването, задействано от ръба - независимо дали е INT0 или INT1.
Програмиране на външни хардуерни прекъсвания

Програмиране на външни хардуерни прекъсвания

3. Програмиране на прекъсване на серийна комуникация

Прекъсванията на серийната комуникация се появяват, когато има нужда от изпращане или получаване на данни. Тъй като е зададен един бит за прекъсване както за TI (прекъсване на прехвърлянето), така и за RI (прекъсване на приемника), рутинната услуга Interrupt Service трябва да изследва тези флагове, за да знае действителното прекъсване.

Логичната операция ИЛИ на тези два флага (RI и TI) причинява това прекъсване и се изчиства само от софтуера. Тук се използва специален регистър SCON за управление комуникация операция чрез активиране на съответните битове в нея.

  • Конфигурирайте IE регистъра за разрешаване на серийно прекъсване
  • Конфигурирайте SCON регистъра за получаване или прехвърляне на операция
  • Напишете подпрограма за това прекъсване с подходяща функция и изчистете TI или RI флагове с в тази рутина.
Програмиране на серийни прекъсвания

Програмиране на серийни прекъсвания

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

Снимки Кредити