
Микропроцессоры Токхайм / 9.2. ЦИКЛИЧЕСКИЕ ПРОГРАММЫ
.doc
9
.2.
ЦИКЛИЧЕСКИЕ ПРОГРАММЫ
Решения
Рассмотрим функциональную схему системы, построенной на МП Intel 8080/8085, представленной на рис. 9.5, а. Предположим, что двоичный 8-разрядный видеотерминал
будет вести прямой счет, начиная с 0000 00002. На рис. 9.5, б представлена подробная структурная схема, которая решает эту задачу.
Первая прямоугольная ячейка на рис. 9.5, б соответствует установке аккумулятора в ООН, вторая — передаче счета в порт вывода 02Н, третья — инкрементированию счета в аккумуляторе. Эта программа позволит вывести на видеотерминал результат счета с очень большой скоростью.
В действительности программа, приведенная в табл. 9.3, будет считать настолько быстро, что лампы видеотерминала будут казаться горящими постоянно. С целью замедления счета в программу обычно вводится задержка. На рис. 9.6, а представлена функциональная схема программы двоичного счета, содержащая временную задержку.
Более подробная структурная схема на рис. 9.6, б является развитием предшествующей функциональной схемы. Пять основных ячеек ее относятся к подпрограмме задержки, которая производится повторением цикла задержки 65 535 (FFFFH) раз.
Соответствующая программа на ассемблере приведена в табл. 9.4. Отметим, что каждая прямоугольная ячейка
на рис. 9.6, б эквивалентна одной команде на ассемблере. Цикл временной задержки имеет символический адрес или метку DELAY (см. табл. 9.4). Более долгий цикл счета имеет символический адрес COUNT. Программа выполнится в цикле 65 536 раз, проходя через цикл временной задержки каждый раз, когда она входит в цикл счета. В МП Intel 8080/8085 состав команд DCX Я; MOV A,L; ОРА Н и JNZ занимает 24 мкс. В цикле, повторенном 65 536 раз, общий интервал времени будет: 24x65 536 = 1 572 884 мкс, т.е. около 1,6 с. Будет объявлено первое число, затем после интервала в 1,6 с — второе и т. д.
Цель команд MOV A, L и ORA Н программы в табл. 9.4 не может быть неочевидной — эти две команды находятся здесь для установления индикатора Z, когда пара HL окончательно декрементирована до 0000Н.
К сожалению,
пре
9.7. Временной
задержки. 9.8. Команда JMP LOOP побудит МП
перейти к программе по символическому
адресу LOOP, в этом случае к
Подпрограммы временной задержки с программами микро-ЭВМ используются совместно. Они основаны на том, что каждая команда процессора требует для выполнения некоторое время. Существуют методы программирования, позволяющие выдавать более долгие интервалы, чем те, что мы только что изучили.
Отметим использование в программе на рис. 9.6, б двух циклов: один из них находится внутри другого. Этот способ программирования называется вложением циклов. Цикл задержки называется внутренним циклом.
Упражнения
Программы в табл. 9.3 и 9.4 идентичны, за исключением того, что последняя содержит подпрограмму _____.
См. табл. 9.3. Последней командой программы является JMP. Куда перейдет программа после этой команды?
См. табл. 9.4. Записать пять команд, формирующих подпрограмму временной задержки.
См. рис. 9.6, б. Цикл временной задержки, представленный на структурной схеме, называется программистами _______(бесконечным, вложенным).
См. табл. 9.4. Первый раз, когда МП встретит команду JNZ, индикатор ________ (сброшен в 0, установлен в
1). Выполнив ее, МП перейдет к выполнению следующей команды.
См. табл. 9.4 Записать необходимый шестнадцатеричный машинный код для выполнения программы, начинающейся с адреса 2000Н в памяти.
См. табл. 9.4. Записать шестнадцатеричный машинный код, нужный для выполнения программы, начинающейся в памяти с адреса 2000Н:
Решения
команде OUT. 9.9. LXI Я; DCX Я; MOV A, L; ORA Я и JNZ. 9.10. Вложенным 9.11. (Z)=Q; DCX Я (символический адрес DELAY). 9.12. Установлен в 1; MOV А, В. 9.13. Обратиться к табл. 8.4.