
- •6.050702 «Електромеханвка»,
- •Создание нового проекта
- •Организация памяти
- •Сведения о портах ввода/вывода
- •Команды языка Assembler, необходимые для выполнения заданий
- •Контрольные вопросы
- •Описание stk500
- •Порядок выполнения работы
- •Индивидуальные задания
- •Контрольные вопросы
- •Организация памяти мк AtMega16
- •Введение
- •Команды работы с памятью
- •Индивидуальные задания
- •Контрольные вопросы:
- •Система прерываний AtMega16. Таймер/счетчик
- •Введение
- •Индивидуальные задания
- •Индивидуальные задания
- •Контрольные вопросы
- •Управление скоростью «бега» огонька по светодиодной панели микроконтроллера AtMega16
- •Порядок выполнения работы
- •Варианты заданий для студентов
- •Контрольные вопросы
- •Основы работы в среде разработки CodeVisionAvr. Широтно-импульсная модуляция (шим) микроконтроллера AtMega16
- •Введение
- •Среда разработки CodeVisionAvr. Пример генерации начального кода программы
- •Пример программы с комментариями
- •Индивидуальные задания
- •Usart: универсальный синхронный и асинхронный последовательный приемопередатчик микроконтроллера AtMega16
- •1. Введение
- •Генерация внутренней синхронизации – генератор скорости связи
- •Работа с удвоением скорости связи (u2x)
- •Режим синхронной связи
- •Форматы посылки
- •1.1.5 Бит паритета
- •1.1.6. Инициализация усапп
- •1.1.9. Передача данных
- •1.1.10. Передача посылок с 5…8 битами данных
- •1.2. Конфигурирование Atmega16
- •1.2.1. Конфигурирование порта d
- •1.2.2. Описание регистров усапп
- •1.3. Генерация начального кода программы в среде разработки CodeVisionAvr
- •1.4. Работа с терминалом
- •1.5. Описание и листинг программы
- •Контрольные вопросы:
Описание stk500
Стенд STK500 (рис. 2) представляет собой лабораторный макет с микроконтроллером, памятью программ, памятью данных и разнообразными периферийными устройствами. Он позволяет разрабатывать и отлаживать программы, написанные на языках Си и Ассемблер.
Рис. 2. Описание STK500
Панель с кнопками.
Разъем для подключения кнопок к МК.
Разъем RS232 интерфейса (RXD, TXD).
Разъем данные Flash-памяти (SD, SCK,/CS,SI).
Разъем для подключения панели светодиодов.
Панель светодиодов.
Разъем для расширения платы.
Разъем ISP объекта.
6-штырьковый ISP-разъем.
10-штырьковый ISP-разъем (только для внешних объектов).
Кнопка программирования.
Гнездо для кристалла кварца.
Порт RS-232 для связи.
Светодиод состояния.
Мастер MCU.
Порт RS-232 для программирования.
Разъем для параллельного программирования.
Разъем для питания.
Кнопка включения.
Кнопка перезагрузки МК.
Панель для выставления параметров.
Разъем для расширения платы.
Гнездо для МК AVR.
Разъемы портов ввода/вывода МК.
Загрузка программы производится с персонального компьютера через последовательный порт RS-232. Макет работает от источника напряжения 10–15 вольт. В лабораторных работах будет использоваться микроконтроллер фирмы ATMEL – AtMega16.
Порядок выполнения работы
1. На персональном компьютере загрузить «Пуск->Atmel AVR Tools->AVR-Studio».
2
.
Создать новый проект (меню «Project->New
Project» – рис.3). Ввести имя проекта, нажать
Finish.
Р
ис.
3. AVR-Studio
3. В окне редактора ввести код программы (рис.4).
Рис. 4. Окна AVR-Studio
4. Сохранить набранный файл с расширением *.ASM (*.С).
5.
Откомпилировать набранную программу
– кнопка F7 на клавиатуре или нажать
кнопку
.
6. Возможные ошибки в программе можно просмотреть в окне message.
7. После устранения всех ошибок откомпилировать программу снова и записать данные файла с расширением *.НЕХ в микроконтроллер. Для этого:
нажать кнопку AVR на панели AVR-Studio toolbar, появится окно STK500 (рис.5);
в закладке Program выбрать Device-устройство (AtMega16);
в разделе Flash, в поле Input HEX File указать расположение откомпилированного файла.
|
|
Рис. 5. Загрузка программы в AVR-Studio
При передаче данных с персонального компьютера в стенд STK500 данные отображаются на индикаторе стенда. Горят светодиоды Led7, Led6, Led5.
При записи программы в МК убедитесь, что плата STK500 включена.
Запись новой программы возможна в любой момент времени работы загруженной программы.
Индивидуальные задания
Вариант |
Текст задания Контрольный вопрос |
1 |
Определить две переменные. Занести в одну десятеричное число 5, в другую шестнадцатеричное число AA, отобразить сумму чисел на панели светодиодов в двоичном виде после нажатия кнопки SW0. Рассчитать время выполнения программы.* |
2 |
Занести в заранее определенную переменную шестнадцатеричное число 0xAC, отобразить результат вычитания из него десятеричной константы 8 на панели светодиодов в двоичном виде после нажатия кнопки SW0. Рассчитать время выполнения программы.* |
3 |
Занести в заранее определенную переменную двоичное число, при нажатии кнопки SW0 побитно инвертировать его и вывести на панели светодиодов в двоичном виде после нажатия кнопки SW0. Рассчитать время выполнения программы.* |
4 |
Определить две переменные. Занести в одну десятеричное число 15, в другую шестнадцатеричное число AA, отобразить результат операции AND между числами на панели светодиодов в двоичном вид после нажатия кнопки SW0. Рассчитать время выполнения программы.* |
5 |
Определить две переменные. Занести в одну десятеричное число 15, в другую шестнадцатеричное число AA, отобразить результат операции OR между числами на панели светодиодов в двоичном виде после нажатия кнопки SW0. Рассчитать время выполнения программы.* |
6 |
Определить две переменные. Занести в одну шестнадцатеричное число B, в другую шестнадцатеричное число A, отобразить результат перемножения чисел на панели светодиодов в двоичном виде после нажатия кнопки SW0. Рассчитать время выполнения программы.* |
7 |
Разработать программу, реализующую «бегущий огонек» на светодиодах: Перемещение «огонька» вправо при нажатии кнопки SW0. Рассчитать количество однотактовых инструкций, которые может выполнить AVR за 0,5 секунды.* |
8 |
Разработать программу, реализующую «бегущий огонек» на светодиодах: Перемещение «огонька» влево при нажатии кнопки SW0. Перечислите как минимум три способа задания значений для вывода в порт.* |
9 |
Разработать программу, выводящую поразрядное логическое NOT состояния сигналов, подающихся на порт D. Рассчитать время, необходимое контроллеру для выполнения программы, состоящей из 135 однотактовых инструкций.* |
10 |
Разработать программу, вызывающую поочередно подпрограммы: подпрограмма 1 выводит все 1 в PortB, подпрограмма 2 выводит поочередно 0 и 1 в PortB, подпрограмма 3 выводит все 0 в PortB. Смена подпрограмм по нажатию клавиши SW0. Почему нельзя рассчитать время выполнения программы? |
11 |
Разработать программу, вызывающую поочередно подпрограммы: подпрограмма 1 зажигает 1-й светодиод, подпрограмма 2 зажигает 2-й светодиод, подпрограмма 3 – третий и т. д. до 5. Смена подпрограмм: по нажатию клавиши SW0 – подпрограмма 1, SW1 – подпрограмма 2 и т. д. Можно ли организовать программу без использования подпрограмм? * |
12 |
Разработать программу, вызывающую поочередно подпрограммы: подпрограмма 1 зажигает 1-й светодиод, подпрограмма 2 зажигает 2-й светодиод, подпрограмма 3 – третий и т. д. до 5. Смена подпрограмм по нажатию кнопки SW0. Рассчитать время выполнения программы.* |
* Микроконтроллер в стенде STK 500 работает на частоте 3.68 MHz.