
Сегментные индикаторы предназначены для отображения информации состоящей из сегментов (7-сегментные - для отображения цифр, 14/16-сегментные - для отображения текста, шкальные - для отображения шкалы). Данные дисплеи нашли широкое распространение в различной измерительной аппаратуре, кассовых аппаратах, калькуляторах, часах, простых счетчиках электроэнергии, на заправочных станциях.
Основными техническими характеристиками дисплеев данного типа являются:
- • тип ЖК (TN, STN) - определяет качество изображения (STN - лучше, но и дороже);
режим управления (статический, мультиплексированный) - в случае использования мультиплексированного режима уменьшается количество выводов. Как правило, в случае необходимости отображать более 40 сегментов используют мультиплексирование (несколько общих выводов - до 4);
• напряжение питания (в основном 3.0 в);
• угол зрения - это угол падения взгляда на панель ЖКИ, при котором контрастность изображения максимальна (3, 6, 9 и 12 часов, чаще встречаются 6);
• геометрические размеры, расположение крепежных отверстий (элементов);
• тип и цвет подсветки (отражение, просвет, отражение + просвет);
• диапазон рабочих температур;
Большинство индикаторов имеют статический тип подключения, это означает, что к каждому сегменту индикатора идет отдельный соответствующий электрический вывод. Без объединения в группы и без общих контактов. Общим у них является только подложка.
Именно эти индикаторы наиболее дешевы в производстве, так как не имеют внутреннего контроллера и по подключению напоминают LED индикаторы, очень распространенные в любительских конструкциях. Но есть несколько существенных отличий, как положительных, так и создающих определенные трудности.
Начнем с положительных:
1. Ток потребления. В LED семисегментниках, каждый сегмент, это отдельный светодиод с потреблением около 15-20 миллиампер. Соответственно что бы зажечь все 7 сегментов + точку, потребуется приблизительно 150 мА. Подключив индикатор напрямую к контроллеру, мы имеем все шансы сжечь порт. Многие контроллеры ограничены током 100-150 мА на порт.
ЖКИ индикаторы потребляют в разы меньший ток, исчисляемый единицами микроампер. Для примера, у меня в хламе валяется системный блок компа с ЖКИ индикатором (температура, часы, работа винта и т. д.) Так он питается от одной батарейки типа CR2320, часы исправно идут уже 4 года.
2. Читабельность. В отличии от LED, LCD (жки) индикаторы, не "слепнут" на солнце. Они отлично и четко видны даже при прямом солнечном свете. Это делает их незаменимыми в устройствах используемых вне помещения. А мягкая подсветка, позволяет вполне комфортно использовать их при недостаточном освещении.
3. Цена. Новые ЖКИ индикаторы по стоимости на 20-80% дешевле аналогичных LED индикаторов и составляет около 2-2,5$ за 4-х циферный индикатор. Более того, их можно часто найти в каких нибудь игрушках или китайских часах-будильниках. Да и на барахолке они часто в хламе валяются, вообще за копейки.
Теперь немного о минусах:
1. Специфика ЖКИ индикаторов такова, что питать их можно только переменным напряжением (меандр).
2. Хрупкость. Индикаторы собраны на стеклянной основе, и требую бережного монтажа и обращения.
3. Температурный режим. Стандартной температурой считается -10~+60 градусов. Есть и варианты расширенной, до минус 40 градусов, но они попадаются реже. Так как используется технология жидких кристаллов, то при понижении температуры начинается некоторая заметная "заторможенность" при смене информации. Если же оставить прибор с таким дисплеем под солнцем, например на торпеде автомобиля, то от чрезмерного нагрева кристаллы могут вообще потечь и индикатор будет испорчен. То же может произойти и от удара.
Чуток теории:
Подробнее что такое сегментный ЖКИ и что такое поляризация света, а так же теорию корпускулярного дуализма можно найти в интернете, заострять на это внимание не будем.
Дисплей управляется магнитным полем, которое ориентирует кристаллы, которые в свою очередь поляризуют проходящий через них свет.

Теперь как этим добром управлять. Сегмент – это по сути конденсатор, на него нужно подать ток, ток создаст электромагнитное поле ориентирующее кристаллы. Но просто к ноге контроллера его подключить нельзя, так как это конденсатор, то зарядившись сопротивление станет бесконечным и ток перестанет течь, а значит электромагнитное поле исчезнет и сегмент потухнет. Значит ток нужен переменный.
Более того, ток нужно подавать в противофазье. А именно, для свечения сегментов общая подложка (СОМ) должна быть под положительным потенциалом, а сегмент, который мы хотим зажечь, под отрицательным. И с частотой по даташиту (обычно 30-300Гц).

