Проектирование микропроцессорной системы контроля и управления объектом. Общие принципы проектирования микропроцессорных систем, страница 28

DISPLAY:

LXI   D, DATA_W

LDAX   D

ANI   0FH

MOV   C, A

CALL CROSSCODE  

;

Перекодировка

OUT   OPORT2

;

Вывод на HG1

LDAX   D

RRC

RRC

RRC

RRC

ANI   0FH

MOV   C, A

CALL   CROSSCODE  

;

Перекодировка

OUT   OPORT3

;

Вывод на HG2

INX   D

…………

Проверка состояния кнопки SB3 “Пуск” может быть выполнена следующим образом:

IN   IPORT

ANI   80H

;

Выделить разряд D7

JNZ   BEGIN

;

Идти на начало, если не нажата

CALL   DELAY

;

Подпрограмма задержки

; Подготовка к возврату из прерывания

MVI   A, 10H

SIM

;

Сброс триггера на входе RST7.5

POP   H

;

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

POP   D

POP   B

POP   PSW

EI

;

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

RET

Подпрограмма DELAY обеспечивает задержку около 20 мс, что обеспечивает защиту от дребезга контактов кнопки. Ее можно реализовать программным способом по методике, изложенной в [9].

По сигналу от аварийного датчика в МПС поступает запрос прерывания INT0 и происходит переход к подпрограмме ISR0. Функциональная схема реализации аварийной сигнализации приведена на рис. 3.18, а БСА программы – на рис. 3.20. В схеме используются счетчики СТ0 и СТ1 1-го таймера ПТ_1, так как при аварии частоту опроса fопр генерировать не нужно. Счетчики работают в режиме 3 – генератора прямоугольных импульсов (меандра). После инициализации счетчиков подается лог. 1 с выхода 7-го разряда порта РС ППА (сигнал U7), который разрешает выдачу импульсов на светодиод VD1 и динамик ВА1. Затем необходимо включить светодиод с надписью “Останов” (VD8 на ПУ) и остановить МП.

При вычислении величины Z, являющейся функцией кода W3,

Z=e(W3, K3, K4, K5, K6), можно воспользоваться программами арифметических операций, приведенными в [3]. При этом предполагается, что коэффициенты К3-К6 подобраны таким образом, что все исходные и промежуточные данные, а также результат – двухбайтные беззнаковые дробные числа с фиксированной запятой, т.е. всегда меньше 1. Полученное значение Z следует сохранить в массиве с именем DATA_Z (сначала младший, потом старший байт) для последующего вывода на ЦАП.