
- •Микропроцессорные устройства
- •Содержание
- •1. Общие методические указания по организации курсового проектирования
- •2. Перечень рекомендуемой литературы
- •3. Содержание курсового проекта
- •4. Исходные данные к курсовому проектированию
- •5. Указания по выполнению разделов проекта
- •6. Пример разработки мпсу грузовым лифтом
- •6.2 Разработка алгоритма функционирования устройства управления
- •6.3 Выбор структурной схемы микропроцессорной системы управления
- •6.3 1 Разработка дешифраторов адреса памяти и увв.
- •Состояние разрядов шины адреса
- •6.4. Разработка принципиальной электрической схемы мпсу
- •6.5. Разработка программы, заносимой в пзу мпсу
- •6.5.2. Блок задержки
- •6.5.3. Подпрограмма управления электродвигателем лифта
- •6.5.4. Основная программа
- •6.6. Прошивка пзу
- •7. Контроллеры систем
- •Тираж ____экз. Подписано к печати ________
6.5.2. Блок задержки
Задержка длительностью 0,5 секунды вводится для того, чтобы после отключения электродвигателя его повторное включение на его реверс происходило лишь после погасания дуги на контактах отключенного контактора. Задержку целесообразно реализовать на базе программируемого интервального таймера КР580ВИ53. Здесь рассмотрен
вариант программной реализации выдержки времени длительностью 0,5 с.
В цикле программе задержки, выполняемой М раз (метка М4 основной программы), используются команды DCX H, MOV A,H, ADD L и JNZ. Число М, заносимое в две последовательные ячейки памяти, начиная с адреса BASE (в программе BASE=0C73), которое загружаемся в регистровую пару HL, можно определить по формуле
М = Тзад · fт / N
Длина команд (в тактах): DCX Н – 5; MOV A,H – 5, ADD L – 4; JNZ – 10. Всего N=5+5+4+10=24 тактов.
Для реализации заданной задержки Тзад=0,5 с при тактовой частоте микропроцессора fт = 2 МГц, получим
М=0,5·2·106/24=4166710=А2С3Н
Таким образом, в ячейку памяти BASЕ при программировании ПЗУ надо записать число С3Н, в ячейку BASE+1 - число А2Н.
6.5.3. Подпрограмма управления электродвигателем лифта
Можно увидеть, что в алгоритме программы рис.3 есть две группы аналогичных блоков: 4…9 для движения "Вверх" и 10…14 для движения "Вниз", отличающихся только разрядами битов, условий и битами управляющих сигналов. Эти группы блоков оформляем в виде одной подпрограммы. Для настройки ее на выполнение движений "Вверх" и "Вниз" используем внутренние регистры МП.
В регистре В хранится содержимое порта РА: информация о состоянии кнопок и конечных выключателей системы. В регистре С содержится код 04Н=0000.0100 или 08Н=0000.1000 маски для проверки конечных выключателей, соответственно, S4 или S5. В регистре Е содержится код 08Н=0000.1000 или 10Н=0001.0000 маски для зажигания ламп, соответственно, Н1 или Н2. В регистре Н содержится код 20Н=0010.0000 маски для зажигания лампы Н5 "Стоп". В регистре L содержится код 02Н=0000.0010 или 04Н=0000.0100 маски для включения электродвигателя для движения лифта , соответственно, "Вверх" или "Вниз".
Адрес |
Код команды |
Метка |
Мнемокод |
Комментарии |
|
|
|
PUSH PSW |
Запомнить в стеке содержимое регистров |
|
|
|
PUSH D |
PSW и DЕ |
|
|
|
MVI D, 10 |
Занести в регистр D константу 10 маски для проверки состояния кнопки "Стоп" |
|
|
ADR5 |
MOV A,B |
Переслать в регистр А содержимое порта РА |
|
|
|
ANA С |
Конечный выключатель "Лифт вверху" ("Лифт внизу") сработал? |
|
|
|
JNZ ADR6 |
Если нет, проверить состояние кнопки "Стоп" |
|
|
|
MOV А,Е |
Если да, зажечь, подключенную к порту РВ |
|
|
|
OUT AD |
лампу "Лифт вверху (внизу)", электродвигатель не включать и выйти на подпрограмму |
|
|
|
JMP ADR7 |
задержки 0,5 с |
|
|
ADR6 |
MOV A,B |
Переслать в регистр А содержимое порта РА |
|
|
|
ANA D |
Кнопка "Стоп" нажата? |
|
|
|
JNZ ADR7 |
Если нет, идти к ADR7 |
|
|
|
MOV А,Н |
Если да, зажечь подключенную к порту РВ |
|
|
|
OUT AD |
лампу "Стоп", и электродвигатель не |
|
|
|
JMP ADR8 |
включать |
|
|
ADR7 |
MOV A,L |
Включить электродвигатель "Вверх (Вниз)" и |
|
|
|
OUT AD |
зажечь лампу "Движение вверх (вниз)" |
|
|
|
JMP ADR5 |
Идти в начало подпрограммы управления двигателем |
|
|
ADR8 |
POP D |
Извлечь из стека содержимое регистра DЕ |
|
|
|
POP PSW |
Извлечь из стека содержимое регистра PSW |
|
|
|
RET |
Возврат в основную программу |