Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OMT&МП2.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
2.35 Mб
Скачать

Организация циклов

С помощью циклов обычно производят обработку массивов ин­формации, многобайтовых чисел и т.д. Возможны две основные схемы организации циклов: с проверкой окончания в начале цикла (рис.3.1) и в конце цикла (рис.3.2).

Р ис.3.1 Цикл с проверкой окончания в начале тела

Рис.3.2 Цикл: с проверкой окончания в конце тела

Перед началом цикла в счетчик заносится число повторений цикла, а после каждого прохождения цикла из счетчика вычитается 1 (команды DCR или DCХ). Затем командой условного перехода проверяется равно ли.нулю новое значение счетчика. Если не равно нулю - повторение цикла, иначе останов.

Одной из самых простых циклических программ является программа организации временной задержки. Эта программа "ничего не делает", но выполняется заданное время.

В систему команд МП входит команда NOP , которая «ничего не делает», но выполняется за 4 такта. При тактовой частоте 2 МГц команда выполняется за 2 мкс.

Рассмотрим подпрограмму, которая обеспечивает временную задержку за 150 мкс (программа 3.2). Программа построена по схеме рис.2 и в теле цикла содержит одну команду NОР. Время выполнения программы определяется числом, загруженным в регистр А. Это число OF.

Программа 3.2

DEL 1

M1

MVI

NOP

DCR

JNZ

PLT

A , OF

A

M1

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

Регистр А

Тело цикла

А = А – 1

Переход на M1, если

в счетчике не нуль

Останов

Подсчитаем время выполнения программы 3.2.

Команда MVI А, ОF выполняется за 7 тактов. Затем NOP -4 такта, DCR А - 5 тактов, JNZ MI - 10 тактов. Эти три команды выполняются 15 (0F) раз, т.е. (4+5+10) 15 = 285 тактов. Команда HLT - 7 тактов. Итого 299 тактов, что при частоте 2 МГц составляет 150 мкс.

Максимально возможная задержка, осуществляемая программой 2,составит 2429,5 мкс.

Если нужно получить задержку большей длительности, то используют вложенные циклы либо увеличивают тело цикла.

Порядок построения программ рассмотрим на примере подпрограммы временной задержки на 200 мс (программой 3.3). Она состоит из двух циклов. Счетчик внутреннего вложенного цикла - в регистре Е. Тело цикла не содержит ни одной команды. Первоначально в Е занесено число 00, но первая же команда DCR E изменяет состояние регистра на FF . Программа выполняется за 200 мс и состоит из двух циклов по Е и D) .

Программа 3.3

DEL 2

М2

MVI

MVI

DCR

JNZ

DCR

JN 2

HLT

D , 68

Е , 00

Е

М2

D

М2

Счетчик циклов в регистре D

Счетчик циклов в регистре Е

Е = Е – 1

Переход к М2, если Е ≠ 0

D =D –1

Переход на М2, если D ≠ 0

Останов

При программировании технологических режимов широкое применение находит следующая программа.

Программа 3.4

DЕLЗ

Ml

LXI

DCX

MOV

ОRА

JNZ

HLT

D , data

D

A , D

Е

Ml

Загрузка пары временем задержки

от 0000 до FFPF

(DE)=(DE) – 1

(D) ← (A)

Логическое сравнение старших и младших разрядов регистровой пары.

При Z=1, когда (D) = (Е)= 00,

Выход из цикла

Останов

Время на выполнение программы 4 определяется числом тактов.

Число тактов: ΣT = 10+C∙ (5+5+4+10) +7 = 17 + С∙24, где C=data.

При частоте f = 2 МГц и data= 0001 имеем минимальную для данной программы задержку времени tзад = ΣT/f = 0,00002 с.

При data= FFFF, ΣT = 17 + 65535∙24 = 1572857, tзад = 0,7864285с.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]