Раздел:
Документация0 ...
41 42 43 44 45 46 47 ...
195 Таблица 2,11, Регистры ввода/вывода моделей
AThiega640x/1280x/1281x/2560x/2561x (продолжение)
Название | Адрес | Функция |
EEARL | $21($41) | Регистр адреса EEPROM, младший байт |
EEDR | $20($40) | Регистр данных EEPROM |
EECR | $1F($3F) | Регистр управления EEPROM |
GPIOR0 | $1E($3E) | 0-й регистр ввода/вывода общего назначения |
EIMSK | $1D($3D) | Регистр маски внешних прерываний |
EIFR | $1C($3C) | Регистр флагов внешних прерываний |
PCIFR | $1B($3B) | Регистр флагов прерываний по изменению состояний выводов |
TIFR5 | $1A($3A) | Регистр флагов прерываний от таймера/счетчика Т5 |
TIFR4 | $19 ($39) | Регистр флагов прерываний от таймера/счетчика Т4 |
TIFR3 | $18 ($38) | Регистр флагов прерываний от таймера/счетчика ТЗ |
TIFR2 | $17 ($37) | Регистр флагов прерываний от таймера/счетчика Т2 |
TIFR1 | $16($36) | Регистр флагов прерываний от таймера/счетчика Т1 |
TIFR0 | $15 ($35) | Регистр флагов прерываний от таймера/счетчика ТО |
PORTG | $14 ($34) | Регистр данных порта G |
DDRG | $13($33) | Регистр направления данных порта G |
PING | $12 ($32) | Выводы порта G |
PORTF | $11 ($31) | Регистр данных порта F |
DDRF | $10 ($30) | Регистр направления данных порта F |
PINF | $0F ($2F) | Выводы порта F |
PORTE | $0E ($2E) | Регистр данных порта Е |
DDRE | $0D ($2D) | Регистр направления данных порта Е |
PINE | $0C ($2C) | Выводы порта Е |
PORTD | $0B ($2B) | Регистр данных порта D |
DDRD | $0A ($2A) | Регистр направления данных порта D |
PIND | $09($29) | Выводы порта D |
PORTC | $08 ($28) | Регистр данных порта С |
DDRC | $07 ($27) | Регистр направления данных порта С |
PINC | $06($26) | Выводы порта С |
PORTB | $05 ($25) | Регистр данных порта В |
DDRB | $04 ($24) | Регистр направления данных порта В |
PINB | $03 ($23) | Выводы порта В |
PORTA | $02 ($22) | Регистр данных порта А |
DDRA | $01 ($21) | Регистр направления данных порта А |
PINA | $00($20) | Выводы порта А |
К регистрам ввода/вывода, расположенным в основном пространстве ввода/вывода, можно напрямую обратиться с помощью команд IN и OUT, выполняющих пересылку данных между одним из 32-х РОН и пространством ввода/вывода. В системе команд имеется также четыре команды побитового доступа, использующие в качестве операндов регистры ввода/вывода: команды установки/сброса отдельного бита (SBI и CBI) и команды проверки состояния отдельного бита (SBIS и SBIC). К сожалению, эти команды могут обращаться только к 1-й половине основного пространства ввода/вывода (адреса $00...$ 1F).
Помимо непосредственной адресации (с помощью команд IN и OUT), к РВВ можно обращаться и как к ячейкам ОЗУ с помощью соответствующих команд ST/SD/SDD и LD/LDS/LDD (для дополнительных РВВ этот способ является единственно возможным). В первом случае используются адреса РВВ, принадлежащие основному пространству ввода/вывода ($00...$3F). Во втором случае адрес РВВ необходимо увеличить на $20.
Среди РВВ есть один регистр, используемый наиболее часто в процессе выполнения программ. Это регистр состояния SREG. Он располагается по адресу $3F ($5F) и содержит набор флагов, показывающих текущее состояние микроконтроллера. Большинство флагов автоматически устанавливаются в 1 или сбрасываются в 0 при наступлении определенных событий (в соответствии с результатом выполнения команд). Все биты этого регистра доступны как для чтения, так и для записи; после сброса микроконтроллера все биты регистра сбрасываются в 0. Формат этого регистра показан на Рис. 2.18, а его описание приведено в Табл. 2.12.
$3F($5F)
Чтение (Я)/Запись (W) R/W R/W R/W R/W R/W R/W R/W R/W Начальное значение 00000000
Рис. 2.18. Формат регистра состояния SREG
Кроме того, в последних моделях микроконтроллеров семейства появились 3 регистра ввода/вывода общего назначения — GPIOR0, GPIOR1 и GPIOR2. В этих регистрах можно хранить любую информацию, однако основное их назначение — сохранение глобальных переменных и регистра SREG. Регистры GPIOR0...2 располагаются в младшей половине основного пространства ввода/вывода и соответственно могут использоваться в командах побитового доступа SBI/CBI и SBIS/SBIC.
Остальные РВВ будут подробно описаны в соответствующих разделах книги.
Таблица 2.12. Биты регистра состояния SREG
Бит | Название | Описание |
7 | I | Общее разрешение прерываний. Для разрешения прерываний этот флаг должен быть установлен в 1. Разрешение/запрещение отдельных прерываний производится установкой или сбросом соответствующих битов регистров масок прерываний (регистров управления прерываниями). Если флаг сброшен, то прерывания запрещены независимо от состояния битов этих регистров. Флаг сбрасывается аппаратно после входа в прерывание и восстанавливается командой RETI для разрешения обработки следующих прерываний |
6 | Т | Хранение копируемого бита. Этот бит регистра используется в качест ве источника или приемника командами копирования битов BLD (Bit LoaD) и BST (Bit STore). Заданный бит любого РОН может быть скопирован в этот бит командой BST или установлен в соответствии с содержимым данного бита командой BLD |
5 | Н | Флаг половинного переноса. Этот флаг устанавливается в 1, если произошел перенос из младшей половины байта (из 3-го бита в 4-й) или заем из старшей половины байта при выполнении некоторых арифметических операций |
4 | S | Флаг знака. Этот флаг равен результату операции «Исключающее ИЛИ» (XOR) между флагами N (отрицательный результат) и V (переполнение числа в дополнительном коде). Соответственно, этот флаг устанавливается в 1, если результат выполнения арифметической операции меньше нуля |
3 | V | Флаг переполнения дополнительного кода. Этот флаг устанавливается в 1 при переполнении разрядной сетки знакового результата. Используется при работе со знаковыми числами (представленными в дополнительном коде). Подробнее — см. описание системы команд |
2 | N | Флаг отрицательного значения. Этот флаг устанавливается в 1, если старший бит (7-й) результата операции равен 1. В противном случае флаг равен 0 |
1 | Z | Флаг нуля. Этот флаг устанавливается в 1, если результат выполнения операции равен нулю |
0 | с | Флаг переноса. Этот флаг устанавливается в 1, если в результате выполнения операции произошел выход за границы байта |
Использование внешнего ОЗУ
Микроконтроллеры ATmega8515x, ATmegal62x, ATmega64x/128x и ATmega640x/1280x/1281x/2560x/2561x имеют возможность подключения внешнего статического ОЗУ объемом до 64 Кбайт.
0 ...
41 42 43 44 45 46 47 ...
195