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 в аккумуляторе |