- •Введение
- •1. Омэвм avr семейства Mega
- •1.1. Технические характеристики микроконтроллера avr aTmega8515
- •1.2 Условное графическое обозначение (уго) микроконтроллера avr aTmega8515
- •1.3. Структура микроконтроллера аTmega8515
- •Регистровая память (рон и рвв)
- •Файл регистров общего назначения
- •1.4. Организация памяти
- •1.4.1. Карта памяти
- •1.4.2. Память программ (Flash – пзу)
- •1.4.3. Память данных
- •Регистр X, регистр y и регистр z
- •Регистр статуса – sreg
- •1.4.4. Оперативная память (озу или ram)
- •Регистр управления mcu - mcu Control Register - mcucr
- •1.4.5. Энергонезависимая память данных (eeprom)
- •1.5. Режимы адресации памяти данных
- •1.7. Стек. Указатель стека - Stack Pointer - sp
- •1.8. Тактирование. Режимы пониженного энергопотребления
- •1.8.1. Тактовый генератор
- •Система реального времени (rtc)
- •1.8.2. Сброс. Источники сброса
- •Сброс по включению питания
- •Внешнее управление сбросом
- •Сброс по сторожевому таймеру
- •1.8.3. Режимы энергосбережения (Sleep Modes)
- •1.9. Прерывания (interrupts)
- •Время отклика на прерывание
- •Обработка прерываний и сброса
- •Регистр флагов прерываний – gifr (General Interrupt Flag Register)
- •Регистр управления внешними прерываниями – gicr
- •Регистр масок прерывания по таймерам/счетчикам - timsk (Timer/Counter Interrupt Mask Register)
- •Регистр флагов прерываний по таймерам/счетчикам tifr
- •1.10. Таймеры/счетчики (timer/counters)
- •1.10.1. Таймер/счетчик t/c0
- •Регистр управления т/с0 - tccr0 (The Timer/Counter0 Control Register) Регистр tccr0 предназначен для управления модулем т/c0. Формат регистра tccr0:
- •Регистр сравнения выхода т/с0
- •Режимы работы т/с0
- •Изменение состояния ос0 определяется разрядами сом01:сом00 регистра tccr0 (состояние вывода ос0 изменяется в соответствии с таблицей 11).
- •1.10.2. Таймер/счетчик 1 – t/c1
- •1.11. Сторожевой таймер (Watchdog Timer)
- •Регистр управления сторожевым таймером – wdtcr
- •1.12. Универсальный синхронно-асинхронный приемопередатчик (usart)
- •Регистр данных usart - udr - (usart I/o Data Register)
- •Регистр ucsra
- •Регистр ucsrв
- •Регистр ucsrс
- •Формат кадра
- •Скорость обмена данными
- •Передача данных
- •Прием данных
- •1.13. Последовательный периферийный интерфейс spi
- •1.14. Аналоговый компаратор (Analog Comparator)
- •2. Система команд
- •Команды логических операций
- •Команды арифметических операций и сдвига
- •Команды операций с битами
- •Команды пересылки данных
- •Команды передачи управления
- •Теоретическая часть
- •1.1. Методические указания по выполнению лабораторной работы
- •1.1.1. Создайте новый проект.
- •1.1.2. Напишите и отладьте программу lab1
- •. Содержание отчета
- •3.2. Практическая работа №1 Изучение системы команд мк avr aTmega8515
- •2. Содержание отчета
- •3.3. Лабораторная работа №2 Изучение работы с портами ввода/вывода мк avr
- •Контрольные вопросы
- •Литература
-
Теоретическая часть
Профессиональную разработку современных микроконтроллерных устройств невозможно представить без использования средств поддержки. Фирма Atmel уделяет большое внимание вопросам технической поддержки, предлагая разработчикам как программные так и различные аппаратные средства. AVR Studio – это интегрированная отладочная среда разработки приложений (IDE) для микроконтроллеров семейства AVR (AT90S, ATmega, ATtiny) фирмы Atmel.
IDE AVR Studio содержит:
-
Транслятор языка ассемблера (Atmel AVR macroassembler).
-
Отладчик (Debugger).
-
Программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP).
Отладчик AVR Studio поддерживает все типы микроконтроллеров AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Отладочная среда поддерживает выполнение программ как в виде ассемблерного текста, так и в виде исходного текста языка С.
1.1. Методические указания по выполнению лабораторной работы
1.1.1. Создайте новый проект.
Запустите AVR Studio 4, в появившемся окне выберите иконку Create New Project (Рис.27).

