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

Вопросы и задания

1. Поясните структурную схему таймер/счетчика в режимах 0 и 1.

2. Поясните содержимое и назначение регистров специальных функций, используемых для инициализации таймер/счетчиков.

3. Составьте расчет значения кода, загружаемого в заданный таймер/счетчик для создания заданной выдержки времени в режиме 0.

4. Составьте расчет значения кода, загружаемого в заданный таймер/счетчик для создания заданной выдержки времени в режиме 1.

5. Составьте программу инициализации заданного таймер/счетчика на заданную выдержку времени в режиме 0.

6. Составьте программу инициализации заданного таймер/счетчика на заданную выдержку времени в режиме 1.

7. Поясните структурную схему таймер/счетчика в режиме 2.

2.6. Система прерываний мк51. Использование прерываний в программах

В МК51 реализована пятиуровневая система прерываний (рис.2.29).

Д ва аппаратных прерывания вызываются сигналами и . Варианты этих прерываний программируются битами TCON.0 (мнемоническое обозначение IT0) и TCON.2 (IT1). При IT=0 флаг запроса прерывания IE устанавливается в 1 по нулевому уровню сигнала . По флагу IE=1 вызывается подпрограмма обслуживания прерываний, если прерывание от данного входа разрешено. Сброс флага производится только программно при выполнении команды CLR bit. При IT=1 флаг запроса прерывания IE устанавливается в 1 по срезу сигнала . По флагу IE=1 вызывается подпрограмма обслуживания прерываний, если прерывание от данного входа разрешено, и сброс флага производится автоматически в момент старта подпрограммы обслуживания прерывания. Стартовый адрес подпрограммы обслуживания прерывания, поступившего по входу , равен 0003Н, а по входу - 0013Н.

Два программных прерывания от флагов TF0 и TF1 переполнения таймер/счетчиков Т/С0 и Т/С1 запускают подпрограммы обслуживания прерываний по стартовым адресам, соответственно, 000ВН и 001ВН. Эти программные прерывания могут быть превращены в аппаратные прерывания по срезу входных сигналов Т0 и Т1 таймер/счетчиков, если их установить в режимы 0 или 1 счета внешних импульсов, предварительно загрузив в них, соответственно, 1FFF и FFFF. Тогда приход единственного внешнего 0-импульса вызовет переполнение счетчика и вызов подпрограммы прерывания, после чего автоматически сбросится флаг переполнения TF0 и TF1.

Одно программное прерывание вызывается сигналами TI и RI приемопередатчика последовательного порта. Стартовый адрес подпрограммы обслуживания прерывания 0023Н.

Разрешение и запрет прерываний осуществляется с помощью регистра масок прерываний IE (рис.2.24).

Все запросы прерывания упорядочены по приоритетам. Заявка высшего приоритета приостанавливает выполнение заявки низшего приоритета. По умолчанию высший приоритет имеет запрос , а низший приоритет имеет запрос от последовательного порта (рис.2.29). Приоритетность запросов прерываний можно назначить с помощью регистра IP (рис.2.30).

По умолчанию в регистр IP записываются нули. Если, например, нужно назначить запросам T/C0 и приоритет выше, чем у запроса , то нужно установить в 1 биты РТ0 и РХ1 регистра IP. Тогда все запросы прерывания разбиваются на два блока. В 1-м блоке содержатся запросы T/C0 и , причем T/C0 имеет приоритет перед . 2-й блок составляют заявки , Т/С1 и от последовательного порта, причем имеет приоритет перед запросом от Т/С1, а приоритет последовательного порта еще ниже. Между собой блок 1 имеет приоритет перед блоком 2.

Бит

Обозначение

Назначение

7-5

Не используются

4

PS

1/0 - УАПП имеет высший / низший приоритет

3

РТ1

1/0 - T/C1 имеет высший / низший приоритет

2

РХ1

1/0 - имеет высший / низший приоритет

1

РТ0

1/0 - T/C0 имеет высший / низший приоритет

0

РХ0

1/0 - имеет высший / низший приоритет

Рис.2.30. IP – регистр назначения приоритетов прерываний

Применение таймер/счетчиков и системы прерываний рассмотрим на примере автоматизации некоторой насосной установки, релейная схема которой приведена на рис.1.58. Электродвигатель насоса включается/выключается контактором К. Ручное управление осуществляется кнопками П и С. Давление на выходе насоса контролирует реле давления РД. При нормальном давлении контакт РД разомкнут, а при пониженном - контакт РД замкнут. Если пониженное давление удерживается, например, в течение 20 с, то насос должен быть отключен. Принципиальная электрическая схема и алгоритм МКСУ насосной установки с контролем давления приведены на рис.2.31.

В начале программы (блок 1) настраивается Т/С0 режим 1 счетчика, разрешаются прерывания от , Т/С0 и , причем от и по срезу.

Основная программа состоит из двух блоков:

