Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемИнга Майорова
1 Использование таймера для формирования временных интервалов Национальный технический университет «Харьковский политехнический институт» Кафедра «Промышленная и биомедицинская электроника» Практическое занятие по дисциплине «Микропроцессорная техника» Б.А. Стысло г. Харьков, 2014 г. 1
2 2 Встроенные таймеры чаще всего используются при измерениях различных временных параметров внешних по отношению к микроконтроллеру сигналов, для отработки временных задержек и для выполнения периодических операций. Таймеры 8051-совместимых систем являются 16-разрядными и аппаратно реализованы как два 8-разрядных регистра, которые могут программироваться отдельно. Программный доступ к таймерам осуществляется посредством группы регистров специальных функций: Назначение таймера TH0 - содержит старший байт таймера 0; TL0 - содержит младший байт таймера 0; TH1 - содержит старший байт таймера 1; TL1 - содержит младший байт таймера 1; TH2 - содержит старший байт таймера 2 (только для 8052); TL2 - содержит младший байт таймера 2 (только для 8052); TCON - регистр управления таймерами 0 и 1; T2CON - регистр управления таймером 2 (только для 8052); TMOD - регистр режимов работы таймеров.
3 3 В базовых моделях семейства имеются два программируемых 16- битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. Каждый из них состоит из двух 8-битных регистров TH0 (старший байт) и TL0 (младший байт) для таймера 0 или TH1 (старший байт) и TL1 (младший байт) для таймера 1. В режиме таймера содержимое соответствующего таймера/счетчика инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов колебаний кварцевого резонатора. В режиме счетчика содержимое соответствующего таймера/счетчика инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на вывод микроконтроллера T0 или T1. Так как на распознавание периода требуются два машинных цикла, максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входной сигнал должен удерживать значение 1, как минимум, в течение одного машинного цикла микро-ЭВМ. Назначение таймера
4 4 Режим таймера синхронизации При работе в режиме синхронизации 16-разрядное содержимое регистров таймера THx и TLx (x = 0, 1, 2) инкрементируется в каждом машинном цикле (12 тактов). Например, если тактовая частота, с которой работает микроконтроллер, равна 11,059 МГц (стандартная частота для большинства микроконтроллеров), то таймер будет работать на частоте, равной 11,059 МГц / 12 = Гц.
5 5 Режим таймера синхронизации Поскольку таймер считает вперед, то наступит момент, когда оба 8-разрядных регистра будут содержать шестнадцатеричные значения 0 хFF или В следующем машинном цикле значения регистров THx и TLx будут обнулены, после чего счет продолжится с 0. В этом случае говорят о переполнении таймера. Ситуация переполнения очень часто используется в программах, тем более что момент переполнения фиксируется путем установки определенных битов (они имеют обозначения TFx, x = 0, 1, 2), называемых битами переполнения, в регистре управления и контроля таймеров (регистр TCON).
6 6 СТРУКТУРА УПРАВЛЯЮЩИХ РЕГИСТРОВ ТАЙМЕРОВ GATEx – таймер(х) работает только при высоком уровне сигнала на выводе INTx (GATEx=1) / таймер(х) работает независимо от уровня сигнала на выводе INTx (GATEx=0) С/Tx – таймер (х) работает в режиме счетчика событий (перепадов 1-0) на выводе Тх TxM1:TxM0 Режим 0013-разрядный таймер 0116-разрядный таймер 10 автоперезагрузка 11 два автономных 8-разрядных таймера
7 7 TFx – флаг переполнения таймера (х) Управление запуском и остановкой таймеров осуществляется посредством установки/сброса соответствующих битов в регистре управления TCON СТРУКТУРА УПРАВЛЯЮЩИХ РЕГИСТРОВ ТАЙМЕРОВ TRx – бит запуска (1) / остановки (0) таймера (х)
8 РЕАЛИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ТАЙМЕРА
9 ЗАДАЧА 0 Рассчитать время, за которое в таймере 0 в режиме 16-битного таймера произойдет переполнение. Начальное значение счетных регистров: TH0=0; TL0=0; Тактовая частота контроллера: 12 МГц. РЕШЕНИЕ: Значение счетных регистров таймера инкрементируется /12= раз в секунду. Переполнение таймера произойдет через: 65536/ = 0, сек.
10 ЗАДАЧА 1 Выполнить генерацию на выводе Р3.0 меандра с частотой 1Гц. Для генерации использовать таймер 0. Тактовая частота контроллера: 12 МГц.
11 ЗАДАЧА 1 РЕШЕНИЕ: Поскольку при тактовой частоте переполнение таймера возникает за 0, сек. (см. задачу 0), по прошествии временной задержки длительностью 0,5 сек. Таймер успеет перезагрузиться 0,5/0,065536= 7,63 раза. В данном случае, с некоторой потерей точности число перезагрузок равно 8. Таким образом, бит Р3.0 следует переключать после каждых 8 перезагрузок таймера 0. Для достижения более высокой точности, изменим период перезагрузки таймера на 0,01 сек., предварительно поместив в счетный регистр число (65536 х 0,01 /0,065536) = 55536= 0xD8F0 TH=0xD8; TL=0xF0
12 ЗАДАЧА 1 РЕШЕНИЕ: Поскольку период перезагрузки таймера изменился с 0, сек до 0,01 сек, для формирования 0,5 сек. Задержки потребуется 50 перезагрузок таймера:
13 Thank you for your attention! The End. 13
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.