mov dx, RgAdat (имя буфера данных АЦП)
in ax, dx
;обнуление 6 старших разрядов
mov dx, 000 000 11111 11111 b
and ax, dx
; преобразование к 12-разрядному коду ЦАП
shl ax, 1
shl ax, 1
; вывод на ЦАП
mov dx, RgSDat 1
mov dx, ax
; проверка нажатия клавиши выхода в DOS
jmp Next
Stop: {выход в DOS}.
Граф-схема алгоритма ввода-вывода (рис. 3.13):
Рис.3.13.
3.4.2. Ввод/вывод по прерыванию
Этот способ В/В поддерживается аппаратно контроллером приоритетных прерываний ПК (КПП) типа i8259A (2 каскадированных БИС). КПП (PIC) выполняет следующие функции:
- принимают запросы на прерывание;
-определяет приоритет прерывающего устройства;
- вызывает процедуры обработки прерываний;
-осуществляет возврат в основную (прерванную) программу.
В ПК IBM-типа имеется 256 типов прерываний: 16 аппаратных и 240 программных, которые вызываются командой INT n, где n - номер или тип прерывания; n = 0,1…255. Номер аппаратного прерывания для i-го канала (i-й линии для i = 8…15) находится как n = i + 68H (в 16-ричной системе) или n = i +104 - в десятичной. Для i = 0,..7 n=i+8.
Каждому типу (номеру) прерывания отводится 4 байта или 2 слова памяти ПК с начальным адресом Аn=4×n, куда записывается полный начальный адрес процедуры обработки прерываний (CS: IP) - т. н. вектор прерываний. Общий объем таблицы векторов прерываний (или указателей прерываний) равен 1024 байта (адреса 000000…0003FF), рис. 3.14.
Рис.3.14.
Программирование В/В по прерыванию включает в себя:
- программирование контроллера;
- инициализация таблицы векторов прерываний;
- программирование процедуры обработки прерываний.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.