Материал: kniga_mikroprotsessory

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Таблица 5- Функции управления мощностью PCON

Символ

Позиция

Наименование и функция

SMOD

PCON.7

Удвоенная скорость передачи. Если бит

 

 

установлен в 1, то скорость передачи вдвое

 

 

больше, чем при SMOD = 0. По сбросу SMOD = 0.

 

PCON.6

Не используется

 

PCON.5

Не используется

 

PCON.4

е используется

GF1

PCON.3

Флаги, специфицируемые пользователем

GF0

PCON.2

(флаги общего назначения)

PD

PCON.1

Бит пониженной мощности. При установке

 

 

бита в 1 микро-ЭВМ переходит в режим

 

 

пониженной потребляемой мощности

IDL

PCON.0

Бит холостого хода. Если бит установлен в

 

 

1, то микро-ЭВМ переходит в режим холостого

 

 

хода

Примечание. При одновременной записи 1 в PD и IDL бит PD имеет преимущество. Сброс содержимого PCON выполняется путем загрузки в него кода 0XXX0000.

В режиме 2 частота передачи определяется выражением f =2SMODfРЕЗ/64.

Иными словами, при SMOD = 0 частота передачи равна 1/64 частоты fРЕЗ,

апри SMOD = 1 - 1/32 частоты fРЕЗ.

Врежимах 1 и 3 в формировании частоты передачи, кроме управляющего

бита SMOD, принимает участие таймер 1. При этом частота передачи f зависит от частоты переполнения f OVLT и определяется следующим образом:

f=2SMODfOVTL1/32.

При использовании таймера 1 для тактирования последовательного порта прерывания от этого таймера должны быть запрещены. Таймер может быть использован как в режиме шестнадцатиразрядного таймера, так и в режиме таймера с автозагрузкой. Обычно используется режим таймера с автозагрузкой (старшая тетрада регистра TMOD = 0010В). При этом скорость передачи последовательного порта определяется выражением:

27

f = 2SMODfРЕЗ/(32х12х(256 -ТН1)).

Предельно низких скоростей приема и передачи по последовательному порту можно достичь при использовании таймера в режиме 1 (старший полубайт TMOD = 0001В). Перезагрузка 16-битного таймера должна осуществляться программным путем. При этом для того, чтобы можно было независимо от передачи выполнять дополнительные задачи, необходимо использовать механизм обработки прерываний и для этого разрешить прерывания от таймера 1.

Таблица 6 - Настройка таймера 1 для управления скоростью работы последовательного порта.

 

Частота

 

Часто

 

Таймер/счетчик 1

 

приема/переда

та

 

SMO

 

С/

Режи

Перезагружаем

чи

(BAUD

резонатора

D

 

Т

 

м (MODE)

ое число

RATE)

 

МГц

 

 

 

 

 

 

 

Режим 0,

12

 

X

 

X

X

X

макс: 1 МГц

 

 

 

 

 

 

 

 

 

Режим 2,

12

 

1

 

X

X

X

макс: 375 КГц

 

 

 

 

 

 

 

 

Режим

1,

12

 

1

 

0

2

0FFH

3: 62,2 Кгц

 

 

 

 

 

 

 

 

 

19,2 Кгц

11,059

 

1

 

0

2

0FDH

 

9,6 Кгц

 

11,059

 

0

 

0

2

0FDH

 

4,8 Кгц

 

11,059

 

0

 

0

2

0FAH

 

2,4 Кгц

 

11,059

 

0

 

0

2

0F4H

 

1,2 Кгц

 

11,059

 

0

 

0

2

0F4H

 

137,5 Гц

11,059

 

0

 

0

2

1DH

 

110 Гц

 

6

 

0

 

0

2

72H

 

110 Гц

 

12

 

0

 

0

1

0FЕЕВН

Для старших моделей семейства MCS-51 при использовании для синхронизации последовательного порта таймеров 1 и 2 скорости приема и передачи информации по последовательному порту могут различаться.

28

Устройство таймеров микропроцессоров MCS-51

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

1.

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

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

течение одного машинного цикла микро-ЭВМ.

Схемы управления таймерами идентичны. Таймер 0 и Таймер 1 могут

работать в четырех режимах работы:

режим 0: 13-битный таймер;

режим 1: 16-битный таймер;

режим 2: 8-битный автоперезагружаемый таймер;

