Организация таймеров/счетчиков.
⇐ ПредыдущаяСтр 31 из 31 Таймеры/счетчики (Т/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.
Рис.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; для выбора срабатывания по фронту сигнала (высокий и низкий) нужно установить этот бит, для срабатывания по уровню (активный низкий уровень) нужно сбросить этот бит.
Читайте также: I. Организация работы. Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|