Организация памяти и программно доступные ресурсы

Vcc. Напряжение питания +5В.

Vss. Земля.

В архитектуре семейства 8051 память программ и память данных разделе­ны (гарвардская архитектура). Каждая из них имеет размер 64 Кбайта, вы­бор одной из двух матриц памяти осуществляется сигналами PSEN, RD#, WR#. Организация памяти в микроконтроллерах семейства 8051 иллюст­рируется рис. 3.3. Память программ может быть целиком внешней (сигнал ЕА=0), либо при обращении по младшим 4 К адресов код извлекается из ячеек внутренней памяти микроконтроллера, а содержимое старших 60К берется из внешней памяти системы (сигнал ЕА=1). Микроконтроллеры 8751Н имеют бит секретности, предназначенный для защиты внутренней па­мяти программ от доступа извне. Значение этого бита программируется один раз, очищен он может быть только при полном стирании всей внутренней памяти программ. При установленном бите секретности запрещается не толь­ко чтение внутренней памяти извне, но и ее допрограммирование, а также обращение к внешней памяти программ.

Рис. 3.3 - Организация памяти микроконтроллеров типа 8051

Память данных делится на внешнюю и внутреннюю, каждая из них имеет свое пространство адресов. В архитектуре MCS-51 пространство адресов внутренней памяти данных объединяет все внутренние программно доступные ресурсы. Это пространство размером 256 байт в свою очередь делится на

Рис. 3.4 - Структура внутреннего ОЗУ данных

пространство адресов внутреннего ОЗУ (размером 128 байт) и пространство адресов регистров специальных функций. Область внутреннего ОЗУ изобра­жена на рис. 3.4, ячейки области занимают младшие адреса внутренней памяти данных с 00h по 7Fh. В этой области памяти выделяются два фрагмента:

• младшие 32 адреса занимают четыре регистровых банка, каждый из кото­рых содержит по восемь регистров общего назначения R0..R7. Текущий банк определяется значением битов RS0, RS1 регистра PSW. Таким образом, млад­шие 32 ячейки ОЗУ, кроме адресов, имеют имена;

• ячейки с адресами в диапазоне 32..48 имеют прямо адресуемые биты, ад­реса битов этой части ОЗУ находятся в диапазоне 00h...7Fh.

Нa рис. 3.5 изображена область регистров специальных функций. В нее вклю­чены все программно доступные регистры (управления и данных) внутренних блоков ввода-вывода. Эта область формально занимает старшие 128 байт внут­ренней памяти данных, но обращение должно осуществляться по определен­ным адресам ячеек или отдельных битов. Обращение по промежуточным адресам приведет к ошибочному результату. Все регистры имеют как симво­лические имена, так и адреса в качестве ячеек внутренней памяти. Часть ре­гистров содержит прямо адресуемые биты. Адреса битов находятся в диапа­зоне 80H..F7H.

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

Назначение регистров специальных функций следующее:

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

регистра

АСС Аккумулятор, основной операционный регистр

В Дополнительный регистр для операций умножения и деления, в других командах может рассматриваться как обычный РОН

PSW Регистр, хранящий слово состояния процессора

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

Р3 Регистр порта Р3

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

Р2 Регистр порта Р2

SBUF Регистр данных последовательного порта

SCON Регистр управления последовательного порта

Р1 Регистр порта Р1

ТН1 Старший регистр таймера-счетчика 1

ТН0 Старший регистр таймера-счетчика 0

TL1 Младший регистр таймера-счетчика 1

TL0 Младший регистр таймера-счетчика 0

TMOD Регистр режима таймеров-счетчиков

TCON Регистр управления таймеров-счетчиков

PCON Регистр управления энергопотреблением

SP Регистр указателя стека

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

Р0 Регистр порта Р0

Формат всех регистров специальных функций будет рассмотрен в разделах, посвященных описанию системы прерываний и функций отдельных бло­ков ввода-вывода. Здесь приведен формат регистра PSW, хранящего слово состояния процессора. Этот регистр вместе с аккумулятором содержит ре­зультат выполнения команд.

CY AC F0 RS1 RS0 0V   P

PSW

Имя флага Номер бита Функция
CY PSW.7 Флаг переноса
AC PSW.6 Флаг вспомогательного переноса (между тетрадами)
F0 PSW.5 Флаг 0, возможно программирование пользователем в общих целях
RS1 PSW.4 Первый бит селектора регистрового банка
RS0 PSW.3 Нулевой бит селектора регистрового банка
0V PSW.2 Флаг переполнения
  PSW.1 Флаг, определяемый пользователем
P PSW.0 Флаг чётности. Устанавливается/очищается аппаратно каждый цикл инструкции и показывает нечёт­ное/чётное число 1 в аккумуляторе

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: