- •Теоретическая часть
- •Инициализация контроллера прерываний
- •Режим с фиксированными приоритетами прерываний
- •Режим циклического сдвига приоритетов
- •Режим специального маскирования
- •Режим последовательного опроса
- •1.6. Каскадирование контроллеров прерываний
- •Описание лабораторного стенда
- •2.1. Работа стенда с обучающей программой
- •2.2. Работа стенда в автономном режиме
- •3. Порядок выполнения работы на стенде
- •3.1. Выполнение работы в автономном режиме
- •3.2. Выполнение работы с обучающей программой
- •4. Отчет о лабораторной работе должен содержать:
- •5. Лабораторные задания
- •6. Контрольные вопросы
- •7. Список литературы
- •Программируемого контроллера прерываний кр580вн59
- •Системные требования:
- •156005, Г. Кострома, ул. Дзержинского, 17.
2.2. Работа стенда в автономном режиме
Автономный режим работы лабораторного стенда используется для самостоятельного изучения типовых и нестандартных режимов работы микросхемы КР580ВН59 без контроля со стороны обучающей программы.
Автономная работа стенда реализуется при использовании как внешнего источника питания +5 В, так и совместно с ЭВМ. В первом случае с помощью заглушки к разъему ГРПМ - 32 и вилки стенд подключается к источнику питания +5 В. Во втором случае стенд подключается к ЭВМ, и после загрузки обучающей программы выбирается режим автономной работы.
3. Порядок выполнения работы на стенде
В процессе подготовки к работе по заданию преподавателя необходимо:
- изучить техническое описание контроллера приоритетных прерываний и описание лабораторного стенда;
- в соответствии с заданием составить список команд инициализации и приказов;
- составить блок-схему требуемой программы порядка обслуживания запросов;
- составить программу реализации задания в кодах по шагам (см. табл. 3).
Рассмотрим порядок работы и оформления ее результатов на примере выполнения следующего задания.
ПРИМЕР ЗАДАНИЯ
Запрограммировать ПКП для работы в режиме циклического сдвига приоритета, задавшись начальными адресами подпрограмм обслуживания и реализовать следующий порядок обслуживания четырех ВУ: IRQ1, IRQ3, IRQ0, IRQ7.
3.1. Выполнение работы в автономном режиме
Назначим старший байт адреса команды CALL DB7-BD0=00110111, а адресный интервал младшего байта адреса в 4 байта. При составлении программы обслуживания запросов по приоритетам будем предполагать, что программа обслуживания запроса сводится к проверке команды CALL с двумя байтами адреса, сбросу обслуженного бита IRQ и считывания содержимого внутренних регистров ПКП.
Одним из способов реализации задания является разбивка полного цикла обслуживания четырех ВУ на два:
- маскирование всех запросов кроме IRQ1, IRQ3 и их обслуживание по командам CALL;
- маскирование всех запросов кроме IRQ0, IRQ7 и их обслуживание по командам CALL.
Вид команд, формируемых на ИСМП по шинам DB, AB, CB и последовательность их выполнения необходимые для реализации заданного режима работы БИС и схемы ее включения приведены в табл. 3. В таблице неизменными остаются разряды адресной шины A2A3=00. Перед выполнением работы на стенде с помощью перемычек нужно подать сигналы запросов на входы IRQ0, IRQ1, IRQ3, IRQ7 (шаг 4 таблицы).
Более подробные комментарии к табл. 3.
Шаг 1. Загрузка слова инициализации ICW1. Формируется при А0=0, на один ПКП в системе (DB1=1), на интервал в 4 байта (DB2=1) и адреса А7 А6 А5=DB7 DB6 DB5=000.
Шаг 2. Загрузка слова инициализации ICW2, т.е. старшего байта адреса
DB7-DB0=00110111. Формируется при А0=1.
Шаг 3. Загрузка слова приказа OCW1 при А0=1. Производим маскирование всех запросов кроме IRQ1 IRQ3.
Шаг 4. Формируем запросы IRQ0=1, IRQ1=1, IRQ3=1, IRQ7=1 путем установки штекера в соответствующие гнезда ИСВУ. Правильность установки запросов во внутреннем регистре ПКП можно проверить считыванием состояния регистра запросов на DB7-DB0.
Таблица 3.
N шага |
Состояние АВ |
Состояние DB |
Состояние СВ |
Содержание шага |
||||||||||||
А0 |
А2 |
А3 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|||
1. |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
Загрузка слова инициализации (ICW1) |
|
2. |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
Загрузка старшего байта адреса (ICW2) |
|
3. |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
Загрузка слова приказа OCW1 (маскирование) |
|
4. |
Подключение IRQ0=IRQ1=IRQ3=IRQ7=1 |
Формирование запросов ВУ, ожидание сигнала INT |
||||||||||||||
5. |
Формирование трех сигналов на ИСМП и проверка сигналов на светодиодах |
|||||||||||||||
6. |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
Загрузка слова приказа OCW2 (сброс IRQ1) |
|
7. |
0 |
0 |
0 |
Х |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
Загрузка слова приказа OCW3 |
|
8. |
0 |
0 |
0 |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
1 |
1 |
0 |
Считывание РЗПР |
|
9. |
0 |
0 |
0 |
Х |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
Загрузка слова приказа OCW3 |
|
10. |
0 |
0 |
0 |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
Х |
1 |
1 |
0 |
Считывание РОЗПР |
|
11. |
Повторение шагов 5, 6, 7, 8, 9, 10, со сбросом IRQ3 |
|||||||||||||||
12. |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Загрузка слова приказа OCW1 (снятие маски с IRQ0, IRQ7 |
|
13. |
Повторение шагов 5, 6, 7, 8, 9, 10, со сбросом IRQ0 и IRQ7 |
Шаг 5. Убедившись в наличии сигнала INT, с помощью кнопки на ИСМП сформируем последовательность из трех сигналов подтверждения прерывания, проверяя на светодиодах DB7-DB0 код команды CALL, младший (см. табл. 1) и старший байты адреса.
Шаг 6. Загрузка слова приказа OCW2 при А0=0 для сброса запроса IRQ1 с максимальным приоритетом DB7-DB0=00100000.
Шаг 7. Загрузка слова приказа OCW3 при А0=0 для считывания регистра запросов на прерывание.
Шаг 8. Считывание состояния РЗПР.
Шаг 9. Загрузка слова приказа OCW3 при А0=0 для считывания регистра обслуженных запросов на прерывание.
Шаг 10. Считывание состояния РОЗПР.
Шаг 11. Убедившись в наличии сигнала INT на выходе БПП, с помощью кнопки на ИСМП формируем последовательность из трех сигналов «Подтверждение прерывания», проверяя на светодиодах DB7-DB0 код команды CALL, младший и старший байты адреса соответствующие запросу от третьего ВУ – IRQ3.
Шаг 12. Загрузка слова приказа OCW1 при А0=1. Производим снятие маски с запросов IRQ0 IRQ7.
Шаг 13. Повторение шагов 5, 6, 7, 8, 9, 10, со сбросом IRQ0 и IRQ7.