- •Введение
- •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