Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах. Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.
Матричный дисплей - часы на микроконтроллере PIC18F2550
Автор публикации: alex
Просмотров: 10703
Добавлен: 10-01-2013, 10:52
Комментарии: 0
Данные часы были сконструированы для применения в офисе или в общественном месте для информирования людей о текущем времени и температуре окружающего воздуха. При разработке устройства ставилась цель сделать часы немного необыкновенными, поэтому для отображения данных было принято использовать матричный светодиодный дисплей с организацией 16×8.
Основой конструкции является 8-битный микроконтроллер Microchip PIC18F2550. Для подсчета времени используется специализированная микросхема DS1302, для получения данных о температуре окружающего воздуха применен датчик LM35.
Принципиальная схема часов
Как видно из схемы, к микроконтроллеру подключен драйвер светодиодов A6276 (по интерфейсу SPI), который управляет столбцами светодиодов, и микросхема 74ACT164N – 8-битный последовательный регистр сдвига с параллельным выходом, который управляет строками светодиодов. Такая организация означает, что необходимо всего 8 циклов для обновления дисплея, обеспечивая при этом яркое и устойчивое изображение.
Так как матрица светодиодов потребляет ток значительно больший, чем может обеспечить микросхема 74ACT164N, необходимо применить транзисторы T1-T8 BC337.
Микросхема A6276 представляет собой драйвер светодиодов с 16-битным последовательным вводом информации. Драйвер содержит 16-битный КМОП сдвиговый регистр, соответствующие защелки и драйверы для управления светодиодами, и может управлять бóльшим количеством светодиодов, чем это позволяет микроконтроллер. Кроме того, драйвером можно управлять по интерфейсу SPI, что дополнительно сокращает количество используемых линий ввода/вывода и делает проект масштабируемым.
Микросхема DS1302 содержит часы реального времени с календарем и 31 байт статического ОЗУ. Она общается с микропроцессором через простой последовательный интерфейс. Информация о реальном времени и календаре представляется в секундах минутах, часах, дне, дате, месяце и годе. Если текущий месяц содержит менее 31 дня, то микросхема автоматически определит количество дней в месяце с учетом высокосности текущего года. Часы работают или в 24-часовом, или 12-часовом формате с индикатором AM/PM (до полудня/ после полудня). Подключение DS1302 к микропроцессу упрощено за счет синхронной последовательной связи. Для этого требуется только 3 провода: (1) RST (сброс), (2) I/O (линия данных) и (3) SCLK (синхронизация последовательной связи).
Коммуникация микросхемы DS1302 с микроконтроллером осуществляется по программно реализованному интерфейсу. Для работы микросхемы требуется кварцевый резонатор 32768 Гц, и, дополнительно, к микросхеме может подключаться резервный источник питания 3 В (батарея типа CR2032) для сохранения хода часов при отключении основного источника питания (на схеме не показан).
Датчик температуры LM35 подключен к 0 каналу встроенного в микроконтроллер АЦП.
Тактирование микроконтроллера осуществляется от внешнего кварцевого резонатора 20 МГц. Для управления и настройки используются три кнопки: вверх, вниз и установка. Программно реализуется подавление дребезга контактов кнопок и автоповтор нажатия. Коннектор ICSP header предназначен для подключения внутрисхемного программатора.
Конструктивно часы выполнены в виде двух печатных плат: на одной из них размещаются компоненты управления, на другой – светодиодный дисплей. Печатные платы разработаны с помощью программы PCBexpress. Вид платы управления представлен ниже.
Программа микроконтроллера написана в среде MPLAB с использованием компилятора HiTech для микроконтроллеров PIC18. В дальнейшем предусматривается добавление функции будильника и других звуковых функций.
Демонстрация работы часов
Материал взят c: сайта rlocman.ru
В архиве Исходный код программы и прошивка микроконтроллера PIC18F2550 и печатная плата