Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦП та МП лр2new - Програмування портів.doc
Скачиваний:
9
Добавлен:
30.04.2019
Размер:
2.73 Mб
Скачать

Лабораторна робота №2 Дослідження способів програмування портів мікроконтролерів avr

2.1. Навчальні питання

1. Дослідження методики створення та відладки програм прошивки мікроконтролерів за допомогою програми AVR Studio.

2. Запрограмувати пристрій керування світлодіодними індикаторами за допомогою кнопок.

2.2. Навчальна мета

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

2.3. Теоретичні відомості

Програмування в середовищі AVR Studio4. Для програмування AVR-мікроконтролерів існує немало засобів розробки, проте, найбільш популярним, поза сумнівом, слід визнати пакет AVR Studio. Є ряд причин такої популярності – це безкоштовний пакет, розроблений фірмою ATMEL, він об’єднує в собі текстовий редактор, асемблер і симулятор. Пакет AVR Studio також використовується спільно з апаратними засобами відладки.

Дистрибутив пакету і Service Pack можна завантажити з сайту www.atmel.com або одержати компакт-диск з цим дистрибутивом у російського дистриб’ютора фірми ATMEL.

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

- створення проекту;

- завантаження файлу;

- компіляція;

- завантаження hex-коду в мікроконтролер.

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

Створення проекту починається з вибору рядка меню Project\New Project. У вікні “Create new Project”, що відкрилося треба вказати ім’я проекту англійським алфавітом та цифрами, (у нашому випадку – sample1) та вказати шлях куди зберегти проект. Це повинна бути створена папка, наприклад, Е:\lab2. Після натиснення кнопки “Next” відкривається вікно “Select debug platform and device”, де вибирається налагоджувальна платформа (AVR Simulator) і тип мікроконтролера.

Після натиснення кнопки “Finish” нашому погляду предстають власне робочі вікна пакету AVR Studio, поки порожні.

Слід в центральне вікно помістити початковий текст програми. Це можна зробити двома способами, або набрати весь текст безпосередньо у вікні редактора, або завантажити вже існуючий файл.

Компіляція проекту проводиться командою Build and run в меню Build або натисненням кнопки F7. У AVR Studio для виведення повідомлень про проходження асемблювання існує вікно Build, рис. 2.1.

Рис. 2.1.

Після асемблювання у вікні Build з’являється повідомлення: Assembly complete, хх errors, хх warnings. Якщо асемблювання закінчилося з помилками у вікні Build з’явиться список цих помилок, перейти на рядок помилку, що містить, можна кликнувши на на рядку з цим повідомленням у вікні.

Після того, як програма скомпілювалася без помилок, можна просимулювати її роботу. Після натискання Build and Run з’явиться жовта стрілка, що вказує на поточний крок симуляції.

Команди відладки:

1. Run – Пуск (F5) – запуск виконання програми

2. Reset – Скидання (SHIFT+F5) – зупинка процесу трасування, курсор переміщається на початок виконуваної програми

3. Break – Перервати (CTRL+F5) – перервати виконання програми

4. Step Into – Покрокова відладка (F11) – найкорисніша команда, результат роботи мікроконтролера видно в лівій панелі периферії, а це порти введення/виводу, таймери/лічильники, прапори системних регістрів.

5. Run to Cursor – Запустить з позиції курсору (CTRL+F10) – перехід на позицію курсору, симуляція продовжується з цього місця

Після відладки натиснути Save.

Ми вже одержали вихідний файл у форматі .hex, який вже можна завантажувати в мікросхему і спостерігати перемигування світлодіодів.

Пакет AVR Studio містить могутні засоби для перегляду і редагування стану внутрішніх регістрів і портів введення/виводу відладжуваного мікроконтролера, а також час, виконання програми. Доступ до них здійснюється через вікно “I/O”.

Вікна праворуч показують вміст пам’яті програм, даних, портів введення/виводу і незалежного ПЗП. Пам’ять можна проглядати в HEX шістнадцятковому, двійковому або десятковому форматах. Вміст пам’яті можна змінювати під час зупинки програми.

4. I/O View Показує вміст різних регістрів введення/виводу: EEPROM, USART, таймери і ін.

5. Project window – вікно показує назву файлів тих, що входять в проект.

6. Message window – вікно показує повідомлення від AVR Studio.

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

Основні асемблерні команди мікроконтролерів AVR.

Для вивчення азів програмування мікроконтролерів AVR на асемблері необхідно розуміти значення асемблерних мнемонік. У новітніх мікроконтролерах AVR сімейства MEGA доступно близько двох сотень операцій, і майже кожна з команд виконується мікроконтролером за один такт, за виключення команд галуження і апаратного множення.

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

Регістри введення/виводу:

CBI – скидання біта порту

SBI – установка балка. «1» біта порту

IN –загрузка значення з порту в регістр

OUT – завантаження значення в регістр

SBIC – пропуск наступної команди, якщо біт порту скинутий

SBIS - пропуск наступної команди, якщо біт порту встановлений

Виклики:

CALL –абсолютний виклик

RCALL – відносний виклик

RET – повернення з підпрограми

RETI – повернення з переривання, прапор дозволу переривань I «жорстко» встановлюється

JMP – абсолютний перехід

RJMP – відносний перехід

BRBC – перехід, якщо біт регістра SREG скинутий

BRBS – перехід, якщо біт регістра SREG встановлений

SBRC – пропустити наступну команду, якщо біт регістра скинутий

SBRS – пропустити наступну команду, якщо біт регістра встановлений

Робота із стеком:

PUSH – зберегти регістр в стеку

POP – витягання регістра із стека

Важливі команди:

NOP – команда, яка нічого не робить

CLI – заборонити переривання

SEI – вирішити переривання

CP – порівняти значення двох регістрів загального призначення

CPI – порівняти значення регістра з константою

LDI – завантажити константу в регістр загального призначення

CLR – очистити регістр загального призначення