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

3.1.6 Вывод управляющего слова на группу автономных устройств.

Управляющие слова формируются по командам логических операций.

Команда ANI используется для сброса тех бит, которые в маске заняты нулем. Команда ORI используется для установки бит, а XRI инвертирует отдельные биты (в соответствии с выражением 1ЕX=X), а так же для обнуления выходного порта (XЕX=0).

Рассмотрим несколько примеров формирования управляющего слова для случая, когда выходной порт работает на 8 светодиодных индикаторах. Будем считать, что копия управляющего слова содержится в аккумуляторе.

Командой CALL DELAY осуществляется вызов подпрограммы временной задержки необходимой длительности.

Пример 1.

Зажечь все сегменты индикатора, затем погасить сегменты LO, L5, L7, не изменяя состояния остальных сегментов.

После запуска программа (табл.12) высветит все сегменты первого индикатора и после небольшой паузы погасит требуемые сегменты. Состояние остальных сегментов не изменится (будут продолжать светиться).

Таблица 12

Адрес

Код

Метка

Мнемокод

Комментарий

0825

2E FF

MVI L, FFH

код засветки поместить

в регистр L

(11111111В - FFН)

0827

CD A9 08

CALL L&P

высветить его на

индикаторе

082A

7D

MOV A, L

код предыдущей засветки поместить в аккумулятор

082B

E6 5E

ANI 5EH

установка в 0 DO, D5,

D7 (01011110B - 5EH)

082D

6F

MOV L, A

результат сохранить

082E

CD A9 08

CALL L&P

и высветить его на

индикаторе

0831

FF

RST

вернуться в "монитор"

Пример 2.

Включить сегменты L2, L3, L4, не изменяя состояния остальных сегментов. После запуска программа (табл.13) высветит отдельные сегменты первого индикатора и после небольшой паузы зажжет требуемые сегменты. Состояние остальных сегментов не изменится (будут продолжать светиться).

Таблица 13

Адрес

Код

Метка

Мнемокод

Комментарий

0835

2E 49

MVI L, 49H

код засветки поместить

в регистр L

(01001001В - 49Н)

0837

CD A9 08

CALL L&P

высветить его на

индикаторе

083A

7D

MOV A, L

код предыдущей засветки поместить в аккумулятор

083B

F6 06

ORI 06H

установка в 1 D1, D2,

(00000110B - 06H)

083D

6F

MOV L, A

результат сохранить

083E

CD A9 08

CALL L&P

и высветить его на

индикаторе

0841

FF

RST

вернуться в "монитор"

Пример 3.

Выдать на сегменты управляющее слово. Управляющий байт для сегментов L0 - L3 хранится в младшей тетраде регистра В, а для сегментов L4 - L7 - в старшей тетраде регистра С.

После запуска программа (табл.14) высветит отдельные сегменты первого индикатора в соответствии с содержимым регистров В (младший байт слова) и С (старший байт слова).

Таблица 14

Адрес

Код

Метка

Мнемокод

Комментарий

0844

06 09

MVI В, 09H

младший байт засветки поместить в регистр В

0846

0E В0

MVI С, Е0H

старший байт засветки поместить в регистр С

0848

3E 0F

MVI А, 0FH

маска (00001111)

084A

A0

ANA B

маскирование регистра В

084B

47

MOV B, A

сохранение в регистре В кода

084C

7D

MOV A, C

старший байт слова по-

местить в аккумулятор

084D

E6 F0

ANI F0H

маска (11110000)

084F

B0

ORA B

упаковка тетрады

0850

6F

MOV L, A

результат сохранить в L

0851

CD A9 08

CALL L&P

и высветить на

индикаторе

0854

FF

RST

вернуться в "монитор"

Пример 4.

Реализовать пульсирующую световую индикацию на сегментах L0, L1, L5, не изменяя состояния остальных сегментов.

После запуска программа (табл.15) высветит все сегменты первого индикатора. После небольшой паузы программа будет гасить и зажигать требуемые сегменты индикатора. Состояние остальных сегментов не изменится (будут продолжать светиться). Через заданное число повторов (количество повторов хранится в регистре В) индикация прекратится и программа завершит свою работу.

Таблица 15

Адрес

Код

Метка

Мнемокод

Комментарий

0860

06 30

MVI В, 30H

число циклов повтора

поместить в регистр В

0862

2E 7F

MVI L, 7FH

код засветки поместить

в регистр L

0864

CD 90 08

LOOP

CALL LIGHT

высветить его

на индикаторе

0867

0E 20

MVI C, 20H

поместить в регистр С

количество циклов

задержки

0869

CD A0 08

CALL PAUSE

вызов подпрограммы

задержки

086C

05

DCR В

декремент содержимого регистра В

086D

78

MOV A, B

содержимое регистра В

в аккумулятор

086E

CA 78 08

IZ END

если число повторов

равно «0», то закончить программу

0871

7D

MOV A, L

иначе

0872

EE 23

XRI 23H

инвертировать сегменты

L0, L1, L5

0874

6F

MOV L, A

результат инверсии

сохранить в регистре L

0875

C3 64 08

JMP LOOP

и высветить его на

индикаторе

0878

FF

END

RST

вернуться в "монитор"