Национальный технический университет
This presentation is the property of its rightful owner.
Sponsored Links
1 / 13

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


  • 132 Views
  • Uploaded on
  • Presentation posted in: General

Национальный технический университет «Харьковский политехнический институт». Кафедра «Промышленная и биомедицинская электроника». Практическое занятие по дисциплине «Микропроцессорная техника». Использование таймера для формирования временных интервалов. Б.А. Стысло. г. Харьков, 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6062415

Национальный технический университет

«Харьковский политехнический институт»

Кафедра «Промышленная и биомедицинская электроника»

Практическое занятие по дисциплине

«Микропроцессорная техника»

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

Б.А. Стысло

г. Харьков, 2014 г.


6062415

Назначение таймера

Встроенные таймеры чаще всего используются при измерениях различных временных параметров внешних по отношению к микроконтроллеру сигналов, для отработки временных задержек и для выполнения периодических операций.

Таймеры 8051-совместимых систем являются 16-разрядными и аппаратнореализованы как два 8-разрядных регистра, которые могут программироваться отдельно. Программный доступ к таймерам осуществляется посредством группы регистров специальных функций:

TH0- содержит старший байт таймера 0;

TL0 - содержит младший байт таймера 0;

TH1 - содержит старший байт таймера 1;

TL1 - содержит младший байт таймера 1;

TH2 - содержит старший байт таймера 2 (только для 8052);

TL2 - содержит младший байт таймера 2 (только для 8052);

TCON - регистр управления таймерами 0 и 1;

T2CON - регистр управления таймером 2 (только для 8052);

TMOD - регистр режимов работы таймеров.


6062415

Назначение таймера

В базовых моделях семейства имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий. Каждый из них состоит из двух 8-битных регистров TH0 (старший байт) и TL0 (младший байт) для таймера 0 или TH1 (старший байт) и TL1 (младший байт) для таймера 1.

В режиме таймера содержимое соответствующего таймера/счетчика инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов колебаний кварцевого резонатора.

В режиме счетчика содержимое соответствующего таймера/счетчика инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на вывод микроконтроллера T0 или T1. Так как на распознавание периода требуются два машинных цикла, максимальная частота подсчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входной сигнал должен удерживать значение 1, как минимум, в течение одного машинного цикла микро-ЭВМ.


6062415

Режим таймера синхронизации

При работе в режиме синхронизации16-разрядное содержимое регистров таймера THx и TLx (x = 0, 1, 2) инкрементируется в каждом машинном цикле (12 тактов).

Например, если тактовая частота, с которой работает микроконтроллер, равна 11,059 МГц (стандартная частота для большинства микроконтроллеров), то таймер будет работать на частоте, равной 11,059 МГц / 12 = 921583 Гц.


6062415

Режим таймера синхронизации

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


6062415

СТРУКТУРАУПРАВЛЯЮЩИХ РЕГИСТРОВ ТАЙМЕРОВ

GATEx – таймер(х) работает только при низком уровне сигнала на выводе Р3.2 (GATEx=1)

С/Tx– таймер (х) работает в режиме счетчика событий (перепадов 1-0) на выводе Тх


6062415

СТРУКТУРАУПРАВЛЯЮЩИХ РЕГИСТРОВ ТАЙМЕРОВ

Управление запуском и остановкой таймеров осуществляется посредством установки/сброса соответствующих битов в регистре управления TCON

TFx – флаг переполнения таймера (х)

TRx – бит запуска (1) / остановки (0) таймера (х)


6062415

РЕАЛИЗАЦИЯ ЗАДАЧ

С ИСПОЛЬЗОВАНИЕМ ТАЙМЕРА


6062415

ЗАДАЧА №0

Рассчитать время, за которое в таймере 0 в режиме 16-битного таймера произойдет переполнение. Начальное значение счетных регистров:TH0=0; TL0=0; Тактовая частота контроллера: 12 МГц.

РЕШЕНИЕ:

Значение счетных регистров таймера инкрементируется 12000000/12=1000000 раз в секунду.

Переполнение таймера произойдет через: 65536/1000000 = 0,065536 сек.


6062415

ЗАДАЧА №1

Выполнить генерацию на выводе Р3.0 меандра с частотой 1Гц.

Для генерации использовать таймер 0. Тактовая частота контроллера: 12 МГц.


6062415

ЗАДАЧА №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


6062415

ЗАДАЧА №1

РЕШЕНИЕ:

Поскольку период перезагрузки таймера изменился с 0,065536 сек до 0,01 сек, для формирования 0,5 сек. Задержки потребуется 50 перезагрузок таймера:


6062415

The End.

Thank you for your attention!


  • Login