Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


ORG - Установить положение в сегменте




Директива ORG устанавливает счётчик положения равным заданной величине, которая передаётся как параметр. Для сегмента данных она устанавливает счётчик положения в SRAM (ОЗУ), для сегмента программ это программный счётчик, а для сегмента EEPROM это положение в EEPROM. Если директиве предшествует метка (в той же строке) то метка размещается по адресу указанному в параметре директивы. Перед началом компиляции программный счётчик и счётчик EEPROM равны нулю, а счётчик ОЗУ равен 32 (поскольку адреса 0-31 заняты регистрами). Обратите внимание что для ОЗУ и EEPROM используются побайтные счётчики а для программного сегмента - пословный.

Синтаксис:
.ORG выражение

Пример:
.DSEG; Начало сегмента данных

.ORG 0x37; Установить адрес SRAM равным 0x37

variable:.BYTE 1; Зарезервировать байт по адресу 0x37H

 

.CSEG
.ORG 0x10; Установить программный счётчик равным 0x10

mov r0,r1; Данная команда будет размещена по адресу 0x10

 

SET - Установить переменный символический эквивалент выражения.

Директива SET присваивает имени некоторое значение. Это имя позднее может быть использовано в выражениях. Причем в отличии от директивы EQU значение имени может быть изменено другой директивой SET.

Синтаксис:
.SET имя = выражение

Пример:
.SET io_offset = 0x23

.SET porta = io_offset + 2

.CSEG; Начало кодового сегмента

clr r2; Очистить регистр r2

out porta,r2; Записать в порт A

Выражения

Компилятор позволяет использовать в программе выражения, которые могут состоять операндов, операторов и функций. Все выражения являются 32-битными.

Операнды

Могут быть использованы следующие операнды:

· Метки определённые пользователем (дают значение своего положения).

· Переменные определённые директивой SET

· Константы определённые директивой EQU

· Числа заданные в формате:

o Десятичном (принят по умолчанию): 10, 255

o Шестнадцатеричном (два варианта записи): 0x0a, $0a, 0xff, $ff

o Двоичном: 0b00001010, 0b11111111

o Восьмеричном (начинаются с нуля): 010, 077

· PC - текущее значение программного счётчика (Programm Counter)

 

Набор инструкций

 

  Мнемокод   Операнды     Описание     Действие     Флаги Количество машинных циклов
