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

Регистры специальных функций

Регистры микроконтроллера за исключением регистров общего назначения и регистра программного счётчика называются регистрами специальных функций. Рассмотрим назначение регистров специальных функций. Обозначение регистров специальных функций приведено в таблице 1. Звёздочкой помечены регистры, допускающие наряду с адресацией байтов адресацию отдельных битов регистра.

Таблица 1

Примечание

Обозначение

Наименование

АСС

В

PSW

SP

DPTR

DPL

DPH

P0

P1

P2

P3

IP

IE

TMOD

TCON

TH0

TL0

TH1

TL1

SCON

SBUF

PCON

Аккумулятор

Регистр В

Регистр состояния программ

Указатель стека

Указатель данных, 2 байта

Младший байт

Старший байт

Порт 0

Порт 1

Порт 2

Порт 3

Регистр приоритетов прерываний

Регистр разрешений прерываний

Регистр режимов таймера/счётчика

Регистр управления таймера/счётчика

Т/С 0 Старший байт

Т/С 0 Младший байт

Т/С 1 Старший байт

Т/С 1 Младший байт

Управление последовательным портом

Буфер последовательного порта

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

Аккумулятор. АСС – регистр аккумулятора. Аккумулятор является источником операнда и местом фиксации результата при выполнении арифметических, логических операций и ряда операций передачи данных. Кроме того, только с использованием аккумулятора могут быть выполнены операции сдвига, проверки на нуль, формирование флага паритета. Команды, предназначенные для работы с аккумулятором, используют мнемонику “А”.

Регистр В. Используется во время операций умножения и деления. При умножении в регистр В помещается старший байт 16-битового произведения, а младший в аккумулятор. При делении остаток помещается в регистр В, а частное – в аккумулятор. Для других инструкций регистр В может использоваться, как дополнительный регистр.

Регистр состояния программы PSW. хранит информацию о состоянии программы. Этот регистр вместе с аккумулятором содержит признаки результата выполнения команды.

7

CY

6

AC

5

F0

4

RS1

3

RS0

2

OV

1

0

P


PSW

Имя флага

Позиция

Функция

CY

PSW. 7

Флаг переноса. Устанавливается аппаратно или программно при выполнении арифметических и логических операций. Например, он устанавливается при возникновении переноса в старший байт при операции сложения двух байтов, когда результат оказывается 2-хбайтовым. Установка этого бита при вычитании указывает на то, что результатом является отрицательное число.

АС

PSW. 6

Флаг вспомогательного переноса. Устанавливается и сбрасывается аппаратно при выполнении команд сложения и вычитания, сигнализирует о переносе или займе в бите 3. Этот флаг используется при операциях с числами в двоично-десятичном упакованном формате (BCD-формате). Это формат, в котором одна десятичная цифра кодируется комбинацией битов в тетраде.

F0

PSW. 5

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

RS1

RS0

PSW. 4

PSW. 3

Комбинация битов определяет положение РОН в адресном пространстве ОЗУ. 00 – банк "0" с адресами (00 – 07); 01 - банк "1" с адресами (08 – 0F); 10 - банк "2" с адресами (10 – 17); 11 - банк "3" с адресами (18 – 1F). Банку регистров соответствует область адресов в ОЗУ, по которым расположены восемь регистров общего назначения (R0 – R7). Переключение банков регистров приводит к изменению адресов этих регистров в ОЗУ. При этом старые значения данных, находившихся в регистрах до переключения банка, не изменяются. Они сохраняются в ячейках ОЗУ по адресам, которые занимал банк до переключения. Механизм переключения банков регистров является более быстродействующей альтернативой стеку. Например, если в основной программе и подпрограмме используются одни и те же регистры общего назначения, то переключение банка при переходе к подпрограмме позволяет пользоваться РОН, и при этом старые значения данных в РОН сохраняются в ОЗУ. Чтобы вернуть значения регистров при возврате в прерванную программу достаточно переключить назад банк регистров.

