50321

ІНТЕГРОВАНЕ СЕРЕДОВИЩЕ РОЗРОБКИ ПРОГРАМ AVR STUDIO

Лабораторная работа

Информатика, кибернетика и программирование

Початок роботи При програмуванні в середовищі VR Studio необхідно виконати стандартну послідовність дій: створення проекту; написання програми; компіляція; симуляція. Натискаємо завершити Finish на цьому проект створений і ми потрапляємо в головне вікно програми. Загальний вид вікна програми Вікно розділене на 4 частини. Трохи нижче ліворуч розташовується вкладки Диспетчер проекту Project Перегляд вводу виводу I O View Інформація Info праворуч Текст програми.

Украинкский

2014-01-21

1.54 MB

17 чел.

ЛАБОРАТОРНА РОБОТА № 7

ІНТЕГРОВАНЕ СЕРЕДОВИЩЕ РОЗРОБКИ ПРОГРАМ AVR STUDIO

Мета: навчитися використовувати для написання програм інтегроване середовище розробки (ІСР) AVR Studio.

Завдання: розробити і налагодити програму в середовищі програмування AVR Studio.

Загальні відомості

AVR Studio 4 - професійна інтегроване середовище розробки (Integrated Development Environment - IDE), призначене для написання і налагодження прикладних програм для AVR мікропроцесорів в середовищі Windows 9x/NT/2000. AVR Studio 4 містить асемблер і симулятор.

Початок роботи

При програмуванні в середовищі AVR Studio необхідно виконати стандартну послідовність дій:

  •  створення проекту;
  •  написання програми;
  •  компіляція;
  •  симуляція.

Створення проекту

При запуску AVR Studio пропонує або створити новий проект (New Project) або відкрити вже існуючий (Open).

Створюємо новий проект

У вікні тип проекту (Project Type) вибираємо асемблер (Atmel AVR Assembler), заповнюємо поля ім'я проекту (Project Name) і заголовний файл (Initial File). Натискаємо далі (Next) ...

У вікні платформа відладки (Debug Platform) вибираємо симулятор, а у вікні пристрій (Device) - відповідний мікроконтроллер (в даному варіанті AT90S8515). Натискаємо завершити (Finish) - на цьому проект створений, і ми потрапляємо в головне вікно програми.

Загальний вид вікна програми

Вікно розділене на 4 частини. У верхній частині розташовані рядок меню і «плаваючі» панелі з кнопками. Трохи нижче ліворуч розташовується вкладки Диспетчер проекту (Project), Перегляд вводу/виводу (I/O View), Інформація (Info), праворуч - Текст програми. Знизу розташовані наступні вкладки: Конструкція (Build), Повідомлення (Message), Пошук в файлах (Find in Files), Контрольні точки (Breakpoints and Tracepoints).

Написання тексту програми

У вікні Текст програми користувач створює програму.

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

При написанні програми інструкції виділяються синім кольором, коментарі - зеленим, інше - чорним.

При написанні ПО слід не забувати періодично зберігатися.

Компіляція

Компіляція - процес перекладу тексту програми, написаної мовою програмування, в виконуваний модуль, що містить машинні команди конкретного процесора. Стосовно до мікроконтролерів процес компіляції називається асемблювання. (утворення *.hex файлу )

Асемблювання - трансляція з мови асемблера в команди машинного мови.

Дані кнопки на верхній панелі запускають процес асемблювання. Кнопка зліва асемблює проект, справа - асемблює і запускає на виконання.

Якщо при написанні тексту програми були допущені синтаксичні помилки, компіляція переривається і видається в вкладці Конструкція повідомлення про допущені помилки.

При вдалій компіляції в вкладці Конструкція показується звіт про проходження процесу асемблювання і таблиця використаних ресурсів.

Після вдалого асемблювання можна переходити до фази симуляції.

Симуляція

Симуляція - моделювання процесу виконання програми микроконтроллером на персональному комп'ютері. Інакше кажучи - режим налагодження (Debugging).

Відлагодження - етап комп'ютерного розв'язання задачі, при якому відбувається усунення явних помилок у програмі. Часто проводиться з використанням спеціальних програмних засобів - відладчиків. 

Для управління режимом  алагодження призначені наступні кнопки. 

Запустити відладку (симуляцію).

Зупинити відладку .

Запустити програму на виконання.

Пауза у виконанні програми.

Показати виконувану інструкцію.

Перезапустити програму.

Крок вперед із заходом в підпрограми.

Крок вперед без заходу в підпрограми.

Перейти до останньої інструкції програми (підпрограми).

Виконати програму до місця вказаного курсором.

Автоматичне покрокове виконання програми.

Встановити / зняти контрольну точку.

Видалити всі контрольні точки.

Інструкція яка буде виконуватися наступною позначена жовтою стрілкою.

Контрольна точка - інструкція в програмі дійшовши до якої виконання програми призупиниться. Встановлена контрольна точка відзначена червоним кружком.

Інформація про регістрах введення / виводу, процесорі і регістрах загального користування розташована і розподілена по групах в вкладці Перегляд вводу/виводу.

Після успішної компіляції проект можна зашивати у контролер, в тому числі у пакеті Протеус.

Хід роботи.

  1.  Набрати задані тексти програм у  AVR Studio (їх можна туди скопіювати, якщо хтось не здогадався =) ).
  2.  Набрану програму скомпілювати і відлагодити, подивившись як програма виконується покроково і як змінюється вміст відповідних регістрів.
  3.  Виправити помилки, якщо вони є.
  4.  У пакеті «Протеус» вибрати відповідних контролер (AT90S8515) і зашити у нього утворений hex файл і переконатись і працездатності програми, склавши необхідні схеми (взявши з попередньої роботи).


