Курс лекций - Микропроцессоры


Память программ микроконтроллеров MCS-51


Память программ предназначена для хранения программ и имеет отдельное от памяти данных адресное пространство объемом 64 Кбайт, причем для некоторых микросхем (например КР1816ВЕ51, КМ1819ВЕ751, КР1830ВЕ51) для хранения программ на кристалле микроконтроллера расположено ПЗУ. Это ПЗУ отображается в область млаших адресов памяти программ. Учитывая, что выполнение программы после сброса микроконтроллера всегда начинается с нулевого адреса памяти программ, то при включении питания начнет выполняться программа, записанная во внутненнем ПЗУ микроконтроллера. Микроконтроллеры, не имеющие внутреннего ПЗУ (например КР1816ВЕ31 и КР1830ВЕ31) могут работать только с внешней микросхемой ПЗУ емкостью до 64 Кбайт (при использовании портов P1 и P3 в качестве расширителя адреса объем подключаемой ПЗУ может быть увеличен до 1Гбайта). Микроконтроллеры семейства MCS-51 имеют внешний вывод EA, с помощью которого можно запретить работу внутренней памяти, для чего необходимо подать на вывод EA логический "0" (соединить этот вывод с корпусом). При этом внутренняя память программ отключается и, начиная с нулевого адреса, все обращения происходят к внешней памяти программ.

Доступ к внешней памяти программ осуществляется в двух случаях:

  1. при действии сигнала EA=0 независимо от адреса обращения,
  2. в любом случае, если программный счетчик (РС) содержит число большее, чем максимальная ячейка внутренней памяти программ.

Распределение памяти программ микроконтроллера КР1830ВЕ51 представлено ниже:

pam_prog.gif (3480 bytes)
Для чтения памяти программ используются команды

MOVC A, A+@DPTR и MOVC A, A+@PC

Рисунок 2. Адресное пространство памяти программ.

Для других микроконтроллеров этого семейства изменяется только объем внутренней памяти программ и количество доступных векторов прерываний программы.

Ниже приведены адреса векторов прерываний и соответствующие им аппаратурные источники прерываний программы:

Вектор прерывания

Флаги, вызывающие прерывание

Источник прерывания

0000Н

-

Рестарт (сброс) контроллера RESET

0003Н

IE0

внешнее прерывание INT0

000bН

TF0

Таймер 0

0013Н

IE1

внешнее прерывание INT1

001bН

TF1

Таймер 1

0023Н

RI, TI

Последовательный порт

002bН

TF2, EXF2

Таймер 2

0033Н

CF, CCFn(n=0:4)

Набор программируемых счётчиков (РСА)

003bН

AIF

Аналого-цифровой преобразователь

0043Н

CF1,C1CCFn(n=1:4)

Набор программируемых счётчиков (РСА1)

004bН

SEPIF

Последовательный порт SEP

0053Н

IE2

внешнее прерывание INT2

005bН

IE3

внешнее прерывание INT3

0063Н

IE4

внешнее прерывание INT4

006bН

IE5

внешнее прерывание INT5

0073Н

IE6

внешнее прерывание INT6

Примечание: вектора прерывания, выделенные:

  1. жирным подчеркнутым текстом- присутствуют во всех микросхемах семейства;
  2. жирным текстом- отсутствуют в микросхемах 8051,8031, КР1816ВЕ31, КР1816ВЕ51, КР1816ВЕ751 КР1830ВЕ31, КР1830ВЕ51, КР1830ВЕ751;
  3. обычным текстом- присутствуют только в микросхемах 8Х51FA, FB, FC и GB
  4. курсивом- присутствуют только в микросхеме 8Х51GB



- Начало -  - Назад -  - Вперед -