Режимы работы таймера 2
Таблица 2.7
RCLK+TCLK | CP/ RL2 | Т2*0Е | TR2 | Режим |
16-битный, автоперезагрузка | ||||
16-битный, захват | ||||
Х | Х | Генератор скорости передачи | ||
Х | Генератор импульсов | |||
Х | Х | Таймер выключен |
* Присутствует только в 87C5IFC.
В 87C5IGB вывод Т2 имеет еще одну альтернативную функцию. Он может генерировать импульсы с программируемой частотой.
Режим захвата
В режиме захвата (Capture mode) есть две опции, выбираемые битом EXEN2 в регистре T2CON. Если бит EXEN2 - 0, Таймер 2 является 16-битным таймером или счетчиком, который при переполнении устанавливает бит TF2 в регистре T2CON. Этот бит может использоваться для генерации прерывания Таймера 2. Если бит EXEN2 = 1, то помимо всего сказанного, переход уровня сигнала на внешнем выводе Т2ЕХ из "1" в "0" вызывает запись текущего значения регистров Таймера 2 (ТН2 и ТL2) в регистры RCAP2H и RCAP2L соответственно. Кроме того, переход на выводе Т2ЕХ устанавливает бит EXF2. Бит EXF2 может генерировать прерывание и устанавливать бит ТF2. Это иллюстрируетрис.2.28, а.
а) режим захвата
б) режим перезагрузки (DCEN = 0)
в) режим перезагрузки (DCEN = 1)
г) режим Генератора частоты
Рис. 2.28. Таймер 2 в различных режимах
Режим автоперезагрузки(счет в прямом и в обратном направлении)
В 16-битном режиме автоперезагрузки (Auto-reload Mode), Таймер 2 может быть запрограммирован для счета в прямом или в обратном "up or down" направлении. Функция "up or down" выбирается битом DCEN (Down Counter Enable) в регистре T2M0D. После сброса устройства бит DCEN сбрасывается, поэтому Таймер 2 по умолчанию настраивается для счета только в прямом направлении. Когда бит DCEN установлен, направлением счета Таймера 2 можно управлять уровнем сигнала на выводе Т2EХ.
В этом режиме, при DCEN = 0, есть две опции, выбираемые битом EXEN2 в регистреT2CON. Если бит EXEN2 = 0, Таймер 2 считает в прямом направлении до 0FFFFH и затем устанавливает бит переполнения TF2. Переполнение также вызывает перезагрузку регистров Таймера 16-битным значением из регистров RСАР2Н и RCAP2L. Значения в регистрах RCAP2H и RCAP2L предварительно инициализируется программой. Если бит EXEN2 = 1, 16-битовая перезагрузка может быть вызвана либо переполнением, либо переходом уровня сигнала из "1" в "0" на выводе Т2ЕХ. Этот переход устанавливает бит EXF2. Оба бита, TF2 и EXF2, могут генерировать прерывание Таймера 2, если оно разрешено. Рис.2-28. б показывает Таймер 2 автоматически считающего в прямом направлении, когда DCEN сброшен.
Установка бита DCEN разрешает функцию "up или down", как показано на Рис.2-28, в. В этом случае вывод Т2EX управляет направлением счета. Логическая "1" на выводе Т2ЕХ делает Таймер 2 счетчиком в прямом направлении. Таймер переполняется когда его значение превышает 0FFFFН и устанавливает бит TF2, который может генерировать прерывание, если оно разрешено. Переполнение также вызывает перезагрузку 16-битного значения из регистров RCAP2H и RCAP2L в регистры таймера ТН2 и TL2 соответственно. Логический "0" на выводе Т2ЕХ делает Таймер 2 счетчиком в обратном направлении. Теперь таймер переполняется когда значение в регистрах TH2 и TL2 равно значению, хранимому в регистрах RCAP2H и RCAP2L Переполнение устанавливает бит TF2 и вызывает загрузку значения 0FFFFH в регистры таймера.
Бит EXF2 переключается каждый раз, когда Таймер 2 переполняется. Этот бит может использоваться как 17-й бит счетного значения, если необходимо. В этом режиме бит EXF2 не генерирует прерывание.
Генерирование импульсов
87C51GB имеет новую возможность. Вывод Pl.0 может генерировать импульсы с 50%-м коэффициентом заполнения. Этот вывод кроме функции вывода порта I/O имеет две альтернативные функции. Он может быть запрограммирован (1) как вход внешних счетных импульсов для Таймера/Счетчика 2 или (2) для генерирования импульсов с 50%-м коэффициентом заполнения и частотой от 61Гц до 4МГц, при тактовой частоте 16МГц. Рис.2-28,г объясняет работу таймера в этом режиме. Чтобы Таймер/Счетчик 2 работал как генератор импульсов, бит С_Т2(в регистре Т2СОN) должен быть сброшен, а бит Т2ОЕ (в регистре T2M0D) установлен Бит TR2 (а регистре T2CON) также должен быть установлен для запуска таймера.
Частота выходных импульсов зависит от частоты осциллятора и перезагружаемого значения и регистрах RCAP2H и RCAP2L, как показано в соотношении:
Частота импульсов =
В режиме генератора переполнение таймера не генерирует прерывание. Это похоже на случай, когда Таймер 2 используется для управления скоростью передачи последовательного порта. Можно использовать Таймер 2 для управления скоростью передачи последовательного порта и как генератор импульсов одновременно. Заметьте, что скорость передачи данных и частота выходных импульсов при этом, будет одной и той же.
|
65-4 | P0.0/AD0 - P0.7/AD7 |
P0.4/SEPCLK | |
P4.1/SEPIO | |
Р4.2/ЕС11 | |
8-12 | Р4.3/С1ЕХ0 - Р4.7/С1ЕХ7 |
Vcc | |
14-15 | Р5.0-Р5.1 |
16-20 | P5.2/INT2 - P5.6/INT6 |
Р5.7 | |
Р1.0/Т2 | |
Р1.1/Т2ЕХ | |
Р1.2/ЕС1 | |
25-29 | Р1.3/СЕХ0- Р1.7/СЕХ4 |
RESET | |
РЗ.0/RxD | |
P3.1/TxD | |
33-34 | P3.2/INT0 - P3.3/INT1 |
RST: Вход сброса. Низкий уровень на данном входе в течение 2-х машинных циклов (при работающем тактовом генераторе) приводит к сбросу микроконтроллера. Выводы портов будут приведены в исходное состояние в случае, когда напряжение на входе RST достигнет VIL. Процедура сброса длится до 5 машинных циклов (60 периодов тактового генератора). Отметим, что полярность сигнала сброса микросхем 8XC51GB обратная по отношению к остальным кристаллам. Внутренний резистор подключен между данным входом и шиной питания. Внешний конденсатор RC-цепочки подсоединяется между выводом RST и Vss.
ALE/PROG: Назначение вывода полностью аналогично соответствующим выводам прочих кристаллов семейства. Если необходимо, выдача сигнала ALE может быть запрещена путём установки бита 0 SFR-регистра по адресу 8Eh. Тогда ALE выдаётся только в момент действия инструкций MOVX или MOVC, а в остальных случаях на этом выходе устанавливается высокий уровень. При выборке кода из внутренней памяти данных, данное действие не производит никакого эффекта.
EA/Vpp: Для разрешения выборки команд из внешней памяти в пределах адресов 0000h - FFFFh, этот вывод должен подключаться к Vss. Выборка команд из внутренней памяти будет происходить при подключении вывода к Vсc. Однако в случае, если запрограммирован любой из битов секретности, выборка команд из внешней памяти программ производиться не будет и уровень ЕА будет устанавливаться во время действия сигнала RST на внутренней защёлке. Этот вывод предназначен также и для подачи на него напряжения программирования (Vpp= 12.75B) при программировании внутреннего ППЗУ микросхем 87C51GB.