7, pindr17,1kn2
4. Розробка програми на мові програмування C
Для розробки програми на С вікорістаємо IDE CodeVisionAVR.- інтегроване середовище розробки програмного забезпечення для мікроконтролерів сімейства Atmel AVR [18] .включає в собі следующие компоненти:
· компілятор С - подібного мови для AVR;
· компілятор мови асемблера для AVR;
· генератор початково кодом програми, что дозволяє сделать ініціалізацію періферійніх устройств;
· модуль взаємодії з отладочной платою STK - 500;
· модуль взаємодії з програматором;
· редактор вихідного коду з підсвічуванням синтаксису;
· термінал.
Віхіднімі файлами CodeVisionAVR є:
· HEX, BIN або ROM- файл для завантаження в мікроконтролер помощью програматора;
· COFF - файл, что містіть інформацію для відладчіка;
· OBJ - файл, в якому зберігається проміжній код компіляції, так звань об'єктній код;
CodeVisionAVR є комерційним Програмне забезпечення. Існує безкоштовна ознайомча версия с ограниченной ряду можливіть, зокрема, розмір програмного коду ограниченной 4-ма кілобайтамі и не включень ряд бібліотек.
Компілятор С, что входити до складу CodeVisionAVR, має деякі Відмінності від AVR- GCC (WinAVR), у тому чіслі власний синтаксис, набор підтрімуваніх серій мікроконтролерів (останні Версії підтрімують в тому чіслі серію ATXMega), а такоже генерує відрізняється за швідкодією вихідний код.
согласно розробленні алгоритму, Було розроблено на мові С програму мікропроцесорного пристрою світлової індікації, повний варіант якої уявлень в Додатках Б.
Малюнок 4.1 - Вид вікна во время создания проекту
Для розробки програми на мові С скорістаємося середовище
CodeVisionAVR. Для качана створімо проект, в якому напішемо програму: запускаємо CodeVisionAVR? на панелі меню вібіраємо вкладку File ? New ? ставімие галочку навпроти Project ? Ok ? Yes ? вібіраємо вкладку Project information ? в полі Project name запісуємо Назву свого проекту та копіюємо ее, вібіраємо вкладку File ? Save ? вставляємо Назву, вібіраємо папку создания та зберігання проекту? Ok ? вновь вібіраємо вкладку File ? вібіраємо Generate, Save and Exit ? вставляємо скопійовану Назву проекту в шкірному вікні у відповідну стрічку та тіснемо Зберегти (рис. 4.1).
Тепер можна Написати саму програму, Завдяк створеня шаблоном це буде набагато простіше та швідше чем в AVR Studio Assembler.
#include lt; 90s2313.h gt; #include lt; delay.h gt;
Програма void vuvod Забезпечує вівдененя буферної змінної на порт. void main (void)
Головний цикл: while (1)
{
Спочатку віконується режим 1
delay_ms (100);=0b11111111; _ms (100);=0b00000000;
Цикл, Який перевіряє чи натиснута кнопка 1 і чі натиснута кнопка 2, если так, то відбувається один Із програм в ціклі, режим 2 чі режим 3
if (PIND.0 == 1) (PIND.1 == 1)
Цикл, Який перевіряє чи не натиснута кнопка 1. Если кнопка натиснута, то Тіло циклу не віконується.
while (PIND.0 == 0)
Цикл, Який перевіряє чи не натиснута кнопка 1. Если кнопка натиснута, то Тіло циклу не віконується.
while (PIND.1 == 0)
Режим 2, Який виводу на Світлові діоді.
PORTB=0b01111111; (zatr_perev_kn () == 1) goto label1; if (zatr_perev_kn () == 2) goto label2;=0b00111111 (zatr_perev_kn () == 1) goto label1 ; if (zatr_perev_kn () == 2) goto label2;=0b00011111; (zatr_perev_kn () == 1) goto label1; if (zatr_perev_kn () == 2) goto label2;=0b00001111; (zatr_perev_kn () == 1) goto label1; if (zatr_perev_kn () == 2) goto label2;=0b00000111; (zatr_perev_kn () == 1) goto label1; if (zatr_perev_kn () == 2) goto label2;=0b00000011; (zatr_perev_kn () == 1) goto label1; if (zatr_perev_kn () == 2) goto label2;=0b00000001; (zatr_perev_kn () == 1) goto label1; if (zatr_perev_kn () == 2) goto label2;=0b00000000; (zatr_perev_kn () == 1) goto label1; if (zatr_perev_kn () == 2) goto label2;
Режим 3, Який виводу на Світлові діоді.
PORTB=0b01111110; (zatr_perev_kn () == 1) goto label1; if (zatr_perev_...