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

Генератор заданного числа пакетов импульсов

Читайте также:
  1. III. АМПЛИТУДНЫЙ СПЕКТР ИМПУЛЬСОВ
  2. Автоматическое смещение в автогенераторах, его роль.
  3. Автомобильный генератор.
  4. Алгоритм Бюффона для определения числа Пи
  5. Арккотангенс числа
  6. Асинхронный тахогенератор
  7. Б. Метод постоянного числа предъявлений

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

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

Последовательность двух серий представлена на рис.56.

Рисунок 56

 

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

.INCLUDE "M16DEF.INC"

.ORG 0

LDI R16, 4;Организация стека в верхней ячейке ОЗУ

OUT SPH, R16;ее адрес для Mega16 - 45F. По сбросу

LDI R16, $5F; МК устанавливается SP=0

OUT SPL, R16

SBI DDRD, 5;Настройка разряда порта, в котором

;будут формироваться импульсы, на выход

LDI R17, N;N – число серий импульсов, регистр R17- счетчик

;серий

NEXT_PACKET: LDI R18,М;М - число импульсов в пакете, R18- счетчик

;импульсов в серии

NXT_PERIOD: CBI PORTD, 5;Начало паузы

RCALL T_PAUSE;Вызов п.п. длительности паузы

SBI PORTD, 5;Фронт импульса

RCALL T_PULSE; Вызов п.п. длительности паузы

DEC R18;Отсчет импульса в обратную сторону

BRNE NЕXT_PERIOD;Если импульс не последний в серии, то повторять

;(если в регистре не 0, то переход по метке)

CBI PORTD,5;Начало паузы между сериями

RCALL T_M;Длительность межсерийного интервала

DEC R17;Отсчет счетчиком одной серии

BRNE NXT_PACKET; Если серия не последняя, то повторять

CBI PORTD,5;Нулевой уровень после последней серии

LOOP_I: RJMP LOOP_I;Бесконечный цикл. Функция программы выполнена.

T_PAUSE: .; Выбранный вид процедуры

.;с расcчитанными значениями

.

RET

T_PULSE:

.;Выбранный вид процедуры

.;с расcчитанными значениями

.

.

RET

 

T_М: .; Выбранный вид процедуры

.;с расcчитанными значениями

.

RET

 


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


Читайте в этой же книге: Аналого-цифровой преобразователь | Энергонезависимая память данных | Язык Ассемблер | Типы данных, объявление данных | Операторы | Оператор if-else (ветвления ) | Оператор switch | Оператор цикла for | Программный способ формирования временных интервалов на языке Ассемблер | Программный способ формирования временных интервалов на языке СИ |
<== предыдущая страница | следующая страница ==>
Генерация пакета импульсов| Формирование импульсных сигналов управления с использованием таймеров микроконтроллера

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