Наверное, даже не просто простые часы на микроконтроллере, а даже очень простые. Этот проект на микроконтроллере Attiny2313 наверно можно назвать проектом одного дня, поскольку на создание данных часов с начало и до конца ушло чуть больше одного дня.
Для создания данных часов нам понадобятся:
- Кварцевый резонатор на 16 МГц – 1 шт;
- Микроконтроллер Attiny2313 -1 шт;
- Конденсатор от 22 пф до 27 пф — 2 шт;
- Конденсатор 220 н — 1 шт;
- Стабилизатор 7805 – 1 шт;
- Транзистор КТ817Б – 4 шт;
- Индикатор SA15-11GWA — 4 шт ( можно любой другой с общим анодом);
- Кнопка – 2 шт;
- Резистор 100 Ом – 8 шт;
- Резистор 200 Ом – 4шт;
- Резистор 10 кОм – 1 шт.
- Питание осуществляется от простого надежного стабилизатора на LM317.
Описание работы простых часов на Attiny2313
Микроконтроллер Attiny2313 тактируется кварцевым резонатором с рабочей частотой 16 МГц. В качестве счетчика времени, в схеме микроконтроллера Attiny2313 запущен 16 битный таймер с предделителем 256, сконфигурированный на создание прерывания по достижении счетчиком значения 625. Следовательно, получилось прерывания 100 раз в секунду.
Временной интервал находится в глобальных переменных, и при каждом прерывании необходимо увеличить значение миллисекунд на 1. В том случае если число миллисекунд доходит до 100, то необходимо увеличить на 1 величину секунд, а величину миллисекунд сбросить. И далее в той же последовательности до десятков часов, которые сбрасываются по достижении 24 без прибавления следующего разряда. Часы на микроконтроллере Attiny2313 максимально простые, поэтому они не отображают ни дату, ни переход на зимнее/летнее время и т.д.
Таким образом, получаем величину текущего времени записанного в глобальных переменных. Теперь необходимо вывезти эти значения. Поскольку количество портов микроконтроллера не так много, то используем такую особенность зрения как инерционность. Катоды всех четырех индикаторов часов соединены параллельно, а аноды управляются раздельно, что позволяет в каждый момент времени отобразить цифру на любой индикатор.
Быстро переключая порт B микроконтроллера, к которому подключены катоды и быстро переключая аноды, можем организовать видимость, что отображаются все 4 цифры, несмотря на то, что единовременно работает всего лишь одна. Другими словами, если текущее время 10:43, то выводим цифру 1 на первый индикатор часов, через небольшой интервал времени (порядка 1 мс) выводим цифру 0 на второй индикатор, через 1 мс отображаем 4 на 3 индикатор, спустя 1 мс отображаем 3 на 4 индикатор и снова по кругу.
Кнопки управления часов опрашиваются после каждого очередного цикла отображения (приблизительно 40 раз в секунду), процесс нажатия кнопок снабжен антидребезгом и защелкой в виде флага, что позволяет считать собственно само нажатие, не отвлекаясь на удержание.
Скачать печатку, файл прошивки и исходник (1,2 MiB, скачано: 9 258)

Может быть глупый вопрос, а где 7805 и куда напряжение подается?
Питание Attiny2313: 10 нога — минус; 20 нога — плюс.
Да, на схеме не указан стабилизатор питания, со временем внесу изменения….
Подключение 7805 стандартное. Можно взять вот здесь
Спасибо за схему. Часы работают секунда в секунду, но пришлось поменять местами некоторые подключения индикатора к выводам 12-19.
Можете выложить или скинуть на мыло исходный код устройства?
Здравствуйте. Исходник добавил, перезалил на сервер. Можете скачать
Привет. Что то у меня отстают часики. К сожалению. В час на 1 минуту.
Как можно это поправить??
Можно ли поставить часовой кварц на 32768 Гц? Наверное точнее будет так.
Удивительно, но при использовании atiny2313a у меня почему то, минута переключается через 4 мин. реального времени, чего не может быть. Кварцы пробовал разные. Кондеры на кварце по 20 пик. Монтаж на залипы-близкие дорожки проверил. Чудеса остались.
У Вас скорее всего неправильно выставлены фьюзы. Вместо работы на 16мГц от внешнего кварца, включен фьюз работы от внутреннего генератора на 4мГц.
Здравствуйте.Хочу собрать эти часы. Как выставить фусы?
Уважаемый администратор сайта, не подскажете новичку в радиотехнике, какой конденсатор в 4 пункте в списке деталей? Конденсатор 220нф?
Можно ли использовать at90s2313
bonjour , pouvez vous me donner les renseignement sur les fusible pour l horloge simple merci
А можно в этой схеме сделать изменение и подключить индикатор большого размера, что бы не нагружать порты, куда нужно добавить транзисторы?