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

Попробуйте наш инструмент устранения неполадок





Самыми мощными и важными функциями являются прерывания в 8051 микроконтроллер . В большинстве процессов реального времени для правильной обработки определенных условий фактическая задача должна быть остановлена ​​на некоторое время - для этого требуется действие, - а затем должна вернуться к основной задаче. Для выполнения такого типа программ необходимы прерывания. Он полностью отличается от метода опроса, при котором процессор должен последовательно проверять каждое устройство и спрашивать, требуется ли услуга, при этом потребляя больше процессорного времени.

Прерывания в микроконтроллере 8051

Прерывания в микроконтроллере 8051



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


Прерывания бывают разных типов: программные и аппаратные, маскируемые и немаскированные, фиксированные и векторные прерывания и т. Д. Процедура обслуживания прерывания (ISR) появляется при возникновении прерывания, а затем сообщает процессору, что нужно предпринять соответствующие действия для прерывания, а после выполнения ISR контроллер переходит в основную программу.



Типы прерываний в микроконтроллере 8051

Микроконтроллер 8051 может распознавать пять различных событий, которые вызывают прерывание основной программы из нормального выполнения. Эти пять источников прерываний в 8051:

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

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

Таблица векторов прерываний

Таблица векторов прерываний

Структура прерывания микроконтроллера 8051

После «СБРОСА» все прерывания отключаются, и, следовательно, все эти прерывания должны быть разрешены программным обеспечением. Во всех этих пяти прерываниях, если кто-либо или все активированы, это устанавливает соответствующие флаги прерывания, как показано на рисунке. Все эти прерывания могут быть установлены или сброшены битом в некотором специальном функциональном регистре, который имеет значение 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, который обсуждался выше. В процедура программирования в 8051 как следует:

  • Включите соответствующий бит внешнего прерывания в регистре IE.
  • Если это запуск по уровню, просто напишите подпрограмму, соответствующую этому прерыванию, или включите бит регистра TCON, соответствующий прерыванию, запускаемому фронтом - будь то INT0 или INT1.
Программирование внешних аппаратных прерываний

Программирование внешних аппаратных прерываний

3.Программирование прерывания последовательной связи

Прерывания последовательной связи проявляются, когда возникает необходимость отправить или получить данные. Поскольку для флагов TI (прерывание передачи) и RI (прерывание приемника) установлен один бит прерывания, процедура обслуживания прерывания должна проверять эти флаги, чтобы узнать фактическое прерывание.

Операция логического ИЛИ этих двух флагов (RI и TI) вызывает это прерывание, и оно очищается только программным обеспечением. Здесь специальный регистр SCON используется для управления коммуникация операции, включив в нем соответствующие биты.

  • Настройте регистр IE для включения последовательного прерывания
  • Настройте регистр SCON для операции приема или передачи
  • Напишите подпрограмму для этого прерывания с соответствующей функцией и сбросьте флаги TI или RI с помощью этой подпрограммы.
Программирование последовательного прерывания

Программирование последовательного прерывания

Это все о прерываниях в микроконтроллере 8051, типах, их структуре и программировании. Надеюсь, вы получили хорошую информацию из этой статьи. Кроме того, вы можете написать нам в разделе комментариев ниже для реализации в реальном времени микроконтроллерные проекты чтобы мы могли помочь вам получить лучший практический опыт.

Фото Кредиты