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

Программы FORM_Y2 и FORM_Y3 формируют одиночные импульсы на выходах Y2 и Y3 длительностью t2 и t3. Они подобны программе FORM_Y1. Для формирования задержек в них используются счетчики СТ0 и СТ1 2-го таймера ПТ_2 (см. рис. 3.13).

После окончания обработки аналоговых сигналов необходимо проверить положение тумблера “Останов” на пульте управления (ПУ). Схема включения тумблера приведена на рис. 3.17, где он обозначен как SA5. Если SA5 разомкнут, то  происходит возврат в основную программу. Если же SA5 замкнут, то   производится включение светодиода с надписью “Останов” на ПУ и останов МП. Программа проверки имеет вид:

CHECK:

IN IPORT

ANI   0010 0000B

;

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

JZ   STOP

;

Если SA5 замкнут

EI

RET

STOP:

MVI   A, 80H

OUT   OPORT1

;

Включить VD8 “Останов”

HLT

Подпрограмма ISR1 является обработчиком прерывания по запросу INT1, вырабатываемого при нажатии на кнопку “Прерывание” на ПУ (прерывание оператора). БСА подпрограммы ISR1 приведена на рис. 3.19. Рассмотрим программную реализацию некоторых блоков алгоритма.

При входе в подпрограмму ISR1 нужно сохранить в стеке содержимое всех регистров МП, что может быть необходимо для корректной работы подпрограмм более низкого приоритета – ISR2 и ISR3.

ISR1:

PUSH   PSW

;

Сохранить в стеке содержимое

PUSH   B

;

регистров A, F, B, C, D, E, H, L

PUSH   D

PUSH   H

……..   …

Проверить, замкнут ли один из переключателей SA1-SA4, можно программой:

IN   IPORT

ANI   0FH

;

Выделить разряды D3-D0

CPI   0FH

JZ   CHECK

;

Переход, если SA1-SA4 разомкнуты

CALL   IDENTIF

;

Вызов подпрограммы идентификации

Определение номера замкнутого переключателя SA1-SA4 выполняет подпрограмма IDENTIF, которая присваивает ему двоичный позиционный код в соответствии с табл. 3.

Таблица 3

Коды для переключателей SA1-SA4

Замкнут SA

Унитарный код

Позиционный код, HEX

SA1

XXXX 1110

00

SA2

XXXX 1101

01

SA3

XXXX 1011

02

SA4

XXXX 0111

03

ISR1

 


Сохранить регистры МП в стеке

 


Вывод Х1, …, Х4, Y1, Y2, Y3 на индикацию

 


Ввод состояния SA1 – SA4

 


Нет

 Контакт замкнут

?

                                                                                         Да

Идентификация SA1 – SA4

 


Вывод на дисплей кода W1 – W4

 


Ввод состояния SA5 “Останов”

 


Да

 SA5 замкнут

?

 


                                                                                    Нет

                                                                                                             Включить VD8 “Останов”