Описание периферийных устройств

Таймеры/счётчики: содержит три 16-ти разрядных счетчика таймера: Таймер0, Таймер1 и Таймер2. Каждый таймер/счетчик состоит из двух 8-ми разрядных регистров THx и TLx (х = 0, 1 и 2). Все три можно сконфигурировать как таймеры, либо как счетчики событий.

В режиме «Таймера» регистр TLx инкрементируется в каждом машинном цикле. В этом режиме работу можно рассматривать как счет машинных циклов. Так как машинный цикл состоит из 12 периодов осциллятора, то максимальная скорость счета составляет 1/12 от частоты осциллятора. В режиме «Счетчика» регистр TLx инкреминтируется по перепаду 1 - 0 на соответствующем контакте микросхемы Т0, Т1 или Т2.

Счетчики/таймеры могут работать в 3-х основных режимах:

Оставлен для совместимости с 48-й серией, на таймер поступает OSC/32, разрядность 13 бит.

Работает как 16-ти разрядный счетчик. При переполнении состояние изменяется с FFFFh на 0000h. При необходимости изменения коэффициента деления после переполнения в каждом такте необходимо записывать заданную константу.

Счетчик работает как 8-ми разрядный, причем используется младшая часть - TL. В старшей части (TH) находится делитель, который по переполнению TL автоматически перегружается из TH в TL.

Режимы работы таймеров Таймер0 и Таймер1 задают два регистра специальных функций (SFR - Special Function Register): регистр режима - TMOD, расположенный по адресу 89h в регистровой памяти и регистр управления таймерами и внешними прерываниями - TCON (88h). Для управления работой таймера Таймер2 служит регистр T2CON.

Регистр TMOD условно разбит на две половины: первая его часть отвечает за Таймер0, а вторая - за Таймер1.

Распределение битов регистра TMOD следующее:

Бит0 - (М0) - Младший байт поля управления режимом;

Бит1 - (М1) - Старший байт поля управления режимом;

Бит2 - (С/Т0) - Выбор функции таймера или счетчика для Таймера0: