Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорные системы управления.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
7.35 Mб
Скачать

5.2.9 Измерение временного интервала

Задача. Требуется измерить с заданной точностью временный интервал между двумя событиями в объекте управления. Предполагается, что в устройстве сопряжения МП с объектом имеются датчики, которые вырабатывают импульсные сигналы начала t0 и окончания t1 процесса, время которого необходимо измерить. Для упрощения примем, что в качестве датчиков применяются концевые переключатели, а измеряемый параметр есть время перемещения подвижного органа объекта управления от места расположения датчика 1 к датчику 2 (рис. 59,а). Требуется также отобразить время процесса в десятичной системе счисления на четырехпозиционном линейном дисплее, а кроме того, сравнить реальное время перемещения объекта с эталонной установкой и отобразить на пульте оператора результат сравнения. Допустим, что реальный процесс в объекте управления может превышать по времени 99 с, а требуемая точность измерения равна 0,01 с.

На рисунке 59.б представлена схема интерфейса МП, предназначенного для решения поставленной задачи.

Порт 1 по линии D0 через промежуточный триггер со счетным входом использован для ввода в МП информации о начале t0 и окончании t1 процесса.

Если триггер Q в исходном состоянии имел сигнал 0, то под воздействием входного сигнала t0 он придет в состояние Q=1 и будет находиться в этом состоянии до момента прихода второго подсчитываемого сигнала t1. Порты 2, 3, и 4 используются для вывода информации.

Каждый байт в портах 2 и 3 предназначен для вывода информации, а также для представления двух десятичных двоичнокодированных знаков так, что через порт 2 осуществляется вывод на дисплей десятков и единиц секунд, а через порт 3 – десятых и сотых долей секунд. К выходам D0 и D1 порта 4 через усилители мощности подключены светоиндикаторы и источники звукового сигнала для сигнализации об отклонениях времени процесса от требуемого значения. По окончании процесса разработки интерфейса МП-контроллера необходимо определить области адресов памяти МП-контроллера для размещения программы, данных и специфицировать рабочие регистры МП, а затем разработать БСА. Допустим, рабочая программа начинается с адреса 0000Х и объем ее не должен превышать емкости одного корпуса БИС ПЗУ со структурой 256 х 8.

Контроллер имеет и ОЗУ (64 х 8), используемое в качестве памяти данных и для реализации стека. Загрузка программного стека в МП К580 осуществляется в порядке убывания адресов.

Рисунок 59 – Схема интерфейса МП контроллера

Регистровой паре ВС присвоим функции счетчика для подсчета длительности временного интервала. В паре DE будем представлять величину установки для сравнения фактического времени с эталонным.

Но так как сравнение времен должно выполняться только после окончания процесса измерения, то эту же регистровую пару можно использовать и для программной реализации временной задержки, равной заданной точности измерений временного интервала длитель­ностью 0,01 с.

Допустим, что эталонное время перемещения подвижного орга­на от позиции датчика 1 до 2 в регулируемом устройстве равно 7,70 с Д2 и хранится в ячейках ОЗУ с адресами 0400Н и 0401Н.

Рисунок 60 – Схема алгоритма измерения и индикации временного интервала

На рисунке 60 представлена БСА работы МП-контроллера, предна­значенного для измерения и индикации временного интервала. После включения системы, т.е. после нажатия кнопки «сброс», счетчик ко­манд (и триггер Q) обнуляются и МП выполняет обращение к ПЗУ по адресу ООООН, который является начальным адресом программы. Программа начинается с процедуры инициализации контроллера, ко­торая содержит команды загрузки регистра - указателя стека и запи­си в ОЗУ кода эталонной установки. После этого МП-контроллер пе­реходит в состояние ожидания события, постоянно опрашивая вход­ной порт 1 и анализируя состояние входного сигнала Q на линии DO. После того, как 0=1, содержимое регистра-аккумулятора увеличива­ется на 1 через каждые 0,01 с до тех пор, пока на выходе триггера Q сигнал не приобретает нулевое значение. Число X, загружаемое в регистровую пару DE, имеет значение, обеспечивающее временную задержку 0,01 с при выполнении соответствующей подпрограммы (DELAY).

