Микропроцессорная техника: практический курс : учебное пособие для студентов Физико-технологического института, обучающихся по направлениям подготовки "Ядерная физика и технологии", "Биомедицинская инженерия"


 Блок-схема алгоритма подпрограммы


Download 0.63 Mb.
Pdf ko'rish
bet70/74
Sana29.03.2023
Hajmi0.63 Mb.
#1306393
1   ...   66   67   68   69   70   71   72   73   74
Bog'liq
978-5-321-02171-21 2012 (1)

4. Блок-схема алгоритма подпрограммы
На рис. 3 приведена блок-схема алгоритма подпрограммы, ре-
ализующей техническое задание. Особенностью алгоритма являет-
ся вынесение таблицы готовых решений в отдельную подпрограмму
CODE7. Блок-схема подпрограммы CODE7 приведена на рис. 4.
Сохранение используемых регистров.
Настройка порта
и
сохраняют значения.
Инициализация регистров
и
P0:
P0.0-P0.5 1;
P0.6 P0.7 -
DPTR R0
P0.5 == 1
Нет
Да
Ввод данных с линий
Вызов подпрограммы преобразо-
вания кодов
Размещение результата в ВПД.
Инкремент
Вывод нулевого уровня на
P0.0-P0.3.
CODE7.
DPTR.
P0.4
P0.5 == 0
Нет
Да
Вывод единичного уровня на
Декремент счетчика цикла
P0.4.
R0 == 0
Нет
Да
Восстановление использованных
регистров.
Выход из подпрограммы
Рис. 3. Блок-схема алгоритма основной подпрограммы
5
126


Приложение 1. Пример выполнения ИДЗ
Входные данные в регистре
Обращение к таблице готовых
решений.
Возвращаемые данные в регистре
A.
A
Выход из подпрограммы
Таблица готовых решений
(16 байтов)
Рис. 4. Блок-схема алгоритма подпрограммы CODE7
Особенностью подпрограммы CODE7 является использование ко-
манды
MOVC A,@A+PC
. Это позволяет организовать обращение к
таблице готовых решений без использования регистра DPTR, кото-
рый уже задействован в обращении к внешней памяти данных. Табли-
ца готовых решений должна располагаться в памяти программ непо-
средственно за командой MOVC. Команда MOVC получает входные
данные через регистр (A), в этом же регистре будет размещен результат
преобразования кодов. Однако необходимость использования одно-
байтной команды возврата из подпрограммы приводит к тому, что
таблица решений располагается со смещением на один байт от коман-
ды MOVC. Поэтому входные данные должны быть предварительно
увеличены на единицу командой инкремента.
Контроль количества преобразованных байтов осуществляется счет-
чиком R0, который декрементируют после каждого преобразования.
По достижении нуля в R0 происходит выход из основной подпрограм-
мы. Для локализации переменных используемые регистры сохраняют-
ся в стеке и восстанавливаются перед выходом из основной подпро-
граммы.
6
127


Приложения

Download 0.63 Mb.

Do'stlaringiz bilan baham:
1   ...   66   67   68   69   70   71   72   73   74




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling