Микропроцессоры и микроконтроллеры

 
 
 
«A program that has not been tested does not work.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: RISC-микроконтроллеры семейства AVR :: Регистры ввода-вывода

Регистры ввода-вывода

Все регистры ввода-вывода (РВВ) условно можно разделить на две группы – служебные регистры микроконтроллера и регистры, относящиеся к конкретным периферийным устройствам.

Во всех микроконтроллерах семейства Mega (как и в микроконтроллерах всех семейств AVR) регистры ввода-вывода располагаются в так называемом пространстве ввода-вывода размером 64 байта.

Распределение адресов пространства ввода-вывода зависит от конкретной модели микроконтроллера, состава и возможностей периферийных устройств данной модели. Размещение РВВ в пространстве ввода-вывода для модели ATmega16 приведено в табл. 26.1.

Таблица 26.1.

Регистры ввода-вывода модели ATmega16

Название

Адрес

Функция

SREG

$3F ($5F)

Регистр состояния

SPH

$3E ($5E)

Указатель стека, старший байт

SPL

$3D ($5D)

Указатель стека, младший байт

OCR0

$3C ($5C)

Регистр совпадения таймера/счетчика T0

GICR

$3B ($5B)

Общий регистр управления прерываниями

GIFR

$3A ($5A)

Общий регистр флагов прерываний

TIMSK

$39 ($59)

Регистр маски прерываний от таймеров/счетчиков

TIFR

$38 ($58)

Регистр флагов прерываний от таймеров/счетчиков

SPMCR

$37 ($57)

Регистр управления памятью программ

TWCR

$36 ($56)

Регистр управления TWI

MCUCR

$35 ($55)

Регистр управления микроконтроллером

MCUCSR

$34 ($54)

Регистр управления и состояния микроконтроллера

TCCR0

$33 ($53)

Регистр управления таймером/счетчиком T0

TCNT0

$32 ($52)

Счетный регистр таймера/счетчика T0

OSCCAL

$31 ($51)

Регистр калибровки тактового генератора

OCDR

Регистр внутрисхемной отладки

SFIOR

$30 ($20)

Регистр специальных функций

TCCR1A

$2F ($4F)

Регистр управления A таймера/счетчика T1

TCCR1B

$2E ($4E)

Регистр управления B таймера/счетчика T1

TCNT1H

$2D ($4D)

Счетный регистр таймера/счетчика T1, старший байт

TCNT1L

$2C ($4C)

Счетный регистр таймера/счетчика T1, младший байт

OCR1AH

$2B ($4B)

Регистр совпадения A таймера/счетчика T1, старший байт

OCR1AL

$2A ($4A)

Регистр совпадения A таймера/счетчика T1, младший байт

OCR1BH

$29 ($49)

Регистр совпадения B таймера/счетчика T1, старший байт

Окончание табл. 26.2.

Название

Адрес

Функция

OCR1BL

$28 ($48)

Регистр совпадения B таймера/счетчика T1, младший байт

ICR1H

$27 ($47)

Регистр захвата таймера/счетчика T1, старший байт

ICR1L

$26 ($46)

Регистр захвата таймера/счетчика T1, младший байт

TCCR2

$25 ($45)

Регистр управления таймером/счетчиком T2

TCNT2

$24 ($44)

Счетный регистр таймера/счетчика T2

OCR2

$23 ($43)

Регистр совпадения таймера/счетчика T2

ASSR

$22 ($42)

Регистр состояния асинхронного режима

WDTCR

$21 ($41)

Регистр управления сторожевым таймером

UBRRH

$20 ($40)

Регистр скорости передачи USART, старший байт

UCSRC

Регистр управления и состояния USART

EEARH

$1F ($3F)

Регистр адреса EEPROM, старший байт

EEARL

$1E ($3E)

Регистр адреса EEPROM, младший байт

EEDR

$1D ($3D)

Регистр данных EEPROM

EECR

$1C ($3C)

Регистр управления EEPROM

PORTA

$1B ($3B)

Регистр данных порта А

DDRA

$1A ($3A)

Регистр направления данных порта А

PINA

$19 ($39)

Выводы порта А

PORTB

$18 ($38)

Регистр данных порта B

DDRB

$17 ($37)

Регистр направления данных порта B

PINB

$16 ($36)

Выводы порта B

PORTC

$15 ($35)

Регистр данных порта C

DDRC

$14 ($34)

Регистр направления данных порта C

PINC

$13 ($33)

Выводы порта C

PORTD

$12 ($32)

Регистр данных порта D

DDRD

$11 ($31)

Регистр направления данных порта D

PIND

$10 ($30)

Выводы порта D

SPDR

$0F ($2F)

Регистр данных SPI

SPSR

$0E ($2E)

Регистр состояния SPI

SPCR

$0D ($2D)

Регистр управления SPI

UDR

$0C ($2C)

Регистр данных USART

UCSRA

$0B ($2B)

Регистр управления и состояния A USART

UCSRB

$0A ($2A)

Регистр управления и состояния B USART

UBRRL

$09 ($29)

Регистр скорости передачи USART, младший байт

ACSR

$08 ($28)

Регистр управления и состояния компаратора

ADMUX

$07 ($27)

Регистр управления мультиплексором АЦП

ADCSRA

$06 ($26)

Регистр управления и состояния АЦП

ADCH

$05 ($25)

Регистр данных АЦП, старший байт

ADCL

$04 ($24)

Регистр данных АЦП, младший байт

TWDR

$03 ($23)

Регистр данных TWI

TWAR

$02 ($22)

Регистр адреса TWI

TWSR

$01 ($21)

Регистр состояния TWI

TWBR

$00 ($20)

Регистр скорости передачи TWI

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

Помимо непосредственной адресации (с помощью команд IN и OUT), к РВВ можно обращаться и как к ячейкам ОЗУ с помощью соответствующих команд ST/SD/SDD и LD/LDS/LDD.




<< Предыдущая статья
«Архитектура ядра микроконтроллера»
Следующая статья >>
«Порты ввода-вывода»