Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по АТ89С51 изд.вариант 2010-54.doc
Скачиваний:
86
Добавлен:
19.11.2019
Размер:
865.22 Кб
Скачать
      1. Измерение временных интервалов

В задачах управления часто возникает необходимость измерения промежутка времени между двумя событиями. Обычно события в объекте управления представляются сигналами от двоичных датчиков. Считая событиями фронт и спад импульса, можно определять временные характеристики импульсных сигналов: длительность, период и скважность.

Простейшим способом измерения длительности импульса является программный.

Для обнаружения событий (фронт и спад импульсного сигнала) в этом случае используются типовые процедуры (см. п. 1.1), а отсчет времени ведется программным способом.

Для положительного импульсного сигнала, поступающего на вход Т0, программа измерения его длительности будет иметь вид, представленный в листинге 4.25).

После выхода из процедуры содержимое счетчика (DPTR) пропорционально длительности импульса логической единицы.

Листинг 4.25 – Программа измерения длительности положительного импульсного сигнала

.ORG 0000h

; Адрес начала программы

NEXT:

MOV DPTR, #00h

JB P3.2, $

JNB P3.2, $

INC DPTR

JB P3.2, NEXT

; Обнуление счётчика времени

; Ожидание логического нуля

; Ожидание логической единицы

; Инкремент счётчика времени

; Ожидание логического нуля

Для измерения длительности сигнала может быть использован таймер. Особенно эффективно использование для этой цели таймера T/C0 (T/C1) совместно со входом разрешения счета (альтернативная функция входа INT0 (INT1)). Измеряемый сигнал можно, например, подавать на вход INT0. Измерение длительности при этом будет выполняться в Т/С0. Программа измерения длительности положительного импульса представлена листингом 4.26.

Листинг 4.26 – Программа измерения длительности положительного импульсного сигнала с использованием таймер-счётчика

.ORG 0000h

CLR TR0

MOV IE, #00h

MOV TMOD, #09h

MOV TL0, #00h

MOV TH0, #00h

JB INT0, $

SETB TR0

JNB INT0, $

JB INT0, $

CLR TR0

; Запрещение работы таймера

; Запрет прерываний

; Настройка таймера на режим 1

; счет при логической единице на

; входе INT0

; Ожидание логического нуля

; Разрешение счёта

; Ожидание логической единицы

; Ожидание логического нуля

; Запрещение счёта

По завершению программы в Т/С0 будет находиться число, пропорциональное длительности положительного импульса на входе INT0.

Контрольные вопросы

  1. Для чего необходим счет времени в микроконтроллерных системах?

  1. Каковы принципы формирования временной задержки? Какой из них имеет преимущества и какие?

  2. Как организуется измерение интервала времени между двумя событиями?

    1. Преобразование кодов

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

Наиболее распространены в задачах логического управления следующие преобразования:

– из унитарного кода в двоичный (при вводе информации с клавиатуры или от оцифрованных переключателей);

– из двоичного в унитарный;

– из одной системы счисления в другую (при работе со специальными клавиатурами);

– специальные преобразования (для организации индикации и при выводе информации на периферийные устройства);

– из последовательного кода в параллельный (при вводе) и из параллельного в последовательный (при выводе);

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