Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
М П У КП (текст подряд).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.51 Mб
Скачать

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

DCX H

0С40

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

М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

М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 с