c: 8515def.inc 1 – avr studio. - eks.fel.mirea.ru · В программном коде,...

24
Работа над проектом Разработка программы. В данном примере продемонстрировано создание простой программы, выполняющей инкрементирование числа, выводимого как восьмибитный набор светодиодов через один из выходных портов микроконтроллера AT90S8515, реализуя тем самым индикацию двоичного счета. Для выполнения этого примера вам потребуется создать папку "Code" на диске C:. В эту папку вы должны поместить файл "8515def.inc", который содержит все установки микроконтроллера, необходимые для компиляции кода, написанного на языке ассемблер. Этот файл включен в комплект приложений документации и ПО AVR Studio. Шаг 1 – Запуск программы AVR Studio. Запустите на выполнение программу AVR Studio. После запуска на экране появится окно, подобное тому, что изображено на рисунке 4. Рисунок 4 - Окно программы AVR Studio в начале работы над проектом.

Upload: vominh

Post on 03-Apr-2018

225 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Работа над проектом

Разработка программы. В данном примере продемонстрировано создание простой

программы, выполняющей инкрементирование числа, выводимого как

восьмибитный набор светодиодов через один из выходных портов

микроконтроллера AT90S8515, реализуя тем самым индикацию двоичного счета.

Для выполнения этого примера вам потребуется создать папку "Code" на

диске C:. В эту папку вы должны поместить файл "8515def.inc", который содержит

все установки микроконтроллера, необходимые для компиляции кода, написанного

на языке ассемблер. Этот файл включен в комплект приложений документации и ПО

AVR Studio.

Шаг 1 – Запуск программы AVR Studio.

Запустите на выполнение программу AVR Studio. После запуска на экране появится

окно, подобное тому, что изображено на рисунке 4.

Рисунок 4 - Окно программы AVR Studio в начале работы над проектом.

Page 2: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Шаг 2 – Создание нового проекта

Чтобы создать новый проект выберите опцию «New Project» в диалоговом окне

«Welcome to AVR Studio 4» или выберите пункты «Project» и «New Project» в

соответствующем разделе главного меню программы.

В открывшемся диалоговом окне нужно выбрать тип проекта: Atmel AVR

Assembler или AVR GCC в соответствии с тем, на каком языке будет написан

исходный файл кода программы:

AVR Assembler. В этом случае AVR Studio использует для компиляции проекта

программу Ассемблер. Никаких дополнительных действий пользователя больше

не потребуется. Этот вариант используется в данном примере.

AVR GCC. В этом случае предполагается, что текст программы будет написан на

языке C. В таком случае следует дополнительно конфигурировать AVR Studio.

Эта процедура будет описана ниже.

Пусть наш проект LED_1 содержит одноименный ассемблерный файл как это

показано на рисунке 5. Если соответствующей папки нет, AVR Studio предложит

создать ее. При этом можно также задать место расположения папки с проектами,

выбрав опцию обзора в поле “Location” .

Рисунок 5 - Вкладка AVR Studio для определения имени проекта и исходного файла

с кодом программы.

Page 3: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Для продолжения работы нажмите {Finish}. Диспетчер проекта выдаст на экран

новое окно проекта (рисунок 6). В нем будут показаны все файлы, связанные с

данным проектом и будет открыто окно редактирования кода программы.

Рисунок 6 – Пример интерфейса пользователя среды разработки AVR Studio 4.

Шаг 3 – Создание файла с кодом программы на ассемблере

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

существующий файл или создавая новый, как это показано на рисунке 6. Текущий

входной файл отмечен в соответствующем окне пиктограммой с красной стрелкой,

направленной вниз.

Предполагается, что файл с текстом кода вначале пустой, и следует ввести в

него программный код, воспользовавшись обычными приемами редактирования.

Пример рабочего кода программы на языке ассемблер кс краткими комментариями

приведен на рисунке 7. Напомним, что при редактировании удобно использовать

процедуры копирования и вставки из буфера (кнопки {Ctrl+C} и {Ctrl+V}).

Page 4: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 7 – Пример кода программы циклического счетчика с выводом результатов

