50321

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

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

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

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

Украинкский

2014-01-21

1.54 MB

19 чел.

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


 

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

25575. Основные направления в развитии психологии внутри естествознания 26 KB
  Важнейшей естественнонаучной основой психологии является физиология и поэтому прежде всего от ее состояния зависели судьбы психологии. Отдельные специальные области физиологии развились настолько что они вплотную подошли к экспериментальной разработке проблем издавна относящихся к ведению психологии: нервномышечная физиология физиология органов чувств анатомия и физиология ГМ Наряду с ними проникновению экспериментального метода в психологию способствовали астрономия физическая оптика и акустика биология психиатрия.
25576. Оформление психометрии как экспериментальной области измерения времени психических реакций 28.5 KB
  В результате установил что большее время занимают психофизиологические процессы на уровне высших отделов ЦНС тогда как в периферических частях скорость протекания нервных процессов подвержена меньшим изменениям под влиянием воздействующих факторов. В работах Экснера проблема личного уравнения всё более выступала как физиологическая поэтому он предложил заменить название на время реакции. Этот временной интервал носил предварительный и приблизительный характер точное время осталось не установленным. С помощью этого эксперимента он...
25577. Создание Фехнером психофизики 29.5 KB
  В центре его интересов оказался давно установленный рядом наблюдателей факт различий между ощущениями в зависимости от того какова первоначальная величина вызывающих их раздражителей. Занявшись изучением того как изменяются ощущения различных модальностей опыты ставились над ощущениями которые возникают при взвешивании предметов различной тяжести при восприятии предметов на расстоянии при вариациях в их освещенности и т.Вебер который ввел понятие об едва заметном различии между ощущениями. В тех случаях когда минимальный прирост...
25578. Гельмгольц: эмпирическая теория зрения и резонансная теория слуха 33.5 KB
  Экспериментальная психофизиология Гельмгольца. Гельмгольц: эмпирическая теория зрения и резонансная теория слуха. Гельмгольца занимали вопросы психофизиологии зрения и слуха. Гельмгольц приступает почти сразу же после своих известных опытов по измерению скорости проведения нервного возбуждения 1851.
25579. Вундт и его реформаторская роль в оформлении психологии как самостоятельной и экспериментальной науки 31 KB
  Первым вариантом психологии как самостоятельной науки явилась физиологическая психология В. Основания физиологической психологии Вундта явились началом психологии как самостоятельной науки. он создал психологическую лабораторию на базе которой через два года был создан Институт экспериментальной психологии с самого начала превратившийся в международный центр по подготовке психологов.
25580. Опыты Эббингауза по изучению памяти 27.5 KB
  для того чтобы изучать память через воспроизведение необходимо измерить результат заучивания а для этого необходимо иметь материал заучивания который можно было количественно измерить и он должен быть одинаковой трудности. Для изучения памяти разработал три разновидности метода заучивания: метод полного заучивания многократное повторение слогов до полного их безошибочного воспроизведения метод экономии позволял выяснить в какой мере каждое новое повторение способствует запоминанию ранее заученных слогов и метод поправок возможность...
25581. Экспериментальное изучение мышления в Вюрцбургской школе 34 KB
  Экспериментальное изучение мышления в Вюрцбургской школе. В опытах по изучению мышления роль экспериментатора сводилась к регистрации и редакции речевого отчёта испытуемого. Первые экспериментальные исследования в области мышления открывают опыты Марбе и Майера с Орта которые были посвящены изучению психологических особенностей суждения 1901. Поэтому Марбе отнёс мышления к логике.
25582. Сеченов и его роль в естественнонаучной перестройки психологии 33 KB
  Проект развития психологии как самостоятельной науки одновременно с Вундтом был предложен выдающимся отечественным физиологом И. Система взглядов Сеченова представляла собой оригинальную теоретическую программу естественнонаучной перестройки психологии на основе использования объективных методов исследования. Признание рефлекторной природы психического позволило Сеченову поновому посмотреть: на предмет психологии как науки; происхождение психических деятельностей исходный методологический принцип изучения психики; изучать психический...
25583. Вклад Бехтерева в развитие отечественной психологии 29.5 KB
  Вклад Бехтерева в развитие отечественной психологии. Бехтерева являлся разносторонний подход к изучению человека. Бехтерева психофизиологическая проблема и изучение материальной основы психического. По мнению Бехтерева психология должна изучать не только сознание что делает субъективная психология с помощью интроспекции но и бессознательную сферу а также внешние проявления организма так как они являются выражением психической жизни.