цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Источники прерываний и таблица векторов прерываний в микропроцессорах MCS-51



Источники прерываний и таблица векторов прерываний в микропроцессорах MCS-51

Автор: Mike(admin) от 5-01-2020, 08:35

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


Что такое прерывания в микропроцессорных системах

Прерывания полезны во многих случаях, когда процессор просто хочет продолжать выполнять свою основную работу, а другие блоки (таймеры или внешние события) обращаются к нему, когда это необходимо. Другими словами, микропроцессору не нужно постоянно контролировать таймеры, последовательную связь или внешние контакты P3.2 и P3.3. Всякий раз, когда происходит событие, связанное с этими блока, оно сообщается микропроцессору с помощью прерываний.


Прежде чем говорить непосредственно об обработке прерываний, сначала нужно понять, от чего может входить в обработчик прерываний микропроцессор серии MCS-51. Он может распознавать пять различных событий, которые приводят к прерыванию основной программы при обычном выполнении. Эти пять источников прерываний следующие:


  • Прерывание по переполнению таймера 0 – TF0
  • Прерывание по переполнению таймера 1 – TF1
  • Внешнее аппаратное прерывание – INT0
  • Внешнее аппаратное прерывание – INT1
  • Прерывание порта последовательной связи – RI / TI

Также к прерываниям можно отнести прерывание по сбросу, когда на линии сброса (RESET) устанавливается высокий логический уровень. При этом процессор переходит к адресу 0000h.


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


таблица векторов прерываний в микропроцессорах MCS-51

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


Следует отметить, что вектору сброса также выделено место в памяти, но всего 3 байта, что означает, что он может содержать инструкцию перехода в место, где хранится основная программа.


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


INT0 и INT1 – это внешние прерывания, которые срабатывают при появлении сигналов на линиях P3.2 и P3.3 соответственно. Они могут быть сконфигурированы как источники прерывания по низкому уровню или по срезу. А прерывание порта последовательной связи может быть настроено на запуск при передаче или получении байта во время последовательной связи.




© digitrode.ru


Теги: прерывания, MCS-51




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий