Дуже простий пристрій Якщо натиснути першу кнопку, то послідовно включаються гірлянди 1-2-3 з інтервалом в одну секунду потім, якщо натиснути другу кнопку, то гірлянди вимикаються в послідовності 3-2-1 Програма для мікроконтролера такого пристрою вкрай проста:

Програма, зібрана що називається «в лоб», проста: опитуємо кнопку, зєднану зі входом В0, маючи на увазі, що вона підключає висновок до землі, і, якщо кнопка натиснута, то включаємо послідовно три виводу

Натискаючи другу кнопку, позначену як backward, Запускаємо зворотний процес виключення з інтервалами в одну секунду

Все це, звичайно, в нескінченному циклі while

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

Зібрати таку програму, оттранслировать її в hex-файл і завантажити в мікросхему – справа, швидше, хвилин, ніж годин

Створюючи таку просту програму, можна продумати кілька варіантів виконання, що ми і зробимо нижче

Рис 361 Програма перемикача гірлянд

У першу чергу використовуємо прийом програмування, який виявляється корисний, коли ви не знаєте, наприклад, яке значення має (в даному випадку) мати пауза Чи достатньо однієї секунди Може бути, дві секунди Або три

Виправити всі елементи Затримка теж не найскладніша робота, але можна уникнути і її Створимо нову змінну, яку назвемо pause Привласнимо їй значення на початку програми:

У даному випадку особливого виграшу можна і не відчути Але якщо ви використовуєте паузу раз десять, якщо вибираєте її кілька разів, то, погодьтеся, зручніше змінити значення тільки в одному місці

Рис 362 Використання змінної для завдання значення

Вид програм, що виконують однакову роботу, може бути різним Вибір того чи іншого підходу визначається багатьма факторами: обсяг програми, наявність готових модулів програми, швидкодія програми і тд Ось ще один різновид попередньої програми:

Рис 363 Ще один різновид програми

Значення, які ми відправляємо в порт А, ми у вигляді даних записуємо в масив output[i] Масив – це набір значень, який, як правило, зберігається в послідовних комірках памяті, доступ до яких здійснюється за індексом масиву (він у квадратних дужках) У програмі Flowcode використовується назва рядок (дані типу STRING), Але це не змінює сутності При створенні змінної типу STRING ми вказуємо кількість елементів у масиві, пізніше ми можемо ці елементи прописати в масив: output[0] = 0, output[1] = 1 і тд Індекс, зауважте, починається з нуля Підготувавши все для виконання програми, ми після натискання першої кнопки переписуємо значення з масиву в порт, змінюючи індекс масиву

Перший елемент програми потрібен для того, щоб включити внутрішні що підтягують резистори Його можна було записати і так: option_reg = option_reg & 0x7F

Я використовував інше написання операції, щоб нагадати, в мові Сі є багато скорочень, які прискорюють написання тексту В даному випадку це не потрібно, але памятати про це слід

Якщо не підтягнути входи контролера до плюса за допомогою резисторів, то входи знаходяться у невизначеному стані, а перешкоди можуть ці входи довільно переключати з одного стану в інший Якщо входи НЕ підтягнуті до плюса харчування (або до землі), то при перевірці в програмі ISIS (Proteus) ви побачите, що квадратики, що ілюструють стан входів, залишаються сірими, показуючи – не забудьте надати достовірності входам

Якби це був реальний перемикач гірлянд, то після послідовного запалювання гірлянд, після паузи в кілька секунд, можна було також послідовно гасити гірлянди Кнопки, мабуть, були б зайвими Але такий варіант мені зручніше для того, щоб показати, як можна зробити такий же пристрій без мікроконтролера

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012