21.11.2024, Четверг, 10:52
21.11.2024 в 10:52
Четырёхразрядный семисегментный индикатор с общим анодом (продолжение)
Здесь была предпринята попытка подключения многоразрядного семисегментного индикатора. Подключение сегментов и разрядов состоялось, но была обнаружена следующая проблема: все разряды показывают одну и ту же цифру, и как же, имея 8 выводов на сегменты и 4 - для подключения разрядов, получить возможность вывода разных цифр в разные разряды...
Вопрос решается следующим образом - на основе динамической индикации (это метод отображения целостной картины через быстрое последовательное отображение отдельных элементов этой картины; причем, «целостность» восприятия получается благодаря инерционности человеческого зрения).
То есть нужно выводить цифры каждого разряда последовательно, с очень малой задержкой (напр. в приложенной ниже программе я выбрал интервал 10 мс)! Поочерёдно подключаем все 4 разряда индикатора, с нужными активными сегментами.
Вот как это работает:



Светодиоды подключены к общим анодам только для наглядности при отладке.

Схема (существенная её часть - подключение портов к выводам индикатора) в Протеусе:


Программный код в CVAVR. Код недоработанный, но работает)
На PORTC.1 ещё цепляется кнопка, второй её вывод идёт на землю. В таком подключении индикатор зажигает разряды (в цикле) только по нажатию кнопки. При бескнопочном подключении нужно либо убрать проверку "If (!PINC.1)", либо поставить вместо кнопки перемычку, добавив резистор на пару-тройку сотен Ом (Видео снято до внедрения кнопки).

Продолжение здесь
Просмотров: 9598. Комментариев: 0
dth="100%" cellspacing="0" cellpadding="0" class="commTable">
Имя *: Email:
Подписка:1 Код *: