Таблица 6 –Функциональное назначение бит регистра управления/статуса приемопередатчика SCON
Символ | Позиция | Имя и назначение |
SM0 | SCON.7 | Биты управления режимом работы приемопередатчика. Устанавливаются/сбрасываются программно см. примечание 1 SM0 SM1 Режим работы приемопередатчика 0 0 Сдвигающий регистр расширения ввода/вывода 0 1 8 битовый приемопередатчик, изменяемая скорость передачи 1 0 9 битовый приемопередатчик. Фиксированная скорость передачи 1 1 9 битовый приемопередатчик, изменяемая скорость передачи |
SM1 | SCON.6 | |
SM2 | SCON.5 | Бит управления режимом приемопередатчика. Устанавливается программно для запрета приема сообщения, в котором девятый бит имеет значение 0 |
REN | SCON.4 | Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных |
TB8 | SCON. 3 | Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме 9-битового передатчика |
RB8 | SCON.2 | Прием бита 8. Устанавливается/сбрасывается аппаратно для фиксации девятого принимаемого бита в режиме 9-битового приемника |
TI | SCON. 1 | Флаг прерывания передатчика. Устанавливается аппаратно при окончании передачи байта. Сбрасывается программно после обслуживания прерывания |
RI | SCON.0 | Флаг прерывания приемника. Устанавливается аппаратно при приеме байта. Сбрасывается программно после обслуживания прерывания |
Скорость приема/передачи информации через последовательный порт.
Скорость приема/передачи, т.е. частота работы приемопередатчика в различных режимах, определяется различными способами.
В режиме 0 частота передачи зависит только от резонансной частоты кварцевого резонатора f РЕЗ:
f=fРЕЗ/12.
За машинный цикл последовательный порт передает один бит информации. В режимах 1, 2 и 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре специальных функций PCON.
Таблица 7 – Регистр управления мощностью PCON
Символ | Позиция | Наименование и функция |
SMOD | PCON.7 | Удвоенная скорость передачи. Если бит установлен в 1, то скорость передачи вдвое больше, чем при SMOD = 0. По сбросу SMOD = 0. |
PCON.6 | Не используется | |
PCON.5 | Не используется | |
PCON.4 | Hе используется | |
GF1 GF0 | PCON.3 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 зависит от частоты переполнения fOVLT и определяется следующим образом:
f=2SMODfOVTL1/32
Прерывание от таймера 1 в этом случае должно быть заблокировано. Сам же таймер может работать как в режиме таймера, так и в режиме счетчика. Номер режима (0, 1, 2) роли не играет. Наиболее типично использование его в режиме таймера с автоперезагрузкой (старшая тетрада TMOD = 0010В). При этом частота передачи определяется выражением:
f = 2SMODfРЕЗ/(32х12х(256 —ТН1)).
Отметим, что скорости приема и передачи могут различаться.
Предельно низких частот приемопередачи можно достичь при использовании таймера в режиме 1 (16-битный таймер) и разрешении прерываний от таймера (старший полубайт TMOD = 0001В). Перезагрузка 16-битного таймера должна осуществляться программным путем.
Система прерываний микроконтроллера 8051.
Внешние прерывания INT 0 и INT 1 могут быть вызваны либо уровнем, либо переходом сигнала из 1 в 0 на входах 8051 в зависимости от значений управляющих бит IT0 и IT1 в регистре TCON. От внешних прерываний устанавливаются флаги IE0 и IE1 в регистре TCON, которые инициируют вызов соответствующей программы обслуживания прерывания. Сброс этих флагов выполняется аппаратно только в том случае, если прерывание было вызвано по переходу (срезу) сигнала. Если же прерывание вызвано уровнем входного сигнала, то сбросом флага I должна управлять соответствующая подпрограмма обслуживания прерывания путем воздействия на источник прерывания с целью снятия им запроса.
Флаги запросов прерывания от таймеров TF0 и TF1 сбрасываются автоматически при передаче управления подпрограмме обслуживания. Флаги запросов прерывания RI и TI устанавливаются блоком управления приемопередатчика аппаратно, но сбрасываться должны программным путем.
Прерывания могут быть вызваны или отменены программой, так как все названные флаги программно доступны и могут быть установлены/ сброшены программой с тем же результатом, как если бы они были установлены/сброшены аппаратными средствами.
В блоке регистров специальных функций есть два регистра, предназначенных для управления режимом прерываний IE и уровнями приоритета IP. Возможность программной установки/сброса любого управляющего бита в этих двух регистрах делает систему прерываний 8051 исключительно гибкой.
В более сложных модификациях микроконтроллеров семейства MCS-51 количество периферийных устройств увеличено, что приводит к необходимости использовать один вектор прерывания для нескольких устройств (разделение подпрограмм обслуживания прерываний в этом случае необходимо реализовать программно), либо добавить еще два регистра - режима (маски) (таблица 8) и приоритета прерываний (таблица 9).
Таблица 8 – Регистр масок прерывания (IE)
Символ | Позиция | Имя и назначение |
EA | IE.7 | Снятие блокировки прерывания. Сбрасывается, программно для запрета всех прерываний независимо от состояний IE.4 - IE.0 |
IE.6 | Не используется | |
lE.5 | Не используется | |
ES | IE.4 | Бит разрешения прерывания, от приемопередатчика Установка/сброс программой для разрешения/запрета прерываний от флагов TI или RI . |
ET1 | IE.3 | Бит разрешения прерывания от таймера. Установка/сброс программой для разрешения/запрета прерываний от таймера 1 |
EX1 | IE.2 | Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерывания 1 |
ET0 | IE.1 | Бит разрешения прерывания от таймера 0. Установка/сброс программой для разрешения/запрета прерываний от таймера 0 . |
EX0 | IE.0 | Бит разрешения внешнего прерывания 0. Установка/сброс программой для разрешения/запрета прерывания 0 |
Таблица 10 – Регистр приоритетов прерываний (IP)
Символ | Позиция | Имя и назначение |
- | IP.7 - IP.5 | Не используется |
PS | IP.4 | Бит приоритета приемопередатчика. Установка/сброс программой для присваивания прерыванию от приемопередатчика высшего/низшего приоритета |
РТ1 | IP.3 | Бит приоритета таймера 1. Установка/сброс программой для присваивания прерыванию от таймера 1 высшего/низшего приоритета |
РХ1 | IP.2 | Бит приоритета внешнего прерывания 1. Установка/сброс программой для присваивания высшего/низшего приоритета внешнему прерыванию INT1 |
РТ0 | IP.1 | Бит приоритета таймера 0. Установка/сброс программой для присваивания прерыванию от таймера 0 высшего/низшего приоритета |
РХ0 | IP.0 | Бит приоритета внешнего прерывания 0. Установка/сброс программой для присваивания высшего/низшего приоритета внешнему прерыванию INT0 |