Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
133.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
970.75 Кб
Скачать

8.4. Контрольные вопросы

    1. Как обрабатываются прерывания?

    2. Каким образом формируется в процессоре прерывание $1С?

    3. Что такое вектор прерывания?

    4. Перечислите последовательность операций при смене вектора прерывания.

    5. Как происходит передача параметров в процедуре обработки прерывания?

    6. Какие операторы Паскаля предназначены для работы с прерываниями?

    7. Как работает контроллер прерываний?

8.5. . Литература

  1. Абель П. Язык Ассемблера ддля IBM PC и программирования / Пер. с англ.- М.: Высш. Шк., 1992.- 447 с.

  2. Джордейн Р. Справочник программиста персональных компьютеров типа IBM XT и AT: Пер с англ. – М.: Финансы и статистика, 1992 – 544 с.

  3. Турбо Паскаль 7.0 – К.: Торгово-издательское бюро BHV, 1995-448с.

  4. Марченко А.И., Марченко Л.А. Программирование а среде Турбо Паскаль 7.0 –М.: Бином Универсал, К.: ЮНИОР, 1997.-496 с.

9. Лабораторная работа №8 формирование аналогового сигнала

Цель работы: получение аналогового сигнала в реальном масштабе времени.

Оборудование: INTEL286 c платой L-154, осциллограф.

9.1. Плата ввода-вывода l-154

В лабораторной работе используется универсальная плата ввода-вывода L-154 и ее программное обеспечение. Плата имеет в своем составе программируемый таймер для отсчета интервалов времени, 8-разрядные параллельные интерфейсы ввода и вывода, 16/32 аналоговых входа, аналоговый выход и устройство запросов прерывания. Программно установлен запрос прерывания по линии IRQ5. Необходимое программное обеспечение для выполнения работы размещено в модуле lpas.

Плата содержит в своем составе одноканальный ЦАП, аналоговый выход которого выведен на осциллограф. Обращение к регистру вывода ЦАП происходит по адресу 300H. Для вывода в этот регистр можно использовать библиотечную процедуру OUTDA объектной библиотеки размещенной в модуле lpas. Для включения этой процедуры необходимо отметить этот модуль в числе вызываемых модулей в директиве USES.

Содержимое регистра данных ЦАП может изменятъся от 0 до 4096. Числу 0 типа WORD (целому числу без знака) соответствует выходное напряжение (–5.12в), числу 2048 соответствует 0в, а числу 4096 соответствует напряжение (+5.12в).

В работе предлагается использовать язык программирования Паскаль.

9.2. Программное обеспечение платы

В программное обеспечение платы для выполнения работы включены следующие процедуры, размещенные в модуле lpas:

procedure OUTDA(dat:integer);- вывод данных в ЦАП;

procedure INITINTR(rate1,rate2:word, name:pointer);- инициализация режима прерывания

Процедура выполняет следующие действия:

  1. Запоминает регистры DX, DI, SI в стеке.

  2. Запрещает прерывания на плате.

  3. Запоминает адрес старой программы обработки прерывания (старый вектор) в переменной OldHand.

  4. Устанавливает новую программу name обработки вектора прерывания от внутреннего таймера.

  5. Инициализирует контроллер прерывания.

  6. Устанавливает период между прерываниями равный rate1*rate2 мксек.

  7. Разрешает прерывания.

  8. Восстанавливает регистры DX, DI, SI.

procedure STOP_INTR; выключение прерывания

Процедура выполняет следующие действия:

  1. Запоминает регистры в стеке.

  2. Запрещает прерывания.

  3. Восстанавливает старый, ранее запомненный в переменной

OldHand, вектор.

  1. Восстанавливает контроллер прерываний.

  2. Восстанавливает регистры.

procedure RESET_IRQ; - Процедура сбрасывает контроллер прерываний. Она должна быть последней в программе обработки прерывания.

procedure INTR_SETUP(n:word); - Данная процедура сообщает драйверу о номере прерывания IRQ, установленному на плате с помощью перемычек.

Для IRQ5 значение n должно быть равно 2, для IRQ3 n равно 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]