1 / 13

Использование таймера для формирования временных интервалов

Национальный технический университет «Харьковский политехнический институт». Кафедра «Промышленная и биомедицинская электроника». Практическое занятие по дисциплине «Микропроцессорная техника». Использование таймера для формирования временных интервалов. Б.А. Стысло. г. Харьков, 2014 г.

Download Presentation

Использование таймера для формирования временных интервалов

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Национальный технический университет «Харьковский политехнический институт» Кафедра «Промышленная и биомедицинская электроника» Практическое занятие по дисциплине «Микропроцессорная техника» Использование таймера для формирования временных интервалов Б.А. Стысло г. Харьков, 2014 г.

  2. Назначение таймера Встроенные таймеры чаще всего используются при измерениях различных временных параметров внешних по отношению к микроконтроллеру сигналов, для отработки временных задержек и для выполнения периодических операций. Таймеры 8051-совместимых систем являются 16-разрядными и аппаратнореализованы как два 8-разрядных регистра, которые могут программироваться отдельно. Программный доступ к таймерам осуществляется посредством группы регистров специальных функций: TH0- содержит старший байт таймера 0; TL0 - содержит младший байт таймера 0; TH1 - содержит старший байт таймера 1; TL1 - содержит младший байт таймера 1; TH2 - содержит старший байт таймера 2 (только для 8052); TL2 - содержит младший байт таймера 2 (только для 8052); TCON - регистр управления таймерами 0 и 1; T2CON - регистр управления таймером 2 (только для 8052); TMOD - регистр режимов работы таймеров.

  3. Назначение таймера В базовых моделях семейства имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. Каждый из них состоит из двух 8-битных регистров TH0 (старший байт) и TL0 (младший байт) для таймера 0 или TH1 (старший байт) и TL1 (младший байт) для таймера 1. В режиме таймера содержимое соответствующего таймера/счетчика инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов колебаний кварцевого резонатора. В режиме счетчика содержимое соответствующего таймера/счетчика инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на вывод микроконтроллера T0 или T1. Так как на распознавание периода требуются два машинных цикла, максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входной сигнал должен удерживать значение 1, как минимум, в течение одного машинного цикла микро-ЭВМ.

  4. Режим таймера синхронизации При работе в режиме синхронизации16-разрядное содержимое регистров таймера THx и TLx (x = 0, 1, 2) инкрементируется в каждом машинном цикле (12 тактов). Например, если тактовая частота, с которой работает микроконтроллер, равна 11,059 МГц (стандартная частота для большинства микроконтроллеров), то таймер будет работать на частоте, равной 11,059 МГц / 12 = 921583 Гц.

  5. Режим таймера синхронизации Поскольку таймер считает вперед, то наступит момент, когда оба 8-разрядных регистра будут содержать шестнадцатеричные значения 0хFF или 65535. В следующем машинном цикле значения регистров THx и TLx будут обнулены, после чего счет продолжится с 0. В этом случае говорят о переполнении таймера. Ситуация переполнения очень часто используется в программах, тем более что момент переполнения фиксируется путем установки определенных битов (они имеют обозначения TFx, x = 0, 1, 2), называемых битами переполнения, в регистре управления и контроля таймеров (регистр TCON).

  6. СТРУКТУРАУПРАВЛЯЮЩИХ РЕГИСТРОВ ТАЙМЕРОВ GATEx – таймер(х) работает только при низком уровне сигнала на выводе Р3.2 (GATEx=1) С/Tx– таймер (х) работает в режиме счетчика событий (перепадов 1-0) на выводе Тх

  7. СТРУКТУРАУПРАВЛЯЮЩИХ РЕГИСТРОВ ТАЙМЕРОВ Управление запуском и остановкой таймеров осуществляется посредством установки/сброса соответствующих битов в регистре управления TCON TFx – флаг переполнения таймера (х) TRx – бит запуска (1) / остановки (0) таймера (х)

  8. РЕАЛИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ТАЙМЕРА

  9. ЗАДАЧА №0 Рассчитать время, за которое в таймере 0 в режиме 16-битного таймера произойдет переполнение. Начальное значение счетных регистров:TH0=0; TL0=0; Тактовая частота контроллера: 12 МГц. РЕШЕНИЕ: Значение счетных регистров таймера инкрементируется 12000000/12=1000000 раз в секунду. Переполнение таймера произойдет через: 65536/1000000 = 0,065536 сек.

  10. ЗАДАЧА №1 Выполнить генерацию на выводе Р3.0 меандра с частотой 1Гц. Для генерации использовать таймер 0. Тактовая частота контроллера: 12 МГц.

  11. ЗАДАЧА №1 РЕШЕНИЕ: Поскольку при тактовой частоте переполнение таймера возникает за 0,065536 сек. (см. задачу №0), по прошествии временной задержки длительностью 0,5 сек. Таймер успеет перезагрузиться 0,5/0,065536= 7,63 раза. В данном случае, с некоторой потерей точности число перезагрузок равно 8. Таким образом, бит Р3.0 следует переключать после каждых 8 перезагрузок таймера 0. Для достижения более высокой точности, изменим период перезагрузки таймера на 0,01 сек., предварительно поместив в счетный регистр число 65536-(65536 х 0,01 /0,065536) = 55536= 0xD8F0 TH=0xD8; TL=0xF0

  12. ЗАДАЧА №1 РЕШЕНИЕ: Поскольку период перезагрузки таймера изменился с 0,065536 сек до 0,01 сек, для формирования 0,5 сек. Задержки потребуется 50 перезагрузок таймера:

  13. The End. Thank you for your attention!

More Related