ВУЗ:
Составители:
Рубрика:
Рассмотрим пример инициализации ПКП.
Пример 4 —Известно, что адреса ПКП в микропроцессорной системе
0020 (АО=0) и 0021 (АО=1). Необходимо проинициализировать ПКП в
соответствии с заданными векторами прерываний от устройств,
приведенных в таблице 15, считая, что каскадирование ПКП отсутствует.
Запрос по переднему фронту IRQ
.
i
Таблица 15
IRQ
(двоич.)
Устройство, вызывающее
прерывание
N IRQ Вектор
i
IRQ 0 000 0008
IRQ 1 001 0009 Клавиатура
IRQ 2 010 000А Канал ввода-вывода
IRQ 3 011 000B Последовательный порт СОМ 1
IRQ 4 100 000C Последовательный порт СОМ 2
Таймер (F = 18,206507 Гц)
Ответ
1) Составляем OCW 1 в соответствии с назначением бит этой
команды (запуск IRQ фронтом; произвольные состояния - «0»):
0 0 0 1 0 0 0
1
1 1
2) ICW 2 равен вектору 08.
3) ICW 3 не нужен, так как только один ПКП.
4) ICW 4 составляем из условия обычного (не автоматического)
завершения прерывания для процессора типа 8086:
0 0 0 0 1 1 0
1
O D
Составляем фрагмент программы инициализации:
MOV DX,0020 ; Адрес ПКП в DX (при AO = 0);
MOV AL,11 ; ICW 1 в AL и оттуда
OUT DX,AL ; в ПКП (при АО = 0);
INC DX ; приготовить адрес 21 (при АО = 1);
MOV AL,08 ; ICW 2 в AL и оттуда
OUT DX,AL ; в ПКП (при АО = 1).
MOV AL,0D ; ICW 4 в AL и оттуда
OUT DX,AL ; в ПКП (при АО = 1).
Вычислим адрес начального вектора (адреса отстоят друг от друга с
шагом в 4 адреса). Это будет прерывание таймера. Вычисляем адрес
вектора:
80
Рассмотрим пример инициализации ПКП. Пример 4 —Известно, что адреса ПКП в микропроцессорной системе 0020 (АО=0) и 0021 (АО=1). Необходимо проинициализировать ПКП в соответствии с заданными векторами прерываний от устройств, приведенных в таблице 15, считая, что каскадирование ПКП отсутствует. Запрос по переднему фронту IRQi. Таблица 15 Устройство, вызывающее IRQi (двоич.) N IRQ Вектор прерывание IRQ 0 000 0008 Таймер (F = 18,206507 Гц) IRQ 1 001 0009 Клавиатура IRQ 2 010 000А Канал ввода-вывода IRQ 3 011 000B Последовательный порт СОМ 1 IRQ 4 100 000C Последовательный порт СОМ 2 Ответ 1) Составляем OCW 1 в соответствии с назначением бит этой команды (запуск IRQ фронтом; произвольные состояния - «0»): 0 0 0 1 0 0 0 1 1 1 2) ICW 2 равен вектору 08. 3) ICW 3 не нужен, так как только один ПКП. 4) ICW 4 составляем из условия обычного (не автоматического) завершения прерывания для процессора типа 8086: 0 0 0 0 1 1 0 1 O D Составляем фрагмент программы инициализации: MOV DX,0020 ; Адрес ПКП в DX (при AO = 0); MOV AL,11 ; ICW 1 в AL и оттуда OUT DX,AL ; в ПКП (при АО = 0); INC DX ; приготовить адрес 21 (при АО = 1); MOV AL,08 ; ICW 2 в AL и оттуда OUT DX,AL ; в ПКП (при АО = 1). MOV AL,0D ; ICW 4 в AL и оттуда OUT DX,AL ; в ПКП (при АО = 1). Вычислим адрес начального вектора (адреса отстоят друг от друга с шагом в 4 адреса). Это будет прерывание таймера. Вычисляем адрес вектора: 80
Страницы
- « первая
- ‹ предыдущая
- …
- 78
- 79
- 80
- 81
- 82
- …
- следующая ›
- последняя »