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

3. 1. 7 Формирование временной задержки малой длительности

Программная реализация временной задержки использует метод программных циклов, при котором в некоторый РОН загружается число, которое затем при каждом проходе уменьшается на 1. Так продолжается до тех пор, пока содержимое рабочего регистра не станет равным нулю, что интерпретируется программой как момент выхода из программного цикла. Время задержки при этом определяется величиной числа и временем выполнения команд, образующих временный цикл. Схема алгоритма такой программы показана на рис.8

Рисунок 8 - Схема алгоритма временной задержки

Программа имеет имя TIME, и в случае ее вызова основной программой по команде CALL TIME должна завершаться командой возврата RET.

Предположим, что в программе, управляющей работой контроллера, процессор которого работает с частотой 2 МГц (период составляет 0,5 мкс), необходимо реализовать временную задержку 100 мкс. Фрагмент программы, реализующей временную задержку, требуется оформить в виде подпрограммы, т.к. предполагается, что основная программа будет производить к ней многократные обращения для формирования выходных импульсных сигналов, длительность которых 100 мкс.

Текст этой программы будет следующий (табл.16):

Таблица 16

Адрес

Код

Метка

Мнемокод

Комментарий

TIME:

MVI B, X

загрузка регистра В

числом Х

COUNT:

DCR B

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

JNZ COUNT

цикл, если В0

RET

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

Для получения требуемой временной задержки необходимо определить величину числа Х, загружаемого в регистр В, а это выполняется на основании расчета времени выполнения команд, образующих подпрограмму. При этом необходимо учитывать, что команды MVI B, X и RET выполняются однократно, а число повторений команд DCR и JNZ равно числу Х. Кроме того, обращение к подпрограмме осуществляется по команде CALL TIME, время исполнения которой необходимо учитывать при подсчете временной задержки.

В описании команд МП К580ИК80 указывается, за сколько тактов основной частоты синхронизации выполняются команды микропроцессора. На основании этих данных можем записать:

CALL TIME - 17 тактов - 8,5 мкс.

MVI B,X - 7 тактов - 3,5 мкс.

DCR B - 5 тактов - 2,5 мкс.

JNZ COUNT - 10 тактов - 5 мкс.

RET - 10 тактов - 5 мкс.

Таким образом, однократно выполняемые команды в этой подпрограмме требуют 17 мкс.(8,5+3,5+5,0). Следовательно, для получения требуемой задержки в 100 мкс. необходимо выполнить команды DCR и JNZ столько раз, чтобы время из выполнения составило 83 мкс. (100-17). Однако время выполнения этой пары команд составляет 7,5 мкс. (2,5+5). Поэтому, если принять Х=10, то можно получить временную задержку 75 мкс. Недостающие 8 мкс. можно получить четырехкратным исполнением команды пустой операции NOP, время выполнения которой равно 2 мкс. Исходя из приведенного расчета можно записать уточненный текст подпрограммы (табл.17)

Таблица 17

Адрес

Код

Метка

Мнемокод

Комментарий

TIME:

MVI B, 10H;

загрузка в регистр В

числа 10

COUNT:

DCR B;

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

JNZ COUNT

цикл, если В0

NOP

группа пустых операций

NOP

для точной подстройки

NOP

времени задержки

NOP

------

RET

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