Группа команд, реализующих временную
задержку может находиться в соответствующем месте программы или оформляться как подпрограмма
(например, DELAY). При использовании метода программных циклов в некоторый регистр (например,
R4) загружается число X, которое затем в каждом проходе цикла уменьшается на 1 до тех пор, пока
содержимое регистра не станет равным нулю:
DELAY: MOV R4, #X
COUNT: DJNZ R4, COUNT
RET
Время задержки определяется числом, загруженным в регистр,
и временем выполнения команд, образующих программный цикл. Команды MOV и RET длительностью по
2 машинных цикла выполняются однократно, число повторений команды DJNZ равно числу Х. Кроме
того, следует учитывать время исполнения (2 цикла) команды CALL DELAY, по которой
осуществляется обращение к подпрограмме.
Для реализации временной задержки, равной Т, при длительности
машинного цикла t число Х можно определить из выражения: T=(2+2+2X+2)*t.
Если число Х получается дробным, то временную задержку можно
реализовать лишь приблизительно. Для более точной подстройки в подпрограмму могут быть включены
команды NOP. Минимальная задержка, реализуемая подпрограммой, составляет 8 машинных циклов
(Х=1), максимальная - 516 циклов (Х=255).
|
Формирование
временной задержки |