Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Организация памяти микроконтроллера
Микроконтроллеры семейства Intel 8051 имеют несколько адресных пространств. Функционально и логически они разделены за счет реализации различных алгоритмов адресации и формирования различных сигналов управления. К ним относятся: внешняя память программ (ВПП), резидентная память программ (РПП), внешняя память данных (ВПД), резидентная память данных (РПД). Память программ предназначена для хранения команд, констант, управляющих слов инициализации, таблиц перекодировки входных и выходных переменных и т.п. Адресация ячеек памяти программ может осуществляться с использованием программного счетчика PC или регистра-указателя данных DPTR. Резидентная память программ адресуется с использованием счетчика команд PC. Младшие адреса резидентной памяти программ отведены под обработку внешних прерываний, прерываний от таймеров/счетчиков, последовательного порта и дополнительных устройств.
Рисунок 3 – Организация памяти программ
В случае возникновения какого-либо из указанных прерываний происходит обращение к соответствующей ячейке резидентной памяти программ (например, при возникновении прерывания от таймера Т0 в PC записывается адрес вектора прерываний 000Вh). При обращении к внешней памяти программ микроконтроллеры семейства Intel 8051 всегда используют полный 16-разрядный адрес, что обеспечивает доступ к 64 Кбайт внешней памяти программ ВПП. Обращение к внешней памяти программ сопровождается сигналом чтения внешней памяти программ PSEN (Program Store Enable) и возможно в двух случаях: 1. Когда сигнал ЕА активен, т.е. имеет уровень логического нуля, микроконтроллер выполняет программу с нулевого адреса внешней памяти программ. 2. Когда программный счетчик РС содержит число больше 0FFFh (последний адрес РПП при объеме 4 Кбайт) – микроконтроллер, выбрав команды из внутренней памяти, продолжает выполнять программу из внешней памяти программ. Объем внешней памяти данных может достигать 64 Кбайт. Для обращения к внешней памяти данных используется только косвенная адресация с помощью регистров R0 и R1 или с помощью 16-разрядного регистра-указателя DPTR. Обращение к внешней памяти данных сопровождается стробирующими сигналами чтения RD^ и записи WR ^. Если при обращении к внешней памяти данных используется восьмибитный адрес, то на выводах порта Р2 остается та же информация, которая там была до начала обращения к внешней памяти. Это позволяет организовать постраничную адресацию внешней памяти данных. Выводимый в цикле записи байт данных заносится в P0 непосредственно перед активацией сигнала WR ^ и остается неизменным до окончания этого сигнала. В цикле чтения данные на выводах P0 для достоверного считывания должны установиться к моменту окончания сигнала RD^. Рисунок 4 – Организация памяти данных Резидентная память данных РПД предназначена для хранения переменных в процессе выполнения прикладной программы, адресуется одним байтом и имеет емкость 128 байт (адреса с 00H по 7FH). В РПД выделяют несколько специализированных областей (табл. 1).
Таблица 1 - Структура резидентной памяти данных
Первые 32 байта памяти данных с 00h по 1Fh организованы в четыре банка регистров общего назначения, обозначаемых соответственно Банк 0 - Банк 3. Каждый из них состоит из восьми регистров R0 - R7. В любой момент программе доступен только один банк регистров, выбор которого производится в регистре слова состояния программы PSW. Следующие 16 байт памяти данных с 20h по 2Fh представляют собой так называемую побитно адресуемую область. Она предоставляет возможность при помощи специальных команд обратиться к каждому из 128 бит ячеек памяти. При адресации бит, может быть указан либо абсолютный битовый адрес, либо символический адрес в формате < АдресБайта>. < Разряд> . Например, выражение 2A.4 означает четвертый бит ячейки памяти с адресом 2Ah, абсолютным битовым адресом которого является 54h. С адресным пространством резидентной памяти данных граничит адресное пространство блока регистров специальных функций SFR (Special Function Register) c 80h по FFh. Отметим, что не занятые ячейки блока SFR физически отсутствуют. При обращении к ним на кристаллах микроконтроллеров семейства Intel 8051 можно прочитать лишь код команды возврата. Популярное:
|
Последнее изменение этой страницы: 2016-04-10; Просмотров: 857; Нарушение авторского права страницы