Микроконтроллеры семейства 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.