счета в порт B.

Page 5: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

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

управляющие работой портов ввода/вывода микроконтроллера. Для выполнения

последующих заданий следует принять во внимание следующее замечание.

Управления доступом и конфигурирование портов ввода/вывода МК

семейства AVR осуществляется через три регистра МК:

1) DDRx – регистр, конфигурирующий направление передачи данных.

Конфигурирование реализуется побитно. Например, запись числа 11110000

в регистр DDRB означает, что четыре младших вывода 8-ми разрядного

порта B сконфигурированы как входные, т.е. из них данные будут

читаться, а четыре старших вывода порта B будут работать на выход, т.е.

будут передавать данные.

2) PORTx – это регистр передачи или приема данных порта x.

Если какие-то биты этого порта были сконфигурированы как выходные, то

в биты этого регистра следует записать те значения, которые требуется

задать на выходах МК.

Если эти биты сконфигурированы на прием данных, то запись единицы в

них означает, что данный вход через резистор 150 Ом подключен к выводу

питания (вход «подтянут к единице» прямой логики). Таким образом, при

отсутствии сигнала на этом выводе обеспечивается помехозащищенность и

гарантируется, что считанное значение будет соответствовать логической

единице.

3) PINx – доступный только для чтения регистр для хранения данных,

считанных из порта x. Биты этого регистра содержит значения логических

уровней сигналов, которые в момент выполнения операции обращения к

нему присутствуют на соответствующих выводах порта x.

Шаг 4 – Ассемблирование исходного кода программы

Следующий шаг заключается в создании машинного кода из исходного текста

программы. Для выполнения этой процедуры следует выбрать в меню "Build" опцию

"Build" или нажать клавишу {F7}.

После компиляции программы в окне "Build" будет выведена информация о

результатах. На рисунке 9 в окне вывода результатов компиляции показано, что

ассемблер обнаружил ошибку в 16-й строке кода: код содержит неопределенный

Page 6: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

идентификатор «tnp1». Как видно из рисунка, там же перечислены и последующие

ошибки, возникшие вследствие неопределенности идентификатора.

Рисунок 9 - Окна с кодом программы и результатами компиляции с указанием

ошибок.

После исправления ошибок следует сохранить файл с кодом и снова

запустить ассемблер на компиляцию. В новом окне результатов (рисунок 10),

указано, что код содержит 10 слов (т.е. 20 байт) и программа-ассемблер выполнена

без ошибок. Теперь все подготовлено к тому, чтобы перейти к следующему этапу

проектирования, на котором проводится отладка программы в режиме симулятора.

Page 7: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 10 - Окно консоли с результатами работы ассемблера.

Шаг 5 - Выбор устройства

Нужно проследить, чтобы симуляция кода проводилась именно для

выбранного типа процессора. Выбор типа МК для симуляции осуществляется из

меню “Debug” (пункт "Select Platform and Device…"). При этом в открывшейся

вкладке (см. рисунок 11) следует выбрать тип МК и программу для симуляции его

работы. В данном случае следует выбрать тип МК AT90S8515 и платформу-

симулятор AVR Sumulator.

Шаг 6 - Отладка кода программы

Если файл с программным кодом подготовлен, то его можно запустить в режиме

симулятора-отладчика, выбрав в меню "Debug" пункт "Start Debugging " (сочетание

клавиш {Ctrl+Sift+Alt+F5}). О переходе в этот режим работы свидетельствует появление

желтой стрелки слева от текста с кодом команд, указывающей на инструкцию, которая

будет выполняться на следующем шаге в соответствии с содержимым счетчика команд PC

(см. рисунок 12).

Page 8: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 11. - Окно назначения параметров симуляции.

Рисунок 12 - Указатель положения счетчика команд в окне с кодом программы в

режиме отладки-симуляции.

Page 9: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Полный перечень режимов работы симулятора доступен из функции главного

меню “Debug”, что иллюстрируется рисунком 13. Некоторые функции

продублированы пиктограммами, соответствующими инструментам, которые можно

вывести на экран из меню “View”- “Toolbars”.

