Две схемы представляют собой две версии дисплея, общий катод вверху, общий анод внизу. Я предполагаю, что у вас есть общая катодная версия.
Вы подключаете сегменты A..G, DP через 8 последовательных резисторов к 8 контактам ввода / вывода микроконтроллера. Вождение высокого булавки загорится этот светодиод на выбранной цифре. Чтобы выбрать любую из 4 цифр, вы устанавливаете соответствующий общий катодный низкий уровень через NPN-транзистор, который вы снова подключаете к выводу ввода-вывода через резистор.
Если ваше напряжение питания составляет 5 В, и вы используете красные светодиоды, вы можете использовать резисторы 150 Ом вместо 330. Также уменьшите значения базового резистора транзистора до 2,2 кОм и используйте, например, BC337 с для транзисторов.
Для управления полным дисплеем сначала нужно сделать вывод 12 низким, запустив его транзистор с высоким уровнем, и установить входы / выходы для сегментов этой цифры. Некоторое время спустя вы выключаете контакт 12 и сегменты, включаете 9 и снова сегменты для второй цифры. И так далее. Если вы переходите от одной цифры к другой менее чем за 2,5 мс, то весь цикл дисплея отображается с частотой 10 мс или 100 Гц, чего достаточно, чтобы избежать заметного мерцания.
Вы можете использовать драйвер Maxim, например MAX7219 , но это Damn Exорого ™: 12,80 доллара за 1 с в Digikey. Хорошая вещь об этом - то, что это заботится о мультиплексировании для Вас, таким образом, Вы просто должны загрузить это с данными сегмента для 4 цифр. Он также имеет программное управление яркостью.
Я проверил таблицу данных PIC16F690 , и, в отличие от других микроконтроллеров, ее входы / выходы не могут выдавать 20 мА (что разочаровывает). Таким образом, вам понадобятся транзисторы на порту 2:
R1 был одним из резисторов на порте 2. Таким образом, вы вставляете между ними Q1 и R2 и повторяете это для каждого из 8 сегментов. Внимание, Q2 - это PNP! Подойдет любой PNP-транзистор общего назначения.