Программа, реализующая алгоритм для МП-контроллера, имеющего интерфейс, представленный на рис. 59, и БИС ПЗУ и ОЗУ, подключенные к шине адреса в соответствии с оговоренной ранее таблицей адресов, имеет следующий вид:

INIT:

LXI

SP,0438H ;

установка начального адреса стека

LXI

H,0400H ;

загрузка в HL адреса ОЗУ

MVI

A.07H ;

загрузка в А старшего байта установки

MOV

M,A ;

запоминание в ЗУ старшего байта

INR

L ;

инкремент указателя памяти HL

MVI

A.69H ;

загрузка в А младшего байта установки

MOV

M,A ;

запоминание в ОЗУ

SPEED:

LXI

B,0000H ;

гашение счетчика ВС

WAIT:

IN

01H ;

ввод из порта 1

ANI

01H ;

маскирование линии D

JZ

WAIT ;

цикл ожидания начала процесса

COUNT:

CALL

DELAY ;

временная задержка 0,01 с

MOV

A.C ;

инкремент С

ADY

01H ;

через каждую 0,01 с

DAA

;

десятичная коррекция

MOV

C,A ;

фиксация нового значения в С

MOV

A,B ;

ACI

ООН ;

(АЖВ)+(С)

DAA

;

MOV

B,A ;

фиксация нового значения в С

IN

01H ;

ввод из порта 1

ANI

01H ;

проверка Q

JNZ

COUNT ;

переход, если Q=/Q

MOV

A,B

OUT

02H ;

вывод старшего байта на дисплей

MOV

A,C

OUT

03H ;

вывод младшего байта на дисплей

MOV

E,M ;

загрузка в Е младшего байта установки

DCR

L ;

модификация указателя

MOV

D,M ;

ОЗУ загрузка в D старшего байта установки

MOV

A,B ;

CMP

D ;

сравнение старших байтов

JNC

MORE ;

переход, если (B)>(D)

MOV

A,C ;

CMP

E ;

сравнение младших байтов

JNC

MORE ;

переход, если (С)>(Е)

MVI

A.01H ;

OUT

04H ;

вывод сигнала МЕНЬШЕ УСТАНОВКИ

JMP

SPEED ;

; вывод сигнала БОЛЬШЕ УСТАНОВКИ

MORE:

MVI

A.01H

OUT

04H

JMP

SPEED ;

переход в исходное состояние

DELAY:

MVI

D0.3H ;

; подпрограмма задержки 0,01 с.

LOOP2:

MVI

E.OFFH

LOOP1:

NOP

NOP

NOP

NOP

DCR

E

JNZ

LOOP1

DCR

D

JNZ

LOOP2

RET

Выводы и пояснения:

1. Регистровая пара HL применяется как регистр адреса уста­новки в ОЗУ, запись в которое производится, начиная со старшего байта, а считывание в регистровую пару DE - с младшего. Это позво­ляет исключить одну операцию модификации содержимого HL.

2. В качестве установки используется не заданное значение (7,70 с), а уменьшенное на 1 заданной точности измерения, а именно 7,69 с. Это вызвано тем, что в соответствии с БСА программа построена таким образом,

что она сначала выполняет операцию инкрементирования счетчика сотых долей секунды, а вслед за этим - про­верку окончания процедуры измерения временного интервала.

3. Использование команды суммирования содержимого аккуму­лятора с содержимым признака переноса АС1 необходимо для учета переноса из младшего байта счетчика в старший.

4. Анализ написанной программы показывает, что процедура сравнения фактически измеренного времени и установки начинается со сравнения старших байтов, и только в этом случае, если содержи­мое регистра В окажется равно содержимому регистра D, то выпол­няется сравнение и младших байтов, расположенных в регистрах С и Е.