Рисунок 13 – Инструменты и функции AVR Studio в режиме отладки.

Процесс отладки заключается в отслеживании хода выполнения программы и

управления данными в регистрах с помощью окна с текстом кода, окна консоли

вывода текущих сообщений (Message) и специальных окон, показывающих

состояния регистров ввода/вывода (I/O View), позволяющих вести контроль

значений переменных (Watch), отслеживать состояния процессора (Processor). Вывод

на экран панелей этих инструментов симулятора также настраивается из главного меню

(см. рисунок 14).

Page 10: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 14 – Всплывающие списки панелей инструментов и вызова окон для отображения

состояний микроконтроллера в режиме симуляции-отладки программы.

Настройка окна ввода-вывода

Откройте окно "IO View", выбрав соответствующий пункт меню "View" –

“Toolbar” (клавиши {Alt+5}). Поскольку симулятор уже настроен для работы с

типом микроконтроллера AT90S8515, то соответствующие элементы его

архитектуры отобразятся в этом окне автоматически (см. рисунок 15).

Щелчок на значке «+» у строчки с надписью PORTB открывает содержимое

регистров, связанных с портом ввода-вывода B (см. рисунок 13): регистр данных

порта PORTB (Port B Data Register), регистр управления направлением передачи

порта DDRB (Port B Data Direction) и регистр драйверов порта PINB (Port B Input

Pins). Состояние каждого бита этих регистров отображается в соответствующей

позиции окна: логическому нулю ("0") соответствует пустая позиция, а логическая

единица ("1") отображается позиция окрашенная серым. Эти позиции могут

изменяться в ходе выполнения программы, показывая текущее состояние каждого

бита. В ходе выполнения программы вы также можете сами установить или сбросить

эти биты, щелкая левой кнопкой мыши на соответствующем поле.

Page 11: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 15. Окно устройств ввода/вывода микроконтроллера AT90S8535.

Окна просмотра состояний переменных

Окно просмотра значений переменных открывается выбором

соответствующего пункта меню "Veiw"- "Watch" или пиктограммы в строке меню.

Переменные, которые были определены в программе (с помощью директивы

.def) могут быть выбраны для отражения их содержания в окне просмотра

значений. В рассматриваемом примере такая переменная – "tmp". Если дважды

щелкнуть кнопкой на ней в окне кода, то эта переменная будет выделена. Ее можно

перенести методом "держи и тащи" в окно для просмотра значений. Значение этой

переменной будет отображаться в этом окне по ходу выполнения программы (см.

рисунок 16).

Page 12: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 16 - Окно просмотра значений переменных, определенных в программе.

Выполнение программы в режиме симуляции

Режимы выполнения программы при симуляции работы МК доступны при

открытии выпадающего списка функции “Debug” (см. рисунок 15). Их назначение и

горячие клавиши вызова приведены в таблице 1.

Таблица 1 – Функции отладчика, управляющие ходом симуляции кода программы.

Наименование Назначение Комбинация клавиш

Пикто-грамма

Комментарии

"Step Into" Переход к следующей строке кода

{F11}

Пошаговое выполнение программы без пропусков

"Step Over" Переход к следующей подпрограмме

{F10}

позволяет не отслеживать ход выполнения программы

"Step Out" Выход из подпрограммы

{Shift+F11}

Позволяет выйти из цикла или подпрограммы

"Run to cursor" Выполнить операции кода до точки, указанной курсором

{Ctrl+F10}

Выполнить операции кода до точки, указанной курсором

"Autostep" Пошаговое выполнение программы

{Alt+F5}

Выполнение программы по строкам кода в автоматическом режиме

Page 13: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

"Break" Принудительная остановка

{Ctrl+F5}

Остановка выполнения программы

"Toggle BreakPoint"

Назначение точек остановки автоматического выполнения

{F9}

Позволяет поставить на место, указанное курсором точку остановки автоматического выполнения

"Remove All BreakPoint"

Удаление точек остановки

Удаляет все точки остановки автоматического выполнения

"Start Debugging"

Запуск отладчика

{Ctrl+Sift+ Alt+F5}

