Распределение памяти
Память программ |
Память данных |
Автор |
Память программ
Контроллер построен по классической гарвардской архитектуре - память данных отделена
от помяти программ. Максимальный размер памяти программ - 4 К (4096) байт. В зависимости
от модели память программ может быть полностью внешней или разделяться на внешнюю и
внутренюю. Режим работы с внутренней памятью программ задается уровнем на входе EMA -
"1" - внешняя, "0" - внутренняя.
Если адрес выбираемой команды находится за пределами внутренней памяти,
автоматически активизируется внешняя память.
Выборка из внутренней памяти не сопровождается никакими внешними сигналами, кроме
ALE. При выборке из внешней памяти используется шина P0 и младшие 4
разряда порта P2 для вывода адреса байта и шина P0 для чтения байта
из ПЗУ. При этом испольуют дополнительный регистр для фиксации младшего байта
адреса обратным фронтом ALE, после чего сигнал #PME стробирует
выборку байта из ПЗУ. Байт данных считывается с шины через порт P0.
Память программ разделена на 2 банка с адресами 0000h...07FFh и 0800h...0FFFh.
Счетчик команд содержит 12 разрядов, но непосредственно инкрементируются только
младшие 11. Переключение между банками производится командами SEL MBx,
где x - номер банка. Сам разряд устанавливается по первой команде
JMP или CALL, следующей непосредственно после SEL MBx.
Каждый банк делится на страницы по 256 байт и команды условного перехода
могут адресовать память только в пределах текущей страницы.
В странице 0 находятся 3 вектора прерываний:
Адрес | Назначение вектора |
0000 | Начальная установка по RESET |
0003 | Внешнее прерывание |
0007 | Таймер |
Память данных
Память данных находится на кристалле контроллера. Размер памяти - до 128 байт
в зависимости от модели. Минимум памяти - первые 32 байта, которые разбиты на 3 части -
два банка регистров общего назначения (РОН) и стек. Остальное - это собственно ОЗУ
данных.
Банки РОН находятся по адресам 00h...07h и 18h...1Fh. Текущий банк определяется
флагом BS в слове состояния:
BS | Банк |
0 | РОН0 |
1 | РОН1 |
© Берёзкин С.Е., 2001 г.
[Главная] |
[Микроконтроллеры] |