- •Часть 1
- •Содержание
- •Исследование системы команд микроконтроллеров семейства avr и средств поддержки разработок avr-Studio и WinAvr
- •2.2. Системы поддержки разработок для микроконтроллеров avr
- •2.3. Описание компилятора ассемблера avr
- •3. Создание программ в avr-Studio и WinAvr
- •3.1. Создание простейшей программы и её отладка средствами avr-Studio
- •3.2. Создание простейшей программы и её отладка средствами WinAvr
- •4. Программа исследования
- •5. Содержание отчета
- •1.6. Контрольные вопросы
- •Построение микропроцессорной системы на основе микроконтроллера семейства avr
- •2.2.2. Использование внешнего озу
- •3. Пример построения схемы мпс
- •3.1. Постановка задачи
- •3.2. Организация шины адреса
- •3.3. Организация шины данных
- •3.5. Организация подсистемы впд
- •3.6. Подключение периферийных микросхем (внешних устройств) в адресное пространство внешней памяти
- •4. Программа исследования
- •4.1. Внеаудиторная подготовка
- •4.2. Выполнение работы в лаборатории
- •4.3. Задание на исследование
- •5. Содержание отчета
- •6. Контрольные вопросы
- •Исследование функционирования мпс на примере стенда can128
- •2.2. Запись в и чтение из flash памяти микроконтроллера с помощью ponyprog и макета can128.
- •3. Описание лабораторной установки
- •4. Задание на лабораторную работу
- •5. Содержание отчёта
- •6. Контрольные вопросы
- •Исследование вывода информации на жидкокристаллический индикатор
- •2.2. Способы управления bc1602h
- •3. Описание лабораторной установки
- •3. Задание на исследование
- •4. Содержание отчёта
- •5. Контрольные вопросы
- •Библиографический список
- •Приложение а (обязательное) Варианты индивидуальных заданий на лабораторную работу №1
- •Приложение б (обязательное) Текст учебной программы на ассемблере для лабораторной работы №3
- •Приложение в (справочное) Пример программы для вывода на жки
3.2. Создание простейшей программы и её отладка средствами WinAvr
Подробно процесс создания программы рассмотрен в [4]. Для создания проекта в программе Programmers Notepad, входящей в состав пакета WinAVR, необходимо ее запустить. После установки ярлык этой программы находится на рабочем столе, также ее можно выбрать через Пуск – Все программы – WinAVR. Интерфейс программы Programmers Notepad изображен на рисунке 1.5.
Введем текст программы на C, идентичной рассмотренной ранее программе на ассемблере, с использованием ассемблерной вставки. Данная программа точно также в бесконечном цикле инкрементирует регистр r16.
#include <avr/io.h>
void main (void)
{ while (1)
{
asm volatile("inc r16"::);
}}
Затем необходимо сохранить написанную программу с расширением *.с (рисунок 1.6). Рекомендуется сохранять программу в отдельную папке, поскольку в процессе отладки создается довольно большое число вспомогательных файлов. После сохранения программы в формате *.с конструкции языка С будут подсвечиваться, что облегчает работу по написанию и правке программы.
Рисунок 1.5 – Рабочая область программы Programmers Notepad
Рисунок 1.6 – Программа в среде Programmers Notepad
Для компиляции программы в рабочую папку с программой необходимо скопировать файл makefile, содержащий параметры компиляции. Данный файл можно найти через меню Пуск – Все программы – WinAVR – MFile или в папке, в которой установлена среда WinAVR. После копированию в рабочую папку, необходимо открыть makefile и изменить поля MCU (содержит тип микроконтроллера) и TARGET (содержит имя программы на С).
Для приведенного выше примера эти поля будут иметь следующие значения:
# MCU name
MCU = at90can128
***************
# Target file name (without extension).
TARGET = First
Теперь необходимо откомпилировать программу First.c. Для этого в среде Programmers Notepad следует выполнить команду меню Tools – [WinAVR] Make All. В области Output будет отображен листинг процесса компиляции. Если компиляция прошла без ошибок, то Process Exit Code будет равен 0 (рисунок 1.7).
Для отладки программы ее теперь можно запустить в AVR-Studio. Для этого в AVR-Studio нужно выбрать файл First.elf. программа предложит пересохранить его в виде проекта AVR-Studio. После этого будет открыто диалоговое окно с параметрами отладки. В списке микроконтроллеров выбираем AT90CAN128.
Рисунок 1.7 – Процесс компиляции программы в Programmers Notepad
Если все сделано правильно, программа на языке С запустится сразу в режиме отладки (рисунок 1.8).
Рисунок 1.8 – Отладка программы на С в AVR-Studio
4. Программа исследования
1. Изучить систему команд и директивы ассемблера AVR, структуру ядра и памяти микроконтроллеров AVR.
2. Создать новый проект в AVR-Studio.
3. Ввести текст учебной программы для микроконтроллера AT90CAN128:
.include "can128def.inc"
.ORG 0x0000
rjmp RESET
.ORG 0x0020
RESET:
inc r16
rjmp RESET
; End of program
4. Запустить учебную программу в программном отладчике AVR Simulator, встроенном в AVR-Studio.
5. Разработать тесты для проверки выполнения команд RJMP и INC.
6. Изучить различные режимы отладки.
7. Исследовать, что изменяется в ходе выполнения программы.
8. Исследовать дизассемблер программы.
9. Изучить версию языка С системы WinAVR.
10. Ввести текст учебной программы на языке С, функционально идентичную программе на ассемблере, с использованием ассемблерной вставки:
#include <avr/io.h>
void main (void)
{ while (1)
{
asm volatile("inc r16"::);
}}
11. С помощью WinAVR откомпилировать ее и повторить п. 4–7.
12. Ввести текст учебной программы на языке С без ассемблерной вставки, функционально идентичную двум предыдущим программам:
#include <avr/io.h>
void main (void)
{
unsigned char *r16;
r16=0x10;
while (1)
{
(*r16)++;
}
}
13. С помощью WinAVR откомпилировать ее и повторить п. 4–7.
14. В соответствии с номером в списке группы оформить отрывок программы из таблицы А.1 приложения А в полноценную программу на языке ассемблер, написать идентичные ей программы на языке С с использованием ассемблерной вставки и без неё. Программу на ассемблере скомпилировать в AVR-Studio, программы на С – в WinAVR.
15. Выполнить п. 4–7 для всех трех программ.
