Двійкові годинник 1

Ці незвичайні кишеньковий годинник можуть стати оригінальним подарунком. Індикатор часу в них побудований всього на шести одиничних світлодіодах. Секрет в тому, що число годин і число хвилин поточного часу відображаються ними у вигляді двійкових чисел і тільки при натисканні на відповідні кнопки, весь інший час мікроконтролер годин "спить", а індикатор вимкнений, що різко знижує струм, споживаний від літієвого елемента живлення.

Щоб зрозуміти, що таке двійкова система числення, запустимо в комп'ютері наявну в операційній системі Windows програму "Калькулятор". Оскільки в різних версіях системи ці програми різняться, тут будемо розглядати ту, яка входить до складу Windows XP Запустивши програму, знайдіть в її вікні і натисніть мишею екранну кнопку "Вид", потім у випадаючому списку виберіть "Інженерний". Після цього до колишніх найпростішим функцій калькулятора додасться безліч інших, що дозволяють виробляти складні обчислення. Зліва під індикатором з'явиться перемикач системи числення: "Hex" (шістнадцяткова), "Dec" (десяткова), "Oct" (восьмерична) і "Bin" (двійкова). Відразу після запуску програми він знаходиться в положенні "Dec". Це означає, що всі вихідні дані для обчислень і їх результати будуть представлятися в звичній для нас десятковій системі числення.

Двійкові годинник 1

Наберіть для прикладу число 58, натиснувши на відповідні цифрові кнопки. Якщо тепер перевести перемикач в положення "Bin", клацнувши мишею по відповідній написи, то у вікні результату цифри 58 зміняться на 111010. Це те ж саме число, представлене в двійковій системі числення. Щоб переконатися в цьому, можна скористатися таблицею, яка б пояснила принцип формування двійкових і десяткових чисел. Двійкові розряди, на відміну від десяткових, можуть приймати тільки два значення - 0 і 1. Ваги двійкових розрядів збільшуються справа наліво в два рази, а не в 10 разів, як в десятковій системі.

Двійкова система числення широко використовується в цифрових пристроях, оскільки дозволяє обійтися простими логічними елементами, які відрізняються лише два значення - 0 і 1. Сьогодні багато фірм випускають такий годинник. Щоб переконатися в цьому, досить пошукати в Інтернеті фразу "Годинники бінарні".

Але для радіоаматора набагато цікавіше не купити, а зробити виконавчі годинник своїми руками. У запропонованій конструкції всього три керуючі кнопки: включення індикації поточного години, хвилин і корекції часу - точної установки моменту початку години. Годинники захищені від збоїв, викликаних випадковими натисканнями на кнопку корекції. Вони побудовані на широко відомих і часто застосовуваних радіоаматорами елементах.

Двійкові годинник 1


Схема годин показана на рис. 1. Відлік часу веде і виводить його на світлодіоди мікроконтролер DD1 PIC16F628A. Його тактова частота 32768 Гц стабілізована низькочастотних "вартовим" кварцовим резонатором ZQ1. Живиться пристрій від літієвого елемента G1 CR2032 напругою 3 В. Як відомо, такі елементи відрізняються мінімальної саморазрядка і здатністю працювати при низькій температурі. Конденсатор С1 пригнічує високочастотні імпульси. Завдяки низькій тактовій частоті мікроконтролер споживає невеликий струм, що робить можливою тривалу експлуатацію годин без заміни елемента живлення.

До виходів мікроконтролера RA0- RA4, RB5, RB6 через обмежувальні резистори R1-R7 підключені світлодіоди HL1-HL7. Шість з них (HL2- HL7) показують час, на них можна відобразити числа від 0 (все вимкнені) до 63 (всі включені). Це дозволяє вивести по черзі число годин від 0 до 23 і хвилин від 0 до 59. Близько світлодіодів вказані ваги двійкових розрядів, яким вони відповідають.

