ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.01.2025
Просмотров: 3668
Скачиваний: 8
СОДЕРЖАНИЕ
1. Структура и функционирование микроконтроллера aTmega128
Регистр управления делением частоты кварцевого генератора – xdiv
2. Интегрированная система программирования avr Studio v4.12
3.Описание лабораторного стенда лс-2.
Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления
Работа №2 микроконтроллер aTmega128: команды обработки данных
Работа №3 цифровые системы на базе микроконтроллерa aTmega128:
Регистр управления внешними прерываниями – eicra и eicrb
16-Разрядные таймеры/счетчики t/c1 и t/c3
Регистры сравнения а таймеров/счетчиков - ocRxA
Работа №6 цифровые системы на базе микроконтроллера aTmega128:
Передача данных - Передатчик usart.
Прием данных - Приемник usart.
Работа №7 цифровые системы на базе микроконтроллера aTmega128:
Биты регистра управления MCU управляют выполнением основных функций MCU.
Bit 7 – Разрешение внешнего ОЗУ. Установленный (=1) бит SRE разрешает обращение к внешней памяти данных и переводит работу выводов AD0-7 (Порт А), А8-15 (Порт С), WR и RD на выполнение альтернативной функции. Бит SRE также перенастраивает установки направлений в соответствующих регистрах направления данных. Очистка бита SRE ( =0) запрещает обращение к внешней памяти данных и восстанавливает нормальные установки направлений выводов и данных.
Bit 6 – Режим состояния ожидания. При установленном ( =1) бите SRW к циклу обращений к внешней памяти данных добавляется один цикл ожидания. При сброшенном ( =0) бите SRW обращение к внешней памяти выполняется по трехцикловой схеме.
Bit 5 – Разрешение режима Sleep. Установленный в 1 бит SE разрешает перевод MCU в режим sleep по команде SLEEP. Чтобы исключить перевод MCU в незапланированный режим sleep, рекомендуется устанавливать бит SE непосредственно перед выполнением команды SLEEP.
Bits 4,3 – Биты выбора режима Sleep. Эти биты позволяют выбрать один из трех возможных режимов энергосбережения, как показано в таблице В2.
Таблица 1.2. Выбор режима энергосбережения
-
SM1
SM0
Sleep Mode
0
0
Режим Idle
0
1
Зарезервирован
1
0
Режим Power Down
1
1
Режим Power Save
Bits 2..0 – Зарезервированные биты
Регистр управления делением частоты кварцевого генератора – xdiv
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
$3С ($5С) |
XDIVEN |
XDIV6 |
XDIV5 |
XDIV4 |
XDIV3 |
XDIV2 |
XDIV1 |
XDIV0 |
XDIV |
|
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Регистр XDIV используется для установки коэффициента деления частоты кварцевого генератора в диапазоне от 1 до 129. Эта возможность может быть использована для уменьшения энергопотребления.
Bit 7 – Разрешение деления частоты XTAL. При установленном ( =1) бите XDIVEN тактовая частота CPU и всей периферии делится в соответствии с установленным битами XDIV6 - XDIV0 коэффициентом деления.
Bit 6..0 – Биты выбора коэффициента деления. Эти биты устанавливают коэффициент деления тактовой частоты при установленном бите XDIVEN. Если десятичное значение этих семи битов обозначить через d, то результирующая тактовая частота CPU будет определяться по формуле:
FCLK = XTAL/(129-d)
Состояния этих битов можно изменить только при сброшенном бите XDIVEN. При установленном бите XDIVEN, записанное единовременно в биты XDIV6..XDIV0 значение будет определять коэффициент деления. При сбросе бита XDIVEN записанные в биты XDIV6..XDIV0 значения игнорируются. Поскольку делитель делит тактовую частоту поступающую на MCU, то и на периферийные устройства поступает тактовая частота с тем же коэффициентом деления.
За регистрами ввода-вывода следуют 4096 адресов внутреннего ОЗУ данных. При использовании внешней памяти данных адресуются оставшиеся 60 Кбайт. Таким образом, при использовании микросхем памяти объемом 64К будут потеряны 4Кбайт. При обращении к внешней и внутренней памяти данных используются одни и те же команды, но во втором случае сигналы RD# и WR# не активизируются.
Работа с внешней памятью данных разрешается установкой бита SRE регистра MCUCR. По сравнению с обращением к внутренней памяти, обращение к внешней требует дополнительно одного цикла на каждый байт. Это означает, что для выполнения команд LD, ST, LDS, STS, PUSH и POP требуется дополнительно машинный цикл. Если стек размещен во внешней памяти данных, то прерывания, вызов процедур и возвраты требуют по два дополнительных цикла, поскольку в стеке перемещается содержимое двухбайтного счетчика команд. Если при обмене с внешней памятью данных используется состояние ожидания, то на каждый байт необходимо еще два цикла. Поэтому командам пересылки данных необходимы два дополнительных цикла, тогда как при обработке прерываний, вызове процедур и возвратах требуется на четыре цикла больше, чем указано в описании системы команд.
Практическое освоение системы команд и программирования на языке Ассемблер осуществляется в работах №1-3. Программирование ввода-вывода и подсистемы прерываний изучается в работах №4 – 8.
2. Интегрированная система программирования avr Studio v4.12
Интегрированная система программирования включает редактор текста, макроассемблер, редактор связей и символический отладчик. Система позволяет разрабатывать целевую программу и отлаживать ее в реальном масштабе времени с использованием аппаратных ресурсов платы контроллера. После создания рабочей программы разработчик имеет возможность, загрузить программу в память микроконтроллера. Отладка программ производится в исходном тексте, причем на каждом шаге можно наблюдать за изменениями внутренних ресурсов микроконтроллера и модифицировать их.
При программировании в среде AVRStudioнадо выполнить стандартную последовательность действий:
- создание проекта
- создание файла программы
- компиляция
- симуляция
- загрузка hex-кода в микроконтроллер
2.1. Создание проекта.
Создание проекта начинается с выбора строки меню Project/New Project. В открывшемся окне «Create new Project» надо указать имя проекта, (в нашем случае – LS2), имя файла программы ls2.asm появится автоматически. В строке Location выбираем папку для сохранения проектов.
После нажатия кнопки «Next» открывается окно «Select debug platform and device», где выбирается отладочная платформа (симулятор или эмулятор) и тип микроконтроллера.
Выбираем в качестве отладочной платформы AVR Simulator и микроконтроллер ATmega128. После нажатия кнопки “Finish” переходим в рабочее окно программы.
В правом окне вводим исходный текст программы.
.device Atmega128
.include “m128def.inc”
;вывод светодиода подключен к линии PE7
;инициализация стека
ldi r16,High(RAMEND)
out SPH,r16 ;устанавливаем указатель стека
ldi r16,Low(RAMEND) ;на конечный адрес ОЗУ контроллера
out SPL,r16
;настройка линии светодиода на выход
ldir16,(1<<PE7) ;устанавливаем битPE7 портаDDREв 1
outDDRE,r16
;Основная программа
main:
cbiPORTE,PE7 ;записав в битPE7 портаPORTE0 включаем ;светодиод
rjmpmain
Этот пример включает светодиод в лабораторном стенде ЛС-2.
2.2. Компиляция проекта.
Компиляция проекта производится командой Project/Build. Процесс компиляции отображается в окнеOutputв нижней части экрана.
Если программа набрана без ошибок, компилятор создаст файл для прошивки в микроконтроллер ls2.hexи файл для симулятора.
В противном случае будут показаны строки, в которых обнаружена ошибка. После их исправления процесс компиляции повторяем заново.
Мы получили файл для микроконтроллера, который можно запрограммировать и убедиться в работоспособности написанной программы. Но для учебных целей лучше запустить симулятор и провести пошаговую отладку программы.
СИМУЛЯЦИЯ ПРОЕКТА.
Переход в режим симуляции производится командой Debug/StartDebugging.
В левой части окна появляются внутренние модули микропроцессора (порты, счетчики, регистры и др.) и их значения, которые можно изменять.
В правом окне появляется желтая стрелка, указывающая на следующую исполняемую команду. По команде Debug/StepIntro(F11) выполняется команда, на которую указывает стрелка. Выполняя пошагово команды можно наблюдать в левом окне изменение содержимого задействованных регистров и портов и находить ошибки в программе.
ЗАПИСЬ ПРОГРАММЫ В МИКРОКОНТРОЛЛЕР.
Запись программы в микроконтроллер производится программой AVRProg, вызываемой командойTools/AVRProg. До вызова программы подготовьте лабораторный стенд ЛС-2 к работе в соответствии с паспортом.
После вызова программы AVRProgкнопкойBrowseнаходим и открываем файлls2.hex. КнопкойProgramсекцииFlashзагружаем файлls2.hexвоFlash-память микроконтроллера. После успешной записи микроконтроллер начинает выполнять записанную программу.
После успешного выполнения программы на лабораторном стенде ЛС-2 проект можно считать завершенным.