Читайте также: |
|
При составлении программного текста для процедуры генерации заданного числа серий целесообразно воспользоваться копией программы генерации одного пакета, включив в нее процедуру формирования временного интервала между пакетами импульсов Тм и отсчет серий до окончания их числа.
В начале программы необходимо организовать счетчик серий, загрузив в него значение числа серий. После окончания серии импульсов производится вызов подпрограммы для межсерийной паузы Тм, декремент этого счетчика и переход на начало серии, если его значение не равно нулю, т.е. на команду загрузки счетчика числа импульсов в серии. Иначе, зациклить команду перехода.
Последовательность двух серий представлена на рис.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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Генерация пакета импульсов | | | Формирование импульсных сигналов управления с использованием таймеров микроконтроллера |