
- •Микропроцессорные устройства
- •Содержание
- •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.4. Основная программа
В соответствии с алгоритмом рис.3 основная программа должна содержать команды настройки интерфейса ввода-вывода, инициализации стека, программы чтения порта РА интерфейса, команд опроса кнопок управления, команд обращения к подпрограмме управления электродвигателем лифта и программы задержки, Программа. размещается в ПЗУ, начальный адрес которого в памяти МП - системы 0С00, потому первой команде программы, помещенной в ячейку 000 ПЗУ, соответствует адрес 0С00 адресного пространства микропроцессора.
Адрес |
Код команды |
Метка |
Мнемокод |
Комментарии |
Инициализация |
||||
0С00 |
3E 90 |
М1 |
MVI A, 90 |
Послать в РУС ППИ код 90 настройки |
0С02 |
D3 AF |
|
OUT AF |
портов: порт РА - ввод, порт РВ - вывод |
0С04 |
31 00 0В |
|
LXI SP, 0B00 |
Занести в регистр-указатель стека адрес вершины стека - 0В00 |
Чтение порта А |
||||
0С07 |
0E FF |
М2 |
MVI C, FF |
Комментарии см. в п.6.5.1 |
0С09 |
DB AC |
|
IN АС |
|
0С0В |
47 |
|
MOV B,A |
|
0С0С |
DB AC |
|
IN АС |
|
0С0Е |
A8 |
|
XRA B |
|
0C0F |
C2 07 0С |
|
JNZ |
|
0C0F |
0D |
|
DCR C |
|
0С13 |
C2 0С 0С |
|
JNZ 0С0С |
|
Проверка состояния кнопки пуска "Вверх" |
||||
0С16 |
00 |
|
NOP |
Пустая команда |
0С17 |
78 |
|
MOV А,В |
Занести в регистр А содержимое порта РА |
0С18 |
Е6 01 |
|
ANI 01 |
Кнопка "вверх" нажата? |
0С1А |
С2 2В 0С |
|
JNZ 0С2В |
Если нет, идти к 0С2В – проверке кнопки пуска "Вниз" |
Подготовка регистров C, E, H, L перед обращением к подпрограмме управления электродвигателем "Вверх" |
||||
0C1D |
0Е 04 |
|
MVI C, 04 |
Маска проверки концевика "Лифт вверху" |
0C1F |
1Е 08 |
|
MVI E, 08 |
Маска включения лампы "Лифт вверху" |
0С21 |
26 20 |
|
MVI H, 20 |
Маска включения лампы "Стоп" |
0С23 |
2Е 02 |
|
MVI L, 02 |
Маска включения электродвигателя "Вверх" |
0С25 |
CD 50 0С |
|
CALL 0C50 |
Идти к подпрограмме управления электродвигателем |
0С28 |
СЗ ЗС 0С |
|
JMP 0C3C |
Идти к программе задержки 0,5 с после завершения движения лифта "Вверх" |
Проверка состояния кнопки пуска "Вниз" |
||||
0С2В |
78 |
М3 |
MOV A,B |
Переслать в регистр А содержимое порта РА |
0С2С |
Е6 02 |
|
ANI 02 |
Кнопка "вниз" нажата? |
0С2Е |
С2 ЗС 0С |
|
JNZ 0C3C |
Если нет, идти к программе задержки 0,5 с |
Подготовка регистров C, E, H, L перед обращением к подпрограмме управления электродвигателем "Вниз" |
||||
0С31 |
0Е 08 |
|
MVI C, 08 |
Маска проверки концевика "Лифт внизу" |
0СЗЗ |
1E 10 |
|
MVI E, 10 |
Маска включения лампы "Лифт внизу" |
0С35 |
26 20 |
|
MVI H, 20 |
Маска включения лампы "Стоп" |
0С37 |
2E 04 |
|
MVI L, 04 |
Маска включения электродвигателя "Вниз" |
0С39 |
CD 50 0С |
|
CALL 0C50 |
Идти к подпрограмме управления электродвигателем |
Программа задержка на 0,5 секунды |
||||
0С3С |
2А 73 0С |
М4 |
LHLD 0C73 |
Комментарии см. в п.6.5.2 |
0C3F |
2В |
|
DCX H |
|
0С40 |
7С |
|
MOV A,H |
|
0С41 |
85 |
|
ADD L |
|
0С42 |
С2 3F 0С |
|
JNZ 0C3F |
|
0С45 |
C3 07 0C |
|
JMP 0C07 |
|
Подпрограмма управления электродвигателем лифта "Вверх" или "Вниз" |
||||
0С50 |
F5 |
М5, М10 |
PUSH PSW |
Комментарии см. в п.6.5.3 |
0С51 |
D5 |
|
PUSH D |
|
0С52 |
16 10 |
|
MVI D, 10 |
|
0С54 |
78 |
|
MOV A,B |
|
0С55 |
А1 |
|
ANA С |
|
0С56 |
С2 5F 0С |
|
JNZ 0C5F |
|
0С59 |
7В |
М6, М11 |
MOV А,Е |
|
0С5А |
D3 AD |
|
OUT AD |
|
0С5С |
СЗ 70 0С |
|
JMP 0C70 |
|
0C5F |
78 |
|
MOV A,B |
|
0С60 |
А2 |
М7, М12 |
ANA D |
|
0С61 |
С2 6А 0С |
|
JNZ 0C6A |
|
0С64 |
7С |
М8, М13 |
MOV A,H |
|
0С65 |
D3 AD |
|
OUT AD |
|
0С67 |
СЗ 70 0С |
|
JMP 0С70 |
|
0С6А |
7D |
М9, М14 |
MOV A,L |
|
0С6В |
D3 AD |
|
OUT AD |
|
0C6D |
СЗ 54 0С |
|
JMP 0С54 |
|
0С70 |
D1 |
|
POP D |
|
0С71 |
F1 |
|
POP PSW |
|
0С72 |
С9 |
|
RET |
|
0С73 |
C3 |
|
|
Константа младшего байт счетчика, используемая в программе задержки 0,5 с |
0С74 |
А2 |
|
|
Константа старшего байта счетчика, используемая в программе задержки 0,5 с |