Таймеры/счётчики. Управление таймерами/счётчиками
В состав внутренних функциональных узлов МК КР1830ВЕ31 входят два идентичных 16-разрядных таймера/счётчика (Т/С), которые могут быть запрограммированы для работы либо в качестве таймера, либо в качестве счётчика.
Функция таймера состоит в счёте внутренних машинных циклов, следующих с частотой FOSC/12. Машинный цикл имеет фиксированную длительность, равную 12 периодам тактового генератора (кварцевого резонатора). Функция счётчика заключается в подсчёте внешних событий, которые сопровождаются формированием импульсов на входах Т0 и Т1. Т/С в режиме счёта внешних событий считают переходы из 1 в 0 на соответствующих входах.
Каждый Т/С состоит из двух 8-разрядных регистров-счетчиков, которые можно рассматривать как универсальные последовательностные устройства, способные выполнять микрооперации параллельной записи (загрузки), параллельного чтения (выгрузки), микрооперации счёта. Обращение к Т/С осуществляется по адресам составляющих их регистров: TL0 (адрес 8A), TH0 (адрес 8C), TL1(адрес 8B), TH1 (адрес 8D).
8-разрядные регистры-счётчики, составляющие каждый Т/С, могут объединяться в единые 16-, 13-разрядные счётчики или работать независимо, взаимодействуя между собой для обеспечения предусмотренных пользователем режимов работы. Регистры-счётчики работают только в режиме суммирования. При переполнении (при переходе из состояния “все 1”в состояние “все 0”) устанавливается соответствующий флаг переполнения.
Управление Т/С осуществляется через 8-разрядные управляющие регистры TCON (адрес 88) и TMOD (адрес 89).
Определение флагов и управляющих битов регистраTCON
Имя регистра | TCON | |||||||
Адрес регистра | ||||||||
Бит регистра | TCON.7 | TCON.6 | TCON.5 | TCON.4 | TCON.3 | TCON.2 | TCON.1 | TCON.0 |
Имя флага или бита управления | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
Адрес флага или бита управления | 8F | 8E | 8D | 8C | 8B | 8A | ||
Управление | Т/С1 | Т/С 0 | По входу ![]() | По входу ![]() |
Описание флагов и управляющих битов в составе регистра
TCON:
TF1 (TF0) – | флаг переполнения Т/С1 (Т/С0), который может запрашивать прерывание; при подтверждении прерывания сбрасывается. |
TR1 (TR0) – | бит включения (запуска) Т/С1 (Т/С0); TR = 1 – Т/С включен, TR = 0 – выключен; бит устанавливается и сбрасывается из программы. |
IE1 (IE0) – | флаг, устанавливающийся при наличии запроса прерывания по входу ![]() ![]() |
IT1 (IT0) – | бит управления типом прерывания по входу ![]() ![]() |
Определение флагов и управляющих битов регистраTMOD
Имя регистра | TMOD | |||||||
Адрес регистра | ||||||||
Бит регистра | TMOD.7 | TMOD.6 | TMOD.5 | TMOD.4 | TMOD.3 | TMOD.2 | TMOD.1 | TMOD.0 |
Имя флага или бита управления | GATE1 | C/ ![]() | M1.1 | M0.1 | GATE0 | C/ ![]() | M1.0 | M0.0 |
Управление | Т/С1 | Т/С0 |
Описание флагов и управляющих битов в составе регистра TMOD:
M1, M0 – | двухразрядный код, определяющий номер рабочего режима (00, 01, 10, 11) Т/С; задается из программы. |
C/ ![]() | бит управления функцией Т/С: C/ ![]() ![]() |
GATE – | бит, разрешающий блокировку Т/С сигналом на внешнем выводе ![]() ![]() |