ВУЗ:
Составители:
- 24 -
числом, загруженным в рабочий регистр, и временем выполнения ко-
манд, образующих программный цикл.
Предположим, что в управляющей программе необходимо реализо-
вать временную задержку 100 мкс. Фрагмент программы, реализующей
временную задержку, требуется оформить в виде подпрограммы, так
как предполагается, что основная управляющая программа будет
производить к ней многократные обращения для формирования выход-
ных импульсных сигналов, длительность которых кратна 100 мкс.
DELAY: MOV R2,#X ; (R2)<--X
COUNT: DJNZ R2,COUNT ; декремент R2 и цикл, если не нуль
RET ; возврат
Для получения требуемой временной задержки необходимо опре-
делить число X, загружаемое в рабочий регистр. Определение числа
X выполняется на основе расчета времени выполнения команд, обра-
зующих данную подпрограмму. При этом необходимо учитывать, что
команды MOV и RET выполняются однократно, а число повторений ко-
манды DJNZ равно числу X. Кроме того, обращение к подпрограмме
временной задержки осуществляется по команде CALL DELAY, время
исполнения которой также необходимо учитывать при подсчете вре-
менной задержки. В описании команд МК указывается, за сколько
машинных циклов (МЦ) исполняется каждая команда. На основании
этих данных определяется суммарное число машинных циклов в подп-
рограмме: CALL - 2МЦ, MOV - 2МЦ, DJNZ - 2МЦ, RET - 2МЦ.
При тактовой частоте 6 МГц каждый машинный цикл выполняется
за 2,5 мкс. Таким образом, подпрограмма выполняется за время
5+5+5X+5 = 15+5X мкс. Для реализации временной задержки 100 мкс
число X=(100-15)/5=17. В этом случае при загрузке в регистр R2
числа 17 требуемая временная задержка (100 мкс) реализуется точ-
но. Если число X получается дробным, то временную задержку можно
реализовать лишь приблизительно. Для более точной подстройки в
подпрограмму могут быть включены команды NOP, время выполнения
каждой из которых равно 2,5 мкс.
Минимальная временная задержка, реализуемая подпрограммой
DELAY, составляет 20 мкс (X=1). Временную задержку меньшей дли-
тельности программным путем можно реализовать, включая в прог-
рамму цепочки команд NOP. Максимальная длительность задержки,
реализуемая подпрограммой DELAY, составляет 1,29 мс (X=255).
Для реализации задержки большей длительности можно рекомен-
довать увеличить тело цикла включением дополнительных команд или
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »