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

Все устройства ввода/вывода и периферийные устройства 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. Более подробно об этом можно прочитать в описании системы команд.