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

 
 
 
«Сначала учите науку программирования и всю теорию. Далее выработаете свой программистский стиль. Затем забудьте все и просто программируйте.»
George Carrette
Русский | Українська


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

Регістри вводу-виводу

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

rn

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

rn

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

rn

Таблиця 26.1.

rn

Регістри вводу-виводу моделі ATmega16

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

Назва

rn
rn

Адреса

rn
rn

Функція

rn
rn

SREG

rn
rn

$ 3F ($ 5F)

rn
rn

Регістр стану

rn
rn

SPH

rn
rn

$ 3E ($ 5E)

rn
rn

Покажчик стека, старший байт

rn
rn

SPL

rn
rn

$ 3D ($ 5D)

rn
rn

Покажчик стека, молодший байт

rn
rn

OCR0

rn
rn

$ 3C ($ 5C)

rn
rn

Регістр збігу таймера /лічильника T0

rn
rn

GICR

rn
rn

$ 3B ($ 5B)

rn
rn

Загальний регістр управління переривання

rn
rn

GIFR

rn
rn

$ 3A ($ 5A)

rn
rn

Загальний регістр прапорів переривань

rn
rn

TIMSK

rn
rn

$ 39 ($ 59)

rn
rn

Регістр маски переривань від таймерів /лічильників

rn
rn

TIFR

rn
rn

$ 38 ($ 58)

rn
rn

Регістр прапорів переривань від таймерів /лічильників

rn
rn

SPMCR

rn
rn

$ 37 ($ 57)

rn
rn

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

rn
rn

TWCR

rn
rn

$ 36 ($ 56)

rn
rn

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

rn
rn

MCUCR

rn
rn

$ 35 ($ 55)

rn
rn

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

rn
rn

MCUCSR

rn
rn

$ 34 ($ 54)

rn
rn

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

rn
rn

TCCR0

rn
rn

$ 33 ($ 53)

rn
rn

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

rn
rn

TCNT0

rn
rn

$ 32 ($ 52)

rn
rn

Рахункової регістр таймера /лічильника T0

rn
rn

OSCCAL

rn
rn

$ 31 ($ 51)

rn
rn

Регістр калібрування тактового генератора

rn
rn

OCDR

rn
rn

Регістр внутрісхемной налагодження

rn
rn

SFIOR

rn
rn

$ 30 ($ 20)

rn
rn

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

rn
rn

TCCR1A

rn
rn

$ 2F ($ 4F)

rn
rn

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

rn
rn

TCCR1B

rn
rn

$ 2E ($ 4E)

rn
rn

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

rn
rn

TCNT1H

rn
rn

$ 2D ($ 4D)

rn
rn

Рахункової регістр таймера /лічильника T1, старший байт

rn
rn

TCNT1L

rn
rn

$ 2C ($ 4C)

rn
rn

Рахункової регістр таймера /лічильника T1, молодший байт

rn
rn

OCR1AH

rn
rn

$ 2B ($ 4B)

rn
rn

Регістр збігу A таймера /лічильника T1, старший байт

rn
rn

OCR1AL

rn
rn

$ 2A ($ 4A)

rn
rn

Регістр збігу A таймера /лічильника T1, молодший байт

rn
rn

OCR1BH

rn
rn

$ 29 ($ 49)

rn
rn

Регістр збігу B таймера /лічильника T1, старший байт

rn
rn

Закінчення табл. 26.2.

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

Назва

rn
rn

Адреса

rn
rn

Функція

rn
rn

OCR1BL

rn
rn

$ 28 ($ 48)

rn
rn

Регістр збігу B таймера /лічильника T1, молодший байт

rn
rn

ICR1H

rn
rn

$ 27 ($ 47)

rn
rn

Регістр захоплення таймера /лічильника T1, старший байт

rn
rn

ICR1L

rn
rn

$ 26 ($ 46)

rn
rn

Регістр захоплення таймера /лічильника T1, молодший байт

rn
rn

TCCR2

rn
rn

$ 25 ($ 45)

rn
rn

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

rn
rn

TCNT2

rn
rn

$ 24 ($ 44)

rn
rn

Рахункової регістр таймера /лічильника T2

rn
rn

OCR2

rn
rn

$ 23 ($ 43)

rn
rn

Регістр збігу таймера /лічильника T2

rn
rn

ASSR

rn
rn

