Программное формирование временной задержки




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

Предположим, что в управляющей программе необходимо реализовать временную задержку 100 мкс. Фрагмент программы, реализующей временную задержку, требуется оформить в виде подпрограммы, так как предполагается, что основная управляющая программа будет производить к ней многократные обращения для формирования выходных импульсных сигналов, длительность которых кратна 100 мкс:

;ВЕРСИЯ ДЛЯ МК48

DELAY: MOV R2,#X ;(R2) <-- X

COUNT: PJNZ R2,COUNT ;ДЕКРЕМЕНТ R2 И ЦИКЛ, ЕСЛИ НЕ НУЛЬ
RET ;ВОЗВРАТ

Для получения требуемой временной задержки необходимо определить число X, загружаемое в рабочий регистр. Определение числа Х выполняется на основе расчета времени выполнения команд, образующих данную подпрограмму. При этом необходимо учитывать, что команды MOV и RET выполняются однократно, а число повторений команды DJNZ равно числу X. Кроме того, обращение к подпрограмме временной задержки осуществляется по команде CALL DELAY, время исполнения которой также необходимо учитывать при подсчете временной задержки. В описании команд МК указывается, за сколько машинных циклов (МЦ) исполняется каждая команда. На основании этих данных определяется суммарное число машинных циклов в программе: CALL - 2 МЦ, MOV - 2 МЦ, DJNZ - 2 МЦ, RET - 2 МЦ.

При тактовой частоте 6 МГц каждый машинный цикл выполняется за 2,5 мкс. Таким образом, подпрограмма выполняется за время 5+5+5Х+5=15+5Х мкс. Для реализации временной задержки 100 мкс число Х= (100-15)/5= 17.

В данном случае при загрузке в регистр R2 числа 17 требуемая временная задержка (100 мкс) реализуется точно. Если число Х получается дробным, то временную задержку можно реализовать лишь приблизительно. Для более точной подстройки в подпрограмму могут быть включены команды NOP, время каждой из которых равно 2,5 мкс.

Минимальная временная задержка, реализуемая подпрограммой DELAY, составляет 20 мкс (X = 1). Временную задержку меньшей длительности программным путем можно реализовать, включая в программу цепочки команд NOP.

Максимальная длительность задержки, реализуемая подпрограммой DELAY, составляет 1,29 мс (X = 255) .

Для реализации задержки большей длительности можно рекомендовать увеличить тело цикла включением дополнительных команд или использовать метод вложенных циклов. Так, например, если в подпрограмму DELAY перед командой DJNZ вставить дополнительно две команды NOP, то максимальная задержка составит 15 + Х(5 + 5) =15+10 х 255 = 2565 мкс (т.е. почти в 2 раза больше).

Временная задержка большой длительности. Числа Х и Y выбираются из соотношения T=5+5+X(5+5Y+5)+5, где Т — реализуемый временной интервал в микросекундах. Максимальный временной интервал, реализуемый таким способом при Х = Y = 255 составляет 327,69 мс, т.е. приблизительно 0,3 с.

В качестве примера рассмотрим подпрограмму, реализующую временную задержку 100 мс:

:ВЕРСИЯ ДЛЯ МК48

DELAY: M0V Rl,#84 ;ЗАГРУЗКА Х
LOOРЕХ: MOV R2,#236 ;ЗАГРУЗКА Y

LOOPIN: DJNZ R2,LOOPIN ; ДЕКРЕМЕНТ R2 И ВНУТРЕННИЙ ЦИКЛ,
;ЕСЛИ (R2) НЕ РАВНО НУЛЮ

DJNZ Rl,LOOPEX ; ДЕКРЕМЕНТ Rl И ВНЕШНИИ ЦИКЛ,
;ЕСЛИ (Rl) НЕ РАВНО НУЛЮ

MOV R3,#4 ;ТОЧНАЯ ПОДСТРОЙКА
LOOPAD: DJNZ R3,LOOPAD ;ВРЕМЕННОЙ ЗАДЕРЖКИ

RET

Здесь два вложенных цикла реализуют временную задержку длительностью 15+84(10+5х 236) = 99 975 мкс, а дополнительный цикл LOOPAD реализует задержку 25 мкс и тем самым обеспечивает точную подстройку временного интервала.

Временная задержка длительностью 1 с. Из рассмотренного примера видно, что секунда является очень большим интервалом времени по сравнению с частотой тактирования МК. Такие задержки сложно реализовать методом вложенных циклов, поэтому их обычно набирают из точно подстроенных задержек меньшей длительности. Например, задержку в 1 с можно реализовать десятикратным вызовом подпрограммы, реализующей задержку 100 мс:

ONESEC: MOV R3,#10 ;ЗАГРУЗКА В R3 ЧИСЛА ВЫЗОВОВ

;ПОДПРОГРАММЫ DELAY
LOOP: CALL DELAY ;ЗАДЕРЖКА 100 МС

DJHZ R3,LOOP ;ДЕКРЕМЕНТ R3 И ЦИКЛ, ЕСЛИ (R3) НЕ PАBHO 0

Погрешность подпрограммы составляет 55 мкс. Для очень многих применений это достаточно высокая точность, хотя реализованные на основе этой программы часы астрономического времени за сутки “убегут” примерно на 5 с.



Работы которые могут быть Вам интерессными mnogie-yuristi-stalkivayutsya-v-svoej-rabote-s-moralnimi-dilemmami.html

mnogie-zhivotnie-peredayut-svoi-chuvstva-s-pomoshyu-zvukov-i-zapahov-naryadu-s-vidimim-povedeniem.html

mnogie-znacheniya-bitvi-v-nebesah.html

mnogie-zriteli-otkazivayutsya-ot-prosmotra-filmov-v-vashem-perevode-vibiraya-perevodi-bolee-privichnie-i-bez-rezkih-virazhenij-prodolzhayu-razvivat-misl-ya.html

mnogih-roditelej-interesuet-mozhno-li-kak-to-diagnostirovat-po-povedeniyu-reakciyam-rebenka-tot-fakt-chto-s-formirovaniem-privyazannosti-u-nego-k-nej-voznikli-problemi.html

mnogo-adresnaya-marshrutizaciya-v-dinamicheskih-tks.html

mnogoadresnaya-rassilka.html

mnogoaspektnost-analiza-gorodskogo-sociuma.html

mnogoaspektnost-evolyuciimetastabilnost-sluchajnost-zakonomernost.html

mnogoaspektnost-ponyatiya-bezopasnost.html

mnogoaspektnost-problemi-izmeneniya-socialnoj-situacii-razvitiya-rebenka.html

mnogo-bilo-v-nebe-zvezd.html

mnogo-blagorodstva-i-malo-deneg-10-glava.html

mnogo-blagorodstva-i-malo-deneg-11-glava.html

mnogo-blagorodstva-i-malo-deneg-12-glava.html

mnogo-blagorodstva-i-malo-deneg-13-glava.html

mnogo-blagorodstva-i-malo-deneg-1-glava.html

mnogo-blagorodstva-i-malo-deneg-3-glava.html

mnogo-blagorodstva-i-malo-deneg-4-glava.html

mnogo-blagorodstva-i-malo-deneg-5-glava.html

mnogo-blagorodstva-i-malo-deneg-6-glava.html

© domain.tld 2017. Design by Design by toptodoc.ru


Автор:

Дата:

Каталог: Образовательный документ