Разблокировка Quanta 1K6E
Разблокировка Quanta 1K6E


1 VISA VIRTUAL (RUS BANK)
1 VISA VIRTUAL (RUS BANK)


Разблокировка Билайн Смарт
Разблокировка Билайн Смарт


В начало

Лабораторная работа.

Изучение режимов работы таймера-счетчика в МК

 

Цель работы:

1.    Ознакомление с некоторыми применениями таймера/счетчика в микроконтроллере.

2.    Изучение вопросов программирования и применения таймера/счетчика в основных режимах его работы.

Общие сведения

 

В микроконтроллере МК8051 в качестве счетчиков и таймеров могут быть использованы два 16-битных таймера/счетчика Т/С0 и Т/С1. В режиме таймера содержимое Т/С инкрементируется в каждом машинном цикле, состоящем из 12 периодов кварцевого резонатора. В режиме счетчика содержимое Т/С инкрементируется под воздействием внешнего сигнала на входах Т0,Т1 при переходе из 1 в 0. Так как для распознавания перехода требуется два машинных цикла, то максимальная частота подсчета входных сигналов составляет 1/24 частоты резонатора. На длительность входных сигналов ограничений сверху нет.

Управление работой и взаимодействием Т/С с подсистемой прерывания осуществляется посредством двух регистров:

-         регистра режима работы TMOD;

-         регистра управления/состояния CON.

Назначение отдельных  разрядов  регистра  TMOD  приведено на рис.3.1, а регистра TCON - на рис.3.3.  Биты 7-4 и 3-0  используются для определения режимов работы Т/С1 и Т/С0 соответственно.

 

 

 

 

Рис.3.1. Формат регистра режима TMOD

 

 

GATE

Управление блокировкой Т/С1 /D7/ и Т/С0 /D3/. Если бит установлен в 1, то Т/С1(0) разрешен, пока на входе INT1(0) высокий уровень и бит управления TR1(0) установлен. Если бит сброшен, то Т/С1(0) разрешается при установке бита TR в 1.

C/T

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

M1

M0

Определяют режимы работы Т/С1 (Т/С0).

 

 

 

0

0

Режим 0. Таймер TL работает как 5-битный предделитель, а TH – как 8-битный делитель. Таким образом, разрядность Т/С в этом режиме равна 13.

0

1

Режим 1. В этом режиме Т/С представляет собой 16-битный таймер/счетчик. TH и TL включены последовательно.

1

0

Режим 2. 8-битный автоперезагружаемый Т/С. TH хранит значение, которое перезагружается в TL каждый раз по переполнению.

1

1

(Т/С1). Таймер/счетчик 1 останавливается.

 

Режим 0. Работа Т/С в этом режиме показана на рис.3.2.а на примере Т/С0. В этом режиме разрядность Т/С - 13 бит, при переходе Т/С из состояния "все единицы" в состояние "все нули" устанавливается флаг прерывания TF0. Входной синхросигнал таймера разрешен (поступает на вход Т/С), когда управляющий бит GATE (блокировка) равен 0, либо на внешний вход запроса прерывания INT0 поступает уровень 1. Необходимо отметить, что установка бита GATE в 1 позволяет использовать таймер для измерения длительности импульсного сигнала, поступающего на вход INT0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 3.2.а Логика работы TC0 в режиме 0

 

Режим 1. Отличается от режима 0 только тем, что разрядность Т/С равна 16. Работа Т/С0 в этом режиме показана на рис.3.2.б.

 

 

 


               

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.2.б Логика работы TC0 в режиме 1

 

 

Режим 2. В режиме 2 переполнение (переход из состояния 11...1 в 00...0) 8-битного счетчика TL0 приводит к формированию флажка TF0 и автоматической загрузке в TL0 байта из регистра TH0 Т/С0, заданного предварительно программным способом. При перезагрузке содержимое TH0 остается неизменным. В этом режиме T/C0 и T/C1 функционируют одинаковым образом. Работа Т/С0 показана на рис.3.2.в.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


                                - 28 -

 

 

 

 

 

 

 

               Рис. 3.2.в Логика работы TC0 в режиме 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 3.2.г Логика работы TC0 в режиме 3

 

Режим 3. В режиме 3 T/C1 и T/C0 функционируют различно. Т/С1 сохраняет свое текущее содержимое, т.е. это аналогично сбросу управляющего бита TR1 регистра TCON в 0. Работа Т/С0 в режиме 3 показана на рис.3.2.г. Счетчики TL0 и TH0 работают как два независимых 8-битных счетчика/таймера.

Работу TH0, который может выполнять только функции таймера, определяет только управляющий бит TR1. При этом TH0 использует флаг переполнения TF1.

