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

Лабораторная работа № 3 Реализация функций времени. Часть 1 Введение

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

Современные микроконтроллеры в качестве функционального узла имеют таймер-счетчик (Т/С). Этот узел может работать в качестве таймера, когда требуется задать временной интервал, или в качестве счетчика, когда требуется вести счет внешних событий. В микроконтроллерах семейства MCS51 имеется не менее 2-х таймеров-счетчиков, с помощью которых удобно реализовывать функции времени.

Функция таймера состоит в счете внутренних машинных циклов, следующих с частотой Fosc/12, где Fosc - тактовая частота микроконтроллера. Функция счетчика заключается в подсчете числа переходов из 1 в 0 на соответствующих входах. Для Т/C0 это вход Т0 (Р3.4), а для Т/C1 – T1 (Р3.5).

Каждый Т/С состоит из двух 8-разрядных регистров–счетчиков, которые могут путём выбора режима работы объединяться в единые 16-, 13-разрядные счетчики или работать независимо, взаимодействуя между собой для обеспечения предусмотренных режимов работы. При объединении в единый 16-разрядный регистр при каждом переполнении (переход из состояния все единицы в состояние все нули) в младшем регистре TL содержимое старшего регистра TH увеличивается на 1.

Управление Т/С осуществляется через 8-разрядные регистры TMOD и TCON. Регистр TMOD позволяет задать режим работы, а регистр TCON – запретить счет и зафиксировать возникшее переполнение.

Назначение разрядов (флагов) управляющего регистра TMOD приведено в табл. 1.

GATE – бит разрешения блокировки (выключения) таймера/счётчика Т/С1 (Т/С0) от вывода /INT1 (/INT0), GATE = 1 – блокировка разрешена, GATE = 0 – запрещена.

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

Таблица 1

Регистр TMOD

Режим для T/C1

Режим для T/C0

7

6

5

4

3

2

1

0

GATE1

C/T1

M1.1

M0.1

GATE0

C/T0

M1.0

M0.0

Таблица 2

Режим

0

1

2

3

М1

0

0

1

1

М0

0

1

0

1

Ml, M0 – биты-указатели режимов (отдельно для Т/С1 и Т/С0). Значение номера режима от комбинации битов приведено в табл. 2.

Все биты регистра TMOD устанавливаются программно.

Назначение разрядов (флагов) управляющего регистра TCON приведено в табл. 3.

Таблица 3

Регистр TCON

Управление T/C

Управление внешними

прерываниями

7

6

5

4

3

2

1

0

TF1

TR1

TF0

TR.0

IE1

IT1

IE0

IT0

TF1 (TF0) – флаг переполнения Т/С1 (Т/С0), который вызывает запрос прерывания. При подтверждении прерывания сбрасывается.

TR1 (TR0) – бит включения Т/С1 (Т/С0). TR = 1 – Т/С включен, TR = 0 – выключен. Бит устанавливается и сбрасывается программно.

IE1 (IE0) – флаг запроса внешнего прерывания /INT1 (/INT0). Устанавливается по срезу сигнала /INT1 (INT0). При подтверждении прерывания сбрасывается.

IT1 (IT0) – бит управления типом прерывания по входу /INT1 (/INT0): по срезу или по уровню. IT = 1 – прерывание по переходу из 1 в 0, IT = 0 – прерывание по статическому уровню 0. Бит устанавливается и сбрасывается программно.

Режимы работы Т/С определяются значениями битов М0, Ml в регистре TMOD. Каждый Т/С работает в четырех режимах (0, 1, 2, 3). Режимы 0, 1, 2 для обоих Т/С независимы и одинаковы. В режиме 3 работа Т/С0 и Т/С1 различна, при этом установка режима 3 в Т/С0 влияет на режим работы Т/С 1.

Режим 0 Т/С устанавливается, когда биты-указатели режима M1 и M0 находятся в нулевом состоянии. В режиме 0 Т/С представляет собой функциональный аналог Т/С микросхемы КР1830ВЕ48, в которой Т/С состоит из программно-недоступного делителя на 32 (5 разрядов) и 8-разрядного счетчика. В микроконтроллере КР183ОВЕ51 установка режима 0 превращает Т/С в 13-разрядный счетчик: 5 разрядов TL0 и 8 разрядов TН0 образуют Т/С0, 5 разрядов TL1 и 8 разрядов ТН1 образуют Т/С1.Таким образом, в этом режиме функцию делителя на 32 выполняют счетчики – регистры TL0 и TL1.

