Студопедия
rus | ua | other

Home Random lecture






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


Date: 2015-10-07; view: 443.


Регистры микроконтроллера за исключением регистров общего назначения и регистра программного счётчика называются регистрами специальных функций. Рассмотрим назначение регистров специальных функций. Обозначение регистров специальных функций приведено в таблице 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.хранит информацию о состоянии программы. Этот регистр вместе с аккумулятором содержит признаки результата выполнения команды.

CY AC F0 RS1 RS0 OV 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 – содержат биты состояния системы управления прерываниями, таймеров/счётчиков, последовательного порта и энергопотребления. Установка комбинаций битов в этих регистрах задаёт режим работы данных функциональных узлов микроконтроллера.

 


<== previous lecture | next lecture ==>
Общая характеристика базовой модели | Синхронизация микроконтроллера
lektsiopedia.org - 2013 год. | Page generation: 0.062 s.