2. Минимальное напряжение для режима пониженного потребления - 2V
ПАРАМЕТРЫ ВНЕШНЕГО ТАКТОВОГО СИГНАЛА
Параметр | Vcc=2.7...6.0 V | Vcc=4.0...6.0 V | Ед. | ||
min | max | min | max | ||
Частота | 0 | 4 | 0 | 8 | MHz |
Период | 250 | 125 | nS | ||
Длительность '1' | 115 | 58.3 | nS | ||
Длительность '0' | 115 | 58.3 | nS | ||
Длительность фронта | 10 | 4.15 | nS |
Список регистров.
Адрес регистра | название егистра | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
3Fh (5Fh) | SREG | I | T | H | S | V | N | Z | C |
3Eh (5Eh) |
| ЗАРЕЗЕРВИРОВАН | |||||||
3Dh (5Dh) | SP | SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 |
3Ch (5Ch) |
| ЗАРЕЗЕРВИРОВАН | |||||||
3Bh (5Bh) | GIMSK | INT1 | INT0 | - | - | - | - | - | - |
3Ah (5Ah) | GIFR | INTF1 | INTF0 | - | - | - | - | - | - |
39h (59h) | TIMSK | TOIE1 | OCIE1 | - | - | TICE1 | - | TOIE0 | - |
38h (58h) | TIFR | TOV1 | OCF1 | - | - | ICF1 | - | TOV0 | - |
37h (57h) |
| ЗАРЕЗЕРВИРОВАН | |||||||
36h (56h) |
| ЗАРЕЗЕРВИРОВАН | |||||||
35h (55h) | MCUCR | - | - | SE | SM | ISC11 | ISC10 | ISC01 | ISC00 |
34h (54h) | MCUSR | - | - | - | - | WDRF | BORF | EXTRF | PORF |
33h (53h) | TCCR0 | - | - | - | - | - | CS02 | CS01 | CS00 |
32h (52h) | TCNT0 | Таймер / счетчик (8 бит) | |||||||
31h (51h) |
| ЗАРЕЗЕРВИРОВАН | |||||||
30h (50h) |
| ЗАРЕЗЕРВИРОВАН | |||||||
2Fh (4Fh) | TCCR1A | COM11 | COM10 | - | - | - | - | PWM11 | PWM10 |
2Eh (4Eh) | TCCR1B | ICNC1 | ICES1 | - | - | CTC1 | CS12 | CS11 | CS10 |
2Dh (4Dh) | TCNT1H | Таймер/счетчик1 старший байт | |||||||
2Сh (4Сh) | TCNT1L | Таймер/счетчик1 младший байт | |||||||
2Bh (4Bh) | OCR1AH | Таймер/счетчик1 регистр сравнения старший байт | |||||||
2Ah (4Ah) | OCR1AL | Таймер/счетчик1 регистр сравнения младший байт | |||||||
- |
| ЗАРЕЗЕРВИРОВАН | |||||||
27h (47h) | ICR1H | Таймер/счетчик1 регистр захвата старший байт | |||||||
26h (46h) | ICR1L | Таймер/счетчик1 регистр захвата младший байт | |||||||
- |
| ЗАРЕЗЕРВИРОВАН | |||||||
21h (41h) | WDTCR | - | - | - | WDTOE | WDE | WDP2 | WDP1 | WDP0 |
20h (40h) |
| ЗАРЕЗЕРВИРОВАН | |||||||
1Fh (3Fh) |
| ЗАРЕЗЕРВИРОВАН | |||||||
1Eh (3Eh) | EEAR | Регистр адреса энергонезависимой памяти | |||||||
1Dh (3Dh) | EEDR | Регистр данных энергонезависимой памяти | |||||||
1Ch (3Ch) | EECR | - | - | - | - | EERIE | EEMWE | EEWE | EERE |
- |
| ЗАРЕЗЕРВИРОВАН | |||||||
18h (38h) | PORTB | - | - | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 |
17h (37h) | DDRB | - | - | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 |
16h (36h) | PINB | - | - | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 |
15h (35h) | PORTC | - | - | PORTC5 | PORTC4 | PORTC3 | PORTC2 | PORTC1 | PORTC0 |
14h (34h) | DDRC | - | - | DDC5 | DDC4 | DDC3 | DDC2 | DDC1 | DDC0 |
13h (33h) | PINC | - | - | PINC5 | PINC4 | PINC3 | PINC2 | PINC1 | PINC0 |
12h (32h) | PORTD | - | - | PORTD5 | PORTD4 | PORTD3 | PORTD2 | PORTD1 | PORTD0 |
11h (31h) | DDRD | - | - | DDD5 | DDD4 | DDD3 | DDD2 | DDD1 | DDD0 |
10h (30h) | PIND | - | - | PIND5 | PIND4 | PIND3 | PIND2 | PIND1 | PIND0 |
0Fh (2Fh) | SPDR | Регистр данных SPI | |||||||
0Eh (2Eh) | SPSR | SPIF | WCOL | - | - | - | - | - | - |
0Dh (2Dh) | SPCR | SPIE | SPE | DORD | MSTR | CPOL | CPHA | SPR1 | SPR0 |
0Ch (2Ch) | UDR | Регистр данных UART | |||||||
0Bh (2Bh) | USR | RXC | TXC | UDRE | FE | OR | - | - | - |
0Ah (2Ah) | UCR | RXCIE | TXCIE | UDRIE | RXEN | TXEN | CHR9 | RXB8 | TXB8 |
09h (29h) | UBRR | Регистр скорости передачи UART | |||||||
08h (28h) | ACSR | ACD | AINBG | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 |
07h (27h) | ADMUX | - | ADCBG | - | - | - | MUX2 | MUX1 | MUX0 |
06h (26h) | ADCSR | ADEN | ADSC | ADFR | ADIF | ADIE | ADPS2 | ADPS1 | ADPS0 |
05h (25h) | ADCH | - | - | - | - | - | - | ADC9 | ADC8 |
04h (24h) | ADCL | ADC7 | ADC6 | ADC5 | ADC4 | ADC3 | ADC2 | ADC1 | ADC0 |
03h ( 23h) | UBRRH | Регистр скорости передачи UART (старший) | |||||||
- | - | ЗАРЕЗЕРВИРОВАН | |||||||
00h (20h) | - | ЗАРЕЗЕРВИРОВАН |
Примечание: Для совместимости с другими устройствами, зарезервированные биты при записи необходимо устанавливать в "0". Данные в зарезервированные ячейки памяти записывать нельзя.
Набор команд
Мнемоника | Операнды | Описание | Действие | Флаги | Цкл |
Арифметические команды | |||||
ADD | Rd, Rr | Сложить два регистра | Rd<Rd+Rr | Z,C,N,V,H | 1 |
ADC | Rd, Rr | Сложить с переносом | Rd<Rd+Rr+C | Z,C,N,V,H | 1 |
ADIW | Rdl,K | Сложить слово с константой | Rdh,l<Rdh,l+K | Z,C,N,V,S | 2 |
SUB | Rd, Rr | Вычесть два регистра | Rd<Rd-Rr | ||
SUBI | Rd, K | Вычесть константу | Rd<Rd-K | ||
SBIW | Rdl,K | Вычесть слово с константой | Rdh,l<Rdh,l-K | ||
SBC | Rd, Rr | Вычесть с переносом | Rd<Rd-Rr-C | ||
SBCI | Rd, K | Вычесть с переносом | Rd<Rd-K-C | ||
AND | Rd, Rr | Логическое И | Rd<Rd AND Rr | ||
ANDI | Rd, K | Логическое И | Rd<Rd AND K | ||
OR | Rd, Rr | Логическое ИЛИ | Rd<Rd OR Rr | ||
ORI | Rd, K | Логическое ИЛИ | Rd<Rd OR K | Z,N,V | 1 |
EOR | Rd, Rr | Исключающее ИЛИ | Rd<Rd XOR Rr | Z,N,V | 1 |
COM | Rd | Дополнение до 1 | Rd<$FF - Rd | Z,C,N,V | 1 |
NEG | Rd | Дополнение до 2 | Rd<$00 - Rd | Z,C,N,V,H | 1 |
SBR | Rd,K | Установ. бита в регистре | Rd<Rd OR K | Z,N,V | 1 |
CBR | Rd,K | Сброс. бита в регистре | Rd<RdAND(FFh-K) | Z,N,V | 1 |
INC | Rd | Увеличить на 1 | Rd<Rd+1 | Z,N,V | 1 |
DEC | Rd | Уменьшить на 1 | Rd<Rd-1 | Z,N,V | 1 |
TST | Rd | Проверить на 0 или 1 | Rd<Rd AND Rd | Z,N,V | 1 |
CLR | Rd | Очистить регистр | Rd<Rd XOR Rd | Z,N,V | 1 |
SER | Rd | Установить регистр | Rd<$FF | None | 1 |
КОМАНДЫ ВЕТВЛЕНИЯ | |||||
RJMP | k | Относительный переход | PC<PC+k+1 | None | 2 |
LJMP | Переход по адресу (Z) | PC<Z | None | 2 | |
RCALL | k | Относительный вызов подпрогрограммы | PC<PC+k+1 | None | 3 |
ICALL | Вызов подпр по адресу (Z) | PC<Z | None | 3 | |
RET | Выход из подпрограммы | PC<STACK | None | 4 | |
RETI | Выход из прерывания | PC<STACK | I | 4 | |
CPSE | Rd,Rr | Сравнить , пропуск если Rd=Rr | if(Rd=Rr) PC<PC+2 или 3 | None | 1/2 |
CP | Rd,Rr | Сравнить | Rd-Rr | Z,N,V,C,H | 1 |
CPC | Rd,Rr | Сравнить с переносом | Rd-Rr-C | Z,N,V,C,H | 1 |
CPI | Rd,K | Сравнить с константой | Rd-K | ||
SBRC | Rr,b | Пропуск если бит в регистре сброшен | if(Rr(b)=0) | None | 1/2 |
SBRS | Rr,b | Пропуск если бит в регистре установлен | if(Rr(b)=1) | None | 1/2 |
SBIC | P, b | Пропуск если бит в регистре I\O сброшен | if(P(b)=0) | None | 1/2 |
SBIS | P, b | Пропуск если бит в регистре I\O установлен | if(P(b)=1) | None | 1/2 |
BRBS | s, k | Переход если установл флаг s | if(SREG(s)=1) | None | 1/2 |
BRBC | s, k | Переход если сброшен флаг s | if(SREG(s)=0) | None | 1/2 |
BREQ | k | Переход если равно Z=1 | if(Z=1) | None | 1/2 |
BRNE | k | Переход если неравно if(Z=0) | if(Z=0) | None | 1/2 |
BRCS | k | Переход если установл перенос | if(C=1) | None | 1/2 |
BRCC | k | Переход если сброшен перенос | if(C=0) | None | 1/2 |
BRSH | k | Переход если равно или больше | if(C=0) | None | 1/2 |
BRLO | k | Переход если меньше | if(C=1) PC<PC+k+1 | None | 1/2 |
BRMI | k | Переход если минус | if(N=1) PC<PC+k+1 | None | 1/2 |
BRPL | k | Переход если плюс | if(N=0) PC<PC+k+1 | None | 1/2 |
BRGE | k | Переход если больше или равно,со знаком | if(N XOR V=0) PC<PC+k+1 | None | 1/2 |
BRLT | k | Переход если меньше нуля, со знаком | if(N XOR V=1) PC<PC+k+1 | None | 1/2 |
BRHS | k | Переход если установл флаг H | if (H=1) PC<PC+k+1 | None | 1/2 |
BRHC | k | Переход если сброшен флаг H | if (H=0) PC<PC+k+1 | None | 1/2 |
BRTS | k | Переход если установл флаг T | if (H=1) PC<PC+k+1 | None | 1/2 |
BRTC | k | Переход если сброшен флаг T | if (H=0) PC<PC+k+1 | None | 1/2 |
BRVS | k | Переход если установл флаг V | if (H=1) PC<PC+k+1 | None | 1/2 |
BRVC | k | Переход если сброшен флаг V | if (H=0) PC<PC+k+1 | None | 1/2 |
BRIE | k | Переход если разрешены прерывания | if(I=1) PC<PC+k+1 | None | 1/2 |
BRID | k | Переход если запрещены прерывания | if(I=1) PC<PC+k+1 | None | 1/2 |
КОМАНДЫ ПЕРЕСЫЛКИ | |||||
MOV | Rd,Rr | Пересылка между рег. | Rd<Rr | None | 1 |
LDI | Rd,K | Загрузить константу | Rd<K | None | 1 |
LD | Rd,X | Загрузить регистр непосредственно | Rd<(X) | None | 2 |
LD | Rd,X+ | Загрузить регистр непосредст. c постинкрем | Rd<(X),X<X+1 | None | 2 |
LD | Rd,-X | Загрузить регистр непоср. с предв.декрем | X<X-1,Rd<(X) | None | 2 |
LD | Rd,Y | Загрузить регистр непосредственно | Rd<(Y) | None | 2 |
LD | Rd,Y+ | Загрузить регистр непоср. c пост инкрем | Rd<(Y),Y<Y+1 | None | 2 |
LD | Rd,-Y | Загрузить регистр непоср. с предв.декрем | Y<Y-1,Rd<(Y) | None | 2 |
LDD | Rd,Y+q | Загрузить регистр непоср. со смещением | Rd<(Y+q) | None | 2 |
LD | Rd,Z | Загрузить регистр непосредственно | Rd<(Z) | None | 2 |
LD | Rd,Z+ | Загрузить регистр непоср. c пост инкрем | Rd<(Z),Z<Z+1 | None | 2 |
LD | Rd,-Z | Загрузить регистр непоср. с предв.декрем | Z<Z-1,Rd<(Z) | None | 2 |
LDD | Rd,Z+q | Загрузить регистр непоср. со смещением | Rd<(Z+q) | None | 2 |
LDS | Rd,k | Загрузить из ОЗУ | Rd<(k) | None | 3 |
ST | X,Rr | Записать регистр непосредственно | (X)<Rr | None | 2 |
ST | -X,Rr | Записать регистр непоср.c пред.декрем. | X<X-1,(X)<Rr | ||
ST | Y,Rr | Записать регистр непосредственно | (Y)<Rr | ||
ST | Y+,Rr | Записать регистр непоср.c пост инкр | (X)<Rr,X<X+1 | ||
ST | -Y,Rr | Записать регистр непоср.c пред.декрем | Y<Y-1,(Y)<Rr | None | 2 |
STD | Y+q,Rr | Запис.рег.непоср.сосмещением | (Y+q)<Rr | None | 2 |
ST | Z,Rr | Записать регистр непосредственно | (Y)<Rr | None | 2 |
ST | Z+,Rr | Записать регистр непоср.c пост инкр | (Y)<Rr,Y<Y+1 | None | 2 |
ST | -Z,Rr | Записать регистр непоср.c пред.декрем | Z<Z-1,(Z)<Rr | None | 2 |
STD | Y+q,Rr | Запис.рег.непоср.сосмещением | (Y+q)<Rr | None | 2 |
STS | k,Rr | Записать в ОЗУ | (k)<Rr | None | 3 |
LPM | Загр.из памяти программ | R0<(Z) | None | 3 | |
IN | Rd, P | Ввод из порта | Rd<P | None | 1 |
OUT | P, Rr | Вывод в порт | P<Rr | None | 1 |
PUSH | Rr | Записать в стек | STACK<Rr | None | 2 |
POP | Rr | Прочитать из стека | Rr<STACK | None | 2 |
КОМАНДЫ РАБОТЫ С БИТАМИ | |||||
SBI | P,b | Установить бит в регистре ввода/вывода | I/O(P,b)<1 | None | 2 |
CBI | P,b | Сбросить бит в регистре ввода/вывода | I/O(P,b)<0 | None | 2 |
LSL | Rd | Логический сдвиг влево | Rd(n+1)<Rd(n), Rd(0)<0 | Z,C,N,V | 1 |
LSR | Rd | Логичский сдвиг вправо | Rd(n)<Rd(n+1), Rd(7)<0 | Z,C,N,V | 1 |
ROL | Rd | сдвиг влево через C | Rd(0)<C,Rd(n+1)<Rd(n), C<Rd(7) | Z,C,N,V | 1 |
ROR | Rd | сдвиг вправо через C | Rd(7)<C,Rd(n)<Rd(n+1), C<Rd(0) | Z,C,N,V | 1 |
ASR | Rd | Арифметический сдвиг вправо | Rd(n)<Rd(n+1), n=0..6 | Z,C,N,V | 1 |
SWAP | Rd | Обмен тетрад | Rd(3-0)<Rd(7-4) Rd(7-4)<Rd(3-0) | None | 1 |
BSET | s | Установить флаг | SREG(s)<1 | SREG(s) | 1 |
BCLR | s | Сбросить флаг | SREG(s)<0 | SREG(s) | 1 |
BST | Rr,b | Запомнить бит в T | T<Rr(b) | T | 1 |
BLD | Rd, b | Прочитать бит из T | Rd(b)<T | None | 1 |
SEC | Установить перенос | C<1 | C | 1 | |
CLC | Сбросить перенос | C<0 | C | 1 | |
SEN | Установить флаг N | N<1 | N | 1 | |
CLN | Сбросить флаг N | N<0 | N | 1 | |
SEZ | Установить флаг Z | Z<1 | Z | 1 | |
CLZ | Сбросить флаг Z | Z<0 | Z | 1 | |
SEI | Разрешить прерывания | I<1 | I | 1 | |
CLI | Запретить прерывания | I<0 | I | 1 | |
SES | Установить флаг S | S<1 | S | 1 | |
CLS | Сбросить флаг S | S<0 | S | 1 | |
SEV | Установить флаг V | V<1 | V | 1 | |
CLV | Сбросить флаг V | V<0 | V | 1 | |
SET | Установить флаг T | T<1 | T | 1 | |
CLT | Сбросить флаг T | T<0 | T | 1 | |
SEH | Установить флаг H | H<1 | H | 1 | |
CLH | Сбросить флаг H | H<0 | H | 1 | |
NOP | Нет операции | None | 1 | ||
SLEEP | Останов | None | 3 | ||
WDR | Сброс сторожевого таймера | None | 1 |
Подготовил Матвеев Дмитрий
2003
0 комментариев