logo
Metodichka_Modul_6_red

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

  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