АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Временная задержка малой длительности

Читайте также:
  1. Ананиз семьи как института и малой группы.
  2. Водоподготовка котельных установок малой мощности
  3. Временная диаграмма работы асинхронного «RS» триггера.
  4. Временная задержка большой длительности.
  5. Временная оценка денежных потоков.
  6. Временная последовательность
  7. Временная сложность
  8. Вторая стадия: оценка длительности акций
  9. Какая из предложенных операций находится в компетенции малой хирургии?
  10. Категория залога. Разные трактовки категории залога (Ф.Ф. Фортунатов, А.А. Шахматов; современная концепция). Отношение категории залога к формообразованию и словообразованию.
  11. Особо рассматривается проблема вымирания отдельных этносов, народностей, которая так же напрямую связана с малой численностью лидеров – «вождей»

При реализации временной задержки длительностью порядка нескольких микросекунд часто используется набор команд NOP, каждая из которых выполняется за 1 машинный цикл. Т.е. для формирования задержки длительностью 4 мкс при частоте кварцевого резонатора 12 МГц программа для МК51 будет выглядеть:

NOP

NOP

NOP

NOP

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


Программа имеет сим­волическое имя DELAY.

Рисунок 1 – блок-схема процедуры формирования временной задержки
малой длительности

 

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

...........

ACALL DELAY; вызов подпрограммы задержки

...........

 

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

COUNT: DJNZ R2,COUNT; декремент R2 и цикл, если не нуль

RET; возврат в основную программу

 

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

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

Если число X полу­чается дробным, то временную задержку можно реализовать лишь при­близительно. Для более точной подстройки в подпрограмму могут быть включены команды NOP, время выполнения каждой из которых равно 1 мкс.

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

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

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

 


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)