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

19. Программируемый интервальный таймер

В МПСУ очень часто встречаются операции создания выдержек времени, подсчета числа импульсов, генерирования импульсов. Для реализации этих операций целесообразно использовать ИМС программируемого интервального таймера (ПИТ) типа КР580ВИ5.

20. Функциональная схема ПИТ приведена на рис.1.57 ПИТ содержит 3 одинаковых 16-разрядных вычитающих счетчика Сч0, Сч1 и Сч2. На выводы CLK подаются счетные импульсы. Сигналом GATE=1 счет разрешается (старт счетчика), а останавливается счет сигналом GATE=0 (стоп счетчика). При обнулении счетчика выставляется сигнал OUT=1.

Управление функциями ПИТ

A1

A0

Функция

0

1

0

0

0

Загрузка Сч0 с ШД

0

1

0

0

1

Загрузка Сч1 с ШД

0

1

0

1

0

Загрузка Сч2 с ШД

0

1

0

1

1

Загрузка РР с ШД

0

0

1

0

0

Считывание Сч0 на ШД

0

0

1

0

1

Считывание Сч1 на ШД

0

0

1

1

0

Считывание Сч2 на ШД

0

0

1

1

1

Z-состояние ШД ПИТ

1

х

х

х

х

Z-состояние ШД ПИТ

0

1

1

х

х

Z-состояние ШД ПИТ

Каждый канал может быть настроен на один из 6 режимов [1,3,7,8,9,10,19]: 0 – программируемая задержка; 1 – ждущий мультивибратор; 2 – делитель частоты в заданное число раз; 3 – генератор меандра; 4 – строб с программным запуском; 5 – строб с аппаратным запуском. Ниже рассмотрим только режим 0, который используется в МПСУ для создания выдержек времени.

В режиме 0 счетчик предварительно загружается заданным не равным нулю числом NСЧ. Затем сигналом GATE=1 вычитающий счетчик стартует. Спустя время τ=ТCLK·NСЧ, где ТCLK – период счетных импульсов, счетчик обнулится и выставит сигнал OUT=1. Время τ является выдержкой времени, сформированной ПИТ. Максимальная емкость счетчиков NСЧ.МАКС составляет 216=65536 импульсов в режиме двоичного счета и 104 импульсов в режиме десятичного счета. Сигнал OUT=1 можно завести на прерывание или его может проверять периодически МП в процессе выполнения программы. Если во время счета подать сигнал GATE=0, то счетчик остановится, его содержимое сохранится, а с момента подачи GATE=1 счет продолжится от сохраненного значения.

Инициализация ПИТ производится управляющим словом (рис.1.58), где даны пояснения к битам этого слова. Рассмотрим пример инициализации счетчика Сч0 на режим 0 десятичного счета с загрузкой сначала младшего, а затем старшего байта при включении ПИТ в схеме на рис.1.58 для создания выдержки времени 20 с. По схеме на вход CLK0 счетчика подаются импульсы с периодом ТCLK=20 мс (частотой 50 Гц). Выбор ИМС ПИТ производится битом А7 адреса.

рисунок

Для создания выдержки времени τ=20 с при периоде счетных импульсов ТCLK=20 мс в счетчик предварительно нужно загрузить число 100010. Так как 100010<104, то выберем режим десятичного счета, при котором счетчик представляет собой набор из 4-х двоично-десятичных тетрад, в каждой из которых можно записать число от 0Н до 9Н (десятичные и 16-ричные числа в интервале от 0 до 9 записываются одинаковыми символами). Для записи в Сч0 числа 1000 нужно в старший байт загрузить число 10Н, а в младший – 00Н. Программа инициализации приведена на рис.1.59.

Если бы использовался двоичный счет, то вместо MVI A, 31 надо было ввести MVI A, 30, вместо MVI A, 00 и MVI A, 10 ввести MVI A, Е8 и MVI A, 03.

Мнемокод

Комментарии

MVI A, 31

Загрузка в аккумулятор управляющего слова 31Н=0011.0001В, в котором D7D6=00 (выбран Сч0), D5D4=11 (запись сначала младшего, а затем старшего байта Сч0), D3D2D1=000 (режим 0), D0=1 (счет десятичный)

OUT 7F

Вывод по адресу 7FН=0111.1111В управляющего слова в регистр РР ПИТ. В адресе А7=0 (выбор ИМС ПИТ), А1А0=11 (адрес РР в ПИТ)