режим 3: Таймер 0 как 2 раздельных 8-битных таймера.

Кроме того, Таймер 1 можно использовать для задания скорости передачи

(baud rate) последовательного порта.

Для переключения режимов работы таймеров используются биты M0 и M1 регистра специальной функции TMOD. Название образовано от сокращения

29

двух английских слов: T(timer)- таймер и mode - режим. Имена и расположение битов приведено на рисунке 9:

Рисунок 9 - Формат регистра управления режимами работы таймеров

TMOD.

Таблица 7- Назначение битов таймеров

Символ

Позиция

 

 

 

 

Имя и назначение

 

 

бита

 

 

 

 

 

 

 

 

GATE

TMOD.7

Управление блокировкой таймера от ножки

 

для таймера 1 и

INTx. Если бит установлен в 1, то таймер/счетчик

 

TMOD.3

для

"x" разрешен до тех пор, пока на входе "lNTx"

 

таймера 0

 

высокий уровень и бит управления "TRx"

 

 

 

установлен. Если бит сброшен в 0, то Т/С

 

 

 

разрешается, как только бит управления "TRx"

 

 

 

устанавливается в 1.

 

 

С/Т

TMOD.6

Бит выбора режима таймера или счетчика

 

для таймера 1

исобытий. Если

 

бит сброшен в 0, то таймер

 

TMOD.2

дляработает от

 

внутреннего

генератора,

если

 

таймера 0

 

установлен в 1, то работает от внешних сигналов

 

 

 

на входе "Tx"

 

 

 

 

 

M1

TMOD.5

Выбор режима работы таймера

 

 

для таймера 1 и

M1

 

M0

 

 

 

 

TMOD.1

для

0

 

0

 

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

 

таймера 0

 

 

 

 

 

"TLx" работает как 5-битный

M0

TMOD.4

 

 

 

 

предварительный делитель

 

 

для Т/С1 и

0

 

1

 

16

битный

 

TMOD.0

для

 

 

 

 

таймер/счетчик. "THx" и "TLx"

 

Т/С0

 

 

 

 

 

включены последовательно

 

 

 

 

1

 

0

 

8-битный

 

 

 

 

 

 

 

 

автоперезагружаемый

 

 

 

 

 

 

 

 

таймер/счетчик. "THx" хранит

 

 

 

 

 

 

 

значение, которое должно быть

 

 

 

 

 

 

 

перезагружено в "TLx" каждый

 

 

 

 

 

 

 

раз по переполнению

 

 

 

 

1

 

1

 

Таймер/счетчик

1

 

 

 

 

 

 

 

останавливается.

 

 

 

 

 

 

 

 

 

 

 

30

Символ

Позиция

 

 

Имя и назначение

 

бита

 

 

 

 

 

 

 

 

 

Таймер/счетчик 0: TL0 работает

 

 

 

 

как 8-битный таймер/счетчик, и

 

 

 

 

его

режим

определяется

 

 

 

 

управляющими битами таймера

 

 

 

 

0. TH0 работает только как 8

 

 

 

 

битный таймер, и его режим

 

 

 

 

определяется

управляющими

 

 

 

 

битами таймера 1

Режим 0. В нулевом режиме таймер работает как 13-битный суммирующий счётчик. Этот счётчик состоит из 8 бит регистра ТНх и младших

5 бит регистра TLx, где x в обозначении регистра заменяется на 0 или 1 в

зависимости от того таймера, которым мы управляем. Старшие 3 бита регистров TLx не определены и игнорируются. Установка запускающего таймер флага TR0 или TR1 не очищает эти регистры. Работе таймера 0 или таймера 1 в режиме 0 соответствует схема:

Рисунок 10 - Схема таймеров 0 или 1 в режиме 0.

Этот режим был введён для совместимости с устаревшим семейством микроконтроллеров MCS-48 для облегчения переноса уже разработанных программ на новые процессоры и поэтому в настоящее время не используется.

Когда содержимое счетчика изменяется из состояния все "1" в состояние все "0" , то устанавливается (принимает значение "1") флаг прерывания таймера

TF0 или TF1.

Обычно пользователя интересует не максимальный интервал времени, а

свой конкретный интервал времени. Для уменьшения интервала времени в регистры таймера можно предварительно занести число и тем самым сформировать произвольный интервал времени.

31

Источник: https://studfile.net/preview/15934500/