Исследование прерываний
Автор: Владимир Музыченко • Июнь 9, 2021 • Лабораторная работа • 681 Слов (3 Страниц) • 256 Просмотры
Лабораторная работа №4.
ИССЛЕДОВАНИЕ ПРЕРЫВАНИЙ
Цель работы: изучение способов реализации прерываний от различных источников
Порядок выполнения работы
1. Ознакомиться со способами организации прерываний.
2. Изучить различные источники прерываний.
3. Исследовать с помощью отладчика программу 4.1.
3.1. Набрать программу 4.1 на ПЭВМ.
3.2. Откомпилировать программу.
3.3. Загрузить программу в отладчик.
3.4. Записать содержимое регистра специального назначения PSW и используемых ячеек памяти.
4. Составить программу по заданию преподавателя.
5. Исследовать программу, составленную по заданию преподавателя.
Краткая теория
Описание механизма прерываний ОМЭВМ
Механизм прерываний в ОМЭВМ позволяет автоматически реагировать на внешние и внутренние события (переполнение таймеров/ счетчиков, завершение последовательного обмена).
Каждое из внешних прерываний INТ0, INТ1 может быть активизировано по уровню ("0") или по фронту (переход из "1" в "0") сигналов на выводах ОМЭВМ Р3.2,Р3.3, что определяется состоянием битов IТ0 и IТ1 регистра ТСОN.
При поступлении запроса внешнего прерывания INТх устанавливается флаг IЕх регистра TCON. Установка флагов IЕх в регистре ТСОN вызывает соответствующее прерывание. Очистка флага IЕх производится следующим образом:
∙ при прерывании по фронту IЕх сбрасывается аппаратно (автоматически внутренними средствами ОМЭВМ) при обращении к соответствующей подпрограмме обработки прерывания;
∙ при прерывании по уровню флаг очищается при снятии запроса внешнего прерывания, то есть в IЕх отслеживается состояние вывода INТх. Прерывания от таймеров/счетчиков вызываются установкой флагов ТР0 и ТP1 регистра ТСОN, которые устанавливаются при переполнении соответствующих регистров таймеров/счетчиков. Очистка флагов ТР0 и ТP1 производится внутренней аппаратурой ОМЭВМ при переходе к подпрограмме обслуживания прерывания.
Прерывание от последовательного порта вызывается установкой флага прерывания приемника RI или флага прерывания передатчика ТI в регистре SСОN. В отличие от всех остальных флагов, R1 и Т1сбрасываются только программным способом.
Каждый из перечисленных источников прерывания может быть индивидуально разрешен или запрещен установкой, или сбросом соответствующего бита в регистре разрешения прерываний IE.Регистр IE содержит также бит ЕА, сброс которого в «0» запрещает сразу все прерывания.
Структура приоритетов прерываний является двухступенчатой. Каждому источнику прерываний может быть индивидуально присвоен высокий или низкий уровень приоритета. Выполняется это установкой или сбросом соответствующего бита в регистре приоритетов прерываний IP.Программа обработки прерывания с высоким уровнем приоритета не может быть прервана никаким другим запросом 30 прерывания. Программа обработки прерывания с низким уровнем может быть прервана запросом прерывания с высоким уровнем, но не может быть прервана другим запросом с низким уровнем приоритета. Если одновременно приняты запросы с одинаковым уровнем, то они будут обрабатываться в порядке, задаваемом последовательностью внутреннего опроса флагов прерываний.
Таблица 1 - Векторы прерывания для различных источников.
[pic 1]
Разбор примера
Пример. Программа, использующая прерывания от различных источников. С задержкой в 50 мс, прибавить к содержимому порта вывода Р0, единицу (используя прерывание от таймера/счетчика),при запросе прерывания от внешнего источника(INT0),вывести в порт Р1 число ААh.
Код программы примера
[pic 2]
Проверка программы примера на ошибки
[pic 3]
Выполнение программы примера в отладчике
[pic 4]
Задание
Вариант 15. Контролировать состояние 1 разряда порта Р0, если бит установлен, то вывести в порт Р2 константу С2h, по сигналу внешнего прерывания инвертировать содержимое порта Р1.
...