2-663-1400429543-8 (Таймеры / счетчики микроконтроллеров семейства 8051. Регистр режима работы таймера/счетчика TMOD. Регистр)
Описание файла
Документ из архива "Таймеры / счетчики микроконтроллеров семейства 8051. Регистр режима работы таймера/счетчика TMOD. Регистр", который расположен в категории "". Всё это находится в предмете "специальные предметы" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "специальные предметы" в общих файлах.
Онлайн просмотр документа "2-663-1400429543-8"
Текст из документа "2-663-1400429543-8"
-
Таймеры / счетчики микроконтроллеров семейства 8051. Регистр режима работы таймера/счетчика TMOD. Регистр управления/статуса таймера TCON. Режимы работы таймеров-счетчиков.
Таймеры / счетчики микроконтроллеров семейства 8051.
В базовых моделях семейства имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. В первом случае содержимое соответствующего таймера/счетчика (далее для краткости Т/С) инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов колебаний кварцевого резонатора, во втором оно инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0,T1) вывод микро-ЭВМ 8051. Так как на распознавание периода требуются два машинных цикла, максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входной сигнал должен удерживать значение 1, как минимум, в течение одного машинного цикла микро-ЭВМ.
Для управления режимами работы Т/С и для организации их взаимодействия с системой прерываний используются два регистра специальных функций (TMOD и TCON), описание которых приведено ниже.
Регистр режима работы таймера/счетчика TMOD
Символ | Позиция | Имя и назначение | |||||||||||||||
GATE | TMOD.7 для Т/С1 и TMOD.3 для Т/СО | Управление блокировкой. Если бит установлен, то таймер/счетчик "x" разрешен до тех пор, пока на входе "lNTx" высокий уровень и бит управления "TRx" установлен. Если бит сброшен, то Т/С разрешается, как только бит управления "TRx" устанавливается | |||||||||||||||
С/Т | TMOD.6 для T/C1 и TMOD.2 для Т/СО | Бит выбора режима таймера или счетчика событий. Если бит сброшен, то работает таймер от внутреннего источника сигналов синхронизации. Если; установлен, то работает счетчик от внешних сигналов на входе "Tx" | |||||||||||||||
M1 | TMOD.5 для T/C1 и TMOD.1 для Т/СО | Режим работы
| |||||||||||||||
M0 | TMOD.4 для Т/С1 и TMOD.0 для Т/СО |
Регистр управления/статуса таймера TCON.
Символ | Позиция | Имя и назначение |
TF1 | TCON.7 | Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении таймера/счетчика. Сбрасывается при обслуживании прерывания аппаратно |
TR1 | TCON.6 | Бит управления таймера 1. Устанавливается, / сбрасывается программой для пуска/останова |
TF0 | TCON.5 | Флаг переполнения таймера 0. Устанавливается аппаратурно. Сбрасывается при обслуживании прерывания |
TR0 | TCON.4 | Бит управления таймера 0. Устанавливается / сбрасывается программой для пуска/останова таймера/счетчика |
IE1 | TCON.3 | Флаг фронта прерывания 1. Устанавливается аппаратно, когда детектируется срез внешнего сигнала INT1. Сбрасывается при обслуживании прерывания |
IT1 | TCON.2 | Бит управления типом прерывания 1. Устанавливается / сбрасывается программно для спецификации запроса INT1 (срез/низкий уровень) |
IE0 | TCON.1 | Флаг фронта прерывания 0. Устанавливается по срезу сигнала INT0. Сбрасывается при обслуживании прерывания |
IT1 | TCON .0 | Бит управления типом прерывания 0. Устанавливается / сбрасывается программно для спецификации запроса INT0 (срез/низкий уровень) |
Режимы работы таймеров-счетчиков.
Как следует из описания управляющих бит TMOD, для обоих Т/С режимы работы 0, 1 и 2 одинаковы. Режимы 3 для Т/СО и Т/С1 различны. Рассмотрим кратко работу Т/С в каждом из режимов.
Режим 0.Перевод любого Т/С в режим 0 делает его похожим на таймер КМ1816ВЕ48 (восьмибитный счетчик), к входу которого подключен пяти-битный предделитель частоты на 32. В этом режиме таймерный регистр имеет разрядность 13 бит. При переходе из состояния "все единицы" в состояние "все нули" устанавливается флаг прерывания от таймера TF 1. Входной синхросигнал таймера 1 разрешен (поступает на вход Т/С1), когда управляющий бит TR1 установлен в 1 либо управляющий бит GATE (блокировка) равен 0, либо на внешний вывод запроса прерывания INT1 поступает уровень 1. Отметим попутно, что установка бита GATE в 1 позволяет использовать таймер для измерения длительности импульсного сигнала подаваемого на вход запроса прерывания.
Режим 1. Работа любого Т/С в этом режиме такая же, как и в режиме 0, за исключением того, что таймерный регистр имеет разрядность 16 бит.
Режим 2. В этом режиме работа организована таким образом, что переполнение (переход из состояния "все единицы" в состояние, "все нули") восьмибитного счетчика TL1 приводит не только к установке флага TF1, но и автоматически перезагружает в TL1 содержимое старшего байта (TH 1) таймерного регистра, которое предварительно было задано программным путем. Перегрузка оставляет содержимое TH1 неизменным. В режиме 2 Т/С0 и Т/С1 также работают совершенно одинаково.
Режим 3. В режиме 3 Т/С0 и Т/С1 работают по-разному. Т/С1 сохраняет неизменным свое текущее содержимое. Иными словами, эффект такое же как и при сбросе управляющего бита TR1 в 0. В режиме 3 TL0 и TH0 функционируют как два независимых восьмибитных счетчика. Работу TL0 определяют управляющие биты Т/С0 (С/Т, GATE TR0), входной сигнал INT0 и флаг переполнения TF0. Работу TH0, который может выполнять только функции таймера (подсчёт машинных циклов микро-ЭВМ), определяет управляющий бит TR1. При этом TH0 использует флаг переполнения TF1. Режим 3 используется в тех случаях, когда требуется наличие дополнительного восьми битного таймера или счетчика событий. Можно считать, что в этом режиме микро-ЭВМ 8051 имеет в своем составе три таймера/счетчика. В случае же, если Т/С0 используется в режиме 3, Т/С1 может быть или выключен, или переведен в режим 0, 1 или 2, или может быть использован последовательным портом в качестве генератора частоты передачи.
В модернизированных моделях микроконтроллеров семейства MCS-51 может иметься третий таймер счетчик T/C2 и (или) блок программных счетчиков PCA, которые тоже могут быть использованы для отсчета временных интервалов.
Организация прерывания по таймеру.
Частота прерываний определяется числом (в дополнительном коде), записанным в таймерные
регистры TL0/TH0 или TL1/TH1. Например, для задания частоты прерывания, равной 20 мс, при частоте кварцевого резонатора 22,1184МГц, в регистры надо занести “- 36863” ( NOT(36863 - 1); период инкрементирования таймера равен 1/22,1184МГц = 0,5425мкс, 0,5425мкс*36863 ≈ 20мс).
При переполнении таймера (переход из состояния “все единицы” в состояние “все нули”) взводится флаг переполнения таймера и происходит вызов прерывания (адрес 0Вh для Т/С0 и 1Bh для Т/С1), при условии разрешения прерываний (EA) и разрешения прерывания от конкретного таймера (ET0 или ET1). При работе в режимах без автоперезагрузки, перезагрузку таймера надо проводить программно при обработке прерывания.