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

Генерация пакета импульсов

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

Очевидно, что для генерации пакета импульсов необходимо количество повторений процедуры генерации одного импульса, равное заданному числу импульсов в пакете.Осциллограмма пакета приведена на рис.55.

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

Рисунок 55

 

Иначе устанавливается нулевое значение в разряде порта и производится зацикливание команды перехода, т.е. процедура выполнена и далее “делать нечего”.

Пакет импульсов представлен на рис 4.

Пример 7 Примерный текст программы генератора пакета импульсов

.INCLUDE "M16DEF.INC";Включение файла с определением имен регистров

; и битов микроконтроллера ATmega16

.ORG 0;Начало программы с нулевой ячейки ПЗУ

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

OUT SPH, R16;ее адрес для Mega16 - 45F, так как по сбросу

LDI R16, $5F;МК устанавливаются SPH=0 и SPL=o

OUT SPL, R16

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

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

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

;импульсов

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

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

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

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

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

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

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

CBI PORTD, 1;Обнулить разряд после окончания пакета

LOOP_I: RJMP LOOP_I;Бесконечный цикл

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

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

.

RET;Возврат из подпрограммы

T_PULSE:

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

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

.

.

.

RET;Возврат из подпрограммы

 

 


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


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

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