- •Оглавление
- •Введение
- •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.1 и табл.1.2 видно, что команды пересылки данных и команды переходов значения флагов регистра sreg не изменяют.
ВЫПОЛНЕНИЕ ОСНОВНОГО ЗАДАНИЯ
1. Изучить описание структуры микроконтроллера ATmega128 и интегрированной системы его программирования на языке Ассемблер AVRStudio.
2. Изучить реализуемые микроконтроллером способы адресации и команды пересылки данных.
3. Запустить на персональном компьютере интегрированную систему программирования AVRStudio. Командой ProjectNew Project создать новый проект Lesson1. С использованием редактора текста создать демонстрационную программу:
.device ATmega128
.include "m128def.inc"
;***** Инициализация указателя стека ********************************
ldi R20, $FF ; загрузка промежуточного регистра R20 младшим
; байтом адреса начала стека
out SPL, R20 ; загрузка младшего байта указателя стека
ldi R20, $10 ; загрузка промежуточного регистра R20 старшим
; байтом адреса начала стека
out SPH, R20 ; загрузка старшего байта указатель стека
;***** Выполнение команд пересылок ********************************
ldi R20, $57 ; загрузка регистра R20 константой
ldi R30, $00 ; загрузка регистровой пары Z (R30,R31) адресом $0100
ldi R31, $01 ; по которому расположена первая ячейка внутреннего ОЗУ
st Z, R20 ; загрузка косвенно адресуемой ячейки ОЗУ с адресом $0100
; значением из регистра R20 ($57)
lds R19, $0100 ; загрузка регистра R19 из ячейки ОЗУ с адресом $0100
sts $0101, R19 ; загрузка ячейки с адресом $0101 из регистра R19
call Rout ; вызов подпрограммы Rout
loop:
rjmp loop ; зацикливание программы
;***** Подпрограмма копирования значения из памяти программ ***************
Rout:
push R30 ; сохранение указателя Z в стеке
push R31 ;
ldi R20, $00 ; загрузка регистра R20 новой константой
ldi R30, $80 ; загрузка регистровой пары Z удвоенным адресом ячейки
ldi R31, $00 ; памяти программ
lpm ; загрузка регистра R0 значением ячейки памяти программ
; с адресом $0040
cpse R0, R20 ; пропустить следующую команду если значения регистров
; R0 и R20 равно
sts $0102, R0 ; загрузка ячейки ОЗУ с адресом $0102 из регистра R0
pop R31 ; извлечение указателя Z из стека
pop R30 ;
ret ; возврат из подпрограммы
;**************************************************************************
4. Выполнить команду Project/Buildдля компиляции проекта.
5. С помощью команды Debug/StartDebugging запустить симулятор. Командой View/Memory открыть окно с ячейками памяти программ. Прямым редактированием занести любой код в ячейку $40 памяти программ.
6. Выполнить программу по шагам, выполняя команду Debug/StepIntro(F11). После выполнения текущей команды курсор в окне редактора текста указывает на следующую команду.
7. Проверить правильность пересылки данных.
8. Составить программу выполнения заданной преподавателем последовательности операций передачи данных, провести пошаговый прогон программы, продемонстрировать полученный результат.
Работа №2 микроконтроллер aTmega128: команды обработки данных
Цель работы:изучение команд арифметических и логических операций, сдвигов и битовых операций, практическое освоение приемов программирования на ассемблере, изучение директив.