Арифметические и логические инструкции
ADD1 Rd, Rr Сложить два регистра Rd =Rd + Rr Z,C,N,V,H  
ADC Rd, Rr Сложить два регистра с переносом Rd = Rd + Rr + C Z,C,N,V,H  
ADIW Rdl,K Сложить слово с константой Rdh:Rdl = Rdh:Rdl + K Z,C,N,V,S  
SUB Rd, Rr Вычесть два регистра Rd=Rd - Rr Z,C,N,V,H  
SUBI Rd, K Вычесть константу из регистра Rd=Rd - K Z,C,N,V,H  
SBC Rd, Rr Вычесть два регистра с учетом переноса Rd=Rd - Rr - C Z,C,N,V,H  
SBCI Rd, K Вычесть константу из регистра с учетом переноса Rd=Rd - K - C Z,C,N,V,H  
SBIW Rdl,K Вычесть константу из слова Rdh:Rdl= Rdh:Rdl-K Z,C,N,V,S  
AND Rd, Rr Логическое И между регистрами Rd=Rd&Rr Z,N,V  
ANDI Rd, K Логическое И между регистром и константой Rd=Rd&K Z,N,V  
OR Rd, Rr Логическое ИЛИ между регистрами Rd=Rd v Rr Z,N,V  
ORI Rd, K Логическое ИЛИ между регистром и константой Rd=Rd v K Z,N,V  
EOR Rd, Rr Искл. ИЛИ между регистрами Rd=Rd  Rr Z,N,V  
COM Rd Дополнение до 0b11111111 ($FF), инверсия Rd=$FF - Rd Z,C,N,V  
NEG Rd Дополнение до 0b00000000 ($00) Rd=$00 - Rd Z,C,N,V,H  
SBR Rd, K Установка бит (бита) в регистре Rd=Rd v K Z,N,V  
CBR Rd, K Сброс бит (бита) в регистре Rd=Rd · ($FF - K) Z,N,V  
INC Rd Инкремент Rd=Rd + 1 Z,N,V  
DEC Rd Декремент Rd=Rd - 1 Z,N,V  
TST Rd Проверка на ноль или минус Rd=Rd. Rd Z,N,V  
CLR Rd Сброс регистра Rd=Rd-Rd Z,N,V  
SER Rd Установка регистра Rd=$FF Нет  
MUL Rd, Rr Умножение без знака R1:R0=RdxRr Z, C  
MULS Rd, Rr Умножение со знаком R1:R0=RdxRr Z, C  
MULSU Rd, Rr Умножение знакового с беззнаковым числом R1:R0=Rd x Rr Z, C  
FMUL Rd. Rr Дробное умножение без знака R1:R0= (RdxRr) << 1 Z, C  
FMULS Rd, Rr Дробное умножение со знаком R1:R0= (RdxRr) << 1 Z, C  
FMULSU Rd, Rr Дробное умножение знакового с беззнаковым числом R1:R0= (RdxRr) << 1 Z, C  
Инструкции перехода
RJMP k Относительный переход PC=PC + k +1 Нет  
IJMP   Косвенный переход по указателю (Z) PC=Z Нет  
JMP k Безусловный переход PC=k Нет  
RCALL k Относительный вызов процедуры PC=PC + k + 1 Нет  
ICALL   Косвенный вызов процедуры по указателю (Z) PC=Z Нет  
CALL k Безусловный вызов процедуры PC=k Нет  
RET   Возврат из подпрограммы PC=STACK Нет  
RETI   Возврат из прерывания PC=STACK I  
CPSE Rd,Rr Сравнение и пропуск, если равно if (Rd = Rr) PC=PC + 2 или 3 Нет 1/2/3
CP Rd,Rr Сравнение Rd-Rr Z, N,V,C,H  
CPC Rd,Rr Сравнение с учетом переноса Rd - Rr-C Z, N,V,C,H  
CPI Rd,K Сравнение регистра с константой Rd-K Z, N,V,C,H  
SBRC Rr,b Пропуск, если бит в регистре сброшен if(Rr(b)=O) PC=PC+2 или 3 Нет 1 /2/3
SBRS Rr, b Пропуск, если бит в регистре установлен if (Rr(b)=1) PC=PC+ 2 или 3 Нет 1/2/3
SBIC P, b Пропуск, если бит в регистре ввода-вывода сброшен if (P(b)=O) PC=PC + 2 или 3 Нет 1 /2/3
SBIS P, b Пропуск, если бит в регистре ввода-вывода установлен if (P(b)=1) PC=PC + 2 или 3 Нет 1 /2/3
BRBS s, k Переход, если флаг состояния установлен if(SREG(s)=1) then PC=PC+k + 1 Нет 1/2
BRBC s, k Переход, если флаг состояния сброшен if(SREG(s)=0) then PC=PC+k + 1 Нет 1 /2
BREQ k Переход, если равно if(Z=1) then PC=PC + k + 1 Нет 1 /2
BRNE k Переход, если не равно if(Z=0) then PC=PC + k + 1 Нет 1 /2
BRCS k Переход, если перенос установлен if(C=1)then PC=PC+k+ 1 Нет 1 /2
BRCC k Переход, если перенос сброшен if(C=0) then PC=PC +k+ 1 Нет 1 /2
BRSH k Переход, если больше или равно if(C=0) then PC=PC+k+ Нет 1 /2
BRLO k Переход, если меньше if(C=1) then PC=PC+k+1 Нет 1 /2
BRMI k Переход, если минус if(N=1) then PC=PC+k + 1 Нет 1 /2
BRPL k Переход, если плюс if(N=0) then PC=PC + k + 1 Нет 1 /2
BRGE k Переход, если больше или равно с учетом знака if(NeV=0) then PC=PC+k+1 Нет 1 /2
BRLT k Переход, если меньше нуля с учетом знака if(NeV=1) then PC=PC+k+ Нет 1 /2
BRHS k Переход, если флаг Н установлен if(H=1) then PC=PC+k+1 Нет 1 /2
BRHC k Переход, если флаг Н сброшен if (H=0) then PC=PC+k + 1 Нет 1 /2
BRTS k Переход, если флаг Т установлен if (T=1) then PC=PC + k +1 Нет 1 /2
BRTC k Переход, если флаг Т сброшен if (T=0) then PC=PC+k+1 Нет 1 /2
BRVS k Переход, если флаг V установлен if (V=) then PC=PC+k+1 Нет 1 /2
BRVC k Переход, если флаг V сброшен if (V=0) then PC=PC + k+1 Нет 1 /2
BRIE k Переход, если прерывания разрешены if (I = 1)then PC=PC+ k+ 1 Нет 1 /2
BRID k Переход, если прерывания запрещены if (I =0) then PC=PC +k +1 Нет 1 /2
Инструкции передачи данных
MOV Rd, Rr Запись из регистра в регистр Rd=Rr Нет  
MOVW Rd, Rr Перезапись слова между регистрами Rd+1:Rd=Rr+1:Rr Нет  
LDI Rd, K Запись константы в регистр Rd=K Нет  
LD Rd, X Косвенное считывание из памяти в регистр Rd=(X) Нет  
LD Rd, X+ Косвенное считывание из памяти в регистр и инкр. Rd=(X), X=X + 1 Нет  
LD Rd,-X Предварительный декремент, а затем косвенное считывание из памяти в регистр X=X - 1, Rd=(X) Нет  
LD Rd,Y Косвенное считывание из памяти в регистр Rd=(Y) Нет  
LD Rd, Y+ Косвенное считывание из памяти в регистр и инкр. Rd=(Y), Y=Y + 1 Нет  
LD Rd,-Y Предварительный декремент, а затем косвенное считывание из памяти в регистр Y=Y - 1, Rd=(Y) Нет  
LDD Rd,Y+q Косвенное считывание из памяти в регистр со смещением Rd=(Y + q) Нет  
LD Rd, Z Косвенное считывание из памяти в регистр Rd=(Z) Нет  
LD Rd, Z+ Косвенное считывание из памяти в регистр и инкр. Rd=(Z),Z=Z+1 Нет  
LD Rd.-Z Предварительный декремент, а затем косвенное считывание из памяти в регистр Z=Z - 1, Rd=(Z) Нет  
LDD Rd, Z+q Косвенное считывание из памяти в регистр со смещением Rd=(Z + q) Нет  
LDS Rd, k Непосредственное чтение из ОЗУ в регистр Rd=(k) Нет  
ST X, Rr Косвенная запись (X)=Rr Нет  
ST X+, Rr Косвенная запись и послед. инкремент (X)=Rr, X=X + 1 Нет  
ST -X, Rr Предв. декремент и косвенная запись X=X - 1, (X)=Rr Нет  
ST Y, Rr Косвенная запись (Y)=Rr Нет  
ST Y+, Rr Косвенная запись и послед. инкремент (Y)=Rr, Y=Y + 1 Нет  
ST -Y, Rr Предв. декремент и косвенная запись Y=Y - 1, (Y)=Rr Нет  
STD Y+q,Rr Косвенная запись со смещением (Y + q)=Rr Нет  
ST Z, Rr Косвенная запись (Z)=Rr Нет  
ST Z+, Rr Косвенная запись и послед. инкремент (Z)=Rr, Z=Z + 1 Нет  
ST -Z. Rr Предв. декремент и косвенная запись Z=Z - 1, (Z)=Rr Нет  
STD Z+q,Rr Косвенная запись со смещением (Z + q)=Rr Нет  
STS k, Rr Непосредственная запись в ОЗУ (k)=Rr Нет  
LPM   Чтение из памяти программ R0=(Z) Нет  
LPM Rd, Z Чтение из памяти программ Rd=(Z) Нет  
LPM Rd, Z+ Чтение из памяти программ и последующий инкремент Rd=(Z), Z=Z+1 Нет  
ELPM   Расширенное чтение из памяти программ R0=(RAMPZ:Z) Нет  
ELPM Rd, Z Расширенное чтение из памяти программ Rd=(RAMPZ:Z) Нет  
ELPM Rd, Z+ Расширенное чтение из памяти программ и последующие инкремент Rd=(RAMPZ:Z), RAMPZ:Z=RAMPZ:Z+1 Нет  
SPM   Запись в память программ (Z)=R1:R0 Нет -
IN Rd, P Считывание из порта ввода-вывода в регистр Rd=P Нет  
OUT P, Rr Запись из регистра в порт ввода-вывода P=Rd Нет  
PUSH Rr Помещение содержимого регистра в стек STACK=Rr Нет  
POP Rd Извлечение из стека в регистр Rd=STACK Нет  
Битовые инструкции и инструкции тестирования бит
SBI P,b Установка бита в регистре ввода-вывода l/O(P,b)=1 Нет  
CBI P,b Сброс бита в регистре ввода-вывода l/O(P,b)=0 Нет  
LSL Rd Логический сдвиг влево Rd(n+1)=Rd(n), Rd(0)=0 Z,C,N,V  
LSR Rd Логический сдвиг вправо Rd(n)=Rd(n+1), Rd(7)=0 Z,C,N,V  
ROL Rd Вращение влево через перенос Rd(0)= C, Rd(n+1)=Rd(n), C=Rd(7) Z,C,N,V  
ROR Rd Вращение вправо через перенос Rd(7)=C, Rd(n)=Rd(n+1), C=Rd(0) Z,C,N,V  
ASR Rd Арифметический сдвиг вправо Rd(n)= Rd(n+1), n=0..6 Z,C,N,V  
SWAP Rd Обмен тетрадами Rd(3..0)=Rd(7..4), Rd(7..4)=Rd(3..0) Нет  
BSET s Установка флага регистра SREG SREG(s)=1 SREG(s)  
BCLR s Сброс флага регистра SREG SREG(s)=0 SREG(s)  
BST Rr, b Запись бита регистра в T T=Rr(b) T  
BLD Rd, b Чтение из T в бит регистра Rd(b)=T Нет  
SEC   Установка переноса C=1 C  
CLC   Сброс переноса C=0 C  
SEN   Установка флага N N=1 N  
CLN   Сброс флага N N=0 N  
SEZ   Установка флага нуля Z Z=1 Z  
CLZ   Сброс флага нуля Z Z=0 Z  
SEI   Общее разрешение прерываний L= 1 I  
CLI   Общий запрет прерываний l=0 I  
SES   Установка флага S S=1 S  
CLS   Сброс флага S S=0 S  
SEV   Установка флага V в регистре SREG V=1 V  
CLV   Сброс флага V в регистре SREG V=0 V  
SET   Установка флага T в регистре SREG T=1 T  
CLT   Сброс флага T в регистре SREG T=0 T  
SEH   Установка флага Н в регистре SREG H=1 H  
CLH   Сброс флага Н в регистре SREG H=0 H  
Инструкции управления микроконтроллером
NOP   Нет операции   Нет  
SLEEP   Перевод в режим сна (см. подробное описание режима сна) Нет  
WDR   Сброс сторожевого таймера (см. подробное описание сторожевого таймера) Нет  
BREAK   Прерывание Только для встроенной отладки Нет -
             

 

