Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_Modul_6_red.doc
Скачиваний:
3
Добавлен:
01.09.2019
Размер:
888.32 Кб
Скачать

Тема 2: Управління блоком світлодіодів

Мета: вивчити архітектуру та принципи програмування мікроконтролера AVR АТMEGA2561 на прикладі розробки програми для керування блоком світлодіодів.

Для керування рівнями напруги на вихідних лініям мікроконтролеру можна застосовувати алгоритми маркування або, безпосередньо, команди для роботи з бітами (cbi, sbi). Звернення до регістрів портів введення/виведення на мові Assembler здійснюється за допомогою команд in та out. Компілятор мови С дозволяє використання ідентифікаторів регістрів введення/виведення: DDRX – регістр керування напрямком передачі даних, PORTX регістр виведення даних, PINX – регістр введення даних, де Х – позначення порт введення/виведення.

Перед початком виконання практичної частини лабораторної роботи проводиться експрес–контроль знань за принципами функціонування мікроконтролера AVR ATMEGA 2561, системою команд і можливостями програмного управління світлодіодами, які безпосередньо підключаються до зовнішніх ліній порту введення/виведення. При підготовці до лабораторної роботи необхідно скласти попередній варіант лістингу програми, у відповідність з індивідуальним завданням.

Завдання: розробити в середовищі програмування Code Vision AVR програму на мові С для мікроконтролера AVR ATMEGA 2561, що керує блоком з восьми світлодіодів.

Порядок виконання завдання:

  1. Увімкнути лабораторний макет.

  2. Запустити компілятор Code Vision AVR.

  3. Створити порожній проект.

  4. Створити файл ресурсу для коду програми і підключити його до проекту.  

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

  6. Виконати компіляцію (натиснувши клавішу F9) початкового модуля програми і усунути помилки, отримані на даному етапі.  

  7. Налаштувати параметри програматора.

  8. Створити завантажувальний модуль програми (натиснувши комбінацію клавіш Shift+F9) і виконати програмування мікроконтролера.

  9. Перевірити працездатність завантаженої в мікроконтролер програми і показати результати роботи викладачеві.

  10. У разі некоректної роботи розробленої програми, виконати апаратне скидання мікроконтролера, провести відладку початкового модуля програми і наново перевірити функціонування програми, повторивши виконання пункту 9.

Приклад виконання завдання. Розробити програму, що виконує в нескінченному циклі паралельне включення і виключення 1–го, 3–го, 6–го і 8–го світлодіодів з тривалістю свічення 2 с і часом знаходження в погашеному стані 1 с.

Рішення. У лабораторному макеті блок, що складається з 8-ми світлодіодів, підключений до порту D. При цьому необхідно враховувати, що нумерація світлодіодів починається з 1, а не з 0. Програмне керування світлодіодами можна забезпечити, записуючи у відповідні розряди регістра PORTD порту D рівні “логічного нуля” (запалити світлодіод) або “логічної одиниці” (погасити світлодіод) згідно алгоритму, приведеному на рис. 1.13.

Рисунок 1.13 Алгоритм програми керування світлодіодами

Повний текст початкового модуля програми з докладними коментарями приводиться нижче:

#include <mega2561.h> //Підключити заголовний файл mega2561.h;

#include <delay.h> //підключити заголовний файл delay.h;

main() { //основна частина програми;

DDRD=0xFF; //налаштувати порт D на виведення даних;

while (1) { //створити цикл з нескінченним числом ітерацій;

PORTD=0b11111111; //погасити всі світлодіоди;

delay_ms(1000); //встановити тимчасову затримку 1 с;

PORTD=0b10100101; //увімкнути 1–й, 3–й, 6–й і 8–й світлодіоди;

delay_ms(2000); } //встановити тимчасову затримку 2 с;

} //завершуюча операторна дужка програми;

*Контрольні запитання :

  1. Система команд мікроконтролера AVR ATmega2561.

2. Синтаксис та основні оператори мови С.

Лабораторна робота 3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]