Необходимо теперь задать режим работы программируемого контроллера прерываний КР1810ВН59А. Сначала нужно загрузить на него слова команд инициализации СКИ1, СКИ2 и СКИ4. В СКИ1 укажем наличие СКИ4, отсутствие ведомых контроллеров, что IRQ воспринимается фронтом; тогда код СКИ1: 0001 0011 (адрес 60Н). В СКИ2 указываются лишь разряды старшего байта адреса подпрограмм обслуживания; код СКИ2: 0000 0000 (адрес 61Н). В СКИ4 указывается наличие микропроцессора серии К1810 и разрешение автоматического конца прерывания, код СКИ4: 0000 0011 (адрес 61Н).
При инициализации заносятся
также вектора прерываний в соответствующие места в таблице векторов
прерываний, а также нулевой код уставки.
Для ввода сигналов Х1 - Х4 необходимо лишь один раз прочитать содержимое порта по адресу 00Н. Четыре младших разряда прочитанного кода и будут сигналами Х1 - Х4. Для получения Y1 реализуем функцию Х1*Х2 + Х3*Х4. Длительность сигнала Y1 составит Т1 = 60 мс и эту задержку реализуем с помощью первого канала таймера - счётчика. Перед задержкой надо выставить сигнал Y1 (бит 0 порта с адресом 01Н) и дать команду WAIT, запустив перед этим счётчик (запуск 1-ым разрядом порта С параллельного интерфейса по адресу 02Н). Таймер даст сигнал прерывания по истечении интервала задержки и тем самым система будет выведена из состояния ожидания. После цикла сигнал Y1 сбрасывается в “0”.
Ввод кодов N5 и N6 (преобразованные Х5 и Х6) осуществляется простым обращением к внутренней памяти многоканального АЦП (адреса 10 и 11Н соответственно). Затем вычисляется значение Q2 = max(N5,N6 +K), где К - код уставки, хранящийся по адресу 0000:0400Н в ОЗУ (1 байт). Вывод сигналов Y2 и Y3 осуществляется по алгоритму, представленному в виде блок - схемы на рис. 4.
Задержки Т2 = 40 мс и Т3 = 20 мс формируются с помощью канала 1 таймера - счётчика. Необходимый модуль пересчёта был рассчитан ранее.
Ввод цифрового эквивалента напряжения Х7 (N7) осуществляется обращением к многоканальному АЦП с адресом 12Н. На основе N7 вычисляется функция Q4 = A0 + A1 * N7, где А0 и А1 - постоянные коэффициенты, хранящиеся в ПЗУ (в самой программе). А1 = 0,25 (0100 0000), а А0 = 0,17 (0010 1011). Вычисленное значение Q4 выдаётся на регистр (КР1554ИР22), к которому подключён ЦАП (адрес регистра 20Н). На выходе этого ЦАП получим сигнал Y4.
Начало
Q2 > Q0
Конец
Рис. 4.
Алгоритм формирования сигналов Y2 и Y3.
При прерывании от аварийного датчика (IRQ0) необходимо включить на пульте управления аварийный сигнал. Для этого нужно лишь разрешить счёт нулевому каналу таймера - счётчика (модуль пересчёта уже загружен при инициализации системы), это осуществляется подачей “1” в разряд 0 канала С. В программе обработки прерывания необходимо также выдать на индикацию сигналы Х1 - Х4 и число Q4 - это действие производится обращением к модулю вывода, разработка которого не предусмотрена в данном варианте технического задания. Затем МПС переводится в состояние ожидания (командой HLT). Перед командой HLT запрещаем все прерывания в микропроцессоре (команда CLI) и тогда выход из создавшейся ситуации возможен лишь по нажатию кнопки “СБРОС”.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.