- •Оглавление
- •Введение
- •1. Структура и функционирование микроконтроллера aTmega128
- •Указатель стека – sp.
- •Регистр управления делением частоты кварцевого генератора – xdiv
- •2. Интегрированная система программирования avr Studio v4.12
- •2.1. Создание проекта.
- •2.2. Компиляция проекта.
- •3.Описание лабораторного стенда лс-2.
- •Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления
- •Введение
- •Команды передачи данных приведены в Табл.1.1. Из таблицы видно, что набор этих команд представляет собой сочетание восьми операций с различными методами адресации.
- •Из табл.1.1 и табл.1.2 видно, что команды пересылки данных и команды переходов значения флагов регистра sreg не изменяют.
- •Работа №2 микроконтроллер aTmega128: команды обработки данных
- •Введение
- •Задания
- •Работа №3 цифровые системы на базе микроконтроллерa aTmega128:
- •Введение
- •Регистр управления внешними прерываниями – eicra и eicrb
- •Выполнение основного задания
- •Задания
- •Работа №4 цифровые системы на базе микроконтроллера aTmega128: работа с внешними устройствами через параллельные порты ввода вывода – работа с клавиатурой и светодиодным индикатором
- •Введение
- •Выполнение основного задания
- •Задания
- •Работа №5
- •16-Разрядные таймеры/счетчики t/c1 и t/c3
- •Регистры сравнения а таймеров/счетчиков - ocRxA
- •Выполнение основного задания
- •Задания
- •Работа №6 цифровые системы на базе микроконтроллера aTmega128:
- •Введение
- •Универсальный синхронный и асинхронный приемопередатчик usart предназначен для организации последовательной связи.
- •Инициализация usart.
- •Передача данных - Передатчик usart.
- •Прием данных - Приемник usart.
- •Описание регистров usart.
- •Задания
- •Работа №7 цифровые системы на базе микроконтроллера aTmega128:
- •Аналоговый компаратор.
- •Задания
- •Задания
- •Приложение 1.
- •Приложение 2.
Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления
Цель работы: знакомство с интегрированной средой программирования; изучение методов адресации, команд передачи данных и управления.
Введение
При создании программы для микроконтроллера на языке Ассемблер разработчик оперирует программно доступными ресурсами микропроцессорной системы. У микроконтроллера ATmega128 эти ресурсы включают: программно доступные регистры микроконтроллера, внутреннюю память данных, внешнюю память данных. Перечисленные ресурсы изображены на рис. В2, В3.
Каждая команда языка Ассемблер сообщает процессору выполняемую операцию и методы доступа к операндам. Командная строка Ассемблера включает метку (символический адрес), мнемонику (символическое имя) команды, поле операндов, комментарий. Имя команды однозначно связано с выполняемой ею операцией.
Методы адресации представляют собой набор механизмов доступа к операндам. Одни из них просты и поэтому приводят к компактному формату команды и быстрому доступу к операнду, но объем доступных с их помощью ресурсов ограничен. Другие методы адресации позволяют оперировать со всеми имеющимися в системе ресурсами, но команда получается длинной, на ее ввод и выполнение тратится много времени. Набор методов адресации в каждой системе команд является компромиссным сочетанием известных механизмов адресации, выбранных проектировщиками архитектуры исходя из набора решаемых задач.
Заметим, что при двух операндах и приемнике результата имеет место трехадресная команда и каждый адрес формируется с использованием собственного метода адресации. Если адрес операнда или приемника результата не указан в команде, а подразумевается, то имеет место неявная адресация.
На рис.1.1 – 1.12 приведены схемы методов адресации микроконтроллера ATmega128.
Регистровый
файл
15
4
0
31
ОР
d
d
0
Рис.1.1. Регистровая адресация (один регистр общего назначения)
Регистровый
файл
15
9
5 4 0 31
ОР
r d
d
r
0
Рис.1.2. Регистровая адресация (два регистра общего назначения)
Память
I/O
15
5 0 3F
($5F)
ОР
n P
0($20)
Рис.1.3. Регистровая адресация (регистры ввода-вывода)
ОЗУ
данных
31
20 19 16 $FFFF
ОР
Rr/Rd
Младшие
16 бит
$0000
Рис.1.4. Прямая адресация данных
ОЗУ
данных
15
0 $FFFF
Регистр
Y или Z
+
15
10 6 5 0
$0000 OP
n o
Рис.1.5. Косвенная адресация данных со смещением
ОЗУ
данных
Регистр
Y или Z 15
0 $FFFF
$0000
Рис.1.6. Косвенная адресация данных
ОЗУ
данных
15
0 $FFFF
Регистр
X, Y или Z
+
-1
$0000
Рис.1.7. Косвенная адресация данных с преддекрементом
ОЗУ
данных
15
0 $FFFF
Регистр
X, Y или Z
+ 1
$0000
Рис.1.8. Косвенная адресация данных с постинкрементом
Память
программ 15
1 0
$FFFF
Регистр
Z
$0000
Рис.1.9. Адресация константы в памяти программ в командах LPM и ELPM
Память
программ 31
21 20 16 1 0
OP $FFFF
Младшие
16 бит
15
0
$0000
Рис.1.10. Прямая адресация памяти программ в командах JMP и CALL
Память
программ
$FFFF
Регистр
Z 15
0
S0000
Рис.1.11. Косвенная адресация памяти программ в командах IJMP и ICALL
Память
программ
15
0 $FFFF
PC
+
15
12 11
0
OP
k
S0000
Рис.1.12. Относительная адресация памяти программ в командах RJMP и RCALL