Переход к режиму отладки-симуляции

"Stop Debugging"

Выход из отладчика

{Ctrl+ Alt+F5}

Выход из режима отладки-симуляции

"Run" Запуск программы на непрерывное выполнение

{F5}

Запустив программу на исполнения, проследите, как изменяется положение

указателя выполняемой операции кода, нажимая несколько раз клавиши {F11},

{F10}, {Shift+F11}, {Ctrl+F10}, {Alt+F5} и {Ctrl+F5} или выбрав соответствующую

опцию из пиктограмм отладчика. Обратите внимание, что при изменении

состояний регистров микроконтроллера и его портов, их цвета изменяются с черного

на красный (см. рисунок 17).

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

значения данных в счетчике команд, счетчике цикла, в регистрах процессора и в

слове состояния процессора.

Назначение точек остановки

Указывая точки остановки в ассемблерном коде программы, используя клавишу

{F9} (или пункт "Toggle Breakpoint" меню "Breakpoint"), вы имеете возможность

остановить ее выполнение в соответствующем месте. На примере, приведенном на

рисунке 18 красный круг, появившийся в полях слева от кода отмечает установленное

вами место остановки хода выполнения программы. Для продолжения или прекращения

симуляции работы МК следует воспользоваться командами, указанными в таблице 1.

Page 14: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 17 – Изменение состояний регистров микроконтроллера при выполнении

программы в режиме симуляции.

Рисунок 18 - Индикатор точки останова программы.

Page 15: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

В состоянии остановки можно удобно контролировать, какие изменения

произошли с регистрами и переменными в данном месте программы. Используя точки

остановки, можно также ускорить ход выполнения программы при отладке.

Изменение программного кода

Пусть требуется изменить программу, например, сделать так, чтобы значения

в выходном порту PORTB декрементировались. Чтобы отредактировать

соответствующим образом код программы, остановите работу отладчика. Поместите

курсор в нужное место кода и измените инструкцию "inc" на "dec". Если теперь

нажать {F5}(Run), то появится диалоговое окно, которое указывает, что один из

исходных файлов проекта был изменен, и требуется новая компиляция и

перекомпоновка проекта. Перекомпилируйте проект и вновь запустите отладчик.

Обратите внимание, что предыдущие настройки окон и положение точек остановки

программы сохраняется.

В процессе отладки можно также изменить тип микроконтроллера (пункт

"AVR Simulator Option" или клавиши {Alt+O}) В этом окне, пример которого

приведен на рисунке 19, можно также назначить устройство, для которого

предназначен программный код. Значение рабочей частоты должно соответствовать

тактовой частоте МК (в данном случае – 4 MHz). Здесь же следует указать, будет ли

использоваться внешняя память.

Рисунок 19 - Диалоговое окно указания типа микроконтроллера

для режима симуляции-отладки.

Page 16: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Шаг 7 – Разработка кода программы на языке C в среде AVR Studio

При разработке кода программы для МК на языке C следует в окне назначения имен

проекта и соответствующего файла с кодом, соответствующем синтаксису С для МК

AVR, указать, что будет использоваться комплект инструментов компиляции AVR

GCC (см. рисунок 20).

Рисунок 20 – Выбор настроек AVR Studio для разработки программ на языке С.

После задания всех атрибутов проекта следует нажать {Finish} после чего на экран

будет выведена конфигурация рабочей области AVR Studio. Пример интерфейса

среды разработки в этом случае приведен на рисунке 21.

Перед разработкой кода программы на языке С следует настроить (или

проверить настройки), опций конфигурации проекта. Данные для файла

конфигурации проекта, создаваемом в комплекте документов проекта по

умолчанию, задаются из выпадающего списка функции главного меню “Project”-

“Configuration Options”. В соответствующем окне, пример которого приведен на

рисунке 22, следует выбрать тип процессора (в данном случае – a90s815) и ввести

значение тактовой частоты в герцах (4000000). Для того, чтобы был подготовлен

hex-файл прошивки, следует установить галочку в соответствующем поле этого

окна. Остальные настройки конфигурации в данном проекте можно оставить без

