![]() ![]() ![]() ![]() |
|
|
![]() |
Т/С2 - это 16-битный таймер/счетчик, способный работать и как таймер, и как счетчик событий. Выбор производится битом СD2 в SFR T2CON . Т/С2 может работать в режимах защелки, автоперезагрузки (при этом направление счета может быть как вверх, так и вниз, т. е. на увеличение или уменьшение содержимого TL2, ТН2) и генератора скорости передачи в бодах. Режимы выбираются битами в T2CON .
Т/С2 состоит из двух 8-битных регистров: ТН2 и TL2. В режиме таймера его 16-разрядный регистр TL2, ТН2 инкрементируется в каждом машинном цикле. Поскольку цикл состоит из 12 периодов колебаний, скорость счета равна 1/12 тактовой частоты (т. е, частоты кварцевого резонатора fрез. По сути дела, в этом режиме таймер подсчитывает выполненные машинные циклы.
Символ | Позиция | Имя и назначение |
TF2 | Т2СОМ.7 | Флаг переполнения таймера/счетчика 2. Сбрасывается программным путем. Флаг не устанавливается, если либо RCLK, либо TCLK (см. ниже) установлены в 1 |
ЕХF2 | Т2СОN.6 | Внешний флаг таймера/счетчика 2. Устанавливается при защелкивании информации в таймерных регистрах или при перезагрузке, происходящих под воздействием перепада из 1 в 0 на выводе Р1.1 и при EXEN2 1. Сбрасывается только программным путем. При разрешенном прерывании от таймера/счетчика 2 вызывает подпрограмму обработки прерывания (если бит Т2МОD.0 = 0) |
RCLK | T2CON.5 | Выбор таймера/счетчика 2 для задания скорости работы приемника в режимах 1 и 3. При RCLK = 1 используется таймер/счетчик 2, при RCLK = 0 - таймер/счетчик 1 |
TCLK | Т2СОN.4 | Выбор таймера/счетчика 2 для задания скорости работы передатчика в режимах 1 и 2. При TCLK = 1 используется таймер/счетчик 2, при TCLK = 0 - таймер/счетчик 1 |
EXEN2 | T2CON.3 | Разрешение работы от внешнего сигнала. При EXEN2 = 1 перепад из 1 в 0 на выводе Р1.1 вызывает защелкивание информации или перезагрузку таймера/счетчика 2. При EXEN2 = 0 таймер/счетчик 2 игнорирует сигналы на выводе Р1.1 |
TR2 | T2CON.2 | Запуск/остановка таймера. TR2 = 1 запускает таймер/счетчик 2 |
С/Т2 | Т2СОN.1 | Бит выбора режима работы таймера/ счетчика 2. При установке бита в 1 функционирует как счетчик перепадов из 1 в 0 на выводе Р1.0. При установке бита в 0 работает таймер |
CP/RL2 | Т2СОN.0 | Выбор режима защелки/перезагрузки. Если бит установлен в 1, то при ЕХЕН2 = 1 перепад из 1 в Она Р1.1 вызовет защелкивание содержимого TL2. ТН2 a BCAP2L, RCAP2H. При нулевом бите таймер/счетчик 2 работает в режиме автоперезагрузки при переполнении счетчика или при обнаружении перепада из 1 в Она Р1.1 (последнее при EXEN2 = 1) |
После сброса все биты регистра T2ON устанавливаются в 0.
RCLK и TCLK | CP/RL2 | TR2 | Режим |
0 и 0 | и | 1 | 16-битный таймер/счетчик с перезагрузкой |
0 и 0 | 1 | 1 | 16-битный таймер/счетчик с защелкиванием информации |
0 и 1, 1 и 0. 1 и 1 | Любое | 1 | Генератор приемопередатчика |
Любое | Любое | 0 | Выключен |
В режиме счетчика регистр инкрементируется в ответ на перепад из 1 в 0 на входе Р1.0. Состояние этого входа анализируется в момент S5P2 каждого машинного цикла. Если анализ показывает наличие единичного уровня в одном цикле и нулевого в следующем, содержимое счетчика инкрементируется. Его новое значение появляется в регистре в момент S3P1 цикла, следующего за тем. в котором был обнаружен перепад. Так как обнаружение этого перепада занимает два машинных цикла (24 периода колебаний), максимальная скорость счета равна 1/24 частоты f рез. Чтобы микро-ЭВМ успела идентифицировать заданный уровень, он должен T/C2 - это 16-битный таймер или счетчик, при переполнении которого устанавливается бит TF2 в T2CON. Этот бит затем может использоваться для вызова прерывания. Если же EXEN2 = 1, то T/C2 продолжает делать то же самое, однако в этом случае перепад из 180 на выводе Р1.1 вызывает защелкивание текущих значений ТН2 и TL2 в RCAP2H и RCAP2L соответственно. Кроме того, этот перепад вызывает установку в 1 бита EXF2 в T2CON. Как и TF2, этот бит может вызвать прерывание. Режим защелки иллюстрирует рис. 1, содержимое счетчика растет вверх до 0FFFFH и затем устанавливает в 1 бит переполнения TF2. Переполнение вызывает также перезагрузку регистров Т/С2 16-битным значением в RCAP2H и RCAP2L, которое предварительно должно быть установлено программно. Если же EXEN2 = 1 16-битная; перезагрузка может произойти как от переполнения, так и от перепада из 1 в 0 на выводе Р1.1. Этот перепад также устанавливает в 1 бит ЕХР2. 0ба бита - ТР2 и ЕХР2 - могут вызвать прерывание, если оно разрешено.
Установка в 1 бита DCEN переводит Т/С2 в режим счета вверх или вниз, как показано на рис.
Режим автоперезагрузки.На рис. 1, б показана структурная схема T/C2, считающего в сторону увеличения при DCEN = 0. В этом режиме возможны два подрежима, выбираемых регистром T2MOD
Символ | Позиция | Имя и назначение |
T2MOD.7 | Не используется | |
T2MOD.6 | Не используется | |
T2MOD.5 | Не используется | |
T2MOD.4 | Не используется | |
T2MOD.3 | Не используется | |
T2MOD.2 | Не используется | |
Т20Е | T2MOD.1 | При установке бита на выводе Р1.1 формируется последовательность прямоугольных импульсов со скважностью 2 |
DCEN | T2MOD.0 | При установке бита таймер/счетчик 2 конфигурируется на счет как вверх, так и вниз, в зависимости от уровня сигнала на выводе Р1.1 |
Биты регистра Т2МOD не адресуются непосредственно командами работы с битами. После сброса Т2МОD.0 и Т2НOD.1 устанавливаются в 0, значение остальных бит не определено.
Символ | Позиция | Имя и назначение |
IРН.7 | Зарезервирован | |
IРН.6 | Зарезервирован | |
РТ2Н | IРН.5 | Старший бит приоритета таймера/счетчика 2 |
PSH | 1РН.4 | Старший бит приоритета приемопередатчика |
РТ1Н | 1РН.3 | Старший бит приоритета таймера/счетчика 1 |
РХ1Н | 1РН.2 | Старший бит приоритета внешнего прерывания 1 |
РТОН | 1РН.1 | Старший бит приоритета таймера/счетчика 0 |
РХОН | 1РН.О | Старший бит приоритета внешнего прерывания 0 |
После сброса младшие шесть бит устанавливаются в 0, состояние старших - не определено.