Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 6054.doc
Скачиваний:
4
Добавлен:
01.05.2022
Размер:
421.89 Кб
Скачать

1. Лабораторная работа № 1 реализация релейного закона управления на эвм

Цель работы: приобретение практических навыков синтеза управляющих устройств на базе ЭВМ, реализующих релейный закон управления.

Оборудование – Компьютер Intel_*86 c платой L-154, лабораторный стенд, двигатель постоянного тока, тепловой объект, RC-цепь.

1.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в).

12 разрядный АЦП, входящий в состав платы, может быть включен в одном из двух режимах: 16 дифференциальных канала или 32 канала с общей землей. В плате перемычками установлен второй режим. АЦП на своем входе имеет предварительный усилитель, обеспечивающий коэффициент усиления 1, 2, 5.

При усилении равном 1 диапазон входного напряжения равен –(5.12в)  (+5.12в). Напряжение на выходе АЦП представлено в дополнительном 12-разрядном коде, так что напряжению 0в соответствует код 0, а напряжению 5.12в – код 2048. Отрицательному напряжению (–5.12в) соответствует дополнительный код числа –2048. При вводе данных через АЦП номер канала ввода и усиление задаются в виде кода присвоенного целочисленной переменной “Номер канала”. Для нулевого канала и единичного усиления значение этой переменной равно $c0, для первого канала значение равно $c1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OldHand, вектор.

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

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

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

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

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

function ADCHAN(channel:word):integer ;- однократный ввод с установкой номера канала.

Функция выполняет следующие действия:

  • Устанавливает номер канала channel. Нулевой канал, к которому подключен аналоговый вход, при единичном усилении имеет значение channel=C0h (в Паскале $c0).

  • Дожидается установления номера канала.

  • .Дает старт преобразования в АЦП.

  • Дожидается бита готовности.

  • Считывает данные с АЦП.

procedure SETCHANNEL(Nch:word); - установка номера канала.

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