Додатки. Тексти програм.

Вивод числа на порт

.include "8515def.inc" ;підключення файлу опису МК AT90S8515

.CSEG ;сегмент коду

.org 0;сама перша його адреса

rjmp reset ;йдемо на мітку reset. Можна було б почати програму лише з цього місця, але в подальшому тут можна буде описувати ще вектора переривань.

reset:

ldi r16,low(RAMEND) ;Обов’язково ініціалізуємо стек! Це в подальшому буде необхідно

out SPL,r16 ;для інших програм. Бажано звикати

ldi r16, 0xFF ;завантажуємо  в регістр r16 шістнадцяткове число FF

out DDRB, r16 ;копіюємо це значення із r16 в регістр налаштування PortB, тепер цей порт готовий до виводу даних, але він поки що нічого не виводить

ldi r16, 0b01010101 ;завантажуємо в регістр r16 двійкове число 01010101

out PORTB, r16 ;копіюємо це значення із r16 в PortB, тепер це двійкове число опинилося на виводах PortB відповідними рівнями напруги і під’єднавши PortB до світло діодів, побачимо їх світіння

loop:

rjmp loop ; зациклюємо програму. Це потрібно, так як програмний лічильник після виконання останньої нами заданої команди спробує дати процесору адресу наступної комірки пам’яті, думаючи, що там знаходиться наступна команда, а так як ми туди нічого не записували, то там може виявитися всілякий «непотріб», в результаті чого МК може виконати непередбачувану операцію.


;
Програма показує як працювати з регістрами, показує правильний ввід і вивід даних, налаштування портів вводу-виводу

.include "8515def.inc" підключення файлу опису МК AT90S8515

.CSEG ; сегмент коду

.org 0 ; сама перша його адреса

rjmp reset йдемо на мітку reset. Можна було б почати програму лише з цього місця, але в подальшому тут можна буде описувати ще вектора переривань

reset:

ldi r16,low(RAMEND) ;Обов’язково ініціалізуємо стек! Це в подальшому буде необхідно

out SPL,r16  ;для інших програм. Бажано звикати

ldi r16, 0xFF ;завантажуємо  в регістр r16 шістнадцяткове число FF

out DDRB, r16 ;копіюємо це значення із r16 в регістр налаштування PortB, налаштувавши його таким чином на вивід інформації

ldi r16, 0b00000000 ;завантажуємо в регвстр r16 нуль

out DDRD, r16 ; копіюємо це значення із r16 в регістр настройки PortD , задавая цим настройку PortD на ввід информацції

ldi r16, 1 ;завантажуємо в регістр r16 десяткове число 1

out PORTB, r16 ;копіюємо це значення із r16 в PortB

label1:

sbic PIND, 0 ;якщо нульовий біт в порту D очищений, то переходимо через інструкцію

;УВАГА! Перевіряти біти потрібно саме в PIND, а не PORTD! PortD - регістр виводу даних!

rjmp label1  ;а якщо не очищений (там нуль), то виконуємо цю інструкцію (перехід на мітку label1)

ldi r16, 2  ;завантажуємо в регистр 16 число 2

out PORTB, r16 ;виводимо його в PORTB

loop:

rjmp loop ; зациклюємо програму. Це потрібно, так як програмний лічильник після виконання останньої нами заданої команди спробує дати процесору адресу наступної комірки пам’яті, думаючи, що там знаходиться наступна команда, а так як ми туди нічого не записували, то там може виявитися всілякий «непотріб», в результаті чого МК може виконати непередбачувану операцію.
;проста програма для запалювання світлодіода по натиснутій кнопці

.include "m8515def.inc" ; Coment; thise symbol

.def temp = r16

rjmp INIT

INIT:

ser temp ; всі одиниці в темпі

out DDRB,temp ; port B - out

ldi temp,0b11111110 ; PD0-input

out DDRD,temp

clr temp

out PORTB,temp ; led off

ldi temp,0b00000001

out PORTD,temp

Start:

 

sbic PIND,0 ;пропускає команду rjmp LEDoff якощо PIND=1

rjmp LEDoff ; перехід

sbi PORTB,0

rjmp Start

LEDoff:

cbi PORTB,0

rjmp Start


 

А также другие работы, которые могут Вас заинтересовать

63293. Растровая графика 21.75 KB
  Растровое изображение составляется из мельчайших точек (пикселей) – цветных квадратиков одинакового размера. Растровое изображение подобно мозаике - когда приближаете (увеличиваете) его, то видите отдельные пиксели, а если удаляете (уменьшаете), пиксели сливаются.
63294. Конструкция и прочность летательных аппаратов 435 KB
  Современные летательные аппараты (ЛА) тяжелее воздуха делятся на три группы. К первой (основной) группе относятся аппараты, у которых подъемная сила создается неподвижно расположенным относительно аппарата крылом (планеры, самолеты и самолеты-снаряды).
63295. Сети связи и их классификации 92.5 KB
  В сети связи средства передачи коммутации и управления распределены в пространстве. По виду электросвязи сети присваиваются названия: телефонной телеграфной передачи данных телевизионного вещания и радиовещания.
63299. Принципы организации единой системы связи РФ 135 KB
  Часть первичной сети ограниченная территорией муниципального образования или района называют местной первичной сетью. Часть первичной сети обеспечивающая соединение разных местных сетей внутри территории определенной зоны образуют внутризоновую первичную сеть границы зоны как правило совпадают с границами субъектов федерации.