Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_v3.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1.02 Mб
Скачать

26. Организация и принцип работы программируемого таймера.

ADUC812 имеет три 16-битныхтаймера/счетчика общего назначения: Таймер 0, Таймер 1, Таймер 2. Каждый таймер состоит из двух 8-битных регистров THX и TLX. Все три таймера могут быть настроены на работу в режимах “таймер” или "счетчик". В режиме "таймер" регистр инкрементируется каждый машинный цикл. То есть можно рассматривать это как подсчет машинных циклов. Так как машинный цикл состоит из 12 перепадов напряжения на тактовом входе контроллера, частота инкрементирования таймера в 12 раз меньше тактовой частоты контроллера. В режиме "счетчик" регистр инкрементируется по перепаду "1"-"0" на соответствующем входе T0, T1 или Т2. В этом режиме внешний вывод опрашивается в S5P2 каждого машинного цикла. Когда опрос показывает высокий уровень в одном цикле и низкий уровень в следующем, счетчик увеличивается на 1. Новое значение появляется в счетчике в S3P1 машинного цикла следующего за тем, в котором был обнаружен перепад. Так как требуется два машинных цикла на обнаружение перепада "1"-"0", максимальная частота инкремента счетчика равна 1/24 тактовой частоты контроллера. Нет никаких ограничений на поведение сигнала на входе, но для обеспечения того, чтобы он был хотя бы раз опрошен, необходимо продержать его значение не менее одного машинного цикла. Для конфигурации контроля Таймеров используются 3 SFR регистра: TMOD и TCON для управления таймерами 1 и 0, T2CON для управления таймером 2.

Описание битов регистра

7 GATE Управление стробированием Таймера 1

Устанавливается программно и разрешает работу

таймера/счетчика 1, только тогда, когда сигнал INT1 сохраняет

высокий уровень и установлен бит TR1 в регистре TCON.

Сбрасывается программно и разрешает работу таймера 1 только

при установленном бите TR1.

6 C/T Выбор режима “таймер”/ “счетчик” для Таймера 1

0 работа в режиме “таймер”

1 работа в режиме “счетчик”

5 M1 Устанавливают режим функционирования Таймера 1

4 M0 M1 M0

0 0 13 битный таймер/счетчик

0 1 16 битный таймер/счетчик

1 0 8-битный режим с автопрезагрузкой

1 1 таймер/счетчик 1 остановлен

3 GATE Управление стробированием.

Устанавливается программно и разрешает работу

таймера/счетчика 0, только тогда, когда сигнал INT0 сохраняет

высокий уровень и установлен бит TR0 в регистре TCON.

Сбрасывается программно и разрешает работу таймера 0 только

при установленном бите TR0.

2 C/T Выбор режима “таймер”/ “счетчик” для Таймера 0

0 работа в режиме “таймер”

1 работа в режиме “сетчик”

-3-

Кафедра вычислительной техники СПб ГИТМО(ТУ)

1 M1 Устанавливают режим функционирования Таймера 0

0 M0 M1 M0

1 0 13 битный таймер/счетчик

2 1 16 битный таймер/счетчик

3 0 8-битный режим с автопрезагрузкой

1 таймер/счетчик 1 остановлен

1

Регистр ТCON (SFR адрес –88h)

Описание битов регистра (старших четырех, младшие в управлении таймером не

участвуют)

7 TF1 Бит переполнения таймера 1.

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

Сбрасывается также аппаратно при переходе процессора на

процедуру обработки прерывания.

6 TR1 Бит запуска таймера 1.

Устанавливается программно для запуска таймера 1

Программно сбрасывается для остановки таймера 1

7 TF0 Бит переполнения таймера 0.

Устанавливается аппаратно при переполнении таймера/счетчика 0.

Сбрасывается также аппаратно при переходе процессора на

процедуру обработки прерывания.

4 TR0 Бит запуска таймера 0.

Устанавливается программно для запуска таймера 0

Программно сбрасывается для остановки таймера 0

Регистры данных Таймеров 0 и 1

Каждый таймер состоит из двух 8 битных регистров. В зависимости от режима работы

они могут использоваться как независимые регистры, или как один объединенный 16

битный регистр.

TH0 и TH0 (SFR адреса 8Ch и 8Ah) –старший и младший байты Таймера 0

TH1 и TH1 (SFR адреса 8Dh и 8Bh) –старший и младший байты Таймера 1

Режим 0 (13-битныйТаймер/Счетчик)

Режим 0 образует 8 битный таймер/счетчик с предварительным делителем (на 32) на входе. Регистр таймера конфигурируется как 13 битный регистр Когда регистр таймера переполняется (переходит из состояния все ‘1’ ко всем ‘0’), то выставляется флаг переполнения таймера TFx, который может использоваться для организации запроса на прерывание. Счет разрешается при TRх="1" и либо GATE="0", либо INTх="1". Установка GATE=1приводитктому, что работа таймера контролируется внешним входом INTx, что позволяет измерять длительность импульса. 13-битный регистр состоит из всех восьми бит THx и младших пяти регистра TLx. Старшие три бита TLx не определены и должны быть игнорированы. Установка бита запуска TRx не очищает регистр.

Режим 1 (16-битныйТаймер/Счетчик)

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

В режиме 2 таймер представляет собой 8-битныйрегистрсавтоматическойперезагрузкой. Когда TLх переполняется, не только устанавливается флаг TFх, но в TLх загружается значение THх, записанное туда ранее программно. Значение THх при перезагрузке сохраняется.

Таймер 2

Регистр T2CON (SFR адрес-С8h)

Описание битов регистра:

7 TF2 Флаг переполнения Таймера 2

Устанавливается аппаратно в случае переполнения Таймера 2. TF2

не устанавливается когда RCLK, либо TCLK равны ‘1’

Сбрасывается программно.

6 EXF2 Внешний флаг Таймера 2

Устанавливается аппаратно когда происходит захват или перегрузка

по отрицательному переходу на входе T2EX, при этом EXEN2=1

5 RCLK Выбор таймера для тактирования приема по последовательному

каналу

1 разрешает тактирование приема данных по последовательному

каналу в режимах 1 и 3, Таймером 2

0 разрешает тактирование приема данных по последовательному

каналу в режимах 1 и 3, Таймером 1

4 TCLK Выбор таймера для тактирования передачи по последовательному

каналу

1 разрешает тактирование передачи данных по

последовательному каналу в режимах 1 и 3, Таймером 2

-6-

Кафедра вычислительной техники СПб ГИТМО(ТУ)

0 разрешает тактирование передачи данных по

каналу в режимах 1 и 3, Таймером 1

последовательному

3 EXEN2 Флаг разрешения внешнего управления.

Устанавливается пользователем для разрешения захвата или

перегрузки по отрицательному переходу на входе T2EX, если таймер

2 не используется для тактирования последовательного порта.

Сбрасывается пользователем, для игнорирования сигналов на T2EX.

2 TR2 Бит запуска Таймера 2

Устанавливается программно для запуска таймера 2

Программно сбрасывается для остановки таймера 2

1 CNT2 Выбор режима “таймер”/ “счетчик”

0 работа в режиме “таймер”

1 работа в режиме “сетчик”

0 CAP2 Выбор режима “захват”/ “перезагрузка”

0 режим перезагрузки по переполнению или по отрицательному

перепаду на входе T2EX, если EXEN2=1. При тактировании

последовательного порта бит игнорируется.

1 режим “захвата” по отрицательному переходу на входе T2EX, если

EXEN2=1