8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 30 31 32 33 34 35 36 ... 195

Регистры общего назначения

Все регистры общего назначения объединены в регистровый файл быстрого доступа, структура которого показана на Рис. 2.16. Как было сказано выше, в микроконтроллерах AVR все 32 РОН непосредственно доступны АЛУ, в отличие от 8-битных микроконтроллеров других фирм, в которых имеется только один такой регистр — рабочий регистр W (аккумулятор). Благодаря этому любой РОН может использоваться практически во всех командах и как операнд-источник, и как операнд-приемник. Такое решение (в сочетании с конвейерной обработкой) позволяет АЛУ выполнять одну операцию (извлечение операндов из регистрового файла, выполнение команды и запись результата обратно в регистровый файл) за один такт.

R0

R2

R13

R14

R15

R16

R17

R26

R27

R28

R29

R30

R31

0 Адрес

$00 $01 $02

$0D $0Е $0F $10 $11

$1А Регистр X, мл.байт $1В Регистр X, ст.байт $1С Регистр Y, мл.байт $1D Регистр Y, ст.байт $1Е Регистр Z, мл.байт $1F Регистр Z, ст.байт

Рис. 2.16. Структура регистрового файла

Последние 6 регистров файла (R26...R31) могут также объединяться в три 16-битных регистра X, Y и Z (см. Рис. 2.17), используемых в качестве указателей при косвенной адресации памяти данных. Подробно использо-


Регистр X

R27($1B)

R26($1A)

Регистр Y

Регистр Z

R29($1D)

R28 ($1С)

15

R31 (S1F)R30 ($1Е)

Рис. 2.17. Регистры-указатели X, Y и Z

вание регистров-указателей, или индексных регистров, описано ниже (см. подраздел «Способы адресации памяти данных»).

Как показано на Рис. 2.15, каждый регистр файла имеет свой собственный адрес в пространстве памяти данных. Поэтому к ним можно обращаться двумя способами — как к регистрам и как к памяти, несмотря на то, что физически эти регистры не являются ячейками ОЗУ. Такое решение является еще одной отличительной особенностью архитектуры AVR, повышающей эффективность работы микроконтроллера и его производительность.

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

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

Во всех микроконтроллерах AVR регистры ввода/вывода располагаются в так называемом пространстве ввода/вывода размером 64 байта. В большинстве моделей семейства Mega имеется также пространство дополнительных регистров ввода/вывода размером 160 или 416 байт. Введение дополнительных РВВ связано с тем, что для поддержки всех периферийных устройств, имеющихся в этих моделях, обычных 64-х РВВ недостаточно.

Распределение адресов пространства ввода/вывода (как основного, так и дополнительного) зависит от конкретной модели микроконтроллера или, если точнее, от состава и возможностей периферийных устройств данной модели. Размещение РВВ в пространстве ввода/вывода для всех моделей семейства приведено в Табл. 2.1...2.11.

В таблицах и далее в книге при указании адресов РВВ в скобках указываются соответствующие им адреса ячеек ОЗУ. Соответственно, если адрес регистра указывается только в скобках, этот регистр расположен в пространстве дополнительных РВВ. Если адрес в таблице не указан, это озна-


чает, что для данной модели он зарезервирован, и запись по этому адресу запрещена (для совместимости с будущими моделями).

Таблица 2.1. Регистры ввода/вывода моделей ATmega8x

Название

Адрес

Функция

SREG

$3F($5F)

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

SPH

$ЗЕ($5Е)

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

SPL

$3D($5D)

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

GICR

$ЗВ($5В)

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

GIFR

$ЗА($5А)

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

TIMSK

$39 ($59)

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

TIFR

$38 ($58)

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

SPMCR

$37 ($57)

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

TWCR

$36 ($56)

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

MCUCR

$35 ($55)

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

MCUCSR

$34 ($54)

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

TCCR0

$33 ($53)

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

TCNT0

$32($52)

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

OSCCAL

$31($51)

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

SFIOR

$30 ($50)

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

TCCR1A

$2F($4F)

Регистр А управления таймера/счетчика Т1

TCCR1B

$2Е ($4Е)

Регистр В управления таймера/счетчика Т1

TCNT1H

$2D ($4D)

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

TCNT1L

$2С ($4С)

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

OCR1AH

$2В ($4В)

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

OCR1AL

$2А($4А)

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

OCR1BH

$29 ($49)

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

OCR1BL

$28($48)

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

ICR1H

$27 ($47)

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

ICR1L

$26 ($46)

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

TCCR2

$25 ($45)

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

TCNT2

$24 ($44)

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

OCR2

$23 ($43)

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

ASSR

$22 ($42)

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



0 ... 30 31 32 33 34 35 36 ... 195