Применение простейших цифровых светодиодных индикаторов — самый недорогой способ заставить ваше микропроцессорное устройство отображать цифры.
Итак, со схемой, надеюсь, все понятно (это схема для индикатора с общим анодом!)
Для отображения цифровых данных одного цифрового индикатора обычно недостаточно. В таких случаях к микроконтроллеру подключают сразу несколько таких индикаторов. Однако, из-за отсутствия достаточного количества выводов у процессора приходится применять специальные ухищрения. Используется схема подключения четырех семисегментных индикаторов к микроконтроллеру. При этом индикаторы, включенные по такой схеме, не могут работать все одновременно. Если их включить одновременно, то все они будут отображать одно и то же. Такая схема предназначена для работы индикаторов в режиме динамической индикации.
Режим динамической индикации часто применяется для многоразрядных цифровых индикаторов. Он состоит в том, что разряды индикатора работают не одновременно, а по очереди. Переключение разрядов происходит с большой скоростью. Если скорость переключения разрядов достаточно велика, то человеческий глаз не замечает того, что разряды горят по очереди. Мерцания сливаются в статическую картинку, и человек видит цифры одновременно во всех разрядах. Подобный эффект используется в кино и в телевидении. Ученые давно определили тот предел скорости смены кадров, при которой глаз человека уже не различает дискретности. Этот предел равен 24 кадрам в секунду.
Если кадры на экране менять с этой скоростью, то они сливаются в плавно движущееся изображение. Однако для глаза такое изображение не будет комфортным. Мы не увидим дерганья при смене кадров, но просмотру будет мешать неприятное мерцание.
Эффект, мерцания возникает от того, что в промежутках между кадрами экран темный, а в момент отображения кадра экран ярко освещен. Глаз способен воспринимать такое изменение общей яркости и это мерцание неприятно для зрения. Для того, чтобы мерцание было незаметно, частота смены яркости экрана должна быть, как минимум, в два раза выше. То есть должна быть не менее 48 Гц.
Работа цифрового индикатора в режиме динамической индикации очень напоминает смену кадров в кино или телевидении. В каждый момент времени работает только один разряд. И каждый разряд показывает свою цифру. Разряды включаются по очереди, начиная с первого и заканчивая последним. Затем все начинается сначала. Такой способ работы индикатора имеет только одно преимущество: он позволяет экономить выводы микропроцессора и количество управляющих элементов (ключей). Представьте, что мы решили бы подключить четыре семисегментных индикатора в обычном статическом режиме. То есть, каждый из них подключен по схеме, изображенной на рис. 1.10. Тогда нам потребовалось бы 32 линии ввода/вывода или четыре порта. А теперь взгляните на рис. 1.11.
Выводы одноименных сегментов всех разрядов индикатора объединены вместе и подключены к порту Р1 микроконтроллера. При этом линия Р1.0 управляет сегментом «а» каждого индикатора, линия Р1.1 — сегментом «b». И так далее. Возможность поочередного выбора сегментов обеспечивается при помощи дешифратора DD2 и четырех транзисторных ключей VT1...VT4. На вход дешифратора поступает управляющие сигналы с выводов РЗ.О и Р3.1. Подавая на эти выходы код номера разряда (от 00В до 11В), микроконтроллер может включать соответствующий разряд. При этом все остальные разряды окажутся выключены.
Работает схема очень просто. Специальная программа, реализующая работу динамической индикации, постоянно перебирает разряды индикатора и выводит на каждый из индикаторов соответствующий символ. Такая программа должна работать в фоновом режиме, независимо от остальных программ, выполняемых процессором. Это достигается применением режима прерываний по таймеру. При переборе разрядов индикатора микроконтроллер сначала подает номер очередного разряда на выходы РЗ.О, Р3.1. Затем, на всех выходах порта Р1 устанавливается код, соответствующий выводимому символу. Символ появляется на соответствующем индикаторе. Затем отрабатывается задержка по времени. Назовем ее периодом смены разрядов (t ). По истечении времени t микроконтроллер производит смену индицируемого разряда. Для этого он сначала подает код нового разряда на линии РЗ.О, Р3.1. А затем выводит в порт Р1 код, соответствующий символу, который в этом новом разряде должен отобразиться. Время между моментами переключения разрядов должно быть всегда одинаковым и равным t. Иначе свечение разрядов получится неравномерным по яркости.