Работу TL0 определяют управляющие биты Т/С0 (C/T, GATE, TR0), входной сигнал INT0 и флаг переполнения TF0.

 

 

D7

D6

D5

D4

D3

D2

D1

D0

 

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TCON

 

     Рис.3.3. Формат регистра управления TCON

 

 

Символ

Позиция

Функция

TF1

TCON.7

Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении Т/С1. Сбрасывается при обслуживании прерывания аппаратно.

TR1

TCON.6

Бит управления таймера 1. Устанавливается сбрасывается программой для пуска/останова.

TF0

TCON.5

Флаг переполнения таймера. Устанавливается аппаратно, сбрасывается при обработке прерывания.

TR0

TCON.4

Бит управления таймера 0. Устанавливается/сбрасывается программой пуска/останова Т/С.

IE1

TCON.3

Флаг фронта прерывания 1. Устанавливается аппаратно при обнаружении среза внешнего сигнала прерывания INT1.

IT1

TCON.2

Бит управления типом прерывания 1.Устанавливается/сбрасывается программно для спецификации запроса INT1 (срез/низкий уровень).

IE0

TCON.1

Флаг фронта прерывания 0. Устанавливается по срезу сигнала INT0, сбрасывается при обслуживании прерывания.

IT0

TCON.0

Бит управления типом прерывания 0. Устанавливается/сбрасывается программно для спецификации запроса INT0 (срез/низкий уровень).

 

Задания

 

Вывод результата эксперимента осуществляется через порт P1 контроллера.

1.    Разработать программу аппаратно-программной задержки, обеспечивающую наблюдение эффекта "Бегущего огня" на индикаторных светодиодах. Вид и частота "бегущего огня" определены вариантом задания (номер бригады).

Совместно с таймером/счетчиком при выполнении лабораторной работы необходимо использовать подпрограмму задержки. Сигнал прерывания TF0 из С/Т0 вызывает модуль программной задержки, реализуемой с использованием соответствующего кода, загружаемого в регистр МК и декрементируемого после очередного сигнала прерывания из Т/С0.

В режиме реального времени реализация задержки только посредством таймера при частоте тактирования микроконтроллера 6Mгц для 16-битного Т/С составляет около 130 мс, что недостаточно для визуального наблюдения за "бегущим огнем", используемым в качестве индикатора результатов эксперимента.

      В режиме моделирования процессы в ОМК идут медленнее в сотни раз. Поэтому настройка C/T0 иная, чем в режиме реального времени

В соответствии с заданием определить длительность и количество вызовов подпрограммы задержки для режимов реального времени и моделирования.

Возврат из подпрограммы программной задержки обеспечивается командой RETI, восстанавливающей содержимое программного счетчика РС из стека. В стек РС загружается автоматически по аппаратно сформированному коду команды LCALL. В РС при прерывании от Т/С0 загружается код адреса 000BH, в котором находится команда перехода к подпрограмме обработки соответствующего прерывания.

А. Разрешение счета обеспечивается битом GATE, устанавливаемым в регистре TMOD.

В. Разрешение счета обеспечивается внешним сигналом, поступающим на вход прерывания INT0 (в макете обозначен IO).

 

 

Вариант

задания

 

Вид бегущего огня

Время свечения

светодиода/СИД/

/в секундах/

1

Слева-направо; горит 1 СИД

0,5

2

Слева-направо; горят 2 СИД

1,0

3

Справо-налево; горит 1 СИД

1,5

4

Справо-налево; горят 2 СИД

2,0

5

Слева-направо; горят 4 СИД

0,5

6

Справо-налево; горят 4 СИД

1,0

7

Сходящийся к центру; горят 2 СИД

1,5

8

Расходящийся от центра; горят 2 СИД

2,0

 

 

2.    Разработать программу подсчета числа внешних сигналов /событий/. Источником сигналов является внешний сигнал, поступающий на вход Т0, режим работы Т/С0 - режим 1.

Результатом выполнения программы является код числа сигналов, выведенный на СИД.

Построить программу подсчета внешних сигналов для Т/С0 в режиме 2. Для наблюдения выполнения программы загрузить в TL0 и TH0 одинаковые коды, например 0F8H.

Изучить особенность работы Т/С0 в режиме 2.

Управление прерыванием (разрешить/запретить) от Т/С0 можно осуществить сбросом бита IE.7 или бита IE.1 в регистре масок прерывания IE.

 

Содержание отчета

 

1.    Представить структурные схемы работы таймера/счетчика для изучаемых режимов.

2.    Представить алгоритмы и программы для выполненных заданий.

3.    Сделать  выводы  об  эффективности  использования  таймера/счетчика в рассматриваемых экспериментах.