Добавил:
Negorov1337@gmail.com inst:vech.no_17 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

kniga_mikroprotsessory

.pdf
Скачиваний:
21
Добавлен:
02.10.2020
Размер:
1.06 Mб
Скачать

Рисунок 8 - Использование порта P0 в качестве шины данных

22

Порт P2 может быть использован для передачи старшего байта адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ. Через порт Р2 выводится старший байт адреса А8 - А15 при работе с внешней памятью программ и внешней памятью данных (с 16разрядным адресом). Во время доступа к внешней памяти содержимое регистра - защелки порта P2 не изменяется. При сбросе микросхемы во все разряды порта P2

записываются '1'.

Порт P3. Каждая линия порта Р3 имеет индивидуальную альтернативную функцию, которая может быть задействована простым обращением к устройству, соединенному с ножкой порта. Линии порта Р3 могут выполнять альтернативные функции только в том случае, если в соответствующие этим линиям разряды регистра записаны логические '1', иначе на линиях порта будет присутствовать '0' независимо от характера принимаемой или передаваемой информации. При сбросе микросхемы во все разряды порта записываются '1'.

Назначение разрядов порта P3:

Р3.0 RxD - вход последовательного порта;

Р3.1 TxD - выход последовательного порта;

Р3.2 INT0 -используется как вход 0 внешнего запроса прерываний;

Р3.3 INT1 -используется как вход 1 внешнего запроса прерываний;

Р3.4 Т0 - используется как вход счетчика внешних событий 0;

Р3.5 Т1 - используется как вход счетчика внешних событий 1;

Р3.6 WR - строб записи во внешнюю память данных;

Р3.7 RD - строб чтения из внешней памяти данных.

Далее рассмотрим работу последовательного порта. Через универсальный последовательный порт осуществляются прием и передача информации,

представленной в последовательном коде (младшими битами вперед). Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного. Но если к моменту окончания приема байта предыдущий не был считан из SBUF, то он будет потерян. Работой последовательного порта управляют три регистра:

23

регистр управления/статуса приемопередатчика SCON;

бит SMOD регистра управления мощностью PCON;

буферный регистр приемопередатчика SBUF.

Последовательный порт может работать в четырех различных режимах.

Режим 0. Синхронный режим . Информация передается, и принимается через вывод входа приемника RxD. Принимаются или передается 8 бит данных.

Через вывод TxD выдаются импульсы синхронизации, которые сопровождают каждый бит. Скорость передачи фиксирована и составляет 1/12 Fген.

Режим 1. Асинхронный 8-ми битовый режим . Передаются (через TXD)

или принимаются (через RXD) 10 бит: старт-бит (логический 0), 8 бит данных

(младшим разрядом вперед) и стоп-бит (логическая 1). При приеме, стоп-бит поступает в бит RB8 регистра SCON. Скорость передачи в режиме 1

переменная: для управления скоростью передачи вы можете использовать таймер Т1 и/или Т2.

Режим 2. Асинхронный 9-ти битовый режим с фиксированной скоростью передачи. Передаются (через TXD) или принимаются (через RXD) 11 бит:

старт-бит. 8 бит данных (младшим разрядом вперед), программируемый 9-й бит данных и стоп-бит. При передаче, в 9-й бит данных (бит ТВ8 регистра SCON)

может быть записан логический 0 или 1, например, значение бита четности (бит Р регистра PSW). При приеме, 9-й бит данных поступает в бит RB8 регистра

SCON. Присутствие стоп-бита контролируется схемой обнаружения ошибки кадра. Скорость передачи программируется и может быть равна либо 1/32, либо

1/64 частоты резонатора в зависимости от управляющего бита SMOD.

Режим 3. Асинхронный 9-ти битовый режим. совпадает с режимом 2 во всех деталях, за исключением частоты приема/передачи, которая задается таймером.

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

24

условии RI = 0, REN = 1. Прием в других режимах начинается с приходом старт-бита, если бит REN установлен.