$ 22 ($ 42)

rn
rn

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

rn
rn

WDTCR

rn
rn

$ 21 ($ 41)

rn
rn

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

rn
rn

UBRRH

rn
rn

$ 20 ($ 40)

rn
rn

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

rn
rn

UCSRC

rn
rn

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

rn
rn

EEARH

rn
rn

$ 1F ($ 3F)

rn
rn

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

rn
rn

EEARL

rn
rn

$ 1E ($ 3E)

rn
rn

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

rn
rn

EEDR

rn
rn

$ 1D ($ 3D)

rn
rn

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

rn
rn

EECR

rn
rn

$ 1C ($ 3C)

rn
rn

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

rn
rn

PORTA

rn
rn

$ 1B ($ 3B)

rn
rn

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

rn
rn

DDRA

rn
rn

$ 1A ($ 3A)

rn
rn

Регістр напрямки даних порту А

rn
rn

PINA

rn
rn

$ 19 ($ 39)

rn
rn

Висновки порту А

rn
rn

PORTB

rn
rn

$ 18 ($ 38)

rn
rn

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

rn
rn

DDRB

rn
rn

$ 17 ($ 37)

rn
rn

Регістр напрямки даних порту B

rn
rn

PINB

rn
rn

$ 16 ($ 36)

rn
rn

Висновки порту B

rn
rn

PORTC

rn
rn

$ 15 ($ 35)

rn
rn

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

rn
rn

DDRC

rn
rn

$ 14 ($ 34)

rn
rn

Регістр напрямки даних порту C

rn
rn

PINC

rn
rn

$ 13 ($ 33)

rn
rn

Висновки порту C

rn
rn

PORTD

rn
rn

$ 12 ($ 32)

rn
rn

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

rn
rn

DDRD

rn
rn

$ 11 ($ 31)

rn
rn

Регістр напрямки даних порту D

rn
rn

PIND

rn
rn

$ 10 ($ 30)

rn
rn

Висновки порту D

rn
rn

SPDR

rn
rn

$ 0F ($ 2F)

rn
rn

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

rn
rn

SPSR

rn
rn

$ 0E ($ 2E)

rn
rn

Регістр стану SPI

rn
rn

SPCR

rn
rn

$ 0D ($ 2D)

rn
rn

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

rn
rn

UDR

rn
rn

$ 0C ($ 2C)

rn
rn

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

rn
rn

UCSRA

rn
rn

$ 0B ($ 2B)

rn
rn

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

rn
rn

UCSRB

rn
rn

$ 0A ($ 2A)

rn
rn

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

rn
rn

UBRRL

rn
rn

$ 09 ($ 29)

rn
rn

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

rn
rn

ACSR

rn
rn

$ 08 ($ 28)

rn
rn

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

rn
rn

ADMUX

rn
rn

$ 07 ($ 27)

rn
rn

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

rn
rn

ADCSRA

rn
rn

$ 06 ($ 26)

rn
rn

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

rn
rn

ADCH

rn
rn

$ 05 ($ 25)

rn
rn

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

rn
rn

ADCL

rn
rn

$ 04 ($ 24)

rn
rn

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

rn
rn

TWDR

rn
rn

$ 03 ($ 23)

rn
rn

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

rn
rn

TWAR

rn
rn

$ 02 ($ 22)

rn
rn

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

rn
rn

TWSR

rn
rn

$ 01 ($ 21)

rn
rn

Регістр стану TWI

rn
rn

TWBR

rn
rn

$ 00 ($ 20)

rn
rn

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

rn
rn

До РВВ, розташованим в основному просторі введення-виведення, можна звернутися за допомогою команд IN і OUT, що виконують пересилання даних між одним з 32-х Рон і простором вводу-виводу. У системі команд є також чотири команди поразрядного доступу, що використовують в якості операндів регістри вводу-виводу: команди установки /скидання окремого біта (SBI і CBI) і команди перевірки стану окремого біта (SBIS і SBIC). Ці команди можуть звертатися тільки до першої половині основних регістрів вводу-виводу (адреси $ 00 ... $ 1F).

rn

Крім безпосередньої адресації (за допомогою команд IN і OUT), до РВВ можна звертатися і як до комірок ОЗУ за допомогою відповідних команд ST /SD /SDD і LD /LDS /LDD.




Следующая статья >>
«Порти вводу-виводу»