Бит С/Т регистра TMOD определяет работу Т/С в качестве таймера

(С/Т = 0) или в качестве счетчика (С/Т = 1). Счет начинается при установке бита TRi (TR0 или TR1 в зависимости от выбранного Т/С; буква i в имени бита, входа, регистра означает 0 или 1 в зависимости от выбора) регистра TCON в состояние 1.

При необходимости управления счетом извне бит GATE регистра, TMOD устанавливается в состояние 1. Если на входе /INT1 устанавливается состояние 1, то при условии, когда разряд TR1 = 1, счет будет разрешен, если же установлено состояние 0, то счет будет запрещен. Установкой разряда TR1 в нулевое состояние Т/С1 выключается независимо от состояния других битов. Таким образом осуществляется управление Т/С1 внешним сигналом. Аналогично управляется внешним сигналом Т/С0 для этого используется вход INT0 и установка соответствующего бита GATE в регистре TMOD для Т/С0.

При работе Т/С в режиме таймера инкрементирование происходит в каждом машинном цикле. Частота счета в этом случае равна Fosc/12. При работе Т/С в режиме счетчика инкрементирование происходит при обнаружении на счетном входе Т/С перехода из состояния 1 в состояние 0. Так как фиксация состояния входа осуществляется в каждом машинном цикле один раз, то для обнаружения на входе T/С перехода из состояния 1 в 0 требуется два машинных цикла. Таким образом, максимальная частота счета в режиме счетчика равна Fosc/24.

При переполнении Т/С в регистре TCON устанавливается флаг TF (TF0 при переполнении Т/С0 и TF1 при переполнении Т/С1), содержимое Т/С при переполнении обнуляется.

Режим 1 устанавливается при условии, когда Ml = 0, M0 = 1. Режим 1 аналогичен режиму 0. Отличие состоит только в том, что установка режима 1 превращает Т/С в 16-разрядные регистры, состоящие из программно доступных пар регистров TLi, THi. Для Т/С0 значение i = 0, для Т/С1 значение i = 1.

Режим 2 (Ml = 1, M0 = 0) имеет особенность, состоящую в том, что в этом режиме работы каждый Т/С представляет собой 8-разрядный регистр TLi, автоматически перезагружаемый содержимым из регистра THi при каждом переполнении регистра Tli. При этом при каждом переполнении устанавливается флаг TFi в регистре TCON. Назначение входных битов управления в режиме 2 такое же, как в режиме 0. Предварительная загрузка регистров THi константами от 00 до FF позволяет программно формировать задержку установки флагов TFi (от момента включения Т/С) в диапазоне изменения коэффициента счета от FF до 00.

Режим 3 (Ml = 1, М0 = 1) характерен тем, что в этом режиме Т/С1 заблокирован (остановлен). Он сохраняет содержимое регистров TL1, TH1 независимо от состояния своих битов управления. В этом режиме Т/С1 может быть использован в качестве двух РОН. В режиме 3 регистры ТL0 и ТН0 работают независимо друг от друга. Регистр TL0 сохраняет за собой все входные биты управления Т/С0 и реагирует на воздействия по входам Т0, /INT0. При переполнении регистра TL0 устанавливается флаг TF0. Регистр ТН0 может работать только в режиме таймера. Он использует бит включения TR1, при переполнении устанавливает флаг TF1. Других битов управления регистр ТН0 в этом режиме не имеет.

Установка Т/С0 в режим 3 лишает Т/С1 бита включения TR1. Поэтому Т/С1 в режимах 0,1,2 при GATE1 = 0 всегда включен и при переполнении в режимах 0 и 1 Т/С1 обнуляется, а в режиме 2 перезагружается, не устанавливая флаг. Управление от входов /INT1, Т1, биты управления С/Т1, GATE1 для Т/С1 не зависят от режима Т/С0.

Т/С1 аппаратно связан с блоком синхронизации последовательного интерфейса. При работе в режимах 0, 1, 2 при переполнении Т/С1 всегда вырабатывает импульс тактирования последовательного интерфейса. Поэтому 3-й режим Т/С0 удобно применять тогда, когда требуется работа последовательного интерфейса и двух таймеров или последовательного интерфейса, таймера и счетчика.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]