Микроконтроллеры семейства AVR фирмы Atmel
Микроконтроллер ATtiny2313/V фирмы Atmel: структура, основные характеристики, возможности. Центральное ядро процессора. Системная перепрограммируемая Flash-память программ. Порты ввода-вывода микроконтроллера. Блок-схема восьмиразрядного таймера/счётчика.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.01.2011 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
36
(Яч(X)) > Rd
LD Rd, X
37
(Rr) >Яч(X)
ST X, Rr
38
(Яч(Y)) > Rd
LD Rd, Y
39
(Rr) >Яч(Y)
ST Y, Rr
40
(Яч(Z)) > Rd
LD Rd, Z
41
(Rr) >Яч(Z)
ST Z, Rr
42
1.(Яч(X)) > Rd2. (X)+1>X
LD Rd, X+
43
1.(Rr)>Яч(X) 2.(X)+1>X
ST X+, Rr
44
1.(Яч(Y)) > Rd2. (Y)+1>Y
LD Rd, Y+
45
1.(Rr)>Яч(Y) 2.(Y)+1>Y
ST Y+, Rr
46
1.(Яч(Z)) > Rd2. (Z)+1>Z
LD Rd, Z+
47
1.(Rr)>Яч(Z) 2.(Z)+1>Z
ST Z+, Rr
48
1.(X)-1>X 2. (Яч(X))> Rd
LD Rd, -X
49
1.(X)-1 >X 2.(Rr)>Яч(X)
ST -X, Rr
50
1.(Y)-1>Y 2. (Яч(Y))> Rd
LD Rd, -Y
51
1.(Y)-1 >Y 2.(Rr)>Яч(Y)
ST -Y, Rr
52
1.(Z)-1>Z 2. (Яч(Z))> Rd
LD Rd, -Z
53
1.(Z)-1 >Z 2.(Rr)>Яч(Z)
ST -Z, Rr
54
(Яч(Y)+q) > Rd
LDD Rd, Y+q
55
(Rr)>Яч(Y)+q
STDY+q, Rr
56
(Яч(Z)+q) > Rd
LDD Rd, Z+q
57
(Rr)>Яч(Z)+q
STDZ+q, Rr
58
1.(SP)+1>SP 2. (СТЕК)> Rd
POP Rd
59
1.(Rr)-1>СТЕК 2.(SP)-1>SP
PUSH Rr
d, r = 0-31; q=0-63
Таблица 7
№ |
Операция |
Мнемокод команды |
№ |
Операция |
Мнемокод команды |
|
60 |
(PrP) > Rd |
IN Rd, P |
61 |
(Pr) >PrP |
OUT P,Pr |
|
d, r = 0-31; P=0-63=S00-$3F |
Таблица 8
№ |
Операция |
Мнемокод команды |
(Z.15-1) - адрес в FlashROM Z.0 = 0 - мл. байт; Z.0 =1 -ст. байт |
|
62 |
(Яч(Z))> R0 |
LPM |
Таблица 9
№ |
Операция |
Мнемокод команды |
№ |
Операция |
Мнемокод команды |
|
63 |
T> Rd.b |
BLD Rd, b |
64 |
Rr.b >T |
BSTRr, b |
|
65 |
0> PrP.b |
CBI P, b |
66 |
1>PrP.b |
SBI P, b |
|
67 |
0> SREG.b |
BLSR b |
68 |
1>SREG.b |
SSET b |
|
d, r = 0-31; P=0-31 (!); b= 0-7 |
Таблица 10
№ |
Операция |
Мнемокод команды |
№ |
Операция |
Мнемокод команды |
|
69 |
0>I |
CLI Rd, X |
70 |
1 >I |
SEI |
|
71 |
0 >T |
CLT |
72 |
1 >T |
SET |
|
73 |
0>H |
CLH |
74 |
1 >H |
SEH |
|
75 |
0>S |
CLS |
76 |
1>S |
SES |
|
77 |
0>V |
CLV |
78 |
1>V |
SEV |
|
79 |
0>N |
CLN |
80 |
1>N |
SEN |
|
81 |
0>Z |
CLZ |
82 |
1>Z |
SEZ |
|
83 |
0>C |
CLC |
84 |
1>C |
SEC |
Таблица 11
№ |
Операция |
Мнемокод команды |
№ |
Операция |
Мнемокод команды |
|
85 |
(PC)+1+k>PC |
RJMP k |
86 |
(Z) >PC |
IJMP |
|
87 |
(PC)+>СТЕК (SP)-2>SP (PC)+1+k>PC |
RCALL k |
88 |
(PC)+1>СТЕК (SP)-2>SP (Z) >PC |
ICALL |
|
89 |
(SP)+2> SP (СТЕК) >PC |
RET |
90 |
(SP)+2>SP (СТЕК) >PC 1>I |
RETI |
|
k= -2048 - +2047 |
Таблица 12
№ |
Условие |
Мнемокод команды |
№ |
Условие |
Мнемокод команды |
|
91 |
I = 0 |
BRID k |
92 |
I = 1 |
BRIE k |
|
93 |
T = 0 |
BRTC k |
94 |
T = 1 |
BRTS k |
|
95 |
H = 0 |
BRHC k |
96 |
H = 1 |
BRHS k |
|
97 |
S = 02. (X)+1>X |
BRGE k |
98 |
S = 1 |
BRLT k |
|
99 |
V = 0 |
BRVC |
100 |
V = 1 |
BRVS k |
|
101 |
N = 0 |
BRPL k |
102 |
N = 1 |
BRMI k |
|
103 |
Z = 0 |
BRNE k |
104 |
Z = 1 |
BREQ k |
|
105 |
C = 0 |
BRCC k |
106 |
C = 1 |
BRCS k |
|
107 |
C = 0 |
BRSH k |
108 |
C = 1 |
BRLO k |
|
109 |
SREG.b = 0 |
BRBC b, k |
110 |
SREG.b = 1 |
BRBS b, k |
|
k= -64 - +63; b = 0 - 7 |
Таблица 13
№ |
Условие |
Мнемокод команды |
№ |
Условие |
Мнемокод команды |
|
111 |
Rr.b = 0 |
SBRC Rr, b |
112 |
Rrb = 1 |
SBRS Rr, b |
|
113 |
PrP.b = 0 |
SBIC P, b |
114 |
PrP.b = 1 |
SPIS P, b |
|
115 |
(Rd) = (Rr) |
CPSE Rd, Rr |
||||
d, r= 0 - 31; P = 0 - 31 (!); b = 0 - 7 |
Таблица 14
№ |
Операция |
Мнемокод команды |
|
116 |
MK > режим энергосбережения |
SLEEP |
|
117 |
Перезапуск WDT |
WDR |
|
118 |
Нет |
NOP |
6.3 Команды регистровых операций
В группу регистровых операций входят пересылочные, арифметические и логические операции. Команды регистровых операций описаны в табл. 2, 3 и 4 Машинные коды всех команд регистровых операций имеют формат «слово», команды №№ 1 - 31 выполняются за один такт, а команды №№ 32 и 33 - за два такта.
При описании операций в табл. 2 - 4 используются следующие обозначения:
? Rd, Rr - регистры общего назначения с номерами d и r соответственно;
? (Rd), (Rr) - байты в регистрах Rd и Rr соответственно;
? Rd.b - разряд b (b = 0 - 7) регистра Rd, бит в разряде Rd.b;
? $ - указатель шестнадцатеричного кода;
? ^, ?, - знаки логических операций И, ИЛИ, исключающее ИЛИ соответственно;
? ( ), ( ), ( ) - знаки операций НЕ, сдвиг кода вправо, сдвиг кода влево соответственно.
Арифметические операции - сложение и вычитание - могут выполняться с числами без знака в двоичном коде и с числами со знаком в дополнительном двоичном коде. В отличие от микроконтроллеров многих других семейств, в которых вычитание сводится к сложению с числом с изменённым знаком (X-Y = X + (-Y)), в микроконтроллерах семейства AVR вычитание выполняется с помощью аппаратного двоичного вычитателя.
При выполнении арифметических и логических операций кроме кода результата формируются значения признаков результата. При выполнении операций сравнения (команды №№ 18, 19 и 27) формируются только значения признаков результата.
Значения признаков результата представлены состоянием разрядов регистра состояния SREG (№$33F). Используются шесть признаков результата, которым присвоены имена C (SREG.0), Z(SREG.1) N (SREG.2), V (SREG.3, S (SREG.4) и H (SREG.5). В табл. 2.1 - 2.3 признаки, значения которых формируются при выполнении команд, отмечены знаком «+» или указано их название.
При выполнении разных операций значение признаков формируется по разным правилам.
Признак C принимает единичное значение:
? при появлении единицы переноса из старшего разряда при выполнении операции сложения (команды №№ 14, 15 и 32);
? при появлении единицы займа в старший разряд при выполнении операции сложения (команды №№ 4, 16, 17, 18, 19, 25, 26, 27 и 33);
? при выходе единицы за пределы разрядной сетки при выполнении операции сдвига (команды №№ 7, 8, 9, 10 и 11).
Единичное значение признака C при выполнении операций сложения и вычитания с числами без знака свидетельствует о получении неправильного результата операции вследствие переполнения разрядной сетки.
Признак Z принимает единичное значение при получении нулевого результата операции. При выполнении операции вычитания с учётом займа (команды №№ 17, 19 и 26) Z = 1, если нулевой результат получен при выполнении данной и предшествующей операций.
Признак N имеет значение, равное значению старшего разряда кода результата. При выполнении арифметических операций с числами со знаком и отсутствии переполнения разрядной сетки он представляет знак результата.
Признак V принимает единичное значение, если при выполнении арифметической операции с числами со знаком возникло переполнение разрядной сетки.
Признак S = NV представляет знак результата при выполнении арифметических операций с числами со знаком вне зависимости от переполнения разрядной сетки. При переполнении разрядной сетки (V = 1) знак результата противоположен значению в старшем разряде кода результата.
Признак H принимает единичное значение при наличии единицы переноса из разряда D3 в разряд D4 при выполнении операции вычитания и при передаче единицы из разряда D3 в разряд D4 при выполнении операции кода влево.
6.4 Команды с обращением по адресу SRAM
По командам с обращением по адресу в адресном пространстве SRAM выполняются операции пересылки (копирования) байта между регистром общего назначения и элементом, которому соответствует адрес в адресном пространстве SRAM. Таким элементом может быть регистр общего назначения (адреса от $00 до $1F), регистр ввода-вывода (адреса от $20 до $5F), ячейка памяти в SRAM (адреса от $60 до максимального адреса в SRAM), ячейка памяти в ERAM(адреса от максимального адреса в SRAM +1 до максимального адреса в ERAM).
Команды с обращением по адресу в адресном пространстве SRAM описаны в табл. 2.4 и 2.5.
Машинные коды команд №№ 34 и 35 имеют формат «2 слова», машинные коды остальных команд - формат «слово». Команды выполняются за 2 такта, а при обращении к ячейкам в ERAM-за 3 такта. В случае необходимости в цикл выполнения команды при обращении к ERAM может быть введён дополнительный такт ожидания.
В табл.2.4 и 2.5 используются следующие новые обозначения:
? ЯчА - регистр общего назначения, регистр ввода-вывода, ячейка памяти в SRAM, ячейка памяти в ERAM, к которым производится обращение с использованием адреса А из адресного пространства SRAM;
? (ЯчА) - байт в ЯчА;
?X, Y, Z - пара регистров общего назначения X (R26, R27), Y (R28, R29), Z (R30, R31) соответственно;
? (X), (Y), (Z) - слово в паре регистров X, Y, Z соответственно;
? СТЕК - ЯчА, к которой производится обращение с использованием адреса, хранящегося в регистре - указателе стека SP;
? (СТЕК) - байт в СТЕК, е;
? (SP) - код числа в регистре SP.
В командах №№ 34 и 35 реализуется прямая адресация. Адрес байта (A = k) указывается в коде команды.
В командах №№ 36 - 57 реализуется косвенная адресация. Адрес байта находится в паре регистров X, Y или Z. При выполнении команд №№ 48 - 53 до выполнения пересылки адрес в паре регистров аппаратно уменьшается на единицу. При выполнении команд №№ 54 - 57 адрес, по которому производится обращение, равен адресу в паре регистров Y или Z, увеличенному на единицу q, которое указано в коде команды. Адрес в паре регистров остаётся без изменения.
В командах №№ 58 и 59 в качестве кода адреса используется код, находящейся в регистре-указателе стека. При запуске микроконтроллера в регистр-указатель стека заносится код числа 0. Для нормальной работы стека в регистр - указатель стека в начале программы необходимо занести код другого числа. Обычно в качестве такого числа используют старший адрес в SRAM. Например, для микроконтроллера типа 8515 таким адресом является число $025F.
6.5 Команды с обращением к регистрам ввода-вывода
По командам с обращением к регистрам ввода-вывода выполняются операции пересылки (копирования) байта между регистром общего назначения и регистром ввода-вывода с использованием для выбора регистра ввода-вывода его номера ($00 - $3F). Команды с обращением к регистрам ввода-вывода описаны в табл. 6. Машинные коды команд имеют формат «слово». Команды выполняются за один такт.
В табл. 6 используются следующие новые обозначения:
? PrP - регистр ввода-вывода с номером P;
? (PrP) - байт в регистре PrP.
При записи мнемокода команды вместо конкретного номера регистра может использоваться его символическое имя. Все регистры ввода-вывода имеют штатные имена. У микроконтроллеров разных типов регистры ввода-вывода, имеющие одинаковые имена, могут иметь разные имена. При записи в мнемокодах имён регистров вместо их номера необходимо использовать версию AVR-Ассемблера для микроконтроллера данного типа.
6.6 Команда с обращением к FlashROM
По команде с обращением к FlashROM выполняется пересылка (копирование) байта из половины ячейки памяти в FlashROM в регистр общего назначения R0. Команда описана в табл. 2.7. Машинный код команды имеет формат «слово». Команда выполняется за три такта.
До выполнения команды необходимо адрес, соответствующий ячейке памяти в FlashROM, в которой хранится константа, умножить на 2 и записать в пару регистров Z (№№ $30, $31).
При умножении на 2 (сдвиг кода влево на один разряд) в младшем разряде регистра ZL ($30) оказывается цифра 0. При нулевом значении младшего разряда выбирается байт из младшей половины ячейки FlashROM. Для выбора байта из старшей половины ячейки необходимо число, код которого находится в паре регистров Z, увеличить на 1 с использованием команды № 33 с мнемокодом ADIWR30, 1 или ADIWZL, 1.
Запись констант в FlashROM выполняется при программировании микроконтроллера.
6.7 Команды операций с битами
Команды операций с битами описаны в табл. 2.8 и 2.9. Машинные коды всех команд имеют формат «слово». Команды №№ 65 и 66 выполняются за 2 такта, остальные команды - за 1 такт.
В табл. 2.8 используется следующее новое обозначение:
? PrP.b - разряд b (b = 0 - 7) регистра ввода-вывода с номером P (P = $00 - $1F (!)), бит в разряде PrP.b.
По командам №№ 63 и 64 выполняется пересылка (копирование) бита между указанным разрядом регистра общего назначения и разрядом Tрегистра SREG.
По командам №№ 65 и 66 устанавливается в требуемое состояние (0 или 1 соответственно) указанный разряд регистра ввода-вывода, а по командам №№ 67 и 68 - указанный разряд регистра SREG.
При записи мнемокода команд №№ 65 и 66 вместо номера регистра (P) может быть указанно его символическое имя, а вместо номера разряды (b) -символическое имя разряда. В микроконтроллерах семейства AVR разряды многих регистров ввода-вывода имеют штатные имена. Эти имена приводятся в тексте при рассмотрении устройств, в которых эти разряды используются.
В микроконтроллерах некоторых типов разряды одноимённых регистров с одинаковыми именами имеют разные номера. При использовании штатных имён регистров ввода-вывода в штатных имён разрядов в них необходимо использовать версию AVR Ассемблера для микроконтроллера соответствующего типа.
При назначении штатного имени разряда подразумевалось, что этот разряд принадлежит определённому регистру ввода-вывода, однако в мнемокоде команд №№ 65 и 66 необходимо указывать и имя/номер регистра и имя разряда.
Требуемое значение бита (0 или 1) в разрядах регистров ввода-вывода с номерами от $20 до $3Fустанавливается с использованием команд регистровых операций с мнемокодами CBR (№ 29) и SBR (№ 31) соответственно.
В табл. 10 приведены мнемокоды команд, по которым устанавливаются в определённое состояние (0 или 1) разряды регистра SREG без указания в мнемокоде команды номера разряда.
6.8 Команды управления ходом программы
В группу команд управления ходом программы входят команды безусловного и условного переходов, перехода в энергосберегающий режим, перезапуска сторожевого таймера и «холостая» команда.
В табл. 11 описаны команды безусловного перехода (№№ 85 и 86), безусловного перехода с возвратом (№№ 87 и 88), возврата из подпрограммы (№89) и возврата из прерывающей программы (№90). В таблице используются следующие новые обозначения:
? PC - счётчик команд;
? (PC) - код числа в счётчике команд;
? k - приращение числа в счётчике команд.
При записи программы на языке ассемблера в мнемокодах команд №№85 и 87 вместо приращения k указывается метка (символический адрес), записанная перед мнемокодом команды, к выполнению которой нужно перейти. Приращение вычисляется и помещается в машинный код команды в процессе ассемблирования.
Машинные коды команд, описанные в табл. 11, имеют формат «слово». Команды безусловного перехода (№№ 85 и 86) выполняются за 2 такта, команды безусловного перехода а возвратом (№№ 87 и88) - за 3 такта, команды возврата (№№89 и 90) - за 4 такта.
Группа команд условного перехода делится на две группы. В командах первой подгруппы в качестве условия используется равенство нулю или равенство единице одного из битов в регистре SREG. Условия и мнемокоды команд первой подгруппы приведены в табл. 12. Если условие выполняется, совершается переход по адресу, который формируется с использованием приращения k, указанного в коде команды ((PC) + 1 +k>PC; -64 ?k? 63).
Если условие не выполняется, происходит переход к следующей команде в программе ((PC) + 1>PC).
При записи программы на языке ассемблера в мнемокоде команд вместо приращения k указывается метка (символический адрес), записанная перед мнемокодом команды, к выполнению которой нужно перейти, если условие выполняется.
Машинные коды команд первой подгруппы имеют формат «слово». При выполнении условия команда выполняется за 2 такта, при выполнении условия - за 1 такт.
Если условие не выполняется, совершается переход к очередной команде в программе ((PC) +1>PC). Если условие выполняется, происходит переход к выполнению команды, следующей за очередной ((PC) + 1 + 1/2>PC). Приращение числа в счётчике команд (1 или 2) определяется форматом машинного кода очередной команды (1 слово или 2 слова соответственно).
Машинные коды команд условного перехода второй подгруппы имеют формат «слово». Команды выполняются за один такт, если условие не выполняется, за 2 такта, если условие выполняется и очередная команда (K1) имеет формат «слово», или за 3 такта, если условие не выполняется и очередная команда (K1) имеет формат «2 слова».
Список литературы
1. Белов А.В. Самоучитель разработчика устройств на микроконтроллерах AVR . - Санкт-Петербург, «Наука и техника» 2010 г.
2. http://www.atmel.ru/
3. ATtiny 2313 Data Sheet.
4. Гребнев В.В. Микроконтроллеры семейства AVRфирмы Atmel. -М. «ИП РадиоСофт» 2002 г.
Подобные документы
Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.
курсовая работа [2,1 M], добавлен 24.06.2013Структурная схема устройства управления. Алгоритм работы микроконтроллера в его составе. Строение центрального процессорного элемента – микроконтроллера AVR семейства Classic. Принципиальная схема устройства, расчет временных параметров ее работы.
курсовая работа [636,5 K], добавлен 03.12.2013Методы и этапы создания системы управления микроволновой печью. Технические характеристики и базовая архитектура семейства микроконтроллера семейства АТ89 фирмы Atmel. Спецификация элементов. Принцип работы стабилизатора КР142ЕН5 и дешифратора К155ИД13.
курсовая работа [328,5 K], добавлен 14.11.2010Измерительные механизмы омметров. Разработка cтруктурной схемы. Микроконтроллер фирмы ATMEL семейства megaAVR. Анализ составляющих погрешности. Электромагнитные поля и излучения, система кондиционирования помещений. Экономическая эффективность проекта.
дипломная работа [3,4 M], добавлен 19.06.2013Описание работы электронных часов и микроконтроллера АТTiny2313 фирмы Atmel. Выходные буферы порта. Принципиальная схема электронных часов. Разработка печатной платы и практическое её применение. Принципы программирования и прошивки микроконтроллера.
курсовая работа [749,0 K], добавлен 29.05.2009Структура фрагмента процессора. Функциональный состав процессорного блока. Входные/выходные сигналы распределителя. Микропрограмма управления для команды. Устройство управления и синхронизации, принцип его работы. Порты ввода, вывода микроконтроллера.
курсовая работа [653,2 K], добавлен 17.04.2015Использование микроконтроллеров AVR фирмы Atmel в проектируемой аппаратуре. Архитектура и общие характеристики прибора, предназначение арифметики логического устройства и понятие флэш-памяти. Формат пакета данных, алгоритм их передачи и система команд.
контрольная работа [427,3 K], добавлен 12.11.2010Методика проектирования, разработки, практической апробации цифрового регулятора температуры на базе микросхемы-термометра DS1620, который совмещает температурный датчик, схему управления и АЦП в одном кристалле, и микроконтроллера фирмы Atmel AT90S2313.
курсовая работа [755,6 K], добавлен 19.06.2010Общее описание восьмиразрядного высокопроизводительного однокристального микроконтроллера. Порты ввода-вывода. Разработка структурно-функциональной схемы. Выбор элементной базы, основные используемые процедуры. Описание алгоритма программы, ее листинг.
курсовая работа [28,4 K], добавлен 23.12.2012Формирование кодовой таблицы аналогового сигнала. Общая характеристика микроконтроллера P83C51RB+. Дискретизация заданного сигнала генератора. Организация памяти и программная модель, регистры SFR микроконтроллера. Параллельные порты ввода/вывода.
курсовая работа [1005,6 K], добавлен 07.08.2013