Читайте также: |
|
Таблица 11.2
Источник прерывания | Адрес (вектор) |
Вн. прерывание | 0003h |
Переполнение Т0 | 000Bh |
Вн. прерывание | 0013h |
Переполнение Т1 | 001Bh |
Последовательный порт | 0023h |
Таким образом, в случае необходимости обработки прерываний, начиная с указанных адресов должна выполняться подпрограмма обработки прерываний, с выполнением тех или иных действий. Возврат из подпрограммы обработки прерываний следует осуществлять командой reti. При программировании прерываний следует учитывать, что сегменты, выделенные в программной памяти для обработки векторов прерываний весьма невелики и составляют всего лишь 8 (байт х 2), поэтому в случае достаточно сложной обработки, необходимо пользоваться подпрограммами, помещенными в основную область программной памяти и командой «длинного» абсолютного перехода ljmp. Следует учесть также, что с целью исключения искажения глобальных данных, находящихся в основной области памяти данных (имеются ввиду DPTR, регистры которые могут быть использованы при обработке прерываний, аккумулятор и т. п.), необходимо перед началом подпрограммы обработки сохранять значения этих данных в стеке командой PUSH с последующим восстановлением командой POP перед выходом из подпрограммы прерываний.
В микроконтроллере имеется специальный регистр приоритетов прерываний IP (Interrupt Priority), доступ к которому осуществляется программно:
Дата добавления: 2015-07-20; просмотров: 69 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Структура регистра IE | | | Регистр приоритетов прерываний |