Часто пользователю требуется получать некоторую визуальную информацию с электронного устройства. Если информация может быть представлена в символьном виде, то одним из вариантов ее отображения является использование символьных жидко-кристаллических индикаторов (ЖКИ, или LCD в иностранном обозначении). Сегодня речь пойдет о символьных индикаторах, реализованных на базе контроллеров Hitachi HD44780, Samsung KS 0066 и аналогичных.
В качестве примера я буду рассматривать ЖКИ Winstar Wh1602D-TMI-CT#, имеющийся у меня для проведения экспериментов. Я уже упоминал этот ЖКИ в статье Создаем свой компонент Fritzing, графическими наработками которой я сегодня и воспользуюсь.
Подробный datasheet к LCD WINSTAR WH1602D-TMI-CT:
Упрощенно схему ЖКИ можно представить следующим образом:
Основой индикатора является жидко-кристаллическая матрица, подавая напряжение на элемент которой, мы можем наблюдать точку на экране. В символьных ЖКИ эта матрица состоит из определенного количества знакомест, которые группируются по строкам и столбцам. Размер знакоместа в пикселях часто составляет 5×8 точек. Маркировка моего индикатора содержит цифры 1602 и это означает, что мой индикатор может отображать 2 строки по 16 символов в каждой. Также кодировка включает: код производителя и тип индикатора, наличие подсветки, цвет, кодовую таблицу и так далее.
Система обозначений индикаторов WINSTAR
1. Код производителя: WINSTAR DISPLAY CO, LTD
2. Тип индикатора:
- H — символьный (знакосинтезирующий)
- C - графический цветной с пассивной матрицей CSTN (ColorSTN)
- X — графический с матрицей TAB (Tape Automatic Bonding– кристалл монтируется на
трёхслойной полиамидной подложке-ленте) - O - графический c матрицей COG (Chip On Glass — кристалл на стекле)
3. Горизонтальное разрешение:
- число символов в строке для индикаторов символьного типа
- число точек по горизонтали для индикаторов графического типа
4. Вертикальное разрешение:
- число строк для индикаторов символьного типа
- число точек по вертикали для индикаторов графического типа
5. Код модели
- Кодирует геометрические размеры, используемый контроллер
6. Тип подсветки:
- N — без подсветки
- B - электролюминисцентная, цвет свечения — синий
- D - электролюминисцентная, цвет свечения — зеленый
- W - электролюминисцентная, цвет свечения - белый
- Y — светодиодная, цвет свечения — желто-зеленый
- A — светодиодная, цвет свечения — янтарный
- R — светодиодная, цвет свечения — красный
- G — светодиодная, цвет свечения — зеленый
- T — светодиодная, цвет свечения — белый
- P — светодиодная, цвет свечения - синий
- F — лампа с холодным катодом (CCFL), цвет свечения — белый
7. Технология изготовления ЖК
- B - TN серый, позитив
- N — TN, негатив
- G - STN серый, позитив
- Y — STN желто-зеленый, позитив
- M — STN синий, негатив
- F — FSTN позитив
- T - FSTN негатив
- H - HTN серый, позитив
- I — HTN черный, негатив
- TN(Twisted Nematic) — структура кристаллов имеет спиралевидный тип
- STN (Super Twisted Nematic) - матрица, состоящая из ЖК-элементов с изменяемой прозрачностью
- FSTN (Film Compensated STN) — STN-матрица c пленочной компенсацией. Технология позволяет получить увеличенный угол обзора
- HTN (Homeotropic Twisted Nematic) - дисплеи основаны на более сильном молекулярном закручивании (обычно 110°) по сравнению с обычными скрученными нематиками TN (90°). Дают широкий угол обзора и улучшенную контрастность. По характеристикам превосходят STN –технологию. Низкое рабочее напряжение (2.5В и самая низкая стоимость среди нематиков делают их использование выгодным в переносных автономных устройствах).
8. Поляризатор, угол обзора, рабочий температурный диапазон
- A — RF, 6:00, N.T.
- D - RF, 12:00, N.T.
- G - RF, 6:00, W.T.
- J — RF, 12:00, W.T.
- B — TF, 6:00, N.T.
- E — TF, 12:00, N.T.
- H — TF, 6:00, W.T.
- K — TF, 12:00, W.T.
- C — TM, 6:00, N.T.
- F — TM, 12:00, N.T.
- I — TM, 6:00, W.T.
- L - TM, 12:00, W.T.
- RF (Reflective LCD) — ЖК индикатор, работающий исключительно на отражении света. Изображение видно только при достаточном внешнем освещении.
- TF - (Transflective LCD) -жидкокристаллический дисплей, который как отражает свет, так и испускает его (светится самостоятельно).
- TM (Transmissive LCD) - свет поступает сквозь LCD со стороны задней подсветки. Имеет высокое качество изображения в помещении и обычно очень низкое (черный экран) при солнечном свете.
- N.T. — нормальный температурный диапазон 0...+50ºC W.T. — расширенный температурный диапазон -20...+70ºC
9. Дополнительные опции
Первые два символа — знакогенератор:
- CT/CP — латиница/кириллица
- EP/ET/EE/EN/EC/ES — латиница/европейский
- JP/JT/JS/JN — латиница/японский
- HP/HS — иврит
3-4 символы:
- T - температурная компенсация
- E или EZ — edge BL (светодиоды подсветки расположены по периметру). Также символ может отсутствовать.
- K или LB — eco BL (светодиоды расположены сзади экрана равномерно)
- V — встроенный источник отрицательного напряжения
- N — без встроенного источника отрицательного напряжения
10. Дополнительная информация:
# — совместимость со стандартом RoHS
Примечание (производитель микросхемы контроллера):
- xS - Samsung
- xP - Sunplus
- xT - Sitronix
- xE - Epson
- xU - UMC
Пользуясь этой системой обозначений я выяснил, что у меня в руках оказался знакосинтезирующий индикатор Winstar, отображающий символы в 16 столбцов и 2 строки, использующий контроллер KS 0066 или его аналог, со светодиодной подсветкой белого цвета по периметру, с синей негативной transmissive-матрицей, углом обзора «на 6 часов», рабочим диапазоном температур -20...+70ºC со знакогенератором, включающим кириллицу и совместимый со стандартом RoHS (не содержит вредных для здоровья компонентов, по всей видимости это означает, что при сборке использовался бессвинцовый припой).
Индикаторы на базе контроллеров HD44780, KS066U
Управляет работой индикатора встроенный контроллер. В качестве контроллера обычно выступает Hitachi HD44780, Samsung KS0066U или же их многочисленные аналоги и клоны. В индикаторах, производимых российской компанией МЭЛТ используется контроллер PCF8576.
У контроллера есть однобайтные ячейки памяти (DDRAM), содержимое которых собственно отображается на экране согласно таблице записанной в CGRAM. Ячеек памяти обычно больше чем знакомест в ЖКИ, поэтому адресацию знакомест нужно смотреть в datasheet. Нам необходимо в нужную позицию записать код требуемого символа, а все остальное контроллер сделает сам.
Для выбора позиции существует виртуальный, управляемый посредством команд курсор (номер текущей ячейки памяти, АС). Его можно сделать видимым. По умолчанию, при записи символа в ячейку, курсор сдвигаеться вперед на одну позицию.
Кодовая таблица индикатора, как правило состоит из трёх частей:
- 0×00-0×07 — загружаемый знакогенератор, символы созданные вами
- 0×20-0xFF — ASCII коды стандартный набор символов и английский алфавит
- 0xA0-0xFF — символы национальных алфавитов и иные, с пропуском символов совпадающих по начертанию с английскими.
Пример: шестнадцатеричный код 0x4A соответствует букве J, код 0xB6 — букве ж.
Старшие четыре бита определяют столбец выбранного символа в таблице, младшие – строку. Можно создать свою собственную таблицу символов, записав ее в CGRAM. На каждый символ требуется 5 байт (на столбец по байту). Единицы в каждом байте определяют значимые пиксели. Например, для кодирования попиксельно цифры 8 потребуется такая последовательность: 0x6c,0×92,0×92,0×92,0x6c.
Конвертер кириллицы
Для преобразования текста, содержащего символы кириллицы в коды, соответствующие приведенной выше таблице, введите требуемый текст в текстовое поле. Полученный ниже результат можно скопировать и использовать в своих программах для вывода этого текста на ЖКИ.
Таблица кодов команд:
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | Назначение |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Очистка экрана, AC=0, адресация AC на DDRAM |
0 | 0 | 0 | 0 | 0 | 0 | 1 | — | AC=0, адресация на DDRAM, сброшены сдвиги, начало строки адресуется в начале DDRAM |
0 | 0 | 0 | 0 | 0 | 1 | I/D | S | Выбирается направление сдвига курсора или экрана |
0 | 0 | 0 | 0 | 1 | D | C | B | Выбирается режим отображения |
0 | 0 | 0 | 1 | S/C | R/L | — | — | Команда сдвига курсора/экрана |
0 | 0 | 1 | DL | N | F | — | — | Определение параметров развертки и ширины шины данных |
0 | 1 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | Присвоение счетчику AC адреса в области CGRAM |
1 | AC6 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | Присвоение счетчику AC адреса в области DDRAM |
Таблица значений флагов:
Флаг | Значение |
I/D | Режим смещения счетчика адреса AC, 0 — уменьшение, 1 — увеличение |
S | Флаг режима сдвига содержимого экрана. 0 — сдвиг экрана не производится, 1 — после записи в DDRAM очередного кода экран сдвигается в направлении, определяемом флагом I/D: 0 — вправо, 1 — влево. При сдвиге не производится изменение содержимого DDRAM. Изменяются только внутренние указатели расположения видимого начала строки в DDRAM |
S/C | Флаг-команда, производящая вместе с флагом R/L операцию сдвига содержимого экрана (так же, как и в предыдущем случае, без изменений в DDRAM) или курсора. Определяет объект смещения: 0 — сдвигается курсор, 1 — сдвигается экран |
R/L | Флаг-команда, производящая вместе с флагом S/C операцию сдвига экрана или курсора. Уточняет направление сдвига: 0 — влево, 1 — вправо |
D/L | Флаг, определяющий ширину шины данных: 0 — 4 разряда, 1 — 8 разрядов |
N | Режим развертки изображения на ЖКИ: 0 — одна строка,1 — две строки |
F | Размер матрицы символов: 0 — 5×8 точек, 1 — 5×10 точек |
D | Наличие изображения: 0 — выключено, 1 — включено |
C | Курсор в виде символа подчеркивания: 0 — выключен, 1 — включен |
B | Курсор в виде мерцающего знакоместа: 0 — выключен, 1 — включен |
Назначение выводов контроллера:
- DB0-DB7 — отвечают за входящие/исходящие данные
- RS — высокий уровень означает, что сигнал на выходах DB0-DB7 является данными, низкий — командой
- W/R — определяет направление данных (чтение/запись). Так как операция чтения данных из индикатора обычно бывает невостребованной, то можно установить постоянно на этом входе низкий уровень
- E — импульс длительностью не менее 500 мс на этом выводе определяет сигнал для чтения/записи данных с выводов DB0-DB7, RS и W/R
- V0 — используется для задания контраста изображения
- A, K — питание подсветки (анод и катод), если она имеется
- VCC и GND — питание ЖК-индикатора
Для управления ЖК-индикатором необходимо 6 или 10 выводов микроконтроллера, в зависимости от того, выбран 4 или 8 битный режим обмена данными. Для сокращения требуемого числа выводов микроконтроллера можно работать в 4-битном режиме. В этом случае, на выводах DB4-DB7 индикатора сначала будет передаваться старшие четыре бита данных/команды, затем — младшие четыре бита. Выводы DB0-DB3 останутся незадействованными.
Один контроллер управляет ограниченным числом символов. На плате индикатора может быть 1, 2, 4, 8 контроллеров, а возможно — и больше.
Документация на контроллеры:
Контроллер Samsung KS0066U
Контроллер Hitachi HD44780
переведенный на русский язык вариант:
Индикаторы различных производителей часто совместимы и взаимозаменяемы, но могут отличаться габаритами, креплением, контактами и прочим. Поэтому при выборе для новой разработки и поиске замены обращайтесь к каталогам производителей:
Таблица совместимости символьных ЖК-индикаторов разных производителей:
Тип | Winstar | МЭЛТ | Data Vision | Bolymin | Sunlike | Microtips | Wintek | Ampire |
8×2 | WH0802A | MT-8S2A | DV-0802 | BC0802A | SC0802A | MTC-0802X | WM-C0802M | AC082A |
10×1 | — | MT-10S1 | — | — | — | — | — | — |
12×2 | WH1202A | — | — | BC1202A | — | — | — | — |
16×1 | WH1601A | — | DV-16100 | BC1601A1 | SC1601A | MTC-16100X | WM-C1601M | AC161A |
WH1601B | — | — | BC1601B | SC1601B | — | — | — | |
WH1601L | MT-16S1A | DV-16100 | BC1601D1 | SC1601D | MTC-16101X | WM-C1601Q | AC161B | |
— | — | DV-16120 | — | — | — | — | AC161J | |
16×2 | WH1602L | MT-16S2R | DV-16210 | BC1602E | SC1602E | MTC-16201X | WM-C1602Q | AC162E |
— | — | — | — | SC1602N | — | — | — | |
WH1602D | MT-16S2J | DV-16230 | BC1602B1 | SC1602B | MTC-16202X | WM-C1602N | AC162A | |
— | — | DV-16235 | — | — | MTC-16203X | — | — | |
WH1602C | MT-16S2D | DV-16236 | BC1602D | SC1602D | — | — | — | |
WH1602A | MT-16S2H | DV-16244 | BC1602H | SC1602C | MTC-16204X | WM-C1602K | — | |
WH1602B | — | DV-16252 | BC1602A | SC1602A | MTC-16205B | WM-C1602M | — | |
WH1602M | — | DV-16257 | BC1602F | SC81602F | — | — | — | |
— | — | DV-16275 | — | — | — | — | — | |
— | — | DV-16276 | — | — | — | — | — | |
16×4 | WH1604A | MT-16S4A | DV-16400 | BC1604A1 | SC1604A | MTC-16400X | WM-C1604M | AC164A |
WH1604B | — | — | — | — | — | — | — | |
20×1 | — | — | DV-20100 | — | — | — | — | — |
— | MT-20S1L | — | — | — | — | — | — | |
20×2 | WH2002A | MT-20S2A | DV-20200 | BC2002A | SC2002A | MTC-20200X | WM-C2002M | AC202A |
WH2002M | — | — | — | — | — | — | — | |
WH2002L | MT-20S2M | DV-20210 | BC2002B | SC2002C | MTC-20201X | WM-C2002P | AC202B | |
— | — | DV-20211 | — | — | — | — | AC202D | |
— | — | DV-20220 | — | — | — | — | — | |
— | — | DV-20206-1 | — | — | — | — | — | |
20×4 | WH2004A | MT-20S4A | DV-20400 | BC2004A | SC2004A | MTC-20400X | WM-C2004P | AC204A |
— | — | — | — | SC2004G | — | — | — | |
— | — | — | — | SC2004C | — | — | — | |
WH2004L | — | DV-20410 | BC2004B | — | MTC-20401X | WM-C2004R | AC204B | |
24×1 | — | MT-24S1L | — | — | — | — | — | — |
24×2 | WH2402A | MT-24S2A | DV-24200 | BC2402A | SC2402A | MTC-24200X | WM-C2402P | AC242A |
— | MT-24S2L | — | — | — | — | — | — | |
40×2 | WH4002A | — | DV-40200 | BC4002A | SC4002A | MTC-40200X | WM-C4002P | AC402A |
40×4 | WH4004A | — | DV40400 | BC4004A | SC4004A | MTC-40400X | WM-C4004M | AC404A |
— | — | — | — | SC4004C | — | — | — |
Питание, регулировка контрастности и подсветка
Внимательно нужно относится к полярности подключения питания к ЖК-индикатору, а также следить, чтобы напряжение питания лежало в диапазоне +4.5...5.5 В. Невнимательное отношение к этим моментам может привести к выходу индикатора из строя!
ЖК-индикаторы позволяют производить регулировку контрастности, используя делитель напряжения. Перед выводом данных на индикатор необходимо убедиться, что управляющее контрастностью напряжение находится в рабочем диапазоне. Номиналы резисторов отличаются у различных производителе ЖК-индикаторов. У некоторых моделей индикаторов на плате предусмотрены места для установки такого делителя и достаточно впаять туда нужные номиналы резисторов. Контрастность индикатора зависит от угла обзора. Если индикатор «на двенадцать часов», то смотреть на такой индикатор нужно таким образом, чтобы он находился ниже уровня глаз, если «ноль часов», то он предназначен для наблюдения на уровне глаз (перпендикулярно плоскости экрана). Если же индикатор «на шесть часов» то он должен использоваться при наблюдении выше уровня глаз. Этот момент обязательно нужно учесть при покупке.
Если в индикаторе имеется подсветка, то выводы для неё обычно располагаются отдельно. Необходимо подключить её к питанию, задав номинальный ток с помощью внешнего резистора R (см. datasheet). Для моего индикатора номинальное напряжение на аноде должно составлять 3.5 В и ток 40 мА. Исходя из этого, номинал токоограничивающего резистора:
У некоторых производителей на плате индикатора предусмотрено место для установки такого резистора, нужно впаять соответствующий номинал, замкнуть перемычку и подсветка будет получать питание с той же линии, что и индикатор.
[add_ratings]
Спасибо за обзор...Отдельная благодарность за даташит на русском языке...Его я в обязательном порядке отдельно прочитаю,не каждый день видишь даташиты на великом могучем))))
Правда как по мне такие экраны слишком много контактов забирают а я очень жадный,по этому такой себе приобрел- ru.aliexpress.com/item/Fr...commendVersion=1 = )
И по поводу стандарта ROSH... Ненавижу его...Столько он крови пьет у всех радиолюбителей, ремонтников и прочих приближенных...Гореть в аду тем кто его придумал))))
Если контакты в дефиците — использование устройств с поддержкой шины I2C правильное решение.
Интересный OLED экранчик. Спасибо за ссылку.
В таблице команд, у последней команды на мой взгляд ошибочка.
7 бит должен быть = 1.
Александр, действительно ошибка. Исправил. Спасибо.
В таблице команд, у команды «Выбирается режим отображения», тоже ошибка.
3 бит (D3) должен быть = 1.
Спасибо, Игорь. Исправил.
Спасибо. У меня китайский шилд с дисплеем заявленный как с установленной кириллицей. Но вытащить ее никак не удавалось. Ваша публикация помогла 100%. Еще раз спасибо.
Здравствуйте.
Вот моя тема по дисплею упса.
monitor.net.ru/forum/view...=5489864#5489864
На схеме есть такое его обозначение LCM16-1/EPP5.
Можете подсказать что за дисплей и его аналоги, если существуют?
Спасибо!
Здравствуйте. Можете помочь идентифицировать такой дисплей LCM16-1/EPP5?