OV

PSW. 2

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

-

PSW. 1

Флаг, определяемый пользователем.

P

PSW. 0

Флаг чётности (паритета). Устанавливается и сбрасывается аппаратно в каждом цикле команды для указания чётного (бит сброшен) или нечётного (бит установлен) числа разрядов аккумулятора, находящихся в состоянии «1». Флаг Р является дополнением содержимого аккумулятора до чётности. В 9-разрядном слове, состоящем из 8-ми разрядов аккумулятора и бита Р, всегда содержится чётное число единиц. Этот флаг можно использовать для повышения достоверности передачи данных по последовательному каналу в стандарте RS-232C (контроль по паритету). Например, можно передавать 9-битовые данные, содержащие только чётное число единиц, добавляя к байтам, содержащим нечётное число единиц в байте в дополнительный разряд единицу. Когда передаётся байт с чётным числом единиц, то в дополнительный разряд добавляется 0. При этом 9-разрядное слово всегда будет содержать чётное число единиц. На приёмном конце производится контроль, и если приходит 9-разрядное слово с нечётным числом единиц, то определяется ошибка передачи.

Указатель стека SP. 8-ми битовый регистр, содержимое которого инкрементируется перед записью данных в стек при выполнении команд PUSH и CALL. При начальном сбросе указатель стека устанавливается в 07H, а область стека в ОЗУ начинается с адреса 08Н. При необходимости путём переопределения стека может быть расположена в любом месте внутреннего ОЗУ. Например, mov SP,#30H. Команда определяет, что стек начинается с ячейки ОЗУ с адресом 31H. Стеком обозначается область ОЗУ, в которой располагаются данные, которые могут быть утеряны при переходе к выполнению подпрограммы. При переходе к выполнению подпрограммы автоматически в стек заносится только содержимое программного счётчика. Это необходимо для сохранения адреса возврата в прерванную программу. После окончания подпрограммы в программный счётчик заносится адрес возврата из стека. Необходимые для сохранения значения остальных регистров помещаются в стек командой PUSH, а извлекаются из стека командой POP.

Указатель данных. DPTR – указатель данных состоит из старшего байта DPH и младшего DPL. Содержит 16-ти битовый адрес ячейки внешней памяти данных при обращении к внешней памяти данных. Может использоваться, как 16-ти битовый регистр или два независимых 8-ми битовых регистров.

Порт 0 – Порт 3. Регистрами специальных функций являются 8-разрядные порты Р0, Р1, Р2, Р3. Порты необходимы для обмена данными с внешними устройствами.

Буфер последовательного порта. Последовательный порт микроконтроллера выполняет функцию обмена данными с внешними устройствами в последовательном коде. В последовательном коде биты каждого, поступившего в порт байта, передаются и принимаются по очереди бит за битом. Буфер последовательного порта (SBUF) – представляет собой два отдельных 8-разрядных регистра: буфер передатчика и буфер приёмника. Когда данные записываются в SBUF, они поступают в буфер передатчика, причём запись байта в SBUF автоматически инициирует его передачу через последовательный порт. Когда данные читаются из SBUF, они выбираются из буфера приёмника.

Регистры таймера. Регистровые пары (TH0, TL0) и (TH1, TL1) образуют 16-ти битовые счётные регистры соответственно T/C0 и T/C1. В эти регистры может быть помещён результат счёта машинных циклов при работе Т\С в режиме таймера, либо результат счёта перепадов из 1 в 0 на соответствующий внешних вводах микроконтроллера, если Т\С работает в режиме счётчика.

Регистры управления. IP, IE, SCON, TMOD, TCON, PCON – содержат биты состояния системы управления прерываниями, таймеров/счётчиков, последовательного порта и энергопотребления. Установка комбинаций битов в этих регистрах задаёт режим работы данных функциональных узлов микроконтроллера.

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