Holtek ht1621b как подключить
Так что же из себя представляет контроллер «HT1621 RAM Mapping 32×4 LCD«
Эта микросхема на борту имеет 128бит ОЗУ, ячейки которого привязаны на выходы
SEG0..SEG31 и COM0..COM3.
То есть если мы запишем в ОЗУ какие то данные то они сразу же передаются на ножки микросхемы и тем самым высвечиваются на экране.
(как работает ЖК можете посмотреть здесь http://radiokot.ru/articles/26/))
Data – сами данные, которые передаются последовательно
OSCI/OSCO – для подключения внешнего кристалла 32.768khz, если настроен на внутренний осцилятор то эти ножки могут висеть в воздухе
VDD – питание микросхемы
IRQ – преривания
BZ и BZ – выходы для подключения пищалки, можно получить 2khz или 4khz на этих ножках.
COM0..COM3 – общий для сегментов LCD
SEG0..SEG31 – сами сегменты LCD
Скажу по секрету что если у вас такая же плата как у меня от ОРИОН, то все что вам нужно для управления это 3 провода, а именно вот эти: CS, WR и DATA.
Что касается COM микросхему можно настройть на работу с двумя, тремя или четырьмя общими выходами.
Нам нужны все четыре, ибо на дисплее 12 семисегментных знаков и еще дополнительные.
Формат команд:
Ща будем разбиратся из чего состоят команды.
Первые 3 бита (bit0..bit2) указывают на режим команды или режим передачи/приема данных.
Режимов у нас 3 – 100, 101 и 110.
- Первый режим – это режим передачи команды – 100 XXXXXXXX X
Зеленными помечены биты самой команды, например: 100 00000011 X – это команда
LCD ON. Последний бит X может быть любым, он пропускается.
в режимах чтения и передачи данных, биты разделены следующим образом:
bit3..bit8 – это адреса в памяти
bit9..bit12 – это сами данные
bit13 – неважно что, я всегда ставлю 0.
Передача команд:
Есть два способа.
Первый это “обычный” способ, когда посылаем данные и адреса каждый раз, и второе это, когда первой команде указываем начальный адрес, а микросхема сама перейдет на следующий адрес, пока мы посылаем данные.
Теперь сам дисплей.
Методом тыка битами по ОЗУ, я определил какие сегменты к какому адресу привязаны.
Если мы по адресу 000001 запишем значение 0001 то у нас высветится самый нижний горизонтальный сегмент первого знака (слева).
Если по адресу 000010 запишем значение 0001 то уже засветится точка первого знака.
Как подключить LCD экран от кассового аппарата ЭКР-2102 к Ардуино
Как-то просматривая объявления на OLX, я наткнулся на распродажу старой электроники по очень низким ценам, в итоге было куплено три кассовых аппарата и один модем (на разбор с целью пополнения запасов). Цена вопроса 1500 тенге — примерно 250 рублей.
Разобрав это добро я стал обладателем трех ЖК дисплеев и трех чековых принтеров.
Как подключить дисплей к Ардуино? На плате ЖК дисплея было обнаружено несколько надписей. 5104219-01, 251 12, 251-Т2. Использована микросхема Holtek HT1621B, datasheet был скачан и изучен. К сожалению, тип используемого ЖКИ так и не был опознан.
Прозвонив тестером выводы (6 выводов) я определил их назначение:
1) Data
2) WR
3) CS
4) неизвестно*
5) Gnd
6) Vdd (+5 v)
* — подключены резисторы, конденсаторы, поскольку мне нужно было, я и не разбирался глубоко.
Я использовал готовые процедуры для работы с портами HT1621 из Ардуино.
Микросхема HT1621 128 ячеек для ЖКИ, которые организованы следующим образом 32×4 bits, в памяти это 16 байт. В моем ЖКИ были подключены выводы Com0, Com1, Com2 и все сегменты 0-31.
Для определения какой адрес и какой бит отвечает за какой сегмент была написана простая программа, которая перебирает все адреса и все биты. Результаты были записаны в электронную таблицу для последующего анализа. Вот так выглядит заполненная таблица.
Теперь стало ясно, как управлять дисплеем. Так, например, чтобы включить сегменты B и C в первой позиции (самая левая) нужно изменить биты D5 и D6 на 1 по адресу 0x05, остальные биты должны быть оставлены без изменений, поскольку они повлияют на другие позиции.
Если обратить внимание на таблицу, можно увидеть, что для отображения какой — либо цифры нужно поменять несколько битов в нескольких байтах. Эту задачу я решил следующим образом. Были подготовлены несколько таблиц:
b7SegDsp(10 байт) Эта таблица кодирует какие сегменты должны включаться для отображения числа.Первый байт — это кодирование числа 0, последний байт кодирует 9. Старшие семь бит D7-D1 кодируют сегменты A-G, младший D0 — не используется, я его установил в 0, кроме того, это экономит одну операцию битового сдвига влево — я использую маску 0x80 для проверки бита.
HT1621_Screen(16 байт) просто видеопамять, все 16 байтов. Вначале рендерится все в память, а затем все копируется в HT1621.
Ниже код, который выполняет рендеринг в HT1621_Screen, который потом просто выводится в память микросхемы для отображения.
Holtek ht1621b как подключить
Последний раз редактировалось vanyap1 Вт авг 03, 2010 14:40:47, всего редактировалось 2 раз(а).
bolek | | ||
Карма: 14 |
| ||
vanyap1 | | |||
Карма: 13 | | |||
РадиоЛоматель | | |||
Карма: 11 |
| |||
vanyap1 | | |||
Карма: 13 |
| |||
vanyap1 | | |||
Карма: 13 |
| |||
vanyap1 | | |||
Карма: 13 |
| |||
РадиоЛоматель | | |||
Карма: 11 |
| |||
vanyap1 | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Карма: 13 |
|