Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Организация таймеров/счетчиков.




Таймеры/счетчики (Т/C0 и T/C1) предназначены для подсчета внешних событий (выводы Т0 и Т1), организации программно-управляемых временных задержек и измерения временных интервалов. Таймер 1 может также служить генератором скорости передачи для последовательного порта.

Таймер/счетчик, работая в режиме таймера, ведет подсчет тактов деленной системной частоты (запрограммированный промежуток времени) и выдает запрос прерывания. Регистр таймера инкрементируется один раз в каждом периферийном цикле. Поскольку цикл состоит из 12 тактов, то скорость счета таймера равна FOSC/12.

В режиме счетчика регистр таймера ведет подсчет (предустановленного числа событий) отрицательных перепадов сигнала на внешнем входе и по окончании счета выдает запрос прерывания. Поскольку распознавание отрицательного перехода внешнего сигнала занимает 24 периода тактовой частоты (2 цикла), то максимальная скорость счета равна FOSC/24. Ограничений на рабочий цикл не накладывается, но чтобы гарантировать опрос конкретного уровня сигнала хотя бы один раз до момента его смены, он должен удерживаться на входе хотя бы в течение одного полного периферийного цикла.

Программное управление функционированием Т/С0 и Т/С1 обеспечивают SFR-регистры TMOD и TCON. Возможны 4 режима работы Т/С микроконтроллера, которые определяются установкой соответствующих битов регистра TMOD. Режимы 0 (13-битовый таймер), 1 (16-битовый таймер) и 2 (8-битовый таймер с автоперезагрузкой) полностью идентичны для обоих Т/С. В режиме 3 (два 8-битовых регистра) работает только Т/С0, T/C1 в этом режиме заблокирован ("лишен" бита управления запуском TR1 и флага переполнения TF1) и сохраняет содержимое своих регистров TL1 и TH1. Логика работы T/C0 и T/C1 в режимах 0,1,2,3 показана на рис.8. Путем соответствующего программирования регистров TMOD и TCON осуществляется включение и выключение таймеров/счетчиков, выбор источника их тактирования и установка определенного режима их работы. Функциональное назначение разрядов этих регистров следующее.

Регистр TMOD.

TMOD.7, TMOD.3 - Timer 1 Gate, Timer 0 Gate.

Если GATEx=1 и TRx=1, то включение и выключение соответствующего таймера осуществляется внешним сигналом на входе INTx. Когда GATEx=0, бит управления запуском TRx=1 разрешает прохождение входных сигналов от выбранного источника тактирования.

TMOD.6, TMOD.2 - Timer 1 Counter/Timer Select, Timer 0 Counter/Timer Select.

выбирает функцию таймера (подсчет импульсов деленной системной частоты); выбирает функцию счетчика (подсчет отрицательных переходов сигнала на внешнем выводе Тх).

TMOD.5, TMOD.4 - Timer 1 Mode Select,

TMOD.1, TMOD.0 - Timer 0 Mode Select.

Мх.1 Мх.0    
    - Mode 0: 8-битовый таймер/счетчик (ТНх) с 5-битовым прескалером (TLx);
    - Mode 1: 16-битовый таймер/счетчик;
    - Mode 2: 8-битовый автоперезагружаемый таймер/счетчик (TLx). Константа перезагрузки предварительно заносится в ТНх.
    - Mode 3: TL0 - это 8-битовый таймер/счетчик; ТН0 - 8-битовый таймер, использующий биты TR1 и TF1.

Рис.8. Логика работы T/C0 и Т/C1в режимах 0, 1, 2 и 3

Регистр TCON.

TCON.7, TCON.5 - Timer 1 Overflow Flag, Timer 0 Overflow Flag.

TFx устанавливается при переполнении соответствующего таймера (при переходе из FFH в 00Н); при разрешении прерывания от Т/Сх установка флага вызывает прерывание; очищается аппаратно, когда процессор переходит на подпрограмму обработки прерывания.

TCON.6, TCON.4 - Timer 1 Run Control Bit, Timer 0 Run Control Bit.

TRx устанавливается и сбрасывается программно при включении/выключении T/Cx.

TCON.3, TCON.1 - External Interrupt 1 Edge Flag, External Interrupt 0 Edge Flag.

IЕx устанавливается аппаратно, когда обнаружено внешнее прерывание (по фронту или уровню сигнала) на выводе INTx; сбрасывается аппаратно во время обработки прерывания только в том случае, когда прерывание было вызвано фронтом сигнала.

TCON.2, TCON.0 - Interrupt 1 Type Control Bit, Interrupt 0 Type Control Bit.

ITx определяет тип воспринимаемого сигнала на входе INTx; для выбора срабатывания по фронту сигнала (высокий и низкий) нужно установить этот бит, для срабатывания по уровню (активный низкий уровень) нужно сбросить этот бит.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...