50321

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

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

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

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

Украинкский

2014-01-21

1.54 MB

18 чел.

ЛАБОРАТОРНА РОБОТА № 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


 

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

69128. Словник мови та загальна структура програми. Алфавіт та словник мови 58 KB
  У будь-якій мові програмування програма — це набір зрозумілих компілятору команд. Для створення програм треба знати синтаксис мови, тобто правила запису команд і використання лексичних одиниць мови. Знайомство з мовою розпочнемо з алфавіту.
69129. Прості типи даних. Операції над даними 93 KB
  Поняття типу даних є одним із фундаментальних понять програмування. Тип даних визначає: множину допустимих значень яких може набувати змінна або константа зазначеного типу; множину допустимих операцій що застосовуються до даних певного типу; спосіб зображення даних...
69130. Константи, змінні, вирази. Найпростіші оператори. Процедури введення, виведення 126.5 KB
  Будь-які значення, що використовуються у програмі, - це або значення змінних, або константи. Принципова відмінність між змінними і константами полягає у тому, що для зберігання значень змінних під час виконання програми відводяться ділянки...
69131. Алгоритмічний вибір альтернатив. Вкладеність конструкцій вибору 48 KB
  Під час програмування деяких розгалужень виникає потреба у використанні операторних блоків що розглядатимуться у розділі 3. У цьому ж розділі буде пояснено як орієнтуватися в коді великих програм що містять численну кількість конструкцій вибору та операторних блоків.
69132. Алгоритмічна конструкція повторення. Цикл з передумовою, постумовою, лічильником. Переривання циклу 83.5 KB
  У заголовку циклу зазначається умова завершення циклу а тіло циклу являє собою блок операторів що повторюються. Кожне виконання операторів тіла циклу супроводжується перевіркою умови завершення циклу і називається його ітерацією.
69133. Підпрограми, їх різновиди та способи використання. Процедури та функції користувача. Стандартні процедури та функції 83.5 KB
  Одним із найпростіших і найважливіших застосувань циклічних структур є генерування рекурентних послідовностей. Ефективність розв’язання деяких математичних задач цілком залежить від вибору рекурентної послідовності та способу її обчислення. До таких задач належать, зокрема...
69134. Полевые транзисторы. Их основные параметры и характеристики 44.5 KB
  Различают три основных разновидности транзисторов: Полевой транзистор с управляемым pnпереходом: з затвор с – сток и исток Входная характеристика: Выходная характеристика: МДП-транзисторы металл диэлектрик полупроводник транзисторы с встроенным каналом:...
69135. Транзисторы нового поколения: MOSFET, IGBT, SET 66 KB
  МДП-транзисторы металл диэлектрик полупроводник P=I2 R чем меньше сопротивление канала тем больше потери. Вольтамперные характеристики этих транзисторов близки к характеристикам полевых транзисторов: Входная характеристика...
69136. Тиристоры. Основные параметры и характеристики 41.5 KB
  Включает в себя положительную обратную связь Обратная связь – технологический прием позволяющий передать часть полезного сигнала с выхода устройства на его вход. Различают: положительную обратную связь; отрицательную обратную связь; Положительная обратная связь передает часть...