При разработке кода устройства, автором была использована модифицированная версия алгоритма Брезенхама. Эта система даёт простой, быстрый способ генерировать достоверные периоды на микроконтроллере PIC с любой тактовой частотой. Особенно для односекундных событий, таких как простые часы. Имеются два варианта прошивок микроконтроллера PIC16F628A, для семисегментных индикаторов с общим катодом(CC56-21SRWA) и для индикаторов с общим анодом(TOF-5462BS). Для настройки времени используются две кнопки: увеличение минут и увеличение часов.

Схема устройства

Простые и точные часы на PIC16F628 - схема


Архив для статьи "Простые и точные часы на PIC16F628A"
Описание:

Файл прошивки микроконтроллера

Размер файла: 16.09 KB Количество загрузок: 1 149 Скачать

Комментарии  

0 #1 Сергей Николаевич 23.10.2018 13:05
Через некоторое время пропадает индикация десятков часов. При нажатии на кнопку - появляются. CC56-21 это общий не анод, а катод. Надеюсь исправите.
Сообщить модератору
0 #2 kan 01.09.2019 15:59
Схема рабочая, стабильно работает. Но желательно оставить только одну точку-"разделит ель", между часами и минутами.
Остальные убрать. "Погоняю" на время-отпишусь. Брезенхем и Вы - молодцы!
Сообщить модератору
0 #3 kan 05.09.2019 10:34
Прошивка с ошибкой! Надо исправить биты конфигурации. При программировани и МК нажмите “Configuracion» и установите 4 младшие бита (справа): 01001. (работа с кварцем). Для удобства рекомендую сделать кнопку сброса в ноль. Для этого с 4 ноги: 1)на плюс резистор 10-15 к, а 2) кнопку на землю. А биты “Configuracion» . установите : 101001 (0-5 биты). Вот теперь гуд.
Сообщить модератору
+1 #4 Andryu 30.11.2019 13:25
Часы работают очень точно. Но почему-то после 9:59 наступает ночь 0:00. Если выставить 10:01, то часы будут исправно работать до 9:59 следующего дня. :-?
Сообщить модератору
0 #5 Alekss 06.07.2020 20:58
Собрал часы (блок питания импульсный) с рекомендациями kan. Работают, но за четверо суток отставание на 8 секунд. С чем это может быть связано?
Сообщить модератору
0 #6 Neuromancer 18.01.2021 09:59
Alekss, потому что, при всем уважении к автору проекта, Брезенхем в часах без коррекции - это попытка воссоздать этакого "сферического коня в вакууме".
Распространенные в продаже кварцы не идеальны, а алгоритму Брезенхема требуется кварц ровно (!) того номинала, под который делался расчет в программе (в данном случае идеальные 4000000 Гц), иначе все равно будет накапливаться некоторая погрешность. Поэтому обязательно (!) нужна программная корректировка хода под каждый конкретный кварц, которой тут, к сожалению, нет.
Сообщить модератору
0 #7 ПАН 20.01.2021 16:02
Алгоритм Брезенхама при наличии 16 разрядного таймера уже ненужен. Точность зависит от погрешности кварца, величину коррекции можно было бы считывать из флеш памяти. Без будильника, без резервного питания - очередная недоделка. ;-)
Сообщить модератору