Пространство ввода/вывода
Все устройства ввода/вывода и периферийные устройства AT90S8535 располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода/вывода. К регистрам $00..$1F можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS.
При использовании специальных команд IN, OUT, SBIS и SBIC, должны использоваться адреса $00..$3F. При доступе к регистру ввода/вывода как к ячейке ОЗУ, к его адресу необходимо добавить $20. В приведенной выше таблице адреса регистров в памяти данных приведены в скобках. Информация по пространству ввода вывода микроконтроллера AT90S8535 приведена в приложении А.
Status Register (SREG)
Бит $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. Более подробно об этом можно прочитать в описании системы команд.