Регистры специального назначения
К области РПД примыкает область регистров специального назначения, адреса которых расположены в интервале от 128 (80H) до 255 (0FFH). К регистрам специального назначения относятся регистры-защелки портов, регистры таймеров, регистры управления периферийными устройствами, аккумулятор и т.д.
Из распределения адресов области регистров специального назначения (таблица 4.1) видно, что не все адреса заняты. Не используемые адреса физически отсутствуют на кристалле. Чтение по этим адресам возвращает случайные значения, а запись не результативна. Пользователю не рекомендуется производить запись по незанятым адресам, так как эти адреса могут быть задействованы в новых версиях MCS-51.
Таблица 4.1 - Блок регистров специального назначения
Битовая адресация | Обозначение | Наименование | Адрес |
+ | ACC | Аккумулятор | 0E0H |
+ | B | Регистр-расширитель аккумулятора | 0F0H |
+ | PSW | Слово состояния процессора | 0D0H |
- | SP | Регистр-указатель стека | 81H |
- | DPTR | Регистр-указатель данных (старший -DPH) | 83H |
- | DPTR | Регистр-указатель данных (младший -DPL) | 82H |
+ | P0 | Порт 0 | 80H |
+ | P1 | Порт 1 | 90H |
+ | P2 | Порт 2 | 0A0H |
+ | P3 | Порт 3 | 0B0H |
+ | IP | Регистр приоритетов | 0B8H |
+ | IE | Регистр маски прерываний | 0A8H |
- | TMOD | Регистр режима таймера/счетчика | 89H |
+ | TCON | Регистр управления/статуса таймера | 88H |
- | TH0 | Таймер 0 (старший байт) | 8CH |
- | TL0 | Таймер 0 (младший байт) | 8AH |
- | TH1 | Таймер 1 (старший байт) | 8DH |
- | TL1 | Таймер 1 (младший байт) | 8BH |
+ | SCON | Регистр управления приемопередатчиком | 98H |
- | SBUF | Буфер приемопередатчика | 99H |
- | PCON | Регистр управления энергопотреблением | 87H |
Среди SFR есть несколько регистров, допускающих как байтовую, так и битовую адресацию. Двоичные адреса этих регистров оканчиваются на три нуля, т. е. имеют в конце цифру 0 или 8Н. К отдельным битам этих регистров можно обращаться при использовании прямого 8-битового адреса (bit) в диапазоне 128 (80H) - 255(0FFH) (рисунок 4.3).
Назначением данных битов, чаще всего, является управление режимами и контроль состояния периферийных устройств и микроконтроллера. Назначение и выполняемые этими битами функции будут показаны ниже, при рассмотрении периферийных устройств.
Рассмотрим функции регистров, входящих в блок SFR.
Регистр аккумулятора (АСС). Аккумулятор является источником операнда и местом записи результата при выполнении арифметических, логических операций, операций сдвига, проверки на нуль и т.п. В зависимости от вида адресации аккумулятор в инструкциях именуется как (А), или как (АСС) (при задании прямого адреса).
Регистр В.Используется в операциях умножения и деления. В других случаях можно использовать как обычный сверхоперативный регистр.
Указатель стека (SP). 8-разрядный регистр SP увеличивается на 1 (инкрементируется) перед записью информации в память при выполнении операций, связанных со стеком, типа PUSH и CALL. Стек может занимать любое место в РПД. После сброса указателю SP присваивается значение 07Н, означая, что по умолчанию стек начинается с адреса 08Н.
Рисунок 4.3 - Карта адресуемых бит в SFR
Указатель данных (DPTR). Указатель данных состоит из старшего байта (DPH) и младшего (DPL). Предназначен для задания 16-битного адреса в операциях с обращением к внешней памяти ВПД, но может использоваться как рабочий 16-разрядный регистр или как два независимых 8-битных регистра.
Регистры портов (Р0 - Р3). Р0, Р1, Р2 и Р3 являются регистрами-защелками портов 0 - 3.
Регистры таймеров. Регистровые пары (TH0, TL0), (TH1, TL1) - это 16-битные счетные регистры для таймеров/счетчиков 0 и 1. Для управления таймерами используется регистр состояния (TCON) и регистр управления (TMOD).
Регистры последовательного порта. Регистр последовательных данных (SBUF) - в действительности это два раздельных регистра: передающий и принимающий буферные регистры. Для управления и контроля состояниями последовательного порта используется регистр (SCON).
Регистры прерываний. В регистре (IE) находятся биты индивидуального разрешения прерываний. Для управления приоритетами используется регистр (IP).
Регистр управления энергопотреблением (PCON). Управляет скоростью последовательного порта, режимом пониженной мощности и режимом холостого хода.
Слово состояния процессора (PSW).Регистр содержит информацию о состоянии процессора (таблица 4.2) в виде битов признаков (флагов). Часть флагов изменяется только программно, другая часть флагов изменяется при выполнении большинства команд, использующих арифметико-логическое устройство.
Таблица 4.2 - Регистр PSW
Наиболее «активный» флаг - это флаг переноса C, участвующий в арифметических, логических операциях и сдвигах, некоторых битовых операциях. Флаг переполнения (OV) используется при выполнении арифметических операций со знаковыми числами. Флаг вспомогательного переноса (АС) нужен при десятичной коррекции результата сложения или вычитания.