Организация памяти и программно доступные ресурсы
В архитектуре MCS-51 память программ и память данных разделены (гарвардская архитектура). Каждая из них может иметь размер до 64 Кбайта; выбор одной из двух матриц памяти осуществляется сигналами PSEN, RD#, WR#.
Память программ может быть целиком внешней (сигнал ЕА = 0), либо при обращении по младшим 4 К адресов код извлекается из ячеек внутренней памяти микроконтроллера, а содержимое старших 60 К берется из внешней памяти системы (сигнал ЕА = 1).
Память данных делится на внешнюю и внутреннюю, каждая из которых имеет свое пространство адресов. Пространство адресов внутренней памяти данных объединяет все внутренние программно доступные ресурсы. Это пространство (256 байт) делится на пространство адресов внутреннего ОЗУ (128 байт) и пространство адресов регистров специальных функций.
В области адресов внутреннего ОЗУ выделяются два особых фрагмента:
- Младшие 32 адреса занимают четыре регистровых банка – каждый по 8 регистров общего назначения R0…R7. Т.е. младшие 32 ячейки кроме адреса имеют имена.
- Ячейки с адресами 32…48 имеют прямо адресуемые биты.
Регистры специальных функций включают все программно доступные регистры (управления и данных). Все регистры имеют как адреса в качестве ячеек памяти, так и символические адреса. Часть регистров содержит прямо адресуемые биты.