Приложение 3

Таблица П5. Сводная таблица регистров микроконтроллеров

Семейства AVR

Наименование и адрес регистра Разряд 7 Разряд 6 Разряд 5 Разряд Разряд 3 Разряд 2 Разряд 1 Разряд 0
($FF)-Резерв - - - - - - - -
($9E)-Резерв - - - - - - - -
($9D)-UCSR1C Регистр C управления и статуса УСАПП1 - UMSEL1 UPM11 UPM10 USBS1 UCSZ11 UCSZ10 UCPOL1
($9C)-UDR1 Регистр данных УСАПП 1
($9B)-UCSR1A Регистр А управления и статуса УСАПП1 RXC1 TXC1 UDRE1 FE1 DOR1 UPE1 U2X1 MPCM1
($9A)-UCSR1B Регистр B управления и статуса УСАПП1 RXCIE1 TXCIE1 UDRIE1 RXEN1 TXEN1 UCSZ12 RXB81 TXB81
($99)-UBRR1L Младший байт регистра скорости связи УСАПП1
($98)-UBRR1H - - - - Старший байт регистра скорости связи УСАПП1
($97)-Резерв - - - - - - - -
($96)-Резерв - - - - - - - -
($95)-UCSR0C. Регистр C управления и статуса УСАПП0 - UMSEL0 UPM01 UPM00 USBS0 UCSZ01 UCSZ00 UCPOL0
($94)-Резерв - - - - - - - -
($93)-Резерв - - - - - - - -
($92)-Резерв - - - - - - - -
($91)-Резерв - - - - - - - -
($90)-UBRR0H - - - - Ст. байт регистра скорости связи УСАПП0
($8F)-Резерв - - - - - - - -
($8E)-Резерв - - - - - - - -
($8D)-Резерв - - - - - - - -
($8C)-TCCR3C FOC3A FOC3B FOC3C - - - - -
($8B)-TCCR3A COM3A1 COM3A0 COM3B1 COM3B0 COM3C1 COM3C0 WGM31 WGM30
($8A)-TCCR3B ICNC3 ICES3 - WGM33 WGM32 CS32 CS31 CS30
($89)-TCNT3H Таймер-счетчик 3 - Старший байт регистра счетчика
($88)-TCNT3L Таймер-счетчик 3 - Младший байт регистра счетчика
($87)-OCR3AH Таймер-счетчик 3 - Старший байт регистра А порога сравнения
($86)-OCR3AL Таймер-счетчик 3 - Младший байт регистра А порога сравнения
($85)-OCR3BH Таймер-счетчик 3 - Старший байт регистра В порога сравнения
($84)-OCR3BL Таймер-счетчик 3 - Младший байт регистра В порога сравнения
($83)-OCR3CH Таймер-счетчик 3 - Старший байт регистра С порога сравнения
($82)-OCR3CL Таймер-счетчик 3 - Младший байт регистра С порога сравнения
($81)-ICR3H Таймер-счетчик 3 - Старший байт регистра захвата
($80)-ICR3L Таймер-счетчик 3 - Младший байт регистра захвата
($7F)-Резерв - - - - - - - -
($7E)-Резерв - - - - - - - -
($7D)-ETIMSK - - TICIE3 OCIE3A OCIE3B TOIE3 OCIE3C OCIE1C
($7C)-ETIFR - - ICF3 OCF3A OCF3B TOV3 OCF3C OCF1C
($7B)-Резерв - - - - - - - -
($7A)-TCCR1C FOC1A FOC1B FOC1C - - - - -
($79)-OCR1CH Таймер-счетчик 1 - Старший байт регистра С порога сравнения
($78)-OCR1CL Таймер-счетчик 1 - Младший байт регистра С порога сравнения
($77)-Резерв - - - - - - - -
($76)-Резерв - - - - - - - -
($75)-Резерв - - - - - - - -
($74)-TWCR. Регистр управления шиной TWI TWINT TWEA TWSTA TWSTO TWWC TWEN - TWIE
($73)-TWDR. Регистр данных шины TWI Регистр данных двухпроводного последовательного интерфейса
($72)-TWAR. Регистр подчиненного адреса шины TWI TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE
($71)-TWSR. Регистр состояния TWI TWS7 TWS6 TWS5 TWS4 TWS3 - TWPS1 TWPS0
($70)-TWBR Регистр задания скорости связи двухпроводного последовательного интерфейса
($6F)-OSCCAL Регистр калибровки генератора
($6E)-Резерв - - - - - - - -
($6D)-XMCRA - SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 -
($6C)-XMCRB - - - - - XMM2 XMM1 XMM0
($6B)-Резерв - - - - - - - -
($6A)-EICRA ISC31 ISC30 ISC21 ISC20 ISC11 ISC10 ISC01 ISC00
($69)-Резерв - - - - - - - -
($68)-SPMCSR SPMIE RWWSB - RWWSRE BLBSET PGWRT PGERS SPMEN
($67)-Резерв - - - - - - - -
($66)-Резерв - - - - - - - -
($65)-PORTG - - - PORTG4 PORTG3 PORTG2 PORTG1 PORTG0
($64)-DDRG. Регистр управления направлением порта G - - - DDG4 DDG3 DDG2 DDG1 DDG0
($63)-PING - - - PING4 PING3 PING2 PING1 PING0
($62)-PORTF PORTF7 PORTF6 PORTF5 PORTF4 PORTF3 PORTF2 PORTF1 PORTF0
($61)-DDRF. Регистр управления направлением порта F DDF7 DDF6 DDF5 DDF4 DDF3 DDF2 DDF1 DDF0
($60)-Резерв - - - - - - - -
$3F($5F)-SREG. Регистр управления и статуса МК I T H S V N Z C
$3E($5E)-SPH. Указатель стека (ст. байт) SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8
$3D($5D)-SPL Указатель стека (мл. байт) SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0
$3C($5C)-XDIV XDIVEN XDIV6 XDIV5 XDIV4 XDIV3 XDIV2 XDIV1 XDIV0

 