MVI A, 00

Загрузка в аккумулятор младшего байта счетчика

OUT 7C

Вывод по адресу 7СН=0111.1100В младшего байта счетчика Сч0. В адресе А7=0 (выбор ИМС ПИТ), А1А0=00 (адрес Сч0 в ПИТ)

MVI A, 10

Загрузка в аккумулятор старшего байта счетчика

OUT 7C

Вывод по адресу 7СН=0111.1100В старшего байта счетчика Сч0

Рис.1.59. Программа инициализации ПИТ и настройки на выдержку времени 20 с

По окончании счета установится сигнал OUT0=1. Счет после этого может продолжаться сколь угодно долго, однако состояние сигнала OUT0=1 не изменится. Для сброса сигнала OUT0 в 0 необходимо снова провести инициализацию.

Содержимое любого счетчика может быть считано программно двумя способами: чтение с остановкой счетчика и чтение "на лету" – без остановки счета.

Для чтения с остановкой необходимо предварительно сигналом GATE0=0 остановить счет, а затем выполнить программу, приведенную на рис.1.60. Нужно обязательно подряд выполнить две команды чтения IN в соответствии с проведенной инициализацией счетчика (рис.1.59). В результате выполнения программы младший байт окажется в регистре В, а старший байт – в аккумуляторе А МП. После считывания нужно снова запустить счетчик на продолжение счета сигналом GATE0=1.

Мнемокод

Комментарии

IN 7С

Переслать младший байт Сч0 в аккумулятор А МП

MOV B, A

Переслать содержимое аккумулятора А в регистр В МП

IN 7С

Переслать старший байт Сч0 в аккумулятор А МП

Рис.1.60. Программа чтения счетчика с остановкой

Для чтения "на лету" нужно выполнить программу, приведенную на рис.1.61.

Мнемокод

Комментарии

MVI A, 01

Загрузка в аккумулятор управляющего слова 01Н=0000.0001В, в котором D7D6=00 (выбран Сч0), D5D4=00 (чтение счетчика "на лету"), D3D2D1=000 (режим 0), D0=1 (счет десятичный)

OUT 7F

Вывод по адресу 7FН=0111.1111В управляющего слова в регистр РР ПИТ. В адресе А7=0 (выбор ИМС ПИТ), А1А0=11 (адрес РР в ПИТ)

IN 7С

Переслать младший байт Сч0 в аккумулятор А МП

MOV B, A

Переслать содержимое аккумулятора А в регистр В МП

IN 7С

Переслать старший байт Сч0 в аккумулятор А МП

Рис.1.61. Программа чтения счетчика "на лету"

На рис.1.58 приведена МПСУ некоторой насосной установкой, электродвигатель которой включается/выключается контактором К. Ручное управление осуществляется кнопками П и С. В схему введен контакт реле давления РД. Если давление на выходе насоса в норме, то контакт РД разомкнут. При пониженном давлении контакт РД замыкается и если малое давление удерживается, например, в течение 20 с, то насос отключается. Кнопка С и выход сигнала OUT0 с ПИТ заведены на ПКП, причем приоритет кнопки С выше, что отражено в подключении ее к входу IR4 ПКП, а ПИТ подключен к IR7.

Алгоритм МПСУ насосной установкой с контролем давления приведен на рис.1.62, а программа – на рис.1.63.

Блоки 1, 2 и 3 выполняются в начале программы. Подпрограмма загрузки счетчика Сч0 на выдержку 20 с расположена по адресу 03F0.

Блоки 4…9 – основная программа МПСУ насосом.

Блок 5: Включается К, если кнопка П нажата. Сохраняется в ОЗУ по адресу 0С00Н копия сигналов, выведенных через порт РС ППИ.

Блок 6: Проверка, включен ли контактор К ? Если включен, то далее проверить давление, иначе идти на конец программы "Кон. К".

Блок 7: Проверка давления Р насоса, если он включен.

Блок 8: Стоп и перезагрузка счетчика на выдержку 20 секунд без его старта, если есть давление.

Блок 9: Старт счетчика на выдержку времени 20 секунд.

Блок 10: Подпрограмма реакции на нажатие кнопки С.

Блок 11: Подпрограмма реакции на отсутствие давления в течение 20 с.

Адреса подпрограмм блоков 10 и 11 определены при условии, что первый стартовый адрес подпрограмм обслуживания прерываний принят равным 0780Н.

