ВУЗ:
Составители:
Рубрика:
записью в ПКП при АО=1 соответствующего байта. Маску можно
прочитать по тому же адресу, то есть при АО=1.
Пример 3 — составить маску для только что рассмотренного
примера 2 таким образом, чтоб разрешить прерывание только по
запросам IRQO и IRQ6:
Ответ: Составляем слово маски, «закрывая» все, кроме D6, D0:
D7 D6 D5 D4 D3 D2 D1 D0
┌───┬───┬───┬───┬───┬───┬───┬───┐
Маска: │ 1 0 1 1 1 1 1 0 │
└───┴───┴───┴───┴───┴───┴───┴───┘
└───────────┘ └───────────┘
Н-код = B E
Составим фрагмент программы маскирования ПКП с адресами
выборки из примера 2:
MOV DX,00F1 ; адрес ПКП для АО=1 в DX;
MOV AL,BE ; маску BE (IRQ 0, IRQ 6 — разрешить) в AL,
OVT DX,AL ; а затем оттуда в ПКП — в регистр маски.
Примечание – В начале работы, в момент подачи питания на ПКП
все IRQ демаскируются, все разряды РЗП и РОЗП сбрасываются в «0» и
устанавливается исходный приоритет: IRQ 0 — высший, IRQ 7 —
низший (дно).
Следующий элемент архитектуры ПКП (рисунок 10) называется:
«Схема каскадирования». Он выполняет функции расширителя числа
запросов на прерывание. Дело в том, что если не хватает 8 входов IRQ, то
микросхемы можно каскадировать — до 8 штук, и число векторов
довести до 8 x 8 = 64.
На практике такое редко встречается, а вот каскад из двух ПКП
реализован в IBM PC/АТ. Как это делается — в данном пособии не
рассматривается. Это совершенно не принципиальный вопрос, а скорее
узкотехнический.
А теперь обратимся к программированию ПКП. Некоторые
элементы этого процесса уже были представлены в примерах 2 и 3. Но в
целом процесс программирования ПКП достаточно сложен и состоит из
трех блоков.
1) блок инициализации (настройка режима и загрузка векторов и
шага векторов);
2) блок команд окончания (завершения) прерывания;
3) блок команд обработки по опросу (без сигнала INT).
Чтобы иметь возможность работы с контроллером по минимуму,
необходимо знать:
а) как накладывать маску (или прочитать ее);
б) как завершать прерывание (частный случай: команда 20 при
А0=0).
73
записью в ПКП при АО=1 соответствующего байта. Маску можно
прочитать по тому же адресу, то есть при АО=1.
Пример 3 — составить маску для только что рассмотренного
примера 2 таким образом, чтоб разрешить прерывание только по
запросам IRQO и IRQ6:
Ответ: Составляем слово маски, «закрывая» все, кроме D6, D0:
D7 D6 D5 D4 D3 D2 D1 D0
┌───┬───┬───┬───┬───┬───┬───┬───┐
Маска: │ 1 0 1 1 1 1 1 0 │
└───┴───┴───┴───┴───┴───┴───┴───┘
└───────────┘ └───────────┘
Н-код = B E
Составим фрагмент программы маскирования ПКП с адресами
выборки из примера 2:
MOV DX,00F1 ; адрес ПКП для АО=1 в DX;
MOV AL,BE ; маску BE (IRQ 0, IRQ 6 — разрешить) в AL,
OVT DX,AL ; а затем оттуда в ПКП — в регистр маски.
Примечание – В начале работы, в момент подачи питания на ПКП
все IRQ демаскируются, все разряды РЗП и РОЗП сбрасываются в «0» и
устанавливается исходный приоритет: IRQ 0 — высший, IRQ 7 —
низший (дно).
Следующий элемент архитектуры ПКП (рисунок 10) называется:
«Схема каскадирования». Он выполняет функции расширителя числа
запросов на прерывание. Дело в том, что если не хватает 8 входов IRQ, то
микросхемы можно каскадировать — до 8 штук, и число векторов
довести до 8 x 8 = 64.
На практике такое редко встречается, а вот каскад из двух ПКП
реализован в IBM PC/АТ. Как это делается — в данном пособии не
рассматривается. Это совершенно не принципиальный вопрос, а скорее
узкотехнический.
А теперь обратимся к программированию ПКП. Некоторые
элементы этого процесса уже были представлены в примерах 2 и 3. Но в
целом процесс программирования ПКП достаточно сложен и состоит из
трех блоков.
1) блок инициализации (настройка режима и загрузка векторов и
шага векторов);
2) блок команд окончания (завершения) прерывания;
3) блок команд обработки по опросу (без сигнала INT).
Чтобы иметь возможность работы с контроллером по минимуму,
необходимо знать:
а) как накладывать маску (или прочитать ее);
б) как завершать прерывание (частный случай: команда 20 при
А0=0).
73
Страницы
- « первая
- ‹ предыдущая
- …
- 71
- 72
- 73
- 74
- 75
- …
- следующая ›
- последняя »
