Все регистры ввода/вывода (общее число 64) можно разделить на следующие основные группы (рис.7): 1. Регистры портов цифрового ввода/вывода информации. 2. Регистры портов, обслуживающих периферийные устройства (АЦП,UART, компараторы, таймеры, внешние прерывания) 3. Регистры портов, обслуживающих работу МП. Регистры – устройства памяти, расположенные на кристалле процессора или микроконтроллера, необходимые для хранения промежуточных вычислений, к ним обращаются лишь на программном уровне с помощью команд. Регистры ввода/вывода предназначенные для обмена информацией с внешней средой как на программном уровне, так и на аппаратном. Регистры портов, обслуживающих работу процессора: Регистры Spl, Sph (стековая память) Регистры SREG. RAM (Read Access Memory) производит доступ к памяти, традиционно использовали для обозначения ОЗУ. DDR A – задание направления выдачи информации для регистра. PORT A – это непосредственно триггер, который запоминает выводимую информацию. Это устройство статистическое. PINE A – регистр не предназначенный для хранения долговременной информации и отображающий напряжение на ножке А. Адреса регистров ввода-вывода, их имена и функции приведены в табл.1. Табл. 1 Регистры ввода/вывода AVR-контроллера Адрес I/O (Адрес RAM) Обозначение Функция $ 3D ($5D) SPL Указатель стека (младший байт) $ 3E ($5E) SPH Указатель стека (старший байт) $ 3F ($5F) SPEG Регистр статуса (признаков или флаговый регистр) $ 00 ($20) PINF Выводы входов порта F $ 01 ($21) PINE Выводы входов порта E $ 02 ($22) DDR E Регистр направления данных порта E $ 03 ($23) PORT E Регистр данных порта E $ 04 ($24) ADCL Младший байт регистра данных АЦП $ 05 ($25) ADCH Старший байт регистра данных АЦП $ 06 ($26) ADCSR Регистр управления и статуса АЦП $ 07 ($27) ADMUX Регистр мультиплексора АЦП $ 08 ($28) ACSR Регистр управления и статуса аналогового ком. $ 09 ($29) UBRR Регистр управления скоростью порта UART $ 0A ($2A) UCR Регистр управления порта UART $ 0B ($2B) USR Регистр статуса порта UART $ 0C ($2C) UDR Регистр данных порта UART $ 0D ($2D) SPCR Регистр управления порта SPI $ 0E ($2E) SPRC Регистр статуса порта SPI $ 0F ($2F) SPDR Регистр данных порта SPI $ 10 ($30) PIN D Выводы входов порта D $ 11 ($31) DDR D Регистр направления данных порта D $ 12 ($32) PORT D Регистр данных порта D $ 13 ($33) PINC Выводы входов порта C $ 14 ($34) DDR C Регистр направления данных порта C $ 15 ($35) PORT C Регистр данных порта C $ 16 ($36) PIN B Выводы входов порта B $ 17 ($37) DDR B Регистр направления данных порта B $ 18 ($38) PORT B Регистр данных порта B $ 19 ($39) PIN A Выводы входов порта A $ 1A ($3A) DDR A Регистр направления данных порта A $ 1B ($3B) PORT A Регистр данных порта A $ 1C ($3C) EE CR Регистр управления EEPROM $ 1D ($3D) EE DR Регистр данных EEPROM $ 1E ($3E) EE ARL Младший байт адреса EEPROM $ 1F ($3F) EE ARH Старший байт регистра адреса EEPROM $ 20 ($40) Резерв Резерв $ 21 ($41) WDTCR Регистр управления сторожевого таймера $ 23 ($42) Резерв Резерв $ 24 ($43) OCR2 Регистр выхода таймера/ счетчик №2 $ 24 ($44) TCNT2 Таймер/счетчик №2 $ 25 ($45) TCCR2 Регистр управления таймера/счетчика №2 $ 26 ($46) ICR1L Младший байт регистра захвата таймера/счетчика №1 $ 27 ($47) ICR1H Старший байт регистра захвата таймера/счетчика №1 $ 28 ($48) OCR1BL Младший байт регистра в сравнения выхода таймера/счетчика №1 $ 29 ($49) OCR1BH Старший байт регистра в сравнения выхода таймера/счетчика №1 $ 2A ($4A) OCR1AL Младший байт регистра A в сравнения выхода таймера/счетчика №1 $ 2B ($4B) OCR1AH Старший байт регистра A в сравнения выхода таймера/счетчика №1 $ 2C ($4C) TCNT1L Младший байт таймера/счетчика №1 $ 2D ($4D) TCNT1H Старший байт таймера/счетчика №1 $ 2E ($4E) TCCR1B Регистр управления В таймера/счетчика №1 $ 2F ($4F) TCCR1A Регистр управления А таймера/счетчика №1 $ 30 ($50) ASSR Регистр статуса асинхронного режима. |