Семисегментный индикатор
Семь вытянутых сегментов, расставленных восьмёркой, — и любая цифра читается с другого конца комнаты. Семисегментный индикатор остаётся самым простым числовым дисплеем: им управляют прямо с выводов микроконтроллера, дешифратором или специализированным драйвером.
Обновлено Редакция GAW
Семисегментный индикатор (seven-segment display) — индикатор из семи сегментов, расставленных в форме восьмёрки, и обычно восьмого — десятичной точки. Зажигая разные сочетания сегментов, показывают цифры 0–9 и часть букв. Чаще всего сегменты — светодиоды, их выводы с одной стороны объединены в общий анод или общий катод.
Сегменты и коды
Сегменты обозначают буквами a–g: a — верхний, дальше по часовой стрелке b, c, d, e, f, и g — средний; так их рисует TI в даташите 74LS47. Если сегмент a — бит 0, g — бит 6, а единица зажигает сегмент, коды цифр такие, как в таблице из AN557 Microchip:
| Цифра | Сегменты | Код |
|---|---|---|
| 0 | a b c d e f | 0x3F |
| 1 | b c | 0x06 |
| 2 | a b d e g | 0x5B |
| 3 | a b c d g | 0x4F |
| 4 | b c f g | 0x66 |
| 5 | a c d f g | 0x6D |
| 6 | a c d e f g | 0x7D |
| 7 | a b c | 0x07 |
| 8 | все | 0x7F |
| 9 | a b c f g | 0x67 |
Шестёрку и девятку рисуют по-разному: у 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 прямо называет это выбором между двумя шрифтами. В программной таблице кодов начертание выбирают сами.
Источники
- 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 с «хвостиками»
- 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, единица зажигает сегмент
Нашли ошибку?
Смотрите также
- Семисегментные индикаторыОбщий анод и катод, коды 0–F, резисторы, мультиплексирование разрядов
- Коды семисегментного индикатораСегменты, hex-коды для анода и катода, массив на C, дешифраторы
- Общий анод и общий катодОбъединённые аноды или катоды светодиодов индикатора и что из этого следует
- Динамическая индикацияРазряды по очереди: 8 + N выводов вместо 8 · N
- Двоично-десятичный код (BCD)Каждая десятичная цифра — в своих четырёх битах
- CD4511BДешифратор BCD в 7 сегментов: выводы, LT, BL, LE, ток сегмента, резисторы