изменения.

Page 17: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 21 – Пример интерфейса пользователя AVR Studio при разработке кода

программ на С.

Рисунок 22 – Настройка опций для компоновки проекта.

Page 18: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Подробности о настройках AVR GCC, также как и о других особенностях

этой среды, можно прочитать, используя пункт главного меню “Help”. Здесь же

содержится описание библиотечных файлов, доступных для использования в

проектах на C (вкладка “Library Reference”), а также демонстрационные примеры,

иллюстрирующих особенности применения языка C для проектов в AVR Studio (см.

рисунок 23).

Рисунок 23 – Вкладка меню “Help” с примерами проектов программ.

Пример кода программы на языке С, реализующий вывод на индикаторы

двоичного счета, т.е. аналогичной по функциям предыдущей программе на

ассемблере (см. рисунок 7), приведен на рисунке 24. Обратите внимание, что

программа содержит директивы-ссылки на заголовочные файлы и директории, в

которых эти файлы содержатся по умолчанию при установке AVR Studio.

Директива #define F_CPU 40000000UL является в данном случае не

обязательной. Она дублирует указание настройки конфигурационного файла и еще

раз объявляет, что тактовая частота МК составляет 4МГц.

Page 19: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 24 - Программа на языке С, реализующая индикацию двоичного счет.

В коде с помощью ключевого слова unit8_t объявлено, что идентификатор

cnt присвоен целочисленной восьмибитовой переменной, принимающей

первоначально нулевое значение. Другое ключевое слово _delay_ms(400)

означает обращение к библиотечной функции C для AVR, содержащейся в файле

delay.h в папке util.

Особенностями компиляции и компоновки С-программ инструментами GCC

в среде AVR Studio является то, что, для создания машинного кода выполняется

некоторая последовательность команд, записанная в специальном командном файле

(make-файл). Эта последовательность команд вызываются на исполнение при

активизации соответствующих инструментов AVR Studio, из пункта главного меню

“Build”, как это показано на рисунке 25.

Рисунок 25 - Выпадающий список команд для компиляции и компоновки программ

на языке С в среде AVR Studio 4.

Результаты выполнения процедур компиляции и компоновки программ на С

отображаются в окне “Build”. Пример приведен на рисунке 26.

Page 20: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Рисунок 26 – Пример окна “Build” с сообщениями о результатах компиляции и

компоновки.

После того, как компиляция и компоновка проекта успешно выполнены.

можно перейти к процедуре симуляции. Для проектов на языке С, процедуры

симуляции не отличаются от проектов на ассемблере.

Шаг 8 - Сохранение проекта

Перед окончанием работы AVR Studio предложит сохранить ваш проект.

AVR Studio запомнит все открытые вами окна и их настройки и воспроизведет их

при следующем открытии проекта. Сохранение проекта осуществляется выбором

пункта "Save" (или "Save As…") в меню "Project".

Шаг 9 - Загрузка программы в ПЗУ

После того как прикладная программа отлажена на симуляторе, ее можно

загрузить в память микроконтроллера. Для этой цели служит программа и

устройство - программатор. Для загрузки предварительно должен быть

сформирован файл загрузки (*.hex-файл).

В данном примере предполагается, что микроконтроллер AT90S8515

смонтирован на учебно-демонстрационной плате KIT-8252, подробное описание

которой можно найти на сайте производителя [Х]. Эта плата содержит элементы,

обеспечивающие внутрисистемное программирование контроллера через

последовательный порт RS-232 персонального компьютера. Для этого следует

воспользоваться одной из специальных программ, например, программой прошивки,

включенной в комплект AVR Studio.

Page 21: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

Предварительно на плату необходимо подать питание от специального

адаптера, обеспечивающего преобразование напряжения сети 220В в постоянное

напряжение +5В. При правильном подключении питания на плате должен загореться

крайний светодиодный индикатор. После включения питания прямым кабелем

RS-232 следует подключить плату к соответствующему входу компьютера.

Переход среды AVR Studio в режим программирования производится

активизацией строки “AVR Prog…” пункта меню "Tools". При правильном