Начальный адрес основной программы управления насосом принят равным 0300Н.

Адрес

Код команды

Метка

Мнемокод

Комментарии

0000

3E

90

М1

MVI A, 90

Инициализация ППИ: порт РА на ввод; порты В и С на вывод

0002

D3

DF

OUT DF

0004

3E

92

М2

MVI A, 92

Инициализация ПКП (см. рис.1.50)

0006

D3

BE

OUT BE

0008

3E

07

MVI A, 07

000А

D3

BF

OUT BF

000С

31

00

10

М3

LXI SP, 1000

Загрузка вершины стека

000F

CD

F0

03

CALL 20c

Загрузка Сч0 на выдержку 20 с

0012

FB

EI

Разрешение прерываний

Начало блока основных программ пользователя

:

:

:

:

Нач.К

0300

DB

DC

М4

IN DC

Чтение порта РА

0302

E6

08

ANI 08

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

0304

C2

11

03

JNZ M6

К не включать, если П не нажата

0307

3A

00

0C

M5

LDA 0C00

А←КопРС (копия порта РС ППИ)

030A

F6

01

ORI 01

Установка бита включения контактора

030C

32

00

0C

STA 0C00

Сохранить КопРС по адресу 0С00 ОЗУ

030F

D3

DE

OUT DE

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

0311

3A

00

0C

M6

LDA 0C00

А←КопРС

0314

E6

01

ANI 01

Выделение бита состояния контактора

0316

СA

3A

03

JZ Кон.К

На конец программы, если К выключен

0319

DB

DC

М7

IN DC

Чтение порта РА

031B

E6

10

ANI 10

Выделение бита реле давления РД

031D

CA

30

03

JZ M9

На М9, если нет давления

0320

3A

00

0C

M8

LDA 0C00

А←КопРС (копия порта РС ППИ)

0323

E6

ВF

ANI ВF

Подготовка байта для остановки Сч0

0325

32

00

0C

STA 0C00

Сохранить КопРС по адресу 0С00 ОЗУ

0328

D3

DE

OUT DE

Остановить счетчик Cч0

032A

СD

F0

03

CALL 20c

Вызов программы инициализации ПИТ

032D

C3

3A

03

JMP Кон.К

На конец программы

0330

3A

00

0C

M9

LDA 0C00

А←КопРС (копия порта РС ППИ)

0333

F6

40

ORI 40

Подготовка байта для старта Сч0

0335

32

00

0C

STA 0C00

Сохранить КопРС по адресу 0С00 ОЗУ

0338

D3

DE

OUT DE

Стартовать счетчик Cч0

033A

Кон.К

1-я команда программы управления другим объектом

:

:

:

:

03F0

F5

20 c

PUSH PSW

Сохранить в стеке PSW (см. рис.1.15)

03F1

3E

31

MVI A, 31

Инициализация ПИТ (см. рис.1.59)

03F3

D3

7F

OUT 7F

03F5

3E

00

MVI A, 00

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

Адрес

Код команды

Метка

Мнемокод

Комментарии

03F7

D3

7C

OUT 7C

03F9

3E

10

MVI A, 10

03FB

D3

7C

OUT 7C

03FD

F1

POP PSW

Извлечь из стека PSW

03FE

C9

RET

Выйти из подпрограммы

Конец блока основных программ пользователя

07A0

F5

M10

PUSH PSW

Сохранить в стеке PSW

07A1

3A

00

0C

LDA 0C00

А←КопРС (копия порта РС ППИ)

07A4

E6

ВЕ

ANI ВЕ

Выключить К и остановить Сч0

07A6

D3

DE

OUT DE

07A8

32

00

0C

STA 0C00

Сохранить КопРС по адресу 0С00 ОЗУ

07AB

3E

20

MVI A, 20

Вывод в ПКП слова конца прерывания (см. рис.1.51)

07AD

D3

BE

OUT BE

07AF

F1

POP PSW

Извлечь из стека PSW

07B0

FB

EI

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

07B1

C9

RET

Выйти из подпрограммы

07B2

00

00

NOP

6 холостых операций

07B8

FB

M11

EI

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

07B9

C3

A0

07

JMP M10

Идти на метку М10

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

В программе используется копия порта РС, по которой проверяется (блок 6), подано ли питание на контактор К, который подключен к биту РС0 порта РС ППИ, и работает ли насос ? Непосредственная проверка битов РС0 и РС6 в порту РС невозможна.