Примечания:

1. Для совместимости с последующими версиями микроконтроллеров рекомендуется в резервные разряды записывать лог. 0. В резервные ячейки памяти не рекомендуется выполнять запись.

2. Некоторые флаги состояния сбрасываются путем записи в них лог. 1. Обратите внимание, что инструкции CBI и SBI работают со всеми разрядами регистра ввода-вывода (чтение-модификация-запись). Инструкции CBI и SBI работают только с регистрами $00…$1F.

 

 

Приложение 4

 

Таблица П6. Векторы сброса и прерываний МК ATmega128

№ вектора Адрес памяти программ Источник Условие возникновения прерывания
  $0000 RESET Внешний сброс, сброс при подаче питания, сброс при недопустимом снижении питания, сброс сторожевым таймером и сброс через JTAG-интерфейс
  $0002 INT0 Запрос на внешнее прерывание 0
  $0004 INT1 Запрос на внешнее прерывание 1
  $0006 INT2 Запрос на внешнее прерывание 2
  $0008 INT3 Запрос на внешнее прерывание 3
  $000A INT4 Запрос на внешнее прерывание 4
  $000C INT5 Запрос на внешнее прерывание 5
  $000E INT6 Запрос на внешнее прерывание 6
  $0010 INT7 Запрос на внешнее прерывание 7
  $0012 TIMER2 COMP Срабатывание компаратора таймера-счетчика 2
  $0014 TIMER2 OVF Переполнение таймера-счетчика 2
  $0016 TIMER1 CAPT Захват фронта таймером-счетчиком 1
  $0018 TIMER1 COMPA Срабатывание компаратора А таймера-счетчика 1
  $001A TIMER1 COMPB Срабатывание компаратора В таймера-счетчика 1
  $001C TIMER1 OVF Переполнение таймера-счетчика 1
  $001E TIMER0 COMP Срабатывание компаратора таймера-счетчика 0
  $0020 TIMER0 OVF Переполнение таймера-счетчика 0
  $0022 SPI, STC Завершение последовательной передачи интерфейсом SPI
  $0024 USART0, RX Завершение приема УСАПП 0
  $0026 USART0, UDRE Регистр данных УСАПП0 свободен
  $0028 USART0, TX Завершение передачи УСАПП 0
  $002A ADC Завершение преобразования АЦП
  $002C EE READY Готовность EEPROM
  $002E ANALOG COMP Аналоговый компаратор
  $0030(3) TIMER1 COMPC Срабатывание компаратора С таймера-счетчика 1
  $0032(3) TIMER3 CAPT Захват фронта таймером счетчиком 3
  $0034(3) TIMER3 COMPA Срабатывание компаратора А таймера-счетчика 3
  $0036(3) TIMER3 COMPB Срабатывание компаратора В таймера-счетчика 3
  $0038(3) TIMER3 COMPC Срабатывание компаратора С таймера-счетчика 3
  $003A(3) TIMER3 OVF Переполнение таймера счетчика 3
  $003C(3) USART1, RX Завершение приема УСАПП 1
  $003E(3) USART1, UDRE Регистр данных УСАПП1 свободен
  $0040(3) USART1, TX Завершение передачи УСАПП1
  $0042(3) TWI Двухпроводной последовательный интерфейс
  $0044(3) SPM READY Готовность записи в память программ

 

