Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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



Читайте также:
  1. I. Введение в историографию. Что и как изучает современная историография
  2. V. Расписание, задержка и отмена рейса, маршрут перевозки, изменение маршрута перевозки
  3. А. Мышца, отводящая большой палец (m. abductor hallucis).
  4. Белков дают большой запас прочности
  5. Бесспорным лидером в Любви (с большой буквы «Л») и бесспорным инициатором зарождения этого чувства(и в мужчине — тоже)является Женщина (с очень большой буквы «Ж»).
  6. Большой барьерный риф Австралии
  7. Большой Брат

Задержка большой длительности может быть реализована методом вложенных циклов. Числа Х и Y выбираются из соотношения Т = 2 + 1 + Х(1 + 2Y + 2) + 2, где Т - реализуемый временной интервал в микросекундах. Максимальный временной интервал, реализуемый таким способом, при Х = Y = 255 составляет 130.82 мс, т.е. приблизительно 0.13 с.

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

 

DELAY: MOV R1, #195;загрузка X

LOOPEX: MOV R2, #254;загрузка

YLOOPIN: DJNZ R2, LOOPIN;декремент R2 и внутренний цикл,

;если (R2)¹0

DJNZ R1, LOOPEX;декремент R1 и внешний цикл,

;если (R1)¹0

MOV R3, #174;точная подстройка

LOOPAD: DJNZ R3, LOOPAD;временной задержки

NOP;задержки

RET

 

Здесь два вложенных цикла реализуют временную задержку длительностью 5 + 195(3 + 2*254) = 99 650 мкс, а дополнительный цикл LOOPAD и команда NOP реализует задержку 350 мкс и тем самым обеспечивает точную настройку временного интервала.

 

3. Временная задержка длительностью 1с:

 

ONESEC: MOV R3,#10; Загрузка в R3 числа вызовов подпрограммы DELAY

LOOP: CALL DELAY; Задержка 100 мс

DJNZ R3,LOOP; и цикл, если R3 не равно 0

 

4. Передать управление одной из восьми программ ROUT0 - ROUT7 при появлении нулевого уровня на соответствующем входе порта 0. Наивысшим приоритетом обладает вход Р1.0:

 

ORL P1,#0FFH; Настройка порта 1 на ввод

L: MOV A,P1; Ввод данных из порта 1

CPL A; Инверсия аккумулятора

JZ L; Ожидание появления первого нуля

JB A.0,ROUT0; Переход к ROUT0, если Р1.0=0

JB A.1,ROUT1; …

JB A.2,ROUT2; …

JB A.3,ROUT3; …

JB A.4,ROUT4; …

JB A.5,ROUT5; …

JB A.6,ROUT6; …

JB A.7,ROUT7; Переход к ROUT0, если Р1.7=7

 

Переход осуществляется группой команд JB. Приоритеты входов порта 1 определяются очередностью проверки.

 

5. Множественное ветвление программы:

Допустим, что результатом работы некоторой программы является число Х (в пределах от 0 до 15). Необходимо организовать передачу управления 16 различным программам с именами ROUT0 – ROUTF в зависимости от вычисления значения Х:

ORG 0C100H; Задание начального адреса программы

MOV DPTR,#TABLE

ANL A,#0FH; Сброс старшей тетрады А во избежание ошибки перехода

JMP @A+DPTR; Обращение к таблице векторов переходов

 

;Таблица векторов переходов

TABLE: DB ROUT0; Начальный адрес программы ROUT0


Дата добавления: 2015-07-11; просмотров: 77 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.006 сек.)