м
Отже, схема у нас є. Тепер потрібно приступати до розробки програми. Розробка будь-якої програми починається з розробки алгоритму. p align="justify"> Визначення. Алгоритм - це послідовність дій, яку повинен виробити наш мікроконтролер, щоб досягти необхідного результату. Для простих завдань алгоритм можна просто описати словами, для більш складних завдань алгоритм малюється в графічному вигляді. p align="justify"> У нашому випадку алгоритм такий: після операцій початкового настроювання портів мікроконтролер повинен увійти в безперервний цикл, в процесі якого він повинен опитувати вхід, підключений до нашої кнопці, і залежно від її стану керувати світлодіодом. Опишемо це докладніше. p align="justify"> Операції початковій налаштування:
В· встановити початкове значення для вершини стека мікроконтролера;
В· налаштувати порт В на вивід інформації;
В· подати на вихід РВ.0 сигнал логічної одиниці (згасити світлодіод);
В· конфігурувати порт D на введення;
В· включити внутрішні навантажувальні резистори порту D.
Операції, що становить тіло циклу:
В· прочитати стан молодшого розряду порту PD (PD.0);
В· якщо значення цього розряду дорівнює одиниці, вимкнути світлодіод;
В· якщо значення розряду PD.0 дорівнює нулю, включити світлодіод;
В· перейти на початок циклу.
2.5 Програма на Асемблері
Для створення програм ми використовуємо версію Асемблера, запропоновану розробником мікроконтролерів AVR - фірмою Atmel. А також скористаємося програмним комплексом В«AVR StudioВ», розробленим тією ж фірмою і призначеним для створення, редагування, трансляції та налагодження програм для AVR на Асемблері. p align="justify"> А зараз наше завдання - навчитися створювати програми. Вивчення мови буде відбуватися таким чином. У методичці буде приводитися готовий текст програми для кожного конкретного завдання, а потім докладно описувати всі його елементи і пояснювати, як програма працює. p align="justify"> Текст можливого варіанту програми, який реалізує поставлену вище завдання, приведений в лістингу 2.1. Перш, ніж ми приступимо до опису даного прикладу, хотілося б дати декілька загальних понять про мову Асемблер. p align="justify"> Програма на Асемблері являє собою набір команд і коментарів (іноді команди називають інструкціями). Кожна команда займає одну окрему рядок. Їх допускається перемежати порожніми рядками. Команда обов'язково містить оператор, який виглядає як ім'я виконуваної операції. p align="justify"> Деякі команди складаються тільки з одного оператора. Інші ж команди мають один або два операнда ( параметра). Операнди записуються в тому ж рядку відразу після оператора, через пропуск. Якщо операнда два, їх записують через кому. Так, у рядку 6 нашої програми записана команда завантаження константи в регістр загального призначення. Вона складається з оператора ldi і двох операндів temp і RAMEND. p align="justify"> У разі необхідності перед командою допускається ставити так звану позначку. Вона складається з імені мітки, що закінчується двокрапкою. Мітка служить для іменування цього рядка програми. Потім це ім'я використовується в різних командах для звернення до поміченої рядку. p align="justify"> При виборі імені мітки необхідно дотримуватися таких правил:
В· ім'я має складатися з одного слова, який містить тільки латинські букви і цифри;
В· допускається також застосовувати символ підкреслення;
В· першим символом мітки обов'язково повинна бути буква або символ підкреслення.
Рядок 16 нашої програми містить мітку з ім'ям main. Мітка не обов'язково повинна стояти в рядку з оператором. Допускається ставити мітку в будь-якому рядку програми. Крім команд і міток, програма містить коментарі. p align="justify"> Визначення. Коментар - це спеціальний запис в тілі програми, призначена для людини. Комп'ютер в процесі трансляції програми ігнорує всі коментарі. Коментар може займати окремий рядок, а може стояти в тому ж рядку, що й команда. Починається коментар з символу В«крапка з комоюВ». Все, що знаходиться після крапки з комою до кінця поточного рядка програми, вважається коментарем. p align="justify"> Якщо у вже готовій програмі ви поставите крапку з комою на по...