Таймеры счетчики семейства MCS-251

Микроконтроллеры 8XC251SB имеют три 16-разрядных таймера-счетчика. Каждый из них независимо может быть запрограммирован на работу в качестве либо таймера (отсчет времени через подсчет внутренних импульсов синхронизации), либо счетчика (подсчет событий на внешнем входе). В обоих случаях переход через заранее установленное значение приводит к формированию запроса прерывания.

Каждый таймер-счетчик состоит из двух 8-разрядных регистров TLx, ТНх (х * 0,1,2), включенных последовательно. Эти регистры, а также регистры управления и регистры захвата входят в набор регистров спецфункций.

Бит управления С/Тх# определяет режим работы (таймер или счетчик), а бит TRx запускает таймер-счетчик. После переполнения регистра TLx начинает наращиваться регистр ТНх, а когда переполняется и он, устанавливается бит запроса прерывания TFx. При установке бита TRx регистры TLx и ТНх не очищаются. Эти регистры всегда доступны как для чтения, так и для записи. Таймеры 0 и 1 могут работать от сигналов на входах INTx#, что упрощает измерение длительности импульса.

В режиме таймера (С/Тх# в 0) регистр TLx наращивается в каждом цикле обмена, т.е. скорость счета составляет Fosc/12. Исключение составляет таймер 2 и режим выдачи частоты наружу, когда таймер инкрементируется с частотой Fost/2.

В режиме счетчика (С/Тх# = 1) регистр TLx наращивается при переходе сигнала на входе Тх из «1» в «0». Линии портов опрашиваются во время фазы S5P2 каждого цикла обмена. Новое значение в регистре появляется во время фазы S3P1 цикла, следующего за тем, в котором был обнаружен переход. Поскольку на распознавание перехода уходит 12 машинных тактов, максимальная частота счета составляет Fosc/24. Ограничений на скважность входного сигнала нет, но для уверенной фиксации перепада сигнал должен удерживаться по крайней мере один цикл обмена.

Счетчики-таймеры 0 и 1 обслуживаются регистром режима TMOD и регистром управления TCON.

Comments are closed.