Рис. 27. Окно приглашения в AVR Studio
В появившемся диалоговом окне (рис. 28) введите название проекта (Project Name) LAB1 и его расположение (Location). При работе в локальной сети НРТК проект нужно создавать на индивидуально доступном Вам диске Z в корневом каталоге, либо в папке с английским наименованием Вашей фамилии, затем нажмите Next.
Примечание: в имени проекта и пути не должно быть символов кириллицы.

Рис. 28. Окно создания нового проекта
В появившемся окне выберите платформу AVR Simulator и устройство ATmega 8515, для которого будет создаваться программа (Рис. 29) и нажмите Finish.

Рис. 29. Окно выбора платформы и устройства
Появится рабочее окно (Рис. 30) созданного проекта для написания и отладки программы.

Рис. 30. Окно AVR Studio
1.1.2. Напишите и отладьте программу lab1
Для сохранения в проекте файла программы на языке ассемблера c расширением .asm выберите в меню File, Save As…
-
Наберите программу LAB1 в появившемся правом верхнем окне редактирования программы на языке ассемблера.
-
Осуществите трансляцию программы и проверьте правильность ее написания. Для этого выберите пункт меню Projekt/Build «иконка»
(клавиша F7).
Все ошибки выведутся в окно Output
вкладка Message
(обычно находится внизу рабочего
пространства). Необходимо устранить
имеющиеся ошибки в ассемблере набранной
программы. В корректно составленной
программе выводится сообщение:
![]()
-
Проведите детальную трассировку программы LAB1 в IDE, описав каждый шаг Program Counter, выбрав «иконку» Start debugging
в листинге программы, после чего появится
желтая стрелка
,
указывающая на команду, которая будет
выполняться следующей. В пошаговом
выполнении программы (клавиша F11)
меню Debug,
Step
Info
выполните
всю программу.
Изменения состояний
регистров и портов МК отображается в
левом поле рабочего окна при открытии
вкладки
(Рис. 31, 32).

Рис. 31. Окно внутренних состояний МК AVR.

Рис. 32. Окно для просмотра состояния внутренних модулей МК AVR
-
Измените значение на PIN порта ввода и отметьте изменения (в блоке MAIN) в отчете по трассировке.
-
Покажите отчет по трассировке преподавателю.
-
Оформите отчет по лабораторной работе.
Контрольные вопросы.
-
Продемонстрируйте преподавателю ход создания проекта и работы программы LAB1.
-
Практическая часть
2.1. Задание:
1. Изучить методику создания проекта в AVR Studio.
2. Провести детальную трассировку программы LAB1 в AVR Studio, описать каждый шаг Program Counter, значения которого изменяются при каждом нажатии на клавишу F11.
3. Изменить значение на PIN порта ввода и отметить что произошло.
4. Ответить на контрольные вопросы.
5. Составить отчёт по трассировке.
Программа LAB1:
.include "8515def.inc" ; подключение файла описания МК
def temp = r16 ; задание временной переменной temp
cli ; глобальный запрет прерываний
;------------|Организация стека в верхних ячейках ОЗУ|-----------------------
ldi temp,low(RAMEND) ; загрузка в temp младшего байта адреса
; последней ячейки оперативной памяти МК
out SPL,temp ; определение указателя стека
; (младший байт)
ldi temp,high(RAMEND) ; загрузка в temp старшего байта адреса
; последней ячейки оперативной памяти МК
out SPH,temp ; определение указателя стека
; (старший байт)
;------------|Инициализация портов|-----------------------
ldi temp,$ff ; загрузка в temp числа $FF
out DDRB,temp ; запись в регистр направления порта В
; значения temp ($FF – порт вывода)
ldi temp,$00 ; загрузка в temp числа $00
out DDRD,temp ; запись в регистр направления порта D
; значения temp ($00 – порт ввода)
;------------|Основной блок программы|-----------------------
MAIN:
in temp,PIND
dec temp
rol temp
ror temp
swap temp
out PORTB,temp
rjmp MAIN
.exit
