Главная | |
Материал взят из книги![]() Скачать оригинал КНИГИ в хорошем качествеРассмотрим теперь структуру внутренней памяти данных (ОЗУ) микроконтроллера АТ89С2051. Для адресации любой ячейки памяти в микроконтроллере используется 1 байт адреса. Очевидно, что в этом случае ОЗУ может иметь не более 256 ячеек памяти. Используемая в позиционере версия микросхемы AT89C2051-24PI имеет всего лишь 128 ячеек. Эти ячейки занимают адресное пространство от ООН до 7FH. Выше этого диапазона ячеек памяти, в общем-то, нет. Однако адресное пространство от 80Н до FFH тоже используется. Дело в том, что в микроконтроллере АТ89С2051, как и во многих аналогичных микросхемах, реализован принцип совмещения внутренних регистров и ячеек памяти. Все внутренние регистры, являются одновременно и ячейками памяти. На рис. 42 показано адресное пространство микроконтроллера АТ89С2051. Такие рисунки часто используются для наглядной иллюстрации распределения памяти. На рис. 42 все адресное пространство представлено в виде клеточек. Каждый ряд и каждая строка этой таблицы обозначена одной шестнадцатеричной цифрой. Цифра в названии ряда — это старший разряд шестнадцатеричного адреса. Младший разряд — это название строки. Таким образом, левая верхняя клеточка на рисунке соответствует ячейке памяти с адресом ООН. Следующая по порядку ячейка имеет адрес 01Н, и так далее. Последняя ячейка в строке — это ячейка с адресом 0FH. Таким же образом определяются адреса для всех остальных строк. Серым цветом на рисунке обозначены те адреса, по которым имеется реальная память. Это либо ячейка памяти, либо один из регистров. Совмещение регистров процессора с ячейками ОЗУ имеет большие преимущества. Такой способ позволяет обращаться к любому регистру общего назначения напрямую, без переключения банков. Это увеличивает гибкость всей системы. Регистры общего назначения занимают в адресном пространстве ОЗУ ячейки с ООН по 1FH. На рис. 42 регистры нулевого банка обозначены без штриховки, регистры банка 1 обозначены с одним штрихом, банка 2 — с двумя штрихами, и банка 3 — с тремя. В адресном пространстве ОЗУ расположены также и все основные рабочие регистры процессора (те самые регистры, которые изображены на рис. 39). Все они располагаются во второй части этого пространства, в той его части, где отсутствуют ячейки основного ОЗУ. В этой же части вы можете видеть целый набор дополнительных регистров. Они имеют название «специальные регистры». О специальных регистрах мы поговорим в следующем разделе. ![]() Еще одна особенность микросхемы АТ89С2051 — наличие ячеек памяти с побитной адресацией. Система команд микроконтроллера имеет команды работы с битовыми ячейками памяти. Это команды типа «записать бит по адресу такому-то» и «прочитать бит по адресу такому-то». Для подобных команд контроллер имеет свое отдельное адресное пространство. Диапазон адресов битовой памяти: ООН...РЕН. Однако все эти однобитовые ячейки памяти тоже совмещены с ячейками ОЗУ. Каждая ячейка однобитной памяти является одновременно одним из разрядов какой-нибудь ячейки ОЗУ. Например, ячейка однобитовой памяти с адресом ООН является одновременно младшим битом ячейки ОЗУ с адресом 20Н. Посмотрите на рис. 42. В нижней части каждой ячейки памяти, которая совмещена с битовым пространством, указан диапазон адресов составляющих ее ячеек битовой памяти. Так, в нижней части ячейки, с адресом 20Н вы можете видеть следующую запись: 00-07. Эта запись означает, что с указанной ячейкой памяти совмещены восемь однобитовых ячеек с адресами от ООН до 07Н. Под однобитовую память, выделен весь ряд, начиная с адреса 20Н, а также почти все специальные регистры. Говоря о памяти данных, хочу затронуть такой вопрос, как способы адресации памяти. В командах микропроцессора адрес ячейки памяти может задаваться четырьмя разными способами. В зависимости от метода задания адреса различают следующие виды адресации: регистровый, прямой, косвенный и непосредственный. Регистровый способ адресации. Команды, использующие этот способ адресации, обращаются только к регистрам процессора. Такие команды состоят лишь и? кода операции, в который заложена информация и о виде операции и о том, какие регистры в ней участвуют. Прямой способ адресации. При этом способе адрес ячейки памяти указывается в самой команде в виде дополнительного байта. Команда состоит из двух байтов. Первый байт — это код операции, а второй байт — это адрес, участвующей в ней ячейки памяти. Косвенный способ адресации. При таком способе адресации адрес ячейки памяти сначала помещается в один из регистров. А затем можно включать в программу одну из команд, использующую этот вид адресации. В качестве регистров для косвенной адресации могут быть использованы только регистры Я0 и Я1. Непосредственная адресация. При таком способе адресации информация вообще не хранится ни в памяти, ни в регистрах. Байт данных в этом случае является частью самой команды. Такая команда состоит из двух или даже из трех байтов. Один из этих байтов — это данные для расчета. Пример такой команды — команда записи константы в ячейку памяти. Записывается она следующим образом: Получив такую команду, процессор записывает в ячейку памяти с адресом ЗОН байт данных, имеющий значение 27Н. Если записать эту команду в кодах процессора, то она будет представлять собой три байта: 75Н ЗОН 27Н. Первый байт — это код данной операции. Второй байт — это адрес ячейки памяти, куда требуется записать константу. А третий байт — это и есть та самая константа. В приведенной команде используются сразу два способа адресации. Во-первых, прямая (ЗОН — прямой Используются технологии uCoz
|