8-разрядные КМОП RISC микроконтроллеры с внутрисистемно программируемым Flash ПЗУ
Архитектура микроконтроллеров семейства Mega. Организация памяти. Способы адресации памяти данных. Энергонезависимая память данных. Таблица векторов прерываний. Счетчик команд и выполнение программы. Абсолютный вызов подпрограммы. Сторожевой таймер.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 02.04.2009 |
Размер файла | 213,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Группа команд логических операций
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
AND Rd, Rr |
«Логическое И» двух РОН |
Rd = Rd * Rr |
1 |
Z,N,V |
|
ANDI Rd, K |
«Логическое И» РОН и константы |
Rd = Rd * К |
1 |
Z,N,V |
|
EOR Rd, Rr |
«Исключающее ИЛИ» двух РОН |
Rd = Rd ® Rr |
1 |
Z,N,V |
|
OR Rd, Rr |
«Логическое ИЛИ» двух РОН |
Rd = Rd v Rr |
1 |
Z,N,V |
|
ORI Rd, K |
«Логическое ИЛИ» РОН и константы |
Rd = Rd v К |
1 |
Z,N,V |
|
COM Rd |
Перевод в обратный код |
Rd = $FF-Rd |
1 |
Z,C,N,V |
|
NEG Rd |
Перевод в дополнительный код |
Rd = $00-Rd |
1 |
Z,C,N,V,H |
|
CLR Rd |
Сброс всех разрядов РОН |
Rd = Rd ® Rd |
1 |
Z,N,V |
|
SER Rd |
Установка всех разрядов РОН |
Rd = $FF |
1 |
||
TST Rd |
Проверка РОН на отрицательное или нулевое значение |
Rd * Rd |
1 |
Z,N,V |
|
SWAP Rd |
Обмен местами тетрад в РОН |
Rd(3...O) = Rd(7...4), Rd(7...4) = Rd(3...O) |
1 |
Группа команд арифметических операций
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
ADD Rd. Rr |
Сложение двух РОН |
Rd = Rd + Rr |
1 |
Z,C,N,V,H |
|
ADC Rd. Rr |
Сложение двух РОН с переносом |
Rd = Rd + Rr + C |
1 |
Z,C,N,V,H |
|
ADIW Rd, K |
Сложение регистровой пары с константой |
Rdh:RdI = Rdh:Rdl + К |
2 |
Z,C,N,V,S |
|
SUB Rd, Rr |
Вычитание двух РОН |
Rd = Rd-Rr |
1 |
Z,C,N,V,H |
|
SUBI Rd, K |
Вычитание константы из РОН |
Rd = Rd-K |
1 |
Z,C,N,V,H |
|
SBC Rd, Rr |
Вычитание двух РОН с заемом |
Rd=Rd-Rr-C |
1 |
Z,C,N,V,H |
|
SBCI Rd, K |
Вычитание константы из РОН с заемом |
Rd = Rd-K-C |
1 |
Z,C,N,V,H |
|
SBIW Rd, K |
Вычитание константы из регистровой пары |
Rdh:Rdl = Rdh:Rdt-K |
2 |
Z,C,N,V,S |
|
DEC Rd |
Декремент РОН |
Rd = Rd-l |
1 |
Z,N,V |
|
INC Rd |
Инкремент РОН |
Rd = Rd + 1 |
1 |
Z,N,V |
|
ASR Rd |
Арифметический сдвиг вправо |
Rd(n) = Rd(n+ 1), n = 0...6 |
1 |
Z,C,N,V |
|
LSL Rd |
Логический сдвиг влево |
Rd(n+l) = Rd(n), Rd(0) = 0 |
1 |
Z,C,N,V |
|
LSR Rd |
Логический сдвиг вправо |
Rd(n) = Rd(n+l),Rd(7) = 0 |
1 |
Z,C,N,V |
|
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
ROL Rd |
Сдвиг влево через перенос |
Rd(0) = C, Rd(n+l) = Rd(n), С = Rd(7) |
1 |
Z,C,N,V |
|
ROR Rd |
Сдвиг вправо через перенос |
Rd(7) = C, Rd(n) = Rd(n+l), С = Rd(0) |
1 |
Z,C,N,V |
|
MUL Rd, Rr |
Умножение беззнаковых чисел |
Rl:RO = RdXRr |
2 |
Z,C |
|
MULS Rd, Rr |
Умножение чисел со знаком |
Rl:RO = RdXRr |
2 |
Z,C |
|
MULSU Rd, Rr |
Умножение беззнакового чис-ла на число со знаком |
Rl:RO = RdXRr |
2 |
Z,C |
|
FMDL Rd, Rr |
Умножение дробных беззнаковых чисел |
Rl:RO = (RdXRr)«l |
2 |
Z,C |
|
FMULS Rd, Rr |
Умножение дробных чисел со знаком |
Rl:RO = (RdXRr)«l |
2 |
Z,C |
|
FMULSU Rd, Rr |
Умножение дробного беззнакового числа и дробного числа со знаком |
Rl:RO = (RdXRr)«1 |
2 |
Z,C |
|
Группа команд операций с битами |
|||||
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
CBR Rd, K |
Сброс разряда(ов) РОН |
Rd = Rd»($FF-K) |
1 |
Z,N,V |
|
SBR Rd, K |
Установка разрада(ов) РОН |
Rd=RdvK |
1 |
Z, N,V |
|
CBI A, b |
Сброс разряда РВВ |
A.b = 0 |
2 |
||
SBI A, b |
Установка разряда РВВ |
A.b=l |
2 |
||
BCLR s |
Зброс флага |
SREG.S - 0 |
1 |
SREG.S |
|
BSET s |
Установка флага |
SREG.S=l |
1 |
SREG.S |
|
BLD Rd, b |
Загрузка разряда РОН из флага Т (SREG) |
Rd.b = T |
1 |
||
BST Rr, b |
Запись разряда РОН в флаг Т (SREG) |
T = Rr.b |
1 |
T |
|
CLC |
Сброс флага переноса |
С = 0 |
1 |
С |
|
SEC |
Установка флага переноса |
C = l |
1 |
С |
|
CLN |
Сброс флага отр. числа |
N = 0 |
1 |
N |
|
SEN |
Установка флага отр. числа |
N = 1 |
1 |
N |
|
CLZ |
Сброс флага нуля |
Z = 0 |
1 |
Z |
|
SEZ |
Установка флага нуля |
Z = l |
1 |
Z |
|
CLI |
Общее запрещение прерываний |
1 = 0 |
1 |
I |
|
SEI |
Общее разрешение прерываний |
1 = 1 |
1 |
I |
|
CLS |
Сброс флага знака |
S = 0 |
1 |
S |
|
SES |
Установка флага знака |
S = l |
1 |
S |
|
CLV |
Сброс флага переполнения доп. кода |
V = 0 |
1 |
V |
|
SEV |
Установка флага переполнения доп. кода |
V = l |
1 |
V |
|
CLT |
Сброс флага Т |
T = 0 |
1 |
T |
|
SET |
Установка флага Т |
T = l |
1 |
T |
|
CLH |
Сброс флага половинного переноса |
H = 0 |
1 |
H |
|
SEH |
Установка флага половинного переноса |
H = l |
1 |
H |
|
Группа команд пересылки данных |
|||||
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
MOV Rd, Rr |
Пересылка между РОН |
Rd = Rr |
1 |
||
MOVW Rd, Rr |
Пересылка двухбайтовых значений |
Rd + l:Rd = Rr+l:Rr |
1 |
||
LDI Rd, K |
Загрузка константы в РОН |
Rd = K |
1 |
||
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
LD Rd, X |
Косвенное чтение |
Rd=[X] |
2 |
||
LD Rd, X+ |
Косвенное чтение с постинкрементом |
Rd = [X],X = X+I |
2 |
||
LD Rd,-X |
Косвенное чтение с преддекрементом |
X = X-l,Rd = [X] |
2 |
||
LD Rd, Y |
Косвенное чтение |
Rd=[Y] |
2 |
||
LD Rd, Y+ |
Косвенное чтение с постинкрементом |
Rd = [Y],Y = Y+l |
2 |
||
LD Rd,-Y |
Косвенное чтение с преддекрементом |
Y=Y-l,Rd=[Y] |
2 |
||
LDD Rd, Y+q |
Косвенное относительное чтение |
Rd = [Y+q] |
2 |
||
LD Rd,Z |
Косвенное чтение |
Rd = [Z] |
2 |
||
LD Rd, Z+ |
Косвенное чтение с постинкрементом |
Rd = [Z],Z = Z+l |
2 |
||
LD Rd,-Z |
Косвенное чтение с преддекрементом |
Z = Z - 1, Rd = [Z] |
2 |
||
LDD Rd, Z+q |
Косвенное относительное чтение |
Rd = [Z + q] |
2 |
||
LDS Rd, k |
Непосредственное чтение из ОЗУ |
Rd = [k] |
2 |
||
ST X, Rr |
Косвенная запись |
[X] = Rr |
2 |
||
ST X+, Rr |
Косвенная запись с постинкрементом |
[X] = Rr, X=X+1 |
2 |
||
ST -X, Rr |
Косвенная запись с преддекрементом |
X = X-l,[X] = Rr |
2 |
||
ST Y, Rr |
Косвенная запись |
[Y] = Rr |
2 |
||
ST Y+, Rr |
Косвенная запись с постинкрементом |
[Y] = Rr, Y=Y+1 |
2 |
||
ST -Y, Rr |
Косвенная запись с преддекрементом |
Y=Y-l,[X] = Rr |
2 |
||
STD Y+ q, Rr |
Косвенная относительная запись |
[Y+q] = Rr |
2 |
||
ST Z, Rr |
Косвенная запись |
[Z] = Rr |
2 |
||
ST Z+, Rr |
Косвенная запись с постинкрементом |
[Z] = Rr,Z = Z+l |
2 |
||
ST -Z ,Rr |
Косвенная запись с преддекрементом |
Z = Z-l,[Z] = Rr |
2 |
||
STD Z+ q, Rr |
Косвенная относительная запись |
[Z + q] = Rr |
2 |
||
STS k, Rr |
Непосредственная запись в ОЗУ |
[k] = Rr |
2 |
||
LPM |
Загрузка данных из памяти программ |
R0 = {Z} |
3 |
||
LPM Rd, Z |
Загрузка данных из памяти программ |
Rb={Z} |
3 |
||
LPM Rd, Z+ |
Загрузка данных из памяти программ с постинкрементом |
Rb = {Z},Z = Z+1 |
3 |
||
ELPM |
Расширенная загрузка данных из памяти программ |
RO = {RAMPZ:Z} |
3 |
||
ELPM Rd, Z |
Расширенная загрузка данных из памяти программ |
Rb={RAMPZ:Z} |
3 |
||
ELPM Rd, Z+ |
Расширенная загрузка данных из памяти программ с постинкрементом |
Rb = {RAMPZ:Z}, RAMPZ:Z = RAMPZ:Z+1 |
3 |
||
SPM |
Запись в память программ |
{Z} = RI:R0 |
|||
IN Rd, A |
Пересьика из РВВ в РОН |
Rd = A |
1 |
||
OUT A, Rr |
Пересылка из РОН в РВВ |
A=Rr |
1 |
||
PUSH Rr |
Сохранение байта в стеке |
STACK - Rr |
2 |
||
POP Rd |
Извлечение байта из стека |
Rd = STACK |
2 |
||
Группа команд передачи управления |
|||||
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
RJMP k |
Относительный безусловный переход |
РС =РС + к+1 |
2 |
||
IJMP |
Косвенный безусловный переход |
РС =Z |
2 |
||
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
JMP к |
Абсолютный переход |
РС = к |
3 |
||
RCALL к |
Этносительный вызов подпрограммы |
PC = PC + к + 1 |
3 |
||
ICALL |
Сосвенный вызов подпрограммы |
PC = Z |
3 |
||
CALL к |
Абсолютный вызов подпрограммы |
РС = к |
4 |
||
RET |
Возврат из подпрограммы |
PC = STACK |
4 |
||
RETI |
Возврат из подпрограммы обработки прерывания |
PC = STACK |
4 |
||
СР Rd, Rr |
Сравнение РОН |
Rd-Rr |
1 |
Z,N,V,C,H |
|
СРС Rd, Rr |
Сравнение РОН с учетом переноса |
Rd-Rr-C |
1 |
Z,N,V,C,H |
|
CPI Rd, K |
Сравнение РОН с константой |
Rd-K |
1 |
Z,N,V,C,H |
|
CPSE Rd, Rr |
Сравнение и пропуск следующей команды при равенстве |
Если Rd = Rr, то PC = PC + 2 (3) |
1/2/3 |
||
SBRC Rr, b |
Пропуск след. команды, если разряд РОН сброшен |
Если Rr.b = 0, то PC = PC + 2 (3) |
1/2/3 |
||
SBRS Rr, b |
Пропуск след. команды, если разряд РОН установлен |
Если Rr.b=l, то PC = PC + 2 (3) |
1/2/3 |
||
SBIC A, b |
Пропуск след. команды, если разряд РВВ сброшен |
Если A.b = 0, то PC = PC + 2 (3) |
1/2/3 |
||
SBIS A ,b |
Пропуск след. команды, если разряд РВВ установлен |
Если А.Ь= 1, то PC = PC + 2 (3) |
1/2/3 |
||
BRBC s, k |
Переход, если флаг s регистра SREG сброшен |
Если SREG.s = 0, то РС = РС + к+1 |
1/2 |
||
BRBS s, k |
Переход, если флаг s регистра SREG установлен |
Если SREG.s =1, то РС = РС + к+1 |
1/2 |
||
BRCS к |
Переход по переносу |
Если С =1, то РС = РС + к+1 |
1/2 |
||
BRCC к |
Переход, если нет переноса |
Если С = 0, то РС = РС + к+1 |
1/2 |
||
BREQ к |
Переход по «равно» |
Если Z = l, то РС = РС + к+1 |
1/2 |
||
BRNE к |
Переход по «не равно» |
Если Z = 0, то РС = РС + к+1 |
1/2 |
||
BRSH к |
Переход по «выше или равно» |
Если С = 0, то РС = РС + к+1 |
1/2 |
||
BRLO к |
Переход по «меньше» |
Если С =1, то РС = РС + к+1 |
1/2 |
||
BRMI . |
Переход по «отрицательное значение» |
Если N = 1, то РС = РС + к + |
1/2 |
||
BRPL |
Переход по «положительное значение» |
Если N = 0, то РС = РС + к+1 |
1/2 |
||
BRGE |
Переход по «больше или равно» (числа со знаком) |
Если (N®V) = 0, то PC = PC + к + 1 |
1/2 |
||
BRLT |
Переход по «меньше нуля» (числа со знаком) |
Если (N®V)=l, то PC = PC + к + 1 |
1/2 |
||
BRHS |
Переход по половинному переносу |
Если Н = 1, то PC = PC + к + 1 |
1/2 |
||
BRHC |
Переход, если нет половинного переноса |
Если Н = 0, то PC = PC + к + 1 |
1/2 |
||
BRTS |
Переход, если флаг Т установлен |
Если Т= 1, то РС = РС + к+1 |
1/2 |
||
BRTC |
Переход, если флаг Т сброшен |
ЕслиТ = 0, тоРС = РС + к+1 |
1/2 |
||
BRVS |
Переход по переполнению доп. кода |
ЕслиУ=1, тоРС = РС + к+1 |
1/2 |
||
BRVC |
Переход, если нет переполнения доп. кода |
ЕслиУ = 0, тоРС = РС + к+1 |
1/2 |
||
BRID |
Переход, если прерывания запрещены |
Если I = 0, тоРС = РС + к+1 |
1/2 |
||
BRIE |
Переход, если прерывания разрешены |
Если1 = 1, тоРС = РС + к+1 |
1/2 |
Группа команд управления системой
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
NOP |
Нет операции |
пустая команда |
1 |
||
SLEEP |
Переход в «спящий» режим |
перевод микроконтроллера в режим пониженного энер-гопотребления |
3 |
||
WDR |
Сброс сторожевого таймера |
сброс сторожевого таймера |
1 |
Обозначение |
Описание |
|
Регистр состояния |
||
SREG |
Регистр состояния микроконтроллера |
|
C |
Флаг переноса |
|
Z |
Флаг нуля |
|
N |
Флаг отрицательного значения |
|
V |
Флаг переполнения доп. кода |
|
S |
Флаг знака (S=N®V) |
|
H |
Флаг половинного переноса |
|
T |
Флаг пользователя |
|
I |
Флаг общего разрешения прерываний |
|
Регистры и операнды |
||
Rd |
Регистр приемник |
|
Rr |
Регистр источник |
|
K |
Константа |
|
k |
Адрес-коннстанта |
|
b |
Номер разряда РОН |
|
s |
Номер разряда регистра состояния |
|
X,Y,Z |
Регистры указатели |
|
I\O |
Регистр ввода-вывода |
|
A |
Адрес в пространства ввода-вывода |
|
q |
Смещение при относительной косвенной адресации |
|
[ХХ] |
Содержимое ячейки памяти данных по адресу ХХ |
|
{ХХ} |
Содержимое ячейки памяти программ по адресу ХХ |
|
Операция |
||
* |
Логическое И |
|
v |
Логическое ИЛИ |
|
® |
Исключающее ИЛИ |
|
Система |
||
РС |
Счетчик команд |
|
STACK |
Текущий уровень стека |
|
SP |
Указатель стека |
|
Флаги |
||
< > |
Команда воздействует на флаг |
|
0 |
Флаг сбрасывается командой в «0» |
|
1 |
Флаг устанавливается командой в «1» |
|
Команда не влияет |
Обозначение, используемые при описании команд
Подобные документы
Типы системной памяти. ОЗУ (оперативное запоминающее устройство), ПЗУ (постоянное запоминающее устройство), "энергонезависимая память" (CMOS). Процессор. Основные шины. Адресные данные. Совокупность всех возможных команд - система команд процессора.
контрольная работа [24,3 K], добавлен 30.03.2009Нахождение наибольшего элемента массива, расположенного во внутренней памяти, сохранение его значения в стеке. Описание используемых команд: запись из внутренней памяти в аккумулятор данных, безусловный переход по метке. Составление кода программы.
лабораторная работа [41,4 K], добавлен 18.11.2014Отличительные особенности микроконтроллеров AVR семейства Mega. Характеристики процессора, подсистемы ввода-вывода. Архитектура ядра и организация памяти. Регистры общего назначения. Алгоритмы моделирования команд. Реализация модели внешнего устройства.
курсовая работа [3,7 M], добавлен 24.06.2013Проектирование микропроцессорного устройства для записи и чтения данных из памяти flash-типа и осуществления взаимодействия с персональным компьютером посредством универсальной последовательной шины (USB). Программное обеспечение для устройства.
курсовая работа [868,3 K], добавлен 23.12.2012Объем двухпортовой памяти, расположенной на кристалле, для хранения программ и данных в процессорах ADSP-2106x. Метод двойного доступа к памяти. Кэш-команды и конфликты при обращении к данным по шине памяти. Пространство памяти многопроцессорной системы.
реферат [28,1 K], добавлен 13.11.2009Изучение архитектуры персонального компьютера на примере микропроцессора фирмы Intel. Регистры общего назначения. Оперативная память; форматы данных и команд. Команд пересылки с различными способами адресации операндов. Структура программы на Ассемблере.
курс лекций [506,4 K], добавлен 03.05.2014Обобщение основных видов и назначения оперативной памяти компьютера. Энергозависимая и энергонезависимая память. SRAM и DRAM. Триггеры, динамическое ОЗУ и его модификации. Кэш-память. Постоянное запоминающее устройство. Флэш-память. Виды внешней памяти.
курсовая работа [1,7 M], добавлен 17.06.2013Внутренний кэш. Смешанная и разделенная кэш-память. Статическая и динамическая память. TLB как разновидность кэш-памяти. Организация кэш-памяти. Отображение секторов ОП в кэш-памяти. Иерархическая модель кэш-памяти. Ассоциативность кэш-памяти.
курсовая работа [229,1 K], добавлен 04.11.2006Понятие и принципы построения компьютерной памяти, ее двоичная структура. Архитектура фон Неймана как широко известный принцип совместного хранения команд и данных в памяти компьютера. Аналого-цифровой преобразователь на основе двойного интегрирования.
контрольная работа [166,0 K], добавлен 10.02.2015Анализ работы параллельных вычислений на видеокарте GeForce GT 540M с использованием текстурной памяти. Рассмотрение специфических особенностей по адресации текстурной памяти. Изучение основ чтения и записи данных. Описание примеров данных программ.
лабораторная работа [3,1 M], добавлен 04.12.2014