В даному проекті ми розробимо і зберемо цифровий годинник на мікроконтролері. Як каменю будемо використовувати мікроконтролер ATMEGA 16 і 6 семи сегментних індикатора (далі просто індикатори або дисплеї). Код програми, розроблений під ATMEGA 16, може з легкістю використовуватися на інших каменях, таких як ATMEGA 32, ATMEGA 8515 та інші.
Отже, наші цифровий годинник працюють таким чином. Коли напруга подано індикатори виставляються в нулі наступного виду «00:00:00» відповідно години, хвилини і секунди. Для установки часу будемо використовувати два кнопкових вимикача. Кнопка S 1 необхідна для установки хвилин, при її натисканні відбувається інкремент змінної містить хвилини на 1, при досягненні значення в 59, відбувається її скидання і відлік починається спочатку, тобто з нуля.
Аналогічним чином працює кнопка S 2, тільки використовується для установки змінної відповідає за годинник.
Схема годин на мікроконтролері
На малюнку нижче представлена наша схема, особливістю схеми є те, що управління всіма індикаторами здійснюється за допомогою одного порту PORTB. З його допомогою по черзі здійснюється запис однієї цифри в індикатор. За почергове включення, а саме за динамічну індикацію відповідає PORTC. Що таке динамічна індикація було сказано раніше. Важливо відзначити що всі дисплеї з загальним катодом, тому для включення того чи іншого дисплея потрібно подати на його загальний висновок сигнал низького стану, або просто «0».
Важливо! Для правильної роботи цифрового годинника потрібно щоб внутрішній генератор каменю був налаштований на частоту в 4 Мгц.
Код програми годин
Нижче представлений код для годин на мікроконтролері ATMEGA16. Програма була написана з використанням середовища AVR Studio 5. Ще раз повторю, що дані годинник працює від внутрішнього тактового генератора. Який має певну похибку, тому період однієї секунди може змінюватися. І вішати їх на стіну чи ні і звіряти по ним час вирішуйте самі.