соединении компьютера и платы контроллера на экране появляется диалоговое окно

программы прошивки (см. рисунок 27).

Рисунок 27 – Окно загрузки hex – файла в режиме программирования AVR Prog.

В элементах этого окна следует указать тип программируемого МК, адрес

файла с шестнадцатеричным кодом (*.hex) загружаемой программы, после чего

выбрать кнопку Program в группе элементов управления Flash. Программа,

осуществляющая загрузку памяти МК (прошивку) последовательно производит

операции стирания информации (запись единицы во все биты памятей программ и

данных)запись значений из hex-файла и проверку соответствия записанной в память

программы и исходной. Ход процесса прошивки отображается в строке состояния

группы элементов Flash. Успешное завершение процесса отмечается появлением

сообщения "OK" в строке состояния.

Page 22: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

После завершения процесса программирования процессор выполняет

загруженную программу. Окно программатора может оставаться активным во время

работы ассемблера/симулятора, что дает возможность оперативно модифицировать

программу. Программа, загруженная в Flash – память МК является

энергонезависимой и после каждого включения питания продолжает выполняться

выбирая в соответствии с программным кодом первую команду по адресу,

соответствующему переходу от нулевого адреса к метке “reset”.

Пример кода программы, реализующей вывод на светодиоды результата (n2+1), где n – число, закодированное положениями переключателя: .include "8515def.inc" .def temp=r16 .def a=r20 .def b=r21 .def i=r22 .org 0 rjmp start start: ldi temp,LOW(RAMEND) ;инициализация указателя стека для AVR, out spl,temp ;имеющих програмный стек, ОБЯЗАТЕЛЬНО выполняется ldi temp,HIGH(RAMEND) ;в начале программы out sph,temp rcall port_init ;инициализация портов ;основной цикл программы loop: in temp,pina ;значение (pinA)->temp rjmp umnogenie ;temp=(temp)^2 follow: inc temp ;temp=temp+1 com temp ;инвертируем ответ, out portb,temp ;чтобы "1" отображалась светящимся диодом rjmp loop ;бесконечный цикл

Page 23: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

;подпрограмма инициалиции портов port_init: ldi temp,0xff out ddrb,temp out ddra,temp ldi temp,0x00 out portb,temp ret ;подпрограмма умножения axb, где b=a; aєN; bєN umnogenie: mov a,temp mov b,temp ;т.к. в данном примере b=a push b tst b brne go rjmp exit ;если а=0 go: ldi i,0x01 push b sub b,i brne next rjmp exit next: pop b ;если а=1 add temp,a inc i push b sub b,i brne next ;если а>1 exit: rjmp follow

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

[1.] Изделия и компоненты, предлагаемые фирмой "КТЦ-МК".

Микроконтроллеры фирмы "ATMEL" семейства AVR. Справочник. 2-е изд. –

М.: КТЦ-МК, 1999. – 299 с.

[2.] Бродин В.Б., Калинин А.В. Системы на микроконтроллерах и БИС

программируемой логики. - М.: Издательство ЭКОМ, 2002 – 400 с.

Page 24: C: 8515def.inc 1 – AVR Studio. - eks.fel.mirea.ru · В программном коде, приведенном на рисунке 7, используются команды, управляющие

[3.] Предко М. Руководство по микроконтроллерам. В 2 т. - М.: ЗАО

"Предприятие Постмаркет", 2000. –2 т.

[4.] Евстифеев А.В. Микроконтроллеры семейства Classic фирмы "ATMEL". М.:

Издательский дом "Додэка-XXI", 2002. – 288 с.

[5.] Фрунзе А.В. Микроконтроллеры? Это же просто! В 2 т. – М.: ООО "ИД

СКИМЕН", 2002. – 2 т.

[6.] Гребнев В.В. Микроконтроллеры семейства AVR фирмы ATMEL. М.: ИП

РадиоСофт, 2002. – 176 с.

[7.] AVR. Atmel Corporation 8-bit RISC Microcontrollers Data Book. August 1999.

Atmel Corporation, San Jose, CA 95131, USA. 1999.

[8.]