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


 

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

57609. Передумови та початок національно-визвольної війни українського народу в середині XVII ст 288 KB
  Мета: з’ясувати передумови причини та характер війни; розкрити роль Богдана Хмельницького в підготовці та початку національновизвольної війни; розвивати вміння учнів аналізувати історичні джерела працювати над вивченням історичних подій за алгоритмом працювати самостійно з довідковою літературою...
57610. Війна радянської Росії з УНР і проголошення незалежності Української Народної Республіки 40 KB
  Очикувані результати: після уроку учні аналізуватимуть події кінця 1917 – початку 1918 рр.; дізнаються про плани більшовиків щодо долі України; за допомогою історичної карти зможуть відтворити хід першої ра дянсько–української війни...
57611. Історія як навчальний предмет і наука 569 KB
  Мета: створити початкове уявлення про історію як навчальний предмет і науку; зацікавити новим навчальним предметом; ознайомити школярів з видатними вченимиісторіками України...
57612. Україна в роки правління гетьмана Івана Виговського 76 KB
  Хмельницького визначити основні засади внутрішньої і зовнішньої політики гетьмана Івана Виговського; розвивати в учнів уміння працювати з картою аналізувати текстові та візуальні історичні джерела і на основі їх робити певні висновки...
57613. Велика Вітчизняна війна (1941-1945 рр.) – складова Другої світової війни 54.5 KB
  Мета: познайомити учнів з подіями Великої Вітчизняної війни політикою загарбників на окупованих українських територіях діяльністю руху Опору на території України; вдосконалювати навички роботи з картою...
57614. ВЕРБАЛІЗАЦІЯ СТРАХУ В СУЧАСНІЙ АНГЛІЙСЬКІЙ МОВІ 322.5 KB
  Мовні засоби вираження емоції страху, а також об’єкти, які викликають у людини цю емоцію. Новизна та вибір предмета дослідження обумовлюються відсутністю детального аналізу мовних засобів, які використовуються автором у художньому тексті для вираження мовлення персонажів, які перебувають у стані страху.
57615. КИРИЛЛО – МЕФОДИЕВСКОЕ БРАТСТВО 80.5 KB
  Цели урока: ознакомить учащихся с деятельностью первой украинской политической нелегальной организацией - Кирилло-Мефодиевским братством; провести исследование программных документов и общественно-политической деятельности Кирилло-Мефодиевского братства...
57616. Галицко-Волынское княжество во времена Даниила Галицкого 85.5 KB
  ЦЕЛЬ: сформировать представление о Галицко-Волынском княжестве как наследнике традиций Киевской Руси показать роль Даниила Галицкого в процессе создания государства охарактеризовать основы внутренний и внешней политики...
57617. Державотворчі процеси у 1994-2009 р 138.5 KB
  Мета: розкрити зміст перетворень в 1994-2009 р., сформувати політичну позицію щодо оцінки президентства Л.Д.Кучми, В.А.Ющенка, діяльності Верховної Ради, Кабінету Міністрів; перемогу демократичних сил,радикальні зміни у суспільстві; виховувати в дусі патріотизму, толерантності.