Система команд микроконтроллеров семейства AVR
Таблица А.1. Арифметические команды
Мнемо-ника | Операн- ды | Описание | Операция | Флаги | К-во циклов |
ADD | Rd, Rr 0≤ d ≤31 0≤ r ≤31 | Сложить без переноса | Rd Rd + Rr | Z, C, N, V, H | |
ADC | Rd, Rr 0≤ d ≤31 0≤ r ≤31 | Сложить с переносом | Rd Rd + Rr + С | Z, C, N, V, H | |
ADIW | Rd, K dE{24,26, 28,30} 0≤ K ≤63 | Сложить непосредст венное значение со сло- вом | Rdh:Rdl Rdh:Rdl+ К | Z, C, N, V | |
SUB | Rd, Rr 0≤ d ≤31 0≤ r ≤31 | Вычесть без заема | Rd Rd – Rr | Z, C, N, V, H | |
SUBI | Rd, К 16≤ d ≤31 0≤K≤255 | Вычесть непосредст- венное значение | Rd Rd – К | Z, C, N, V, H | |
SBC | Rd, Rr 0≤ d ≤31 0≤ r ≤31 | Вычесть с заемом | Rd Rd – Rr – C | Z, C, N, V, H | |
SBCI | Rd, К 6≤ d ≤32 0≤K≤255 | Вычесть непосредст- венное значение с за- мом | Rd Rd – K – C | Z, C, N, V, H | |
SBIW | Rd, К dE{24,26,28,30} 0≤К≤6З | Вычесть непосредственное значение из слова | Rdh:Rdl Rdh:Rdl-K | Z, C, N, V | |
INC | Rd 0≤d≤31 | Инкрементировать | Rd ßRd + 1 | Z, N,V | |
DEC | Rd 0≤ d ≤31 | Декрементировать | Rd ß Rd – 1 | Z, N,V | |
NEG | Rd 0≤ d ≤31 | Вычисление дополнительного кода | Rd ß $00 – Rd | Z, C, N, V, H |
Таблица А.2. Логические команды
Мнемоника | Операн- ды | Описание | Операция | Флаги | Кол-во цик-лов |
AND | Rd, Rr 0≤ d ≤31 0≤ r ≤31 | Выполнить логическое И между регистрами | Rd ß Rd ∙ Rr | Z, N, V | |
ANDI | Rd, К 16< d <31 0< k ≤255 | Выполнить логическое И между регистром и константой | Rd ß Rd ∙ К | Z, N, V | |
OR | Rd, Rr 0≤ d ≥31 0≤ r ≤31 | Выполнить логическое ИЛИ регистрами | Rd ß Rd v Rr | Z, N, V | |
ORI | Rd, К 16≤ d ≤31 0≤K≤255 | Выполнить логическое ИЛИ между регистром и константой | Rd ß Rd v К | Z, N, V | |
EOR | Rd, Rr 0≤ d ≤31 0≤ г ≤31 | Выполнить исключающее ИЛИ | Rd ß Rd Å Rr | Z, N, V | |
СОМ | Rd 0≤ d ≤31 | Выполнить инверсию (НЕ) | Rd ß $FF – Rd | Z, C, N, V | |
Сравнение | |||||
CP | Rd, Rr 0≤ d ≤31 0≤ r ≤31 | Сравнить содержимое регистров | Rd – Rr | Z, C, N, V, H | |
CPC | Rd, Rr 0≤ d ≤31 0≤r ≤31 | Сравнить содержимое регистров с учетом переноса | Rd – Rr – C | Z, C, N, V, H | |
CPI | Rd, К 16≤ d ≤31 0≤K≤255 | Сравнить содержимое регистра с константой | Rd – K | Z, C, N, V, H | |
TST | Rd 0≤ r ≤31 | Проверить на ноль или минус | Rd ß Rd ∙ Rd | Z, N, V |
Таблица А.3. Команды операций с битами
Мнемоника | Операн- ды | Описание | Операция | Флаги | Кол-во циклов |
LSL | Rd 0≤ d ≤31 | Логически сдвинуть влево | Rd (n+1)ß Rd(n), Rd(0)ß 0, Cß Rd(7) | Z,C,N,V,H | |
LSR | Rd 0≤ d ≤31 | Логически сдвинуть вправо | Rd(n)ß Rd (n+1), Rd(7) ß0, Cß Rd(0) | Z,C,N,V | |
ROL | Rd 0≤ d ≤31 | Сдвинуть влево через перенос | Rd(0) ß C, Rd(n+1)ß Rd(n), C ß Rd(7) | Z,C,N,V,H | |
ROR | Rd 0≤ d ≤31 | Сдвинуть вправо через перенос | Rd(7) ß C, Rd(n)ß Rd(n+1), C ß Rd(0) | Z,C,N,V | |
ASR | Rd 0≤ d ≤31 | Арифметически сдвинуть вправо | Rd(n)ß Rd(n+1), Rd(0)ß C, n = 0...6 | Z,C,N,V | |
SWAP | Rd 0≤ d ≤31 | Поменять тетрады местами | Rd(3...0) n Rd(7...4) | Нет | |
BSET | s 0≤ s ≤7 | Установить флаг в регистре статуса | SREG(s) ß 1 | SREG(s) | |
BCLR | s 0≤ s ≤7 | Очистить флаг в регистре статуса | SREG(s) ß 0 | SREG(s) | |
SBI | P, b 0≤ P ≤31 0≤ b ≤7 | Установить бит в регистр I/O | P,b ß 1 | Нет | |
CBI | P, b 0≤ P ≤31 0≤ b ≤7 | Очистить бит в регистре I/O | P,b ß 0 | Нет | |
SBR | Rd, К 16≤ d ≤31 0≤K≤255 | Установить только нужные биты в регистре | Rd ß Rd v К | Z, N,V | |
CBR | Rd, К 16≤ d ≤31 0 ≤K≤255 | Очистить только нужные биты в регистре | Rd ß Rd ∙ ($FF – К) | Z, N, V | |
CLR | Rd 0≤ d ≤31 | Очистить регистр | Rd ß Rd Å Rd | Z, N, V | |
SER | Rd 16≤ d ≤31 | Установить все биты регистра | Rd ß $FF | Нет | |
BST | Rd, b 0≤ d ≤31 0≤ b ≤7 | Переписать бит из регистра во флаг Т | Тß Rd(b) | Т | 1 |
BLD | Rd, b 0≤ d ≤31 0≤ b ≤7 | Переписать флаг Т в бит регистра | Rd(b) ß Т | Нет | |
SEC | Установить флаг переноса | Сß 1 | С | ||
CLC | Очистить флаг переноса | Сß 0 | С | ||
SEN | Установить флаг отрицательного значения | Мß 1 | N | ||
CLN | Очистить флаг отрицательного значения | Nß 0 | N | ||
SEZ | Установить флаг нулевого значения | Zß 1 | Z | ||
CLZ | Очистить флаг нулевого значения | Zß 0 | Z | ||
SEI | Установить флаг глобального прерывания | Iß 1 | I | ||
CLI | Очистить флаг глобального прерывания | Iß 0 | I | ||
SES | Установить флаг знака | Sß 1 | S | ||
CLS | Очистить флаг знака | Sß 0 | S | ||
SEV | Установить флаг переполнения | Vß 1 | V | ||
CLV | Очистить флаг переполнения | Vß 0 | V | ||
SET | Установить флаг Т | Tß 1 | T | ||
CLT | Очистить флаг Т | Тß 0 | T | ||
SEH | Установить флаг полу- переноса | Нß 1 | Н | ||
CLH | Очистить флаг полу -переноса | Нß 0 | Н |
Таблица А.4. Команды пересылки данных
Мнемоника | Операн- ды | Описание | Операция | Флаги | Кол-во циклов |
LPM | 0≤k≤65535 | Загрузка байта из памяти программ по адресу (Z) в регистр R0 | R0ß (Z) | Нет | |
MOV | Rd, Rr 0≤ d ≤31 0≤ r ≤31 | Копировать данные из регистра в регистр | Rd ß Rr | Нет | |
LDI | Rd, k 16≤ d ≤31 0≤ k≤ 255 | Загрузить константу в регистр | Rdß K | Нет | |
LDS | Rd, k 0≤ d ≤31 0≤k≤65535 | Загрузка байта из ОЗУ в регистр | Rd ß (k) | Нет | |
LD | Rd, X 0≤ d ≤31 | Загрузить косвенно в регистр Rd из ОЗУ | Rd ß (X) | Нет | |
LD | Rd, X + 0≤ d ≤31 | Загрузить косвенно с постинкрементом | Rd ß (X), X ß X + 1 | Нет | |
LD | Rd, –X 0≤ d ≤31 | Загрузить косвенно с преддекрементом | X ß X – 1, Rd ß (X) | Нет | |
LD | Rd, Y 0≤ d ≤31 | Загрузить косвенно в регистр Rd из ОЗУ | Rd ß (Y) | Нет | |
LD | Rd, Y + 0≤ d ≤31 | Загрузить косвенно с постинкрементом | Rd ß (Y), Y ß Y + 1 | Нет | |
LD | Rd, –Y 0≤ d ≤31 | Загрузить косвенно с преддекрементом | Y ß Y – 1, Rd ß (Y) | Нет | |
LDD | Rd, Y + q 0≤ d ≤31 0≤ q ≤63 | Загрузить косвенно со смещением в регистр Rd из ОЗУ | Rd ß (Y + q) | Нет | |
LD | Rd, Z 0≤ d ≤31 | Загрузить косвенно в регистр Rd из ОЗУ | Rd ß (Z) | Нет | |
LD | Rd, Z + 0≤ d ≤31 | Загрузить косвенно с постинкрементом | Rd ß (Z), Z ß Z + 1 | Нет | |
LD | Rd, – Z 0≤ d ≤31 | Загрузить косвенно с преддекрементом | Z ß Z – 1, Rd ß (Z) | Нет | |
LDD | Rd, Z + q 0≤ d ≤31 0≤ q ≤31 | Загрузить косвенно со смещением в регистр Rd из ОЗУ | Rd ß (Z + q) | Нет | |
STS | k, Rr 0≤ d ≤31 0≤k≤65535 | Загрузить непосредственно в ОЗУ | (k) ß Rr | Нет | |
ST | X, Rr 0≤ r ≤31 | Записать косвенно в ОЗУ из регистр Rr | (X) ß Rr | Нет | |
ST | X +, Rr 0≤ r ≤31 | Записать косвенно с постинкрементом | (X) ß Rr, X ß X + 1 | Нет | |
ST | –X, Rr 0≤r≤31 | Записать косвенно с преддекрементом | Xß X – 1, (X) ß Rr | Нет | |
ST | Y, Rr 0≤ r ≤31 | Записать косвенно в ОЗУ из регистр Rr | (Y) ß Rr | Нет | |
ST | Y+, Rr 0≤ r ≤31 | Записать косвенно с постинкрементом | (Y) ß Rr, Y ß Y + 1 | Нет | |
ST | –Y, Rr 0≤ r ≤31 | Записать косвенно с преддекрементом | Y ß Y – 1, (Y) ß Rr | Нет | |
STD | Y + q, Rr 0≤ r ≤31 0≤ q ≤63 | Записать косвенно со смещением в ОЗУ из регистр Rr | (Y + q) ß Rr | Нет | |
ST | Z, Rr 0≤ r ≤31 | Записать косвенно в ОЗУ из регистр Rr | (Z) ß Rr | Нет | |
ST | Z +, Rr 0≤ r ≤31 | Записать косвенно с постинкрементом | (Z) ß Rr, Z ß Z + 1 | Нет | |
ST | – Z, Rr 0≤ r ≤31 | Записать косвенно с преддекрементом | Z ß Z – 1, (Z) ß Rr | Нет | |
STD | Z + q, Rr 0≤ r ≤31 0≤ q ≤63 | Записать косвенно со смещением в ОЗУ из регистр Rr | (Z+q) ß Rr | Нет | |
IN | Rd, P 0≤ d ≤31 0≤ P ≤63 | Загрузить данные из порта I/O в регистр | Rd ß P | Нет | |
OUT | P, Rr 0≤ r ≤31 0≤P≤63 | Записать данные из регистра в порт I/O | P ß Rr | Нет | |
PUSH | Rr 0≤ r ≤31 | Сохранить регистр в стеке | STACK ß Rr | Нет | |
POP | Rd 0≤ d ≤31 | Извлечь регистр из стека | Rd ß STACK | Нет |
Таблица А.5. Команды переходов
Мнемоника | Операнды | Описание | Операция | Флаги | Кол-во циклов |
RJMP | k –2K<k<2K | Перейти относительно На метку (смещение) | PC ß PC + k + 1 | Нет | |
LJMP | Перейти косвенно | PC ß Z | Нет | ||
JMP | k 0< k <4M | Перейти | PC ß k | Нет | |
RCALL | k –2K≤k≤2K | Вызвать подпрограмму относительно (по метке) | PC ß PC + k + 1 | Нет | |
ICALL | Вызвать подпрограмму косвенно | PC ß Z | Нет | ||
CALL | k 0≤ k ≤64K | Выполнить длинный вызов подпрограммы | PC ß k | Нет | |
RET | Вернуться из подпрограммы | PC ß STACK | Нет | ||
RETI | Вернуться из прерывания | PC ß STACK | I | ||
CPSE | Rd, Rr 0≤ d ≤31, 0≤ r ≤31 | Сравнить и пропустить, если равно | If Rd = Rr then PC ß PC + 2 (or 3) | Нет | 1/2/3 |
SBRC | Rr, b 0≤ r ≤31 0≤ b ≤7 | Пропустить, если бит в регистре очищен | if Rr(b) = 0 then PC ß PC + 2 (or 3) | Нет | 1/2/3 |
SBRS | Rr, b 0≤ r ≤31 0≤ b ≤7 | Пропустить, если бит в регистре установлен | If Rr(b) = 1 then PC ß PC + 2 (or 3) | Нет | 1/2/3 |
SBIC | P, b 0≤ P ≤31 0≤ b ≤7 | Пропустить, если бит в регистре I/O очищен | if P(b)=0 then PC ß PC + 2 (or 3) | Нет | 1/2/3 |
SBIS | P, b 0≤ r ≤31 0≤ b ≤7 | Пропустить, если бит в регистре I/O установлен | If P(b) = 1 then PC ßPC + 2 (or 3) | Нет | 1/2/3 |
BRBS | s, k 0≤ s ≤7 –64≤k≤+63 | Перейти, если бит в регистре статуса установлен | if SREG(s) = 1 then PC ß PC + k + 1 | Нет | 1/2 |
BRBC | s, k 0≤ s ≤7 –64≤k≤+63 | Перейти, если бит в регистре статуса очищен | if SREG(s) = 0 then PC ß PC + k + 1 | Нет | 1/2 |
BREQ | k –64≤k≤+63 | Перейти, если равно | if Rd = Rr (Z=1) then PC ß PC + k + 1 | Нет | 1/2 |
BRNE | k –64≤k≤+63 | Перейти, если не равно | if Rd ¹ Rr (Z=0) then PC ß PC + k + 1 | Нет | 1/2 |
BRCS | k –64£k£+63 | Перейти, если флаг переноса установлен | if C = 1 then PC ß PC + k + 1 | Нет | 1/2 |
BRCC | k –64≤k≤+63 | Перейти, если флаг переноса очищен | if C = 0 then PC ß PC + k + 1 | Нет | 1/2 |
BRSH | k –64≤k≤+63 | Перейти, если равно или больше (без знака) | if Rd ≥ Rr (C=0) then PC ß PC + k + 1 | Нет | 1/2 |
BRLO | k –64≤k≤+63 | Перейти, если меньше (без знака) | if Rd < Rr (C =1) then PC ß PC + k + 1 | Нет | 1/2 |
BRMI | k –64≤k≤+63 | Перейти, если минус | if N = 1 then PC ß PC + k + 1 | Нет | 1/2 |
BRPL | k –64≤k≤+63 | Перейти, если плюс | if N = 0 then PC ß PC + k + 1 | Нет | 1/2 |
BRGE | k –64≤k≤+63 | Перейти, если больше или равно (с учетом знака) | if Rd > Rr (NÅV =0) then PC ß PC + k + 1 | Нет | 1/2 |
BRLT | k –64≤k≤+63 | Перейти, если меньше (со знаком) | if Rd < Rr (NÅV = 1) then PC ßPC + k+ 1 | Нет | 1/2 |
BRHS | k –64≤k≤+63 | Перейти, если флаг полупереноса установлен | if H = 1 then PC ß PC + k + 1 | Нет | 1/2 |
BRHC | k –64≤k≤+63 | Перейти, если флаг полупереноса очищен | if H = 0 then PC ß PC + k + 1 | Нет | 1/2 |
BRTS | k –64≤k≤+63 | Перейти, если флаг Т установлен | if T = 1 then PC ß PC + k + 1 | Нет | 1/2 |
BRTC | k -64≤k≤+63 | Перейти, если флаг Т очищен | if T=0 then PC ß pc + k + 1 | Нет | 1/2 |
BRVS | k –64≤k≤+63 | Перейти, если флаг переполнения установлен | if V = 1 then PC ß PC + k + 1 | Нет | 1/2 |
BRVC | k –64≤k≤+63 | Перейти, если флаг переполнения очищен | if V = 0 then PC ß PC + k + 1 | Нет | 1/2 |
BRIE | k –64≤k≤+63 | Перейти, если глобальное прерывание разрешено | if I = 1 then PC ß PC + k + 1 | Нет | 1/2 |
BRID | k –64≤k≤+63 | Перейти, если глобальное прерывание запрещено | if I = 0 then PC ß PC + k + 1 | Нет | 1/2 |
Таблица А.6. Прочие команды
Мнемоника | Операнды | Описание | Операция | Флаги | К-во ц-ов |
NOP | Выполнить холостую команду | Нет | |||
SLEEP | Установить режим SLEEP | Нет | |||
WDR | Сбросить сторожевой таймер | Нет |
ПРИЛОЖЕНИЕ В
Таблица регистров
Адрес | Обознач. | Бит 7 | Бит 6 | Бит 5 | Бит 4 | Бит 3 | Бит 2 | Бит 1 | Бит 0 | |||
$3F ($5F) | SREG | I | T | H | S | V | N | Z | C | |||
$3E ($5E) | SPH | — | — | — | — | — | — | SP9 | SP8 | |||
$3D ($5D) | SPL | SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 | |||
$3C ($5C) | ||||||||||||
$3B ($5B) | GIMSK | INT1 | INT0 | — | — | — | — | — | — | |||
$3A ($5A) | GIFR | INTF1 | INTF0 | |||||||||
$39 ($59) | TIMSK | OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | — | TOIE0 | |||
$38 ($58) | TIFR | OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | — | TOV0 | |||
$37 ($57) | ||||||||||||
$36 ($56) | ||||||||||||
$35 ($55) | MCUCR | — | SE | SM1 | SM0 | ISC11 | ISC10 | ISC01 | ISC00 | |||
$34 ($54) | MCUSR | — | — | — | — | — | — | EXTRF | PORF | |||
$33 ($53) | TCCR0 | — | — | — | — | — | CS02 | CS01 | CS00 | |||
$32 ($52) | TCNT0 | Таймер/счетчик0 (8-разрядный) | ||||||||||
$31 ($51) | ||||||||||||
$30 ($50) | ||||||||||||
$2F ($4F) | TCCR1A | COM1A1 | COM1A0 | COM1B1 | COM1B0 | — | — | PWM11 | PWM10 | |||
$2E ($4E) | TCCR1B | ICNC1 | ICES1 | — | — | CTC1 | CS12 | CS11 | CS10 | |||
$2D ($4D) | TCNT1H | Старший байт регистра счетчика Таймера/ счетчика1 | ||||||||||
$2С ($4С) | TCNT1L | Младший байт регистра счетчика Таймера/ счетчика1 | ||||||||||
$2В ($4В) | OCR1AH | Старший байт регистра сравнения A выхода Таймера/счетчика1 | ||||||||||
$2A ($4A) | OCR1AL | Младший байт регистра сравнения A выхода Таймера/счетчика1 | ||||||||||
$29 ($49) | OCR1BH | Старший байт регистра сравнения B выхода Таймера/счетчика1 | ||||||||||
$28 ($48) | OCR1BL | Младший байт регистра сравнения B выхода Таймера/счетчика1 | ||||||||||
$27 ($47) | ICR1H | Старший байт регистра захвата входа Таймера/счетчика1 | ||||||||||
$26 ($46) | ICR1L | Младший байт регистра захвата входа Таймера/счетчика1 | ||||||||||
$25 ($45) | TCCR2 | — | PWM2 | COM21 | COM20 | CTC2 | CS22 | CS21 | CS20 | |||
$24 ($44) | TCNT2 | Таймер/счетчик2 (8-разрядный) | ||||||||||||||||||
$23 ($43) | OCR2 | Регистр сравнения выхода Таймера/счетчика2 | ||||||||||||||||||
$22 ($42) | ASSR | — | — | — | — | AS2 | TCN2UB | OCR2UB | TCR2UB | |||||||||||
$21 ($41) | WDTCR | — | — | — | WDTOE | WDE | WDP2 | WDP1 | WDP0 | |||||||||||
$20 ($40) | ||||||||||||||||||||
$1F ($3F) | EEARH | EEAR9 | ||||||||||||||||||
$1E ($3E) | EEARL | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 | |||||||||||
$1D ($3D) | EEDR | Регистр данных EEPROM | ||||||||||||||||||
$1C ($3C) | EECR | — | — | — | — | EERIE | EEMWE | EEWE | EERE | |||||||||||
$1B ($3B) | PORTA | PORTA7 | PORTA6 | PORTA5 | PORTA4 | PORTA3 | PORTA2 | PORTA1 | PORTA0 | |||||||||||
$1A ($3A) | DDRA | DDA7 | DDA6 | DDA5 | DDA4 | DDA3 | DDA2 | DDA1 | DDA0 | |||||||||||
$19 ($39) | PINA | PINA7 | PINA6 | PINA5 | PINA4 | PINA3 | PINA2 | PINA1 | PINA0 | |||||||||||
$18 ($38) | PORTB | PORTB7 | PORTB6 | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | |||||||||||
$17 ($37) | DDRB | DDB7 | DDB6 | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | |||||||||||
$16 ($36) | PINB | PINB7 | PINB6 | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | |||||||||||
$15 ($35) | PORTC | PORTC7 | PORTC6 | PORTC5 | PORTC4 | PORTC3 | PORTC2 | PORTC1 | PORTC0 | |||||||||||
$14 ($34) | DDRC | DDC7 | DDC6 | DDC5 | DDC4 | DDC3 | DDC2 | DDC1 | DDC0 | |||||||||||
$13 ($33) | PINC | PINC7 | PINC6 | PINC5 | PINC4 | PINC3 | PINC2 | PINC1 | PINC0 | |||||||||||
$12 ($32) | PORTD | PORTD7 | PORTD6 | PORTD5 | PORTD4 | PORTD3 | PORTD2 | PORTD1 | PORTD0 | |||||||||||
$11 ($31) | DDRD | DDD7 | DDD6 | DDD5 | DDD4 | DDD3 | DDD2 | DDD1 | DDD0 | |||||||||||
$10 ($30) | PIND | PIND7 | PIND6 | PIND5 | PIND4 | PIND3 | PIND2 | PIND1 | PIND0 | |||||||||||
$0F ($2F) | SPDR | Регистр данных SPI | ||||||||||||||||||
$0E ($2E) | SPSR | SPIF | WCOL | — | — | — | — | — | — | |||||||||||
$0D ($2D) | SPCR | SPIE | SPE | DORD | MSTR | CROL | CPHA | SPR1 | SPR0 | |||||||||||
$0C ($2C) | UDR | Регистр данных UART | ||||||||||||||||||
$0B ($2B) | USR | RXC | TXC | UDRE | FE | OR | — | — | — | |||||||||||
$0A ($2A) | UCR | RXCIE | TXCIE | UDRIE | RXEN | TXEN | CHR9 | RXB8 | TXB8 | |||||||||||
$09 ($29) | UBRR | Регистр управления скоростью UART | ||||||||||||||||||
$08 ($28) | ACSR | ACD | — | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 | |||||||||||
$07 ($27) | ADMUX | — | — | — | — | — | MUX2 | MUX1 | MUX0 | |||||||||||
$06 ($26) | ADCSR | ADEN | ADSC | ADFR | ADIF | ADIE | ADPS2 | ADPS1 | ADPS0 | |||||||||||
$05 ($25) | ADCH | — | — | — | — | — | — | ADC9 | ADC8 | |||||||||||
$04 ($24) | ADCL | ADC7 | ADC6 | ADC5 | ADC4 | ADC3 | ADC2 | ADC1 | ADC0 | |||||||||||
$03 ($20) | ||||||||||||||||||||
$02 ($22) | ||||||||||||||||||||
$01 ($21) | ||||||||||||||||||||
$00 ($20) | ||||||||||||||||||||