Перейти к содержанию

Семисегментный индикатор

Семь вытянутых сегментов, расставленных восьмёркой, — и любая цифра читается с другого конца комнаты. Семисегментный индикатор остаётся самым простым числовым дисплеем: им управляют прямо с выводов микроконтроллера, дешифратором или специализированным драйвером.

Обновлено Редакция GAW

Семисегментный индикатор (seven-segment display) — индикатор из семи сегментов, расставленных в форме восьмёрки, и обычно восьмого — десятичной точки. Зажигая разные сочетания сегментов, показывают цифры 0–9 и часть букв. Чаще всего сегменты — светодиоды, их выводы с одной стороны объединены в общий анод или общий катод.

Сегменты и коды

Сегменты обозначают буквами a–g: a — верхний, дальше по часовой стрелке b, c, d, e, f, и g — средний; так их рисует TI в даташите 74LS47. Если сегмент a — бит 0, g — бит 6, а единица зажигает сегмент, коды цифр такие, как в таблице из AN557 Microchip:

ЦифраСегментыКод
0a b c d e f0x3F
1b c0x06
2a b d e g0x5B
3a b c d g0x4F
4b c f g0x66
5a c d f g0x6D
6a c d e f g0x7D
7a b c0x07
8все0x7F
9a b c f g0x67

Шестёрку и девятку рисуют по-разному: у 74LS47 шестёрка без сегмента a, девятка без d, у 74LS247 оба знака с «хвостиками». В таблице AN557 шестёрка с сегментом a, а девятка без d.

Способы управления

  • С выводов МК. Сегменты — через резисторы на порт, коды — из таблицы в памяти. На каждый разряд нужно восемь выводов.
  • Дешифратор. Микросхема принимает двоично-десятичный код и зажигает нужные сегменты: по даташиту TI 74LS47 с активным низким уровнем выходов рассчитан на общий анод, а 74LS48 с активным высоким — на общий катод; КМОП-вариант с защёлкой — CD4511.
  • Динамическая индикация. Сегменты всех разрядов соединены параллельно, а разряды включаются по очереди. В AN557 Microchip четыре разряда горят по 5 мс, весь цикл — 20 мс; выводы PIC16C71 отдают сегментам до 20 мА, а ток разряда замыкают внешние транзисторы или ULN2003.

Таблицу кодов для любой полярности и порядка битов строит дешифратор семисегментного индикатора, а подключение, резисторы и мультиплексирование подробно разобраны в статье о семисегментных индикаторах.

Частые вопросы

Как обозначаются сегменты семисегментного индикатора?

Буквами от a до g по часовой стрелке, начиная с верхнего: a — верх, b — правый верхний, c — правый нижний, d — низ, e — левый нижний, f — левый верхний, g — средняя перекладина. Так их обозначает, например, TI в даташите 74LS47. Восьмой светодиод — десятичная точка, DP или h.

Какой код у цифр для семисегментного индикатора?

При сегменте a в бите 0 и g в бите 6 и единице, зажигающей сегмент: 0 — 0x3F, 1 — 0x06, 2 — 0x5B, 3 — 0x4F, 4 — 0x66, 5 — 0x6D, 6 — 0x7D, 7 — 0x07, 8 — 0x7F, 9 — 0x67 (девятка без нижнего сегмента). Так закодирована таблица в AN557 Microchip; вариант девятки с сегментом d — 0x6F. Для общего анода, где сегмент зажигает ноль, коды инвертируют.

Почему шестёрка и девятка выглядят по-разному у разных дешифраторов?

Есть два начертания: с «хвостиком» и без. У 74LS47 шестёрка без верхнего сегмента a, а девятка без нижнего d; у 74LS247 и 74LS248 оба знака с хвостиками — TI прямо называет это выбором между двумя шрифтами. В программной таблице кодов начертание выбирают сами.

Источники

  1. Texas Instruments. SN5446A, '47A, '48, SN54LS47, 'LS48, 'LS49 BCD-to-Seven-Segment Decoders/Drivers (SDLS111, March 1974, revised March 1988) — с. 3, рис. «Segment identification»: a — верхний, b — правый верхний, c — правый нижний, d — нижний, e — левый нижний, f — левый верхний, g — средний; таблица T1: у '47 шестёрка без сегмента a, девятка без сегмента d; '246, '247, 'LS247, 'LS248 рисуют 6 и 9 с «хвостиками»
  2. Microchip. AN557: Four-Channel Digital Voltmeter with Display and Keyboard (DS00557D) — мультиплексирование четырёх семисегментных индикаторов: сегменты от PORTB, ток разрядов замыкают внешние транзисторы, MOSFET или ULN2003; вывод PIC16C71 втекает до 25 мА и вытекает до 20 мА; каждый разряд горит 5 мс, полный цикл 20 мс; таблица кодов: B'00111111' — 0, B'00000110' — 1 … B'01111111' — 8, сегмент a в бите 0, единица зажигает сегмент

Нашли ошибку?