Микроконтроллеры семейства MCS-48 построены по Гарвардской архитектуре. Это означает, что память данных и память программ в этих микросхемах разделены и имеют отдельное адресное пространство. В этих микроконтроллерах имеется три адресных пространства: память программ, внешняя память данных и внутренняя память данных. Такое построение памяти позволяет реализовывать максимально надёжные системы.
Схема подключения внешних микросхем памяти к микроконтроллерам семейства MCS-48 показана на рисунке 1. Регистр адреса D3 на этой схеме предназначен для запоминания младших 8-ми бит адреса, передаваемых через шину данных/памяти. Старшие четыре бита адреса передаются через шину адреса, совмещенную с портом P2. Во время передачи адреса, микроконтроллер вырабатывает синхроимпульс на ножке ALE. Именно этот импульс позволяет запомнить младший байт адреса в регистре D3.
Для обращения к памяти данных и к памяти программ используются одни и те же шина адреса и шина данных, но разные управляющие сигналы. Для чтения памяти программ вырабатывается сигнал PSEN, а для чтения памяти данных вырабатывается сигнал RD. Для записи информации в память данных вырабатывается сигнал WR. То есть память программ доступна только для чтения, а память данных доступна и для чтения и для записи любой информации, записанной в двоичном коде.

Рисунок 1. Схема подключения схем внешней памяти к микроконтроллерам семейства MCS-48
Память программ микроконтроллеров MCS-48
Память программ предназначена для хранения программ и имеет отдельное от памяти данных адресное пространство объемом 4 Кбайта, причем для некоторых микросхем (например КР1816ВЕ48, КМ1816ВЕ49) для хранения программ на кристалле микроконтроллера расположено ПЗУ. Это ПЗУ отображается в область младших адресов памяти программ. Учитывая, что выполнение программы после сброса микроконтроллера всегда начинается с нулевого адреса памяти программ, то при включении питания начнет выполняться программа, записанная во внутреннем ПЗУ микроконтроллера. Микроконтроллеры, не имеющие внутреннего ПЗУ (например КР1816ВЕ35 или 8035) могут работать только с внешней микросхемой ПЗУ емкостью до 4 Кбайт. Микроконтроллеры семейства MCS-48 имеют внешний вывод EA, с помощью которого можно запретить работу внутренней памяти, для чего необходимо подать на вывод EA логический "0" (соединить этот вывод с корпусом). При этом внутренняя память программ отключается и, начиная с нулевого адреса, все обращения происходят к внешней памяти программ.
Доступ к внешней памяти программ осуществляется в двух случаях:
- при действии сигнала EA=0 независимо от адреса обращения,
- в любом случае, если программный счетчик (РС) содержит число большее, чем максимальная ячейка внутренней памяти программ.
Распределение памяти программ микроконтроллера КР1816ВЕ48 представлено ниже:
![]() |
Для чтения таблиц элементарных функций, перекодировок или строк, выводимых на дисплей, из памяти программ используются команды: Переключение страниц памяти программ осуществляется командами SEL MB1 ;Выбрать первую страницу SEL MB0 ;Выбрать нулевую страницу |
Для других микроконтроллеров этого семейства изменяется только объем внутренней памяти программ. При использовании портов P1 и P2 в качестве дополнительных адресных расширителей объём доступной внешней памяти программ может быть увеличен до 16 Мбайт.
Ниже приведены адреса векторов прерываний и соответствующие им аппаратурные источники прерываний программы:
Вектор прерывания | Флаги, вызывающие прерывание | Источник прерывания |
---|---|---|
0000Н | - | Рестарт (сброс) контроллера RESET |
0003Н | IE | внешнее прерывание INT |
0007Н | TF | Таймер |
Внешняя память данных микроконтроллеров MCS-48
Внешняя память данных предназначена для временного хранения информации, используемой в процессе выполнения программы. Эта память физически должна быть подключена к микросхеме микроконтроллера при помощи схемы, изображенной на рисунке 1. Максимальный объем этой памяти определяется регистрами R0 и R1 и составляет 256 байт. Точно также как и в случае внешней памяти программ, объем внешней памяти данных может быть увеличен за счет использования портов P1 и P2 до 16 Мбайт.
![]() |
Для обращения к внешней памяти данных используются команды:
MOVX A, @R0 или MOVX A, @R1 (команды чтения) MOVX @R0, или MOVX @R1, A (команды записи) |
Отметим, что в качестве внешней памяти данных могут быть использованы как микросхемы ОЗУ так и микросхемы ПЗУ.