Режимы работы таймера/счетчика
Режим работы каждого Т/C определяется состоянием битов М0 и М1 в регистре TMOD. В режимах 0, 1 и 2 Т/C полностью независимы друг от друга. Причем, в этих режимах они функционируют одинаково. В режиме 3 работа Т/C0 и Т/C1 различна . При этом установка режима 3 в Т/C0 влияет на режим работы Т/C1.
Режим 0. В этом режиме Т/C функционируют как 8-ми разрядный счетчик, на входе которого стоит 5-ти разрядный предделитель. Предделитель образован 5 младшими разрядами регистра TL0 , а 8-разрядный счетчик - регистром ТН. Структурная схема Т/C в этом режиме показана на рис. 1.7.
Рис. 1.7. Структурная схема Т/C0 в режиме 0
Бит С/Т регистра TMOD определяет работу Т/C в качестве таймера (С/Т=0) или в качестве счетчика (С/Т=1). Бит TR регистра TCON разрешает счет (TR=1), если управляющий бит GATE (блокировка) равен 0 или на внешний вывод подан высокий уровень напряжения. Если же бит GATE установлен в 1, то в этом случае можно использовать таймер для измерения длительности импульсного сигнала, подаваемого на вход .
Режим 1 аналогичен режиму 0 , за исключением того, что доступны 16-разрядные Т/C. Структурная схема Т/C для этого режима показана на рис. 1.8.
Рис. 1.8. Структурная схема Т/C0 в режиме 1
В режиме 2 Т/C работает в качестве 8-ми разрядных счетчиков, построенных на основе регистров TL. Причем, при каждом переполнении, кроме установки флага TF в регистре TCON, автоматически происходит перезагрузка содержимого регистра ТН в регистр ТL. При этом содержимое регистра ТН не изменяется. Это обстоятельство позволяет использовать Т/С для задания скорости передачи данных через последовательный порт. Логику работы Т/C в этом режиме иллюстрирует рис. 1.9.
Рис. 1.9. Структурная схема Т/C1 в режиме 2
В режиме 3 Т/C0 и Т/C1 работают по разному. Т/C1 сохраняет неизменным свое текущее содержимое. Т.е. эффект такой же, как и при сбросе управляющего бита TR1 в нуль. Работу Т/C в режиме 3 иллюстрирует рис. 1.10.
Рис. 1.10. Структурная схема Т/C0 в режиме 3
В этом режиме TL0 и TН0 функционируют как два независимых 8-ми разрядных счетчика. Работу TL0 определяют управляющие биты C/T, GATE, TR, входной сигнал и флаг переполнения TF0. Работу TH0, который может выполнять только функцию таймера, определяет управляющий бит TR1. При этом TH0 использует флаг переполнения TF1.
Установка Т/C0 в режим 3 лишает Т/C1 бита включения TR1. Поэтому Т/C1 в режимах 0, 1 и 2 при GATE1=0 всегда включен и при переполнении в режимах 0 и 1 Т/C1 обнуляется, а в режиме 2 перезагружается , не устанавливая флаг. Управление от входов INT1, Т1, биты управления С/Т1, GATE для Т/C1 не зависят от режима Т/C0 .
Т/C1 аппаратно связан с блоком синхронизации последовательного интерфейса. При работе в режимах 0, 1 и 2 при переполнении Т/C1 всегда вырабатывается синхроимпульс последовательного интерфейса. Поэтому 3-й режим Т/C0 удобно применять тогда, когда требуется работа последовательного порта и двух таймеров или ПИ, таймера и счетчика.
Когда Т/C0 переведен в режим 3, Т/C1 можно выключить, переведя его также в режим 3, и использовать его с последовательным портом для выработки синхроимпульсов или в любых других приложениях, не требующих прерывания.
Дата добавления: 2016-11-26; просмотров: 3661;