Опис

Дані годинник з будильником засновані на мікросхемі годин реального часу, що дозволяє їм працювати від резервного джерела живлення при відсутності основного. Заданий час будильника і режим роботи зберігається в незалежній пам’яті мікроконтролера. Режим відображення – 24 годинний. Містять імітацію «цокання» Індикація часу і режимів роботи здійснюється за допомогою світлодіодних індикаторів.

Принцип роботи

Основою даного годинника є мікросхема DS1307 – годинник реального часу, обмінюється інформацією з керуючим контролером за допомогою I2C інтерфейсу. Індикація часу здійснюється через 4 7-та сегментні індикатора, що працюють в динамічному режимі. Введення і коректування часу здійснюється 5-ма кнопками: «+ хвилини», «+ годинник», «установка», «будильник» і «скидання». Звуковий сигнал будильника виводиться через стандартний пьезоізлучатель і представляє з себе сигнал частотою 1кГц з секундними паузами.

В якості керуючого мікроконтролера був обраний Atmega48 з причини його доступності та наявності необхідної периферії на борту (навіть з надлишком). Годинник реального часу DS1307 підключені до апаратних виходів I2C керуючого мікроконтролера. Для роботи DS1307 в автономному режимі (у разі відключення живлення головного контролера) використовується літієва батарейка резервного живлення на 3V, ресурсу якої вистачить на кілька років через низький енергоспоживання мікросхеми.

Розглянемо докладніше керуючу програму:

Програма працює за принципом Прапоровий-таймерного автомата: всі стани та події представлені у вигляді відповідних прапорів, що виконуються в перериваннях відповідного таймера 1с, 1мс і 263.17мс. Програма використовує 2 апаратних таймера.

Опитування часовий мікросхеми і натискання кнопок здійснюється з інтервалом 263.17мс. Інтервал 1мс служить для формування звукового сигналу дзвінка, а 1с – для його модуляції. Секундний інтервал також управляє миготінням точки у 2-му розряді індикатора, що розділяє години та хвилини і також службовцям формуванням «цокання».
Розглянемо принципову схему годин.

Позначення і номінали:
S4 – Збільшення годин
S3 – Збільшення хвилин
S2 – Установка
S1 – Включення будильника
S5 – Скидання

R6-R10 — 10k
R1-R5 – п’ятсот десяту

Напруга живлення – 5 вольт.

Налагодження та використання

Правильно зібрані годинник додаткового налаштування не потребують. Необхідно лише встановити поточний час і будильник.
Установка поточного часу здійснюється таким чином:
1) Кнопками S1 і S2 встановити поточний час (точка між розрядами при цьому не блимає)
2) Запустити годинник кнопкою S3
Установка будильника:
1) Натиснути S3 і переконатися в тому, що загорілася точка в 1-му розряді
2) Встановити час дзвінка кнопками S1 і S2
3) Включити дзвінок кнопкою S4
Додаткові можливості:
Включити цокання – утримуючи S4 натиснути S2 до появи характерних звуків. Відключається так-же.
Відображення хвилин і секунд – утримуючи S4 натиснути S1. Якщо після цього натиснути S3 відбудеться скидання секунд у 00. Повернення – та-ж комбінація.

Додаток: Вихідний код (на асемблері) + hex для мікроконтролера atmega48 + модель в Proteus.

Фото та відео годин

Годинники зібрані в корпусі з під непрацююче «електроніки».

Джерело: habrahabr.ru