В этом новом проекте снова используется микроконтроллер PIC16F628A . Цель проекта – создать простые цифровые часы с 7-сегментным светодиодным дисплеем. У часов нет дополнительных функций, таких как будильник, отображение секунд и даты. Однако их можно добавить в код программы.
В качестве микросхемы часов реального времени (RTC) выбрана микросхема DS1307. В качестве 7-сегментного светодиодного дисплея использован Kingbright CC56-21SRWA.
Принципиальная схема цифровых часов
Микроконтроллер работает от внутреннего генератора на частоте 4 МГц, что позволяет сэкономить 2 дополнительных контакта. Вывод сброса (MCLR) используется в качестве входа для одной из кнопок.
Все сегменты светодиодного индикатора (анод) подключены к порту PORTB, а катоды подключены к порту PORTA. Микросхема RTC также подключена к порту PORTA.
Схема предельно проста, и для быстрого тестирования была собрана на макетной плате.
Все заработало, как и ожидалось. Частота мультиплексирования (обновления цифр) составляет около 53 Гц, видимого мерцания не наблюдается. Из-за мультиплексирования цифры получились более тусклые, и для компенсации этого ток через сегменты должен быть немного выше.
Было протестировано с разными значениями сопротивления токоограничивающих резисторов R1-R7. С сопротивлением ниже 220 Ом микроконтроллер начинает плохо себя вести — некоторые цифры начинают мерцать. Если сопротивление 220 Ом и выше все вроде работает нормально.
Две точки посередине подключены к выводу SQW DS1307. Этот вывод настроен как выходной сигнал прямоугольной формы с частотой 1 Гц. Данный выход с открытым стоком, поэтому для работы он должен иметь подтягивающий резистор.
Часы имеют две кнопки для настройки времени — одна для часов и одна для минут. У микроконтроллера остался один неиспользованный контакт — RB7, который можно использовать для дополнительных функций. Например, можно подключить зуммер и добавить в программное обеспечение функцию будильника.
Программное обеспечение написано и скомпилировано с помощью программы MikroC Pro и использует встроенную программную библиотеку I2C для связи с микросхемой RTC.
Если кто-то желает использовать программное обеспечение MPLAB для компиляции кода, он должен написать свою собственную функцию для I2C с нуля.
Для программирования микроконтроллера можно использовать этот программатор.
Скачать файлы проекта (302,1 KiB, скачано: 595)