Примечания.

1. Если конфигурационный бит BOOTRST запрограммирован, то микроконтроллер выполняет переход на адрес сброса в загрузочном секторе.

2. Если установлен бит IVSEL в регистре MCUCR, то векторы прерываний перемещаются в начало загрузочного сектор флэш-памяти. В этом случае к адресу каждого вектора прерывания из таблицы прибавляется стартовый адрес загрузочного сектора флэш-памяти.

3. Прерывания по адресам $0030 - $0044 не существуют в режиме совместимости с ATmega103.

 

Приложение 5

Нумерация выводов и типы корпусов микроконтроллеров

семейства AVR

 

ATmega8(L)

 

 

ATmega128

ATmega64

 

ATmega32

 

ATmega16

 
 

 


ATmega169

 

 

ATmega8535

 

ATmega163

 

ATtiny15L

 

ATtiny26

 

ATtiny28

AT90S2313


[1] При написании данного раздела использован материал сайта http://logic-bratsk.ru/radio/micro/atmega128/index.htm

[2] Программная модель процессора - эта совокупность программно-доступных регистров, а функционирование процессора заключается в пересылке данных из одного регистра в другой регистр с преобразованием или без преобразования.

[3] Если векторы прерываний помещаются в загрузочный сектор и бит защиты загрузочного сектора BLB02 запрограммирован, то прерывания будут отключены при выполнении программы в секторе прикладной программы. Если векторы прерываний размещены в прикладном секторе и бит защиты BLB12 запрограммирован, то прерывания становятся отключенными при выполнении программы в загрузочном секторе.

 

[4] Выход аналогового компаратора (ACO) только у таймера-счетчика 1 может выступать в качестве сигнала захвата. У таймера-счетчика 3 эта возможность отсутствует.

 

[5] Терминология интерфейса TWI.

Ведущий -устройство, которое инициирует и прекращает сеанс связи. Сигнал синхронизации SCL всегда генерируется ведущим устройством;

Подчиненный – устройство, которое адресуется ведущим устройством;

Передатчик - устройство, размещающее данные на шине;

Приемник -устройство, считывающее данные с шины.

 

[6] Глава 3 написана совместно с инженером Курбановым Д.С.





Поделиться с друзьями:


Дата добавления: 2016-11-02; Мы поможем в написании ваших работ!; просмотров: 764 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Большинство людей упускают появившуюся возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © Томас Эдисон
==> читать все изречения...

2551 - | 2215 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.