Charaf Laissoub
Классические проекты на микроконтроллерах, где требуется управление восемью семисегментными светодиодными индикаторами, требуют наличия как минимум 15 свободных линий ввода/вывода микроконтроллера. Мы же рассмотрим решение, которое можно применить при разработке отдельного дисплейного модуля на светодиодных индикаторах, например, для 24-битного частотомера.
Благодаря такому решению можно получить дешевый дисплейный модуль, с низким потреблением энергии и с применением малого количества компонентов. Он вполне может заменить классические цифровые счетчики, собранные на ТТЛ или КМОП микросхемах. Применение единственного и доступного микроконтроллера позволяет значительно упростить и удешевить конечную конструкцию отдельного дисплейного модуля.
На Рисунке 1 изображена схема подключения восьми индикаторов к микроконтроллеру PIC16F628A.
Рисунок 1.
|
Схема позволяет заменить классическое решение цифрового счетчика на микросхемах ТТЛ или КМОП
|
Микроконтроллер работает от внутреннего осциллятора 4 МГц. Алгоритм работы микроконтроллера реализует технику двойного мультиплексирования: управление сегментами одного разряда в отдельный момент времени, т.е. посегментная индикация. Эта техника позволяет сократить потребление энергии, что дает возможность применять данный модуль в проектах с батарейным питанием. Ток потребления составляет менее 2 мА при использовании ультраярких семисегментных индикаторов (например, производства компании KingBright – SC52-11EWA) и токоограничительных резисторов R0-R7 номиналом 270 Ом.
Кроме низкого потребления и малого числа внешних компонентов, имеется еще одна особенность такого решения – возможность использования светодиодных индикаторов как с общим катодом, так и с общим анодом. При использовании того или иного типа индикаторов необходимо лишь внести коррективы в исходный код и перекомпилировать проект. Файл-библиотека 8dgtcacc.inc для работы с индикаторами доступен для загрузки ниже, он снабжен подробными комментариями, что поможет пользователям понять работу алгоритма.
Корректировка исходного кода сводится к правке файла 8dgtcacc.inc, в котором:
- при использовании индикаторов с общим анодом необходимо сделать активной строку #define use CAdisplay, а строку #define use CCdisplay пометить как комментарий;
- при использовании индикаторов с общим катодом необходимо сделать активной строку #define use CCdisplay, а строку #define use CAdisplay поместить в комментарий.
Восемь светодиодных индикаторов DS7-DS0 подключаются к микроконтроллеру таким образом, чтобы соответствующие сигнальные линии индикаторов A7, B6, C5, D4, E3, F2, G1 и СА0 были подключены к порту микроконтроллера RB0. Выводы индикаторов B7, C6, D5, E4, F3, G2, CA1 и A0 должны быть подключены к порту микроконтроллера RB1. На Рисунке 1 демонстрируется подключение индикаторов к микроконтроллеру.
Исходный код может быть переработан пользователями для реализации на других типах микроконтроллеров, однако следует учитывать, что микроконтроллер должен иметь полный 8-битный порт ввода/вывода.
Загрузки
Исходный код (исходный текст для файла библиотеки 8dgtcacc.inc) - скачать