- •Раздел 1. Микропроцессорные системы управления.
- •Раздел 2. Микроконтроллерные системы управления.
- •Раздел 3. Вопросы эксплуатации микропроцессорных устройств.
- •1. Микропроцессорные системы управления
- •1.1. Принципы построения и основы работы
- •Вопросы и задания
- •1.2. Элементная база мпсу
- •Вопросы и задания
- •1.3. Оперативные запоминающие устройства.
- •Вопросы и задания
- •1.4. Постоянные запоминающие устройства.
- •Вопросы и задания
- •1.5. Архитектура микропроцессора типа кр580вм80
- •Вопросы и задания
- •1.6. Типы машинных циклов и слово состояния
- •Вопросы и задания
- •1.7. Командные циклы чтения/записи
- •Вопросы и задания
- •1.8. Командный цикл подтверждения прерывания.
- •1.9. Принципиальные электрические схемы
- •Вопросы и задания
- •1.10. Интерфейс мпсу с изолированной системой шин
- •Вопросы и задания
- •1.11. Интерфейс мпсу с общей системой шин
- •1.12. Организация обслуживания запросов прерывания
- •Вопросы и задания
- •1.13. Программируемый контроллер
- •Вопросы и задания
- •1.14. Программируемый контроллер прерываний
- •Вопросы и задания
- •1.15. Программируемый интервальный таймер
- •Вопросы и задания
- •1.16. Мпсу с вводом-выводом аналоговой информации
- •Вопросы и задания
- •1.17. Выходные каскады мпсу
- •Вопросы и задания
- •2. Микроконтроллерные системы управления
- •2.1. Архитектура микроконтроллера к1816ве51
- •Вопросы и задания
- •2.2. Принципиальная электрическая схема порта
- •2.3. Схемы подключения внешней памяти к мк51
- •Вопросы и задания
- •2.4. Интерфейс мк51 с большим числом
- •Вопросы и задания
- •2.5. Таймер/счетчики мк51.
- •Вопросы и задания
- •2.6. Система прерываний мк51. Использование прерываний в программах
- •Вопросы и задания
- •2.7. Основы организации
- •Допустимые различия скорости приемо-передачи
- •2.8. Организация мультиконтроллерных систем
- •Программы инициализации станции и абонентов
- •Программы станции и абонента в сеансе "станция→абонент"
- •2.9. Микроконтроллерная система управления
- •3. Вопросы эксплуатации микропроцессорных устройств
- •3.1. Отладка аппаратных средств мпсу
- •Вопросы и задания
- •3.2. Отладка программного обеспечения мпсу
- •Вопросы и задания
- •3.3. Методы обеспечения помехоустойчивости мпсу
- •Вопросы и задания
- •1. Группа команд пересылок
- •2. Группа команд инкремента-декремента
- •3. Группа арифметических команд
- •4. Группа логических команд
- •5. Группа команд сдвига
- •6. Группа команд передачи управления
- •7. Группа команд работы со стеком
- •8. Группа команд ввода-вывода и управления микропроцессором
- •1. Группа команд пересылок
- •2. Группа команд арифметических операций
- •3. Группа команд логических операций
- •4. Группа команд операций с битами
- •5. Группа команд передачи управления
- •Дворак Николай Маркович микропроцессорные устройства
- •В высших учебных заведениях 3-4 уровней
- •98309, Г. Керчь, ул. Орджоникидзе, 82
- •98309, Г. Керчь, ул. Орджоникидзе, 82
Вопросы и задания
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. Затем счетчик стартует по команде TR01.
Блок 6: Выход из подпрограммы прерывания.
По истечении 20 секунд от момента старта Т/С0 выставляется флаг TF0 и запускается подпрограмма, состоящая из 4-х блоков:
Блок 7: Останавливается Т/С0 и сбрасывается флаг переполнения (TF00).
Блок 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.