Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В задачах управления часто возникает необходимость измерения промежутка времени между двумя событиями. Обычно события в объекте управления представляются сигналами от двоичных датчиков. Считая событиями фронт и спад импульса, можно определять временные характеристики импульсных сигналов: длительность, период и скважность.
Простейшим способом измерения длительности импульса является программный.
Для обнаружения событий (фронт и спад импульсного сигнала) в этом случае используются типовые процедуры (см. п. 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. Для чего необходим счет времени в микроконтроллерных системах?
2. Каковы принципы формирования временной задержки? Какой из них имеет преимущества и какие?
3. Как организуется измерение интервала времени между двумя событиями?
Дата публикования: 2014-11-03; Прочитано: 313 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!