Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование МПС(лаб.метод).doc
Скачиваний:
132
Добавлен:
10.02.2016
Размер:
1.39 Mб
Скачать

Вступление

Цель методических указаний – помочь студентам научиться создавать программы для микроконтроллеров. Программа для микроконтроллера – это набор кодов, который записывается в его специальную программную память. Программу пишет разработчик конкретной микропроцессорной системы.

Однако программист никогда не имеет дело с кодами. Часто программист даже и не задумывается о том, какой код соответствует той или иной команде. Дело в том, что для человека программирование в кодах неудобно.

Для человека удобнее оперировать с командами, каждая из которых имеет свое осмысленное название. Поэтому для написания программ человек использует языки программирования.

Язык программирования – это специально разработанный язык, служащий посредником между машиной и человеком. Как и обычный человеческий язык, любой язык программирования имеет свой словарь (набор слов) и правила их написания.

В качестве слов в языке программирования выступают:

  • команды (операторы);

  • специальные управляющие слова;

  • названия регистров;

  • числовые выражения.

Главная задача языка однозначно описать последовательность действий, которую должен выполнить микроконтроллер. В то же время язык должен быть удобен и понятен человеку.

В процессе создания программы программист пишет ее текст на компьютере точно так же, как он пишет любой другой текст. Затем программист запускает специальную программу – транслятор.

Транслятор – это специальная программа, которая переводит текст, написанный программистом, в машинные коды, то есть в форму, понятную для микроконтроллера.

Написанный программистом текст программы называется исходным или объектным кодом. Код, полученный в результате трансляции, называется результирующим, или машинным кодом. Именно этот код записывается в программную память микроконтроллера. Для записи результирующего кода в программную память применяются специальные устройства – программаторы..

Все языки программирования делятся на две группы:

  • языки низкого уровня (машиноориентированные);

  • языки высокого уровня.

Типичным примером машиноориентированного языка программирования является язык Ассемблер. Этот язык максимально приближен к системе команд микроконтроллера. Каждый оператор этого языка – это, по сути, словесное название какой-либо конкретной команды.

В процессе трансляции такая команда заменяется кодом операции. Составляя программу на языке Ассемблер, программист должен оперировать теми же видами данных, что и сам процессор, то есть байтами и битами.

Специфика языка Ассемблер состоит еще и в том, что набор операторов для этого языка напрямую зависит от системы команд конкретного микроконтроллера. Поэтому, если два микроконтроллера имеют разную систему команд, то и язык Ассемблер для каждого такого микроконтроллера будет свой. На лабораторных работах мы будем изучать конкретную версию языка Ассемблер для микроконтроллеров AVR.

1 Программная среда avr Studio

1.1 Общие сведения

1.1.1 Отладка программы

На лабораторных работах мы учимся создавать программы для микроконтроллеров. Однако для того, чтобы написанная программа превратилась в результирующий код и заработала в конкретном микропроцессорном устройстве, ее нужно оттранслировать и «зашить» в программную память микроконтроллера.

Однако существует еще один важный аспект этой задачи. Дело в том, что при написании реальной программы, особенно если программа реализует достаточно сложный алгоритм, невозможно избежать ошибок. Ошибки могут быть самые разные. От простой синтаксической ошибки в написании какой-либо команды до структурных ошибок, которые иногда трудно обнаружить.

В любом случае при написании программ обычно нельзя обойтись без процедуры отладки. Отладка выполняется на компьютере при помощи специальной инструментальной программы – отладчика. Отладчик позволяет пошагово выполнять отлаживаемую программу, а также выполняет ее поэтапно с использованием так называемых точек останова.

В процессе выполнения программы под управлением отладчика программист может на экране компьютера:

  • видеть содержимое любого регистра микроконтроллера;

  • видеть содержимое ОЗУ и EEPROM;

  • наблюдать за последовательностью выполнения команд, контролируя правильность отработки условных и безусловных переходов;

  • наблюдать за работой таймеров, отработкой прерываний.

В процессе отладки программист также может наблюдать логические уровни на любом внешнем выходе микроконтроллера, а также имитировать изменение сигналов на любом входе. Процесс отладки позволяет программисту убедиться в том, что разрабатываемая им программа работает так, как он задумал. Большинство ошибок в программе обнаруживаются именно в процессе отладки.

Существует три основных вида отладчиков:

  • программные;

  • аппаратные;

  • комбинированные программно-аппаратные.