- •Вступление
- •1 Программная среда avr Studio
- •1.1 Общие сведения
- •1.1.1 Отладка программы
- •1.1.2 Программный отладчик
- •1.1.3 Аппаратный отладчик
- •1.1.4 Полнофункциональные программные имитаторы электронных устройств
- •1.1.5 Внутренний отладчик микроконтроллеров avr
- •1.1.6 Программная среда «avr Studio»
- •1.2 Описание интерфейса. Главная панель программы «avr Studio»
- •1.3 Создание проекта
- •1.4 Трансляция программы
- •1.4.1 Форматы файлов
- •1.4.2 Формат нех-файла
- •1.4.3 Процедура трансляции
- •1.5 Отладка разрабатываемой программы
- •1.5.1 Ошибки алгоритма и его реализации
- •1.5.2 Этапы процесса отладки
- •1.5.3 Применение точек останова
- •1.5.4 Просмотр и изменение содержимого введенных переменных
- •1.6 Исправление ошибок
- •2. Лабораторные работы
- •2.1 Лабораторная работа №1
- •1 Принципиальная электрическая схема
- •2 Алгоритм
- •3 Программа на Ассемблере
- •4 Директивы
- •5 Операторы
- •6 Описание программы (листинг 1.1)
- •7 Задания для самостоятельной работы
- •8 Задания к лабораторной работе
- •9 Содержание отчета
- •2.2 Лабораторная работа №2
- •1 Принципиальная электрическая схема
- •2 Алгоритм
- •Программа на Ассемблере
- •3 Описание программы (листинг 2.1)
- •4 Задания для самостоятельной работы
- •1 Постановка задачи
- •2 Схема
- •3 Алгоритм
- •4 Программа на Ассемблере
- •5 Описание программы (листинг 3.1)
- •6 Задания для самостоятельной работы
- •7 Задания к лабораторной работе
- •8 Содержание отчета
- •9 Контрольные вопросы
- •3. Сводная таблица команд Ассемблера микроконтроллеров avr
- •Проектирование микропроцессорных систем
- •65044, Украина, Одесса, пр. Шевченко, 1
- •65044, Украина, г.Одесса, пр. Шевченко, 1, корп. 5
Вступление
Цель методических указаний – помочь студентам научиться создавать программы для микроконтроллеров. Программа для микроконтроллера – это набор кодов, который записывается в его специальную программную память. Программу пишет разработчик конкретной микропроцессорной системы.
Однако программист никогда не имеет дело с кодами. Часто программист даже и не задумывается о том, какой код соответствует той или иной команде. Дело в том, что для человека программирование в кодах неудобно.
Для человека удобнее оперировать с командами, каждая из которых имеет свое осмысленное название. Поэтому для написания программ человек использует языки программирования.
Язык программирования – это специально разработанный язык, служащий посредником между машиной и человеком. Как и обычный человеческий язык, любой язык программирования имеет свой словарь (набор слов) и правила их написания.
В качестве слов в языке программирования выступают:
команды (операторы);
специальные управляющие слова;
названия регистров;
числовые выражения.
Главная задача языка – однозначно описать последовательность действий, которую должен выполнить микроконтроллер. В то же время язык должен быть удобен и понятен человеку.
В процессе создания программы программист пишет ее текст на компьютере точно так же, как он пишет любой другой текст. Затем программист запускает специальную программу – транслятор.
Транслятор – это специальная программа, которая переводит текст, написанный программистом, в машинные коды, то есть в форму, понятную для микроконтроллера.
Написанный программистом текст программы называется исходным или объектным кодом. Код, полученный в результате трансляции, называется результирующим, или машинным кодом. Именно этот код записывается в программную память микроконтроллера. Для записи результирующего кода в программную память применяются специальные устройства – программаторы..
Все языки программирования делятся на две группы:
языки низкого уровня (машиноориентированные);
языки высокого уровня.
Типичным примером машиноориентированного языка программирования является язык Ассемблер. Этот язык максимально приближен к системе команд микроконтроллера. Каждый оператор этого языка – это, по сути, словесное название какой-либо конкретной команды.
В процессе трансляции такая команда заменяется кодом операции. Составляя программу на языке Ассемблер, программист должен оперировать теми же видами данных, что и сам процессор, то есть байтами и битами.
Специфика языка Ассемблер состоит еще и в том, что набор операторов для этого языка напрямую зависит от системы команд конкретного микроконтроллера. Поэтому, если два микроконтроллера имеют разную систему команд, то и язык Ассемблер для каждого такого микроконтроллера будет свой. На лабораторных работах мы будем изучать конкретную версию языка Ассемблер для микроконтроллеров AVR.
1 Программная среда avr Studio
1.1 Общие сведения
1.1.1 Отладка программы
На лабораторных работах мы учимся создавать программы для микроконтроллеров. Однако для того, чтобы написанная программа превратилась в результирующий код и заработала в конкретном микропроцессорном устройстве, ее нужно оттранслировать и «зашить» в программную память микроконтроллера.
Однако существует еще один важный аспект этой задачи. Дело в том, что при написании реальной программы, особенно если программа реализует достаточно сложный алгоритм, невозможно избежать ошибок. Ошибки могут быть самые разные. От простой синтаксической ошибки в написании какой-либо команды до структурных ошибок, которые иногда трудно обнаружить.
В любом случае при написании программ обычно нельзя обойтись без процедуры отладки. Отладка выполняется на компьютере при помощи специальной инструментальной программы – отладчика. Отладчик позволяет пошагово выполнять отлаживаемую программу, а также выполняет ее поэтапно с использованием так называемых точек останова.
В процессе выполнения программы под управлением отладчика программист может на экране компьютера:
видеть содержимое любого регистра микроконтроллера;
видеть содержимое ОЗУ и EEPROM;
наблюдать за последовательностью выполнения команд, контролируя правильность отработки условных и безусловных переходов;
наблюдать за работой таймеров, отработкой прерываний.
В процессе отладки программист также может наблюдать логические уровни на любом внешнем выходе микроконтроллера, а также имитировать изменение сигналов на любом входе. Процесс отладки позволяет программисту убедиться в том, что разрабатываемая им программа работает так, как он задумал. Большинство ошибок в программе обнаруживаются именно в процессе отладки.
Существует три основных вида отладчиков:
программные;
аппаратные;
комбинированные программно-аппаратные.