В следующую смену потенциала, на СОМ выводе низкий уровень, (красная линия). Ни один из сегментов "светиться" не будет, так как при низком потенциале на общем выводе, уже не важно, какой потенциал на сегментах. Тем не менее концепция работы, индикатора поддерживается, питается он переменкой.
Теперь от теории к практике.
Естественно никому в голову не придет питать такой индикатор с 40 ногами, прямо от контроллера. Для этого мы будем использовать SPI интерфейс контроллера и сдвиговые регистры на копеечной логике 74HC595 (аналог 74HC164, но с защелкой). По одной микросхеме на цифру.
Выбор именно на 74HC595 пал из-за их низкой стоимости (цена корпуса в SO16 всего 18-20 центов), размера (10х8мм), доступности, а так же наличие той самой "защелки", которая позволяет выводить на дисплей все данные одновременно, а не конвейерно побитно. Но об этом позже.
Итак регистр сдвига 74HC595.

Начну с описания ног и их назначения. (по порядку выводов на картинке)
11. Clock (тактовый импульс) - череда импульсов одинаковой скважности и периода отправляются контроллером вместе с данными для разметки (нарезки) данных на биты.
14. Data In (вход данных) - непосредственно сами данные размеченные по байтам. Один байт на один корпус микросхемы. Нам понадобится 4 микросхемы на 4 цифры индикатора, значит и данных у нас будет 4 байта (4 символа)
12. Latch (защелка) - в этой микросхеме есть выходной регистр. Это регистр память. До тех пор, пока вывод Latch не поднимется от низкого потенциала к высокому, содержимое его не изменится. То есть на всех 8 выходах микросхемы будут те сигналы, которые были после последнего подъема Latch. Чем это удобно. В то время, пока контроллер "проталкивает" по шине данные, защелка Latch притянута к нулю. На индикаторе стабильно отображается информация, а не вырисовываются те, наполняемые данные. Когда же данные залиты полностью, все что нам нужно, это поднять Latch к единице и все загруженные данные перейдут в выходной регистр, сменив тем самым отображаемую информацию на новую. Это очень удобно, так как нет необходимости аппаратно гасить индикатор на время ввода данных, во избежании мерцания символов и появления "мусора" шума на дисплее.
10. Reset (сброс) - тут я думаю все и так понятно, очищаем все регистры и переводим микросхему в начальное состояние. Происходит это при переходе от единицы к нулю. Для продолжения работы микросхемы, на этой ноге должна быть единица. В нашем примере сброс нам не нужен, так как данные просто будут сменять друг друга. По этому эта нога просто подключена к шине питания.
13. Enable (включение) - вход по которому происходит включение и отключение выходных регистров. Для включения выходов, должен быть притянут к нулю. Если на этом выходе единица или он вообще не подключен, то на всех выходах будет неопределенное состояние. Не единица, не ноль. Это состояние называется третьим или Z-state (зет-состояние). Мы его использовать тоже не будем, но для себя возьмите на заметку, если подать на этот вход выход ШИМ-а от контроллера, то можно программно, без дополнительных навесных элементов, регулировать яркость свечения LED индикаторов.
15, 1, 2, 3, 4, 5, 6, 7 - это непосредственно выходы регистров сдвига. Те самые, от которых мы и будем снабжать наш индикатор информацией, что ему засветить, а что погасить. На картинке, я специально подписал эти выводы теми битами, при появлении которых эти ноги будут выдавать единицу.
Например:
Данные состоят пока лишь из одного байта, например число - 1. В таблице символов ASCII его DEC номер 49

Таблица символов еще здесь
Значит, когда аппаратный SPI отправит ваше число "1" по шине, на 74HC595 придет децимальное число 49 в таком вот, бинарном виде - 00110001. Причем данные пропихиваются в обратном порядке, это значит что по конвейеру сначала пойдет старший бит 128, потом 64, 32 и т.д. до единицы, все 8 бит. На картинке сверху-вниз. И расположатся они на выходах вот так.

Конечно в таком виде выводить символы еще рано, но для понимания процесса думаю максимально упростил. В дальнейшем я покажу как декодировать эти данные в тот вид, который потребуется для корректного отображения информации.
9. Data Out (выход данных) - замечательная фишка сдвиговых регистров, это возможность их каскадного подключения. Число их может быть ооочень большим. Для примера, 74HC595, работает на частоте до 30МГц. То есть тактовый импульс может пропихивать данные со скоростью 30 миллионов бит в секунду. Разделите это число на 8


Нам столько пока не нужно, ограничимся 4-мя.

Вот так выглядит отправка цифры "1" из примера выше.

Желтая линия на осциллографе - тактовые импульсы, синяя - данные, малиновая - защелка.
Экспериментируйте и если что, спрашивайте.
Продолжение следует...