Пространство ввода/вывода
Ниже приведено описание пространства ввода/вывода для процессоров AT90S2313.
Все устройства ввода/вывода и периферийные устройства AT90S2313 располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода/вывода. К регистрам $00..$1F можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS. Дополнительную информацию по этому вопросу можно найти в описании системы команд.
При использовании специальных команд IN, OUT, SBIS и SBIC, должны использоваться адреса $00..$3F. При доступе к регистру ввода/вывода как к ячейке ОЗУ, к его адресу необходимо добавить $20. В приведенной выше таблице адреса регистров в памяти данных приведены в скобках.
Таблица 1. Пространство ввода/вывода AT90S2313.
| $3F($5F) | SREG | Status REGister | Регистр Состояния |
| $3D($5D) | SPL | Stack pointer low | Указатель стека, мл. байт |
| $3B($5B) | GIMSK | General Interrupt MaSK register | Общий регистр маски прерываний |
| $3A($5A) | GIFR | General Interrupt Flag register | Общий регистр флагов прерываний |
| $39($59) | TIMSK | Timer/counter Interrupt mask register | Регистр маски прерываний от таймера/счетчика |
| $38($58) | TIFR | Timer/counter Interrupt Flag register | Регистр флага прерывания таймера/счетчика |
| $35($55) | MCUCR | MCU general Control Register | Общий регистр управления микроконтроллером |
| $33($53) | TCCR0 | Timer/Counter 0 Control Register | Регистр управления таймером счетчиком 0 |
| $32($52) | TCNT0 | Timer/Counter 0 (8-бит) | Таймер/счетчик 0 (8 бит) |
| $2F($4F) | TCCR1A | Timer/Counter 1 Control Register A | Регистр A управления таймером счетчиком 1 |
| $2E($4E) | TCCR1B | Timer/Counter 1 Control Register B | Регистр B управления таймером счетчиком 1 |
| $2D($4D) | TCNT1H | Timer/Counter 1 High byte | Таймер/счетчик 1 старший байт |
| $2C($4C) | TCNT1L | Timer/Counter 1 Low byte | Таймер/счетчик 1 младший байт |
| $2B($4B) | OCR1H | Output Compare Register 1 high byte | Выход регистра совпадения 1старший байт |
| $2A($4A) | ICR1L | Output Compare Register 1 low byte | Выход регистра совпадения 1 младший байт |
| $25($45) | ICR1H | T/C 1 Input Cupture Register High Byte | Регистр захвата Т\С 1 старший байт |
| $24($44) | ICR1L | T/C 1 Input Cupture Register Low Byte | Регистр захвата Т\С 1 младший байт |
| $21($41) | WDTCR | Watchdog Timer Control Register | Регистр управления сторожевым таймером |
| $1E($3E) | EEAR | EEPROM Address Register | Регистр адреса энергонезависимой памяти |
| $1D($3D) | EEDR | EEPROM Data Register | Регистр данных энергонезависимой памяти |
| $1C($3C) | EECR | EEPROM Control Register | Регистр управления энергонезависимой памятью |
| $18($38) | PORTB | Data Register, Port B | Регистр данных порта B |
| $17($37) | DDRB | Data Direction Register Port B | Регистр направления данных порта B |
| $16($36) | PINB | Input pins, Port B | Выводы порта B |
| $12($32) | PORTD | Data Register, Port D | Регистр данных порта D |
| $11($31) | DDRD | Data Direction Register Port D | Регистр направления данных порта D |
| $10($30) | PIND | Input pins, Port D | Выводы порта D |
| $0C($2C) | UDR | UART Data Register | Регистр данных последовательного порта |
| $0B($2B) | USR | UART Status Register | Регистр состояния последовательного порта |
| $0A($2A) | UCR | UART Control Register | Регистр управления последовательного порта |
| $09($29) | UBRR | UART Baud Rate Register | Регистр скорости последовательного порта |
| $08($28) | ACSR | Analog Comparator Control and Status Register | Регистр управления и состояния аналогового компаратора |
Примечание: зарезервированные и неиспользуемые ячейки не показаны.