Status Register (SREG)

Время выполнения команд.

Статическое ОЗУ данных

На рис.4.3 показана организация памяти данных в AT90S8535.

Регистровый файл   Область адресов данных
R0   $00
R1   $01
 
R30   $1E
R31   $1F
  Регистры вв./выв    
$00   $20
$00   $21
 
$3E   $5E
$3F   $5F
ОЗУ пользователя     Встроенное ОЗУ
    $60
    $61
   
    $DE
    $DF

 

Рисунок 4.3 – Организация ОЗУ в AT90S8535

 

224 ячейки памяти включают в себя регистровый файл, память ввода/вывода и статическое ОЗУ данных. Первые 96 адресов используются для регистрового файла и памяти ввода/вывода, следующие 128 - для ОЗУ данных.

При обращении к памяти используются пять различных режимов адресации: прямой, непосредственный со смещением, непосредственный, непосредственный с предварительным декрементом и непосредственный с постинкрементном. Регистры R26..R31 регистрового файла используются как указатели для непосредственной адресации.

Прямая адресация имеет доступ ко всей памяти данных.

Непосредственная адресация со смещением используется для доступа к 63 ячейкам базовый адрес которых задается содержимым регистров Y или Z.

Для непосредственной адресации с инкрементом и декрементом адреса используются адресные регистры X, Y и Z.

При помощи любого из этих режимов производится доступ ко всем 32 регистрам общего назначения, 64 регистрам ввода/вывода и 128 ячейкам ОЗУ.

ЦПУ процессора AVR управляется системной частотой, генерируемой внешним резонатором. Внутреннее деление частоты генератора не исполь­зуется.

В процессоре организован буфер команд, при выборе команды из памяти программ происходит выполнение предыдущей команды. Подобная концепция позволяет достичь быстродействия 1MIPS на МГц, уни­кальных показателей стоимости, быстродействия и потребления процессо­ра.

4.7 Пространство ввода/вывода

Все устройства ввода/вывода и периферийные устройства AT90S8535 располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода/вывода. К регистрам $00..$1F можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS.

При использовании специальных команд IN, OUT, SBIS и SBIC, должны использоваться адреса $00..$3F. При доступе к регистру ввода/вывода как к ячейке ОЗУ, к его адресу необходимо добавить $20. В приведенной выше таблице адреса регистров в памяти данных приведены в скобках. Информация по пространству ввода вывода микроконтроллера AT90S8535 приведена в приложении А.

Бит $3F($5F) R/W Нач. знач. SREG
I T H S V N Z C
R/W R/W R/W R/W R/W R/W R/W R/W

 

Рисунок 4.4 – Регистр состояния SREG

 

Бит 7 – I (Global Interrupt Enable). Общее разрешение прерываний. Для разрешения прерываний этот бит должен быть установлен в единицу. Управление отдельными пре­рываниями производится регистрами маски прерываний – GIMSK и TIMSK, а также отдельными битами разрешения прерыванийдругих регистров. Если флаг I сброшен (0), независимо от состояния других разрешающих битов, прерывания не разрешены (рис.4.5). Бит I очищается аппаратно после входа в прерывание и вос­станавливается командой RETI, для разрешения обработки следующих пре­рываний. Разработчик может программно запретить (сбросив в ноль командой CLI) или разрешить (выставив в единицу командой SEI) прерывания.

Бит 6 – T (Bit Copy Storage). Хранение копируемого бита. Команды копирования битов BLD (Bit LoaD) и BST (Bit STore) используют этот бит как источник и прием­ник обрабатываемого бита. Бит из регистра регистрового файла может быть скопирован в T командой BST, бит T может быть скопирован в бит регистрового файла командой BLD. Бит может быть использован разработчиком для организации быстрых переходов с использованием команд BRTC или BRTS.

Бит 5 - H (Half-carry Flag). Флаг половинного переноса. Этот флаг выставляется в единицу, когда после выполнения очередной команды происходит перенос из младшей половины байта (биты 0-3) при некоторых арифметических операциях. Более подробно об этом можно прочитать в описании системы команд.

Рисунок 4.5 – Система прерываний AT90S8535

 

Бит 4 – S (Sign Bit). Бит знака, S = N XOR V. Бит S всегда равен исключающему ИЛИ между флагами N (отрицательный результат) и V (переполнение допол­нения до двух). Более подробно об этом можно прочитать в описании сис­темы команд.

Бит 3 – V (Two’s Complement Overflow Flag). Флаг переполнения дополнения до двух. Этот флаг поддержи­вает арифметику с дополнением до двух. Более подробно об этом можно прочитать в описании системы команд.

Бит 2 – N (Negative Flag). Флаг отрицательного результата. Этот флаг выставляется в единицу, когда в АЛУ после выполнения очередной команды получается отрицательный результат. Более подробно об этом можно прочитать в описании системы команд.

Бит 1 – Z (Zero Flag). Флаг нулевого результата. Этот флаг выставляется в единицу, когда после выполнения очередной команды в АЛУ получается ноль. Более подробно об этом можно прочитать в описании системы команд.

Бит 0 – C (Carry Flag). Флаг переноса. Этот флаг индицирует перенос в арифметичес­ких и логических операциях из бита 7. Более подробно об этом можно прочитать в описании системы команд.