Управление режимом работы приемопередатчика осуществляется через специальный регистр с символическим именем SCON. Этот регистр содержит не только управляющие биты, определяющие режим работы последовательного порта, но и девятый бит принимаемых или передаваемых данных (RB8 и ТВ8) и

биты прерывания приемопередатчика (R1 и Т1).

Таблица 4 -Функциональное назначение бит регистра управления/статуса приемопередатчика SCON.

Символ

Позиция

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

 

 

 

SM0

SCON.7

Биты

управления

режимом

работы

SM1

SCON.6

приемопередатчика.

 

 

 

 

 

 

Устанавливаются/сбрасываются программно см.

 

 

примечание 1

 

 

 

 

 

 

 

SM0

 

SM1

Режим

 

работы

 

 

 

 

 

приемопередатчика

 

 

 

 

0

 

0

Сдвигающий

 

регистр

 

 

 

 

 

расширения ввода/вывода

 

 

0

 

1

8

 

 

битовый

 

 

 

 

 

приемопередатчик,

изменяемая

 

 

 

 

 

скорость передачи

 

 

 

 

1

 

0

9

 

 

битовый

 

 

 

 

 

приемопередатчик.

 

 

 

 

 

 

 

Фиксированная

 

скорость

 

 

 

 

 

передачи

 

 

 

 

 

1

 

1

9

 

 

битовый

 

 

 

 

 

приемопередатчик,

изменяемая

 

 

 

 

 

скорость передачи

 

 

SM2

SCON.5

Бит

управления

режимом приемопередатчика.

 

 

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

 

 

сообщения, в котором девятьй бит имеет значение 0

REN

SCON.4

Бит

 

разрешения

 

приема.

 

 

Устанавливается/сбрасывается программно для

 

 

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

 

 

данных

 

 

 

 

 

TB8

SCON. 3

Передача

 

 

бита

 

8.

 

 

Устанавливается/сбрасывается программно для

 

 

задания девятого передаваемого бита в режиме 9-

 

 

битового передатчика

 

 

 

25

Символ

Позиция

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

 

RB8

SCON.2

Прием бита 8. Устанавливается/сбрасывается

 

 

аппаратно для фиксации девятого принимаемого

 

 

бита в режиме 9-битового приемника

 

TI

SCON. 1

Флаг

прерывания

передатчика.

 

 

Устанавливается

аппаратно при

окончании

 

 

передачи байта. Сбрасывается программно после

 

 

обслуживания прерывания

 

RI

SCON.0

Флаг

прерывания

приемника.

 

 

Устанавливается аппаратно при приеме байта.

 

 

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

обслуживания

 

 

прерывания

 

 

Прикладная программа путем загрузки в старшие биты регистра SCON

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

которой буферный регистр SBUF указан как получатель байта. Как уже отмечалось, прием в режиме 0 осуществляется при условии, что R1 = 0 и REN = 1, в остальных режимах - при условии, что REN = 1.

В бите ТВ8 программно устанавливается значение девятого бита данных,

который будет передан 8 режиме 2 или 3. В бите RB8 в этих режимах фиксируется девятый принимаемый бит данных. В режиме 1 в бит RB8

заносится стоп-бит. В режиме 0 бит RB8 не используется.

Флаг прерывания передатчика ТI устанавливается аппаратно в конце периода передачи стоп-бита во всех режимах. Соответствующая подпрограмма обслуживания прерывания должна сбрасывать бит TL.

Флаг прерывания приемника RI устанавливается аппаратно в конце периода приема восьмого бита данных в режиме 0 и в середине периода приема стоп-бита в режимах 1, 2 и 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI.

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

В режиме 0 частота передачи зависит только от резонансной частоты кварцевого резонатора f РЕЗ:f=fРЕЗ/12.

26

За машинный цикл последовательный порт передает один бит информации. В режимах 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

Соседние файлы в предмете Информатика