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

1.12. Организация обслуживания запросов прерывания

с использованием команды RST

Запрос прерывания – это запрос срочного, внеочередного обслуживания ВУ, выставившего запрос. Эта ситуация характерна для систем автоматики, так как в них обязательно контролируются аварийные параметры регулируемых сигналов и, в случае их возникновения, нужно в аварийном порядке остановить объект автоматизации. В простейшем случае во всех системах автоматики имеется кнопка "Стоп", реакция на поступивший от нее сигнал должна быть незамедлительной. Это является также требованием техники безопасности – немедленно отключить установку, если появилась угроза жизни для обслуживающего персонала.

Микропроцессорные программы управления множеством ВУ выполняются только последовательно: за 1-м ВУ обслуживается 2-е ВУ, затем 3-е ВУ и так до последнего ВУ. Потом возврат на обслуживание 1-го ВУ и – повторение цикла.

Следовательно, в каждый момент времени опрашиваются сигналы только одного объекта автоматизации, с ВУ которого работает программа МП, а сигналы с других ВУ и объектов автоматизации просто не опрашиваются. Аварийный сигнал может быть не замечен, если не подошла очередь обслуживания соответствующего ВУ. Поэтому режим прерываний в МПСУ совершенно необходим.

На рис.1.36 приведен алгоритм обслуживания прерываний и принципиальная электрическая схема МПСУ, поддерживающая режим обработки прерываний. Чтобы не усложнять схему, принято на прерывание завести кнопку С "Стоп" только одного устройства – устройства управления контактором К. Режим обслуживания множества прерываний рассмотрен далее на схеме рис.1.48.

Кнопка С заведена на вход INT "Запрос прерывания". Кнопка П и контактор К подключены к МП обычным способом, как на схеме рис.1.29а.

Примем следующие условия построения схемы и работы МПСУ:

1). МПСУ организована с раздельной системой шин.

2). Адрес ВУ ввода и вывода равен 47Н.

3). В схеме используются:

- регистр, выставляющий команду RST 1 (схема взята из рис.1.26);

- регистр с подключенной кнопкой П (схема взята из рис.1.29б);

- D-триггер с контактором К (схема взята из рис.1.29б);

- дешифратор адреса ВУ (схема взята из рис.1.29б).

4). Программа, осуществляющая включение контактора К, расположена в начале ПЗУ. Стартовый адрес уточнится при составлении программы. Выключение контактора выполняется по прерыванию.

5). Вершина стека располагается за последним адресом массива ячеек ОЗУ.

Собственно разработкой схемы является организация дешифрации ИМС памяти. В схеме используются ИМС ПЗУ и ОЗУ одинакового объема памяти – по 211=2 Кбайта. Эти ИМС адресуются одиннадцатью битами ША (от А0 до А10). Применен дешифратор типа КР555ИД7, на адресные входы которого заведены биты А13, А12 и А11 ША, а на разрешающие входы заведены постоянные сигналы разрешения: и Е3=1. ПЗУ подключено к выходу 0 дешифратора, а ОЗУ – к выходу 1. Адреса ПЗУ и ОЗУ распределяется согласно рис.1.37.

Вид памяти

Минимальные адреса

Максимальные адреса

Биты ША

16-ричные

Биты ША

16-ричные

13

12

11

10

9

8

7

6

5

4

3

2

1

0

13

12

11

10

9

8

7

6

5

4

3

2

1

0

ПЗУ

0

0.

0

0

0

0.

0

0

0

0.

0

0

0

0

0000

0

0.

0

1

1

1.

1

1

1

1.

1

1

1

1

07FF

ОЗУ

0

0.

1

0

0

0.

0

0

0

0.

0

0

0

0

0800

0

0.

1

1

1

1.

1

1

1

1.

1

1

1

1

0FFF

На ДШ

На входы ИМС памяти

На ДШ

На входы ИМС памяти

Рис.1.37. Адреса ИМС памяти

Последним адресом ОЗУ является 0FFFH. Следующий за ним адрес 1000Н присвоим вершине стека.

Программа управления контактором приведена на рис.1.38.

Так как после нажатия кнопки С вводится команда RST 1, то стартовый адрес подпрограммы обслуживания прерывания будет равным 0008Н, как и в работе схемы, изображенной на рис.1.26.

Адрес

Код команды

Метка

Мнемокод

Комментарии

0000

31

00

10

Инициализация

LXI SP, 1000

Запись в указатель стека SP адреса 1000 вершины стека

0003

FB

EI

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

0004

C3

10

00

JMP Начало

Идти на опрос кнопки П "Пуск"

0007

00

NOP

Нет операции

0008

F5

Прерыв.

PUSH PSW

1-я команда п/программы обслуживания прерывания. Сохранить в стеке слово состояния программы

Рис.1.38. Программа управления контактором с прерываниями

Адрес

Код команды

Метка

Мнемокод

Комментарии

0009

3E

00

MVI A, 00

Записать в аккумулятор код выключения контактора К

000B

D3

47

OUT 47

Выключить контактор К

000D

F1

POP PSW

Восстановить слово состояния

000E

FB

EI

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

000F

C9

RET

Возврат в прерванную программу

0010

DB

47

Начало

IN 47

Ввести состояние кнопки П "Пуск"

0012

E6

02

ANI 02

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

0014

C2

1B

00

JNZ Конец

Выйти из программы без включения контактора К

0017

3E

01

MVI A, 01

Записать в аккумулятор код включения контактора К

0019

D3

47

OUT 47

Включить контактор К

001B

Конец

1-я команда управления другим ВУ

Рис.1.38. Продолжение

С начала выполнения подпрограммы обработки прерывания микропроцессор перестает опрашивать сигнал на входе INT. В конце указанной подпрограммы должны быть подряд выполнены две команды - EI и RET. Особенность команды EI состоит в том, что после нее процессор обязательно выполнит еще одну команду (по программе команда RET), даже если на входе INT будет присутствовать сигнал 1. Таким образом, подпрограмма обработки прерывания всегда будет завершена корректно: будет разрешен опрос сигнала запроса прерывания с входа INT, и одновременно управление будет передано отложенной команде.

До выполнения блока команд EI и RET кнопка С должна быть отпущена, иначе будут повторные запуски подпрограммы выключения контактора К.

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