Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорная измерительная техника.docx
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
3.84 Mб
Скачать

Память данных

Память данных микроконтроллеров семейства Tiny разделена на две части: регистровая память и энергонезависимое ЭСППЗУ (EEPROM). Внутреннее статическое ОЗУ в микроконтроллерах семейства Tiny отсутствует.

Регистровая память включает 32 регистра общего назначения (РОН), объединенных в т. н. «файл» и служебные регистры ввода/вывода (РВВ). Размер регистровой памяти фиксирован и для всех моделей составляет 96 байт, соответственно под РОН отводится 32 байт, а под РВВ — 64 байт.

В области регистров ввода/вывода расположены различные служебные регистры (регистр управления микроконтроллером, регистр состояния и т. п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера. Общее количество РВВ зависит от конкретной модели микроконтроллера.

Для долговременного хранения различной информации, которая может изменяться в процессе функционирования готовой системы (калибровочные константы, серийные номера, ключи и т. п.) в моделях ATtiny12x и ATtiny15L может быть использована EEPROM-память. Ее объем составляет 64 байт. Эта память расположена в отдельном адресном пространстве, а доступ к ней осуществляется с помощью определенных регистров ввода/вывода.

Способы адресации памяти данных

Микроконтроллеры AVR семейства Tiny поддерживают только 4 способа адресации для доступа к различным областям памяти данных. Причем 3 способа из 4-х являются всего лишь разновидностями прямой адресации.

Обратите внимание, что далее может встречаться аббревиатура КОП. Эта аббревиатура обозначает часть (или части) слова команды, содержащую значение Кода ОПерации.

Прямая адресация

При прямой адресации адреса операндов содержатся непосредственно в слове команды. Микроконтроллеры семейства поддерживают следующие разновидности прямой адресации: прямая адресация одного РОН, прямая адресация двух РОН, прямая адресация РВВ.

Прямая адресация одного регистра общего назначения

Этот способ адресации используется в командах, оперирующих с одним из регистров общего назначения. При этом адрес регистра-операнда (его номер) содержится в разрядах 8…4 (5 бит) слова команды (Рис. 5.6). Положение разрядов d на рисунке показано условно.

$<_IL_016>$

Рис. 5.6. Прямая адресация одного регистра общего назначения

Примером команд, использующих этот способ адресации, являются команды работы со стеком (PUSH, POP), команды инкремента (INC), декремента (DEC), а также некоторые команды арифметических операций.

Прямая адресация двух регистров общего назначения

Этот способ адресации используется в командах, оперирующих одновременно с двумя регистрами общего назначения. При этом адрес регистра-источника содержится в разрядах 9, 3…0 (5 бит), а адрес регистра-приемника в разрядах 8…4 (5 бит) слова команды (Рис. 5.7). Положение разрядов r и d на рисунке показано условно.

Рис. 5.7. Прямая адресация двух регистров общего назначения

К командам, использующим этот способ адресации, относятся команда пересылки данных из регистра в регистр (MOV), а также большинство команд арифметических операций. Кроме того, этот способ адресации используют даже некоторые команды, имеющие только один регистр-операнд. При этом источником и приемником является один и тот же регистр. В качестве примера можно привести команду очистки регистра (CLR Rd), которая в действительности выполняет операцию «Исключающее ИЛИ» регистра с самим собой (EOR Rd,Rd).

Прямая адресация регистра ввода/вывода

Данный способ адресации используется командами пересылки данных между регистром ввода/вывода и регистровым файлом —IN и OUT. В этом случае адрес регистра ввода/вывода содержится в разрядах 10, 9, 3…0 (6 бит), а адрес РОН — в разрядах 8…4 (5 бит) слова команды (Рис. 5.8). Положение разрядов r/d и P на рисунке показано условно.

Рис. 5.8. Прямая адресация регистра ввода/вывода

Косвенная адресация

В микроконтроллерах семейства Tiny реализована только простая косвенная адресация. Команды косвенной адресации выполняют обращение к регистру, адрес которого содержится в индексном регистре Z (Рис. 5.9). При этом никаких действий с содержимым индексного регистра не производится.

Рис. 5.9. Простая косвенная адресация

Микроконтроллеры семейства поддерживают 2 команды косвенной адресации: LD Rd, Z (пересылка байта в РОН) и ST Z, Rd (пересылка байта из РОН). Адрес регистра общего назначения содержится в разрядах 8…4 слова команды.