Автоматизированные системы контроля и управления РЭС, конспект лекций, страница 18

    Фрагмент ассемблерной программы В/В по прерыванию:

; Адреса, коды, константы, необходимые для программирования контроллера.

  IRQ CHANNEL egu  0AH; номер линии запроса прерывания IRQ11;

  int_num egu 73H; тип (номер) прерывания;

  addr_mask 1 egu 21H; адрес рег. маски КПП 1;

  addr_mask 2 egu  0a1H; адрес рег. маски КПП 2;

  mask_cod egu  08H; код маски линии IRQ11;

  addr_eoi 1 egu 20H; адрес рег. команды слова eoi КПП 1;

  addr_eoi 2egu  0a0H; адрес рег. команды слова eoi КПП 2;

  cod_eoi egu 20H; код команды eoi. 

IntHandler proc

  sti

; ввод/вывод данных без проверки готовности

; запись команды eoi в КПП

  mov dx, addr_eoi 1

  mov ax, cod_eoi

  out dx, al

  mov dx, addr_eoi 2

      out dx, al

      iret

IntHandler endp

; основная программа:

; инициализация модуля

; программирование таймера

; разрешение формирования запроса

; прерывания (аппаратными средствами  модуля)

; установка вектора прерываний

mov al, int_num

lds  dx, IntHandler; загрузить DS и DX полным адресом IntHandler

mov ah, 25 H; функция DOS

int 21 H;  загрузка обработчика прерываний.

; демаскирование линии запроса прерываний;

  mov bl, mask_cod

  not bl

  mov dx, addr_mask 2

  in al, dx

  and al, bl

  out dx, al

  mov dx, addr_mask 1

  mov al, 0

  out dx, al

; пуск АЦП

; проверка нажатия клавиши- цикл ожидания

; выход в DOS.

3.4.3. Ввод-выводврежимеПДП (Direct Memory Access)

    Осуществляется под управлением системного контроллера ПДП (КПДП или ДМАС) без участия ЦП. В качестве КПДП используется 2 БИС  8237А-5, каждая из которых имеет 4 независимых канала; общее число каналов - 8.

Каналы 0…3 поддерживают обмен байтами, 4…7 -  словами; каналы пользователя: 5, 6, 7.

Функции КПДП:         

- принимает сигналы запроса ПДП DRQ;

- возвращает на шину сигналы подтверждения DACK, с помощью которых осуществляется выбор устройства;