Блок 2: Контролируется состояние кнопки П "Пуск". Если П не нажата, то на "Выход", иначе на блок 3.

Б лок 3: Включается контактор К путем засылки 0 в Р3.0.

В алгоритме задействовано три запроса прерывания - от , Т/С0 и .

Сигнал запроса прерывания поступает от кнопки С "Стоп". Подпрограмма обслуживания запроса состоит из двух блоков:

Блок 9: Выключается контактор К путем засылки 1 в Р3.0.

Блок 10: Выполняется команда RETI выхода из подпрограммы обслуживания прерывания. Эта команда снимает запрет на обслуживание повторного запроса прерывания от только что обслуженной заявки и всех запросов низших приоритетов и передает управление отложенной команде. Команда RET только передает управление отложенной команде, но не снимает блокировку на обслуживание запросов прерываний равного и меньших приоритетов. Команда RETI эквивалентна двум последовательно выполняемым в МПСУ командам - EI и RET.

Сигнал запроса прерывания =0 поступает от контакта реле давления РД с момента включения контактора К, когда установится Р3.0=0. Контакт РД размыкается при нормальном давлении, которое должно быть выше некоторой уставки давления, что показано значком (Р>). При пуске давление, естественно, меньше нормального и вводится выдержка времени 20 секунд на набор давления. Но и при работе насоса давление может понизиться, что является признаком неисправности насосной установки, и если давление не восстановится через 20 секунд, то насос нужно отключить. Подпрограмма обслуживания запроса состоит из трех блоков:

Блок 4: Проверяется работа Т/С0 на создание выдержки времени. Если Т/С0 уже стартовал, то повторно запускать его на счет не надо, иначе это было бы продлением выдержки времени сверх 20 секунд.

Блок 5: Загружается таймер/счетчик Т/С0 в режиме 1 счета внешних импульсов на выдержку 20 с, как это сделано на рис.2.27. Затем счетчик стартует по команде TR01.

Блок 6: Выход из подпрограммы прерывания.

По истечении 20 секунд от момента старта Т/С0 выставляется флаг TF0 и запускается подпрограмма, состоящая из 4-х блоков:

Блок 7: Останавливается Т/С0 и сбрасывается флаг переполнения (TF00).

Блок 8: Проверяется состояние контакта реле давления РД. Если контакт РД разомкнут (Р3.3=1), что свидетельствует о наборе нормального давления через 20 секунд от момента начала его контроля, то осуществляется переход на блок 10, в котором завершается выполнение подпрограммы выдержки времени без выключения насоса. Если контакт РД замкнут (Р3.3=0), что свидетельствует об аварийной ситуации в насосной установке, то выполняется блок 9 выключения насоса.

Программа МКСУ насосной установкой с контролем давления приведена на рис.2.32. Блок М2 размещен по адресу 0100Н.

Адрес

Код

Метка

Мнемокод

Комментарии

0000

80

04

М1

SJMP ИH1

Обход стартовых адресов подпрограмм обслуживания прерываний

0002

00

NOP

0003

D2

B0

M9

SETB P3.0

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

0005

32

M10

RETI

Выход из подпрограмм и TF0

0006

75

89

05

ИH1

MOV TMOD, #05

См. рис.2.27

0009

80

14

SJMP ИH2

На продолжение инициализации

000B

53

88

CF

M7

ANL TCON, #CF

Сбросить TR0 и TF0

000E

20

B3

F4

M8

JB P3.3, M10

Проверка давления. Если давление есть, то на М10; rel=F4=105-11

0011

80

F0

SJMP M9

Идти на подпрограмму

0013

20

8C

08

M4

JB TR0, M6

Идти на М6, если выдержка времени 20 с отсчитывается ; rel=08=1E-16

0016

75

8C

FC

M5

MOV TH0, #FC

Загрузка Т/С0 на выдержку времени 20 секунд

0019

75

8A

18

MOV TL0, #18

001C

D2

8C

SETB TR0

Старт Т/С0

001E

32

M6

RETI

Выход из подпрограммы

001F

75

A8

87

ИН2

MOV IE, #87

Продолжение инициализации

0022

75

88

05

MOV TCON, #05

Установить прерывания от запросов и по срезу

0025

Прог.

Начало основных программ

:

:

:

0100

20

B1

02

M2

JB P3.1, Выход

Проверка нажатия кнопки П; rel=02

0103

C2

B0

M3

CLR P3.0

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

0105

Выход

Выход из программы включения К

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

Преимущества МКСУ перед МПСУ видны из табл.2.1.

Таблица 2.1

Вид системы управления насосом

Количество корпусов больших интегральных микросхем

Объем программы*

ячеек ПЗУ

команд

МПСУ (рис.1.58 + рис.1.27а + рис.1.27г)

10

128

63

МКСУ (рис.2.31)

1

41

17

* Подсчеты по программам, приведенным на рис.1.63 и рис.2.32.

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