Включають індикацію годин або хвилин відповідно кнопками SB1 і SB2, з'єднаними з входами RB0 і RB1 мікроконтролера. Так як індикація включається всього на кілька секунд, протягом яких кнопка під час натискання, енергія елемента живлення витрачається економно, він служить тривалий час. Кнопкою SB3, підключеної до входу RB7 мікроконтролера, проводять коригування часу. Це слід робити тільки на початку чергового години, так як в процесі коригування лічильники хвилин і секунд обнуляються.

Світлодіод HL1, утримуючи кнопку SB1 або SB2 спалахує кожну секунду. Він служить індикатором активності пристрою і дозволяє переконатися в його працездатності при нульових значеннях годин або хвилин. Якби його не було, виникала б неприємна ситуація, коли при кнопці жоден з світлодіодів НЕ подає "ознак життя".

Двійкові годинник 1


Висновок 4 мікроконтролера, зазвичай службовець входом його установки в початковий стан MCLR, в даному випадку налаштований як звичайний дискретний вхід RA5. Початкова установка при включенні харчування проводиться внутрішніми засобами мікроконтролера. Для виключення випадкових перешкод вхід RA5 з'єднаний із загальним проводом. Решта лінії порту A програма конфигурирует як виходи.

Лінії RB0, RB1, RB7 порту B вона конфигурирует як входи і підключає до них внутрішні резистори, що підтримують на цих входах високий логічний рівень (при відпущених кнопках). Решта лінії порту B конфігуруються як виходи. На завершення процедури ініціалізації програма по черзі включає на секунду кожен світлодіод. Це дозволяє оцінити правильність монтажу і переконатися в працездатності програми.

Рахунок часу в мікроконтролері DD1 веде вбудований таймер T1. Програма налаштовує його так, що він кожну секунду генерує запит переривання. Підпрограма-обробник переривання формує в оперативній пам'яті мікроконтролера значення поточного часу - секунди, хвилини і годинник.

Оброблювач переривання при кожному виклику перевіряє також логічні рівні на входах RB0, RB1 і RB7, що залежать від стану кнопок SB1-SB3. При низьких рівнях на входах RB0 або RB1 включається відповідно індикація годин або хвилин. При низькому рівні на вході RB7, що свідчить про кнопці SB3, і одночасно низькому рівні на одному з входів RB0 або RB1 здійснюється коректування часу. Так зроблено для зменшення ймовірності збою ходу годинника в результаті випадкового натискання на кнопку SB3.

Коригування часу проводиться за допомогою кнопки SB3. При її виконанні значення хвилин і секунд обнуляються. Якщо хвилин було менше 30, число годин не змінюється, в іншому випадку воно збільшується на одиницю. Якщо кнопку SB3 утримувати, то кожну секунду до числа годин буде додаватися одиниця. Це буває необхідно при першій установці поточного часу після включення живлення, а також при переходах з літнього на зимовий час і назад.

Для індикації секунд в програмі необхідно знайти місце, де обробляється стан кнопок, і додати там видачу на індикацію значення, що зберігається в регістрі-лічильнику секунд. Щоб ввести режим секундоміра, потрібно використовувати додатковий регістр. При двох натиснутих кнопках його вміст слід кожну секунду збільшувати на одиницю і виводити на індикацію. Змінений текст програми слід оттранслировать в середовищі MPLAB, а отриманий HEX-файл завантажити в пам'ять мікроконтролера.

Годинники зібрані на фрагменті макетної плати, як показано на рис. 2. Резистори (для поверхневого монтажу) змонтовані на звороті плати. Світлодіоди FYL-3014SRC можна замінити іншими. Щоб переконатися в придатності світлодіода, підключіть його до джерела напруги 3 В через резистор 390 Ом і оціните яскравість світіння.

Двійкові годинник 1

Конденсатори, резистори, кнопки - будь-які малогабаритні. Бажано, щоб кнопка SB3 була з укороченим штовхачем. Його кінець не повинен підніматися над поверхнею корпусу годин і навіть бути втоплений, щоб натиснути на нього було можна тільки яким-небудь загостреним предметом. Таке конструктивне рішення служить додатковим до програмної захистом від випадкового натискання на кнопку.

Схожі статті