LCD экран от кассового аппарата ЭКР-2102 к Ардуино

- Jan 31, 2018 -

Как-то просматривая объявления на OLX, я наткнулся на распродажу старой электроники î очень низким ценам, в итоге было куплено три кассовых аппарата и один модем (на разбор с целью пополнения запасов). 1500ена вопроса 1500 тенге - примерно 250 рублей.

Разобрав это добро я стал обладателем трех ЖК дисплеев и трех чековых принтеров.
Как подключить дисплей к Ардуино? На плате ЖК дисплея было обнаружено несколько надписей. 5104219-01, 251 12, 251-Т2. Использована микросхема Holtek HT1621B, Datenblatt был скачан и изучен. Ксожалению, тип используемого ЖКИ так и не был опознан.
Прозвонив тестером выводы (6 Bewertungen) я определил и назначение:
1) Daten
2) WR
3) CS
4) неизвестно *
5) Gnd
6) Vdd (+5 V)
* - подключены резисторы, конденсаторы, поскольку мне нужно было, я и и разбирался глубоко.
Я использовал готовые процедуры für работы с портами HT1621 из Ардуино.
Микросхема HT1621 128 ячеек для ЖКИ, которые организованы следующим образом 32x4 Bits, в памяти это 16 байт. В моем ЖКИ были подключены выводы Com0, Com1, Com2 и все сегменты 0-31.
Для определения какой адрес и какой бит отвечает за какой сегмент была написана простая программа, которая перебирает все адреса и все биты. Результаты были записаны в электронный таблицу для последующего анализа. Вот так выглядит заполненная таблица.
Теперь стало ясно, как управлять дисплеем. Так, например, чтобы включить сегменты B и C в первой позиции (самая левая) нужно изменить биты D5 D6 и на 1 по адресу 0x05, остальные биты должны быть оставлены без изменений, поскольку они повлияют на другие позиции.
Es gibt eine Reihe von Informationen, die Sie benötigen, um Ihre Meinung zu schreiben. Sie können Ihre Meinung zu либо цифры ножно поменять несколько битов в нескольких байтах. Зту задачу я решил следующим образом. Были подготовлены несколько таблиц:

1. HT1681_Address (72 байта), HT_1681_Value (72 байта)

2. b7SegDsp (10 байт)

HT1681_Address (72 байта), HT_1681_Value (72 байта) эти две таблицы связаны между собой следующим образом - вторая таблица представляет собой маску (для OR) для установки соответствующего бита в 1, причем первые девять байтов отвечают за сегменты A, B, C, D , E, F, G + десятичную точку + вернее «подчеркивание» первого знакоместа, следующие девять - за сегменты второго знакоместа, и так далее. Первая таблица - представляет собой адреса, которые соответствуют второй таблице. Для понимания внизу приведена иллюстрация.

Код для Ардуино

b7SegDsp (10 байт) Эта таблица кодирует какие сегменты должны включаться для отображения числа.Первый байт - это кодирование числа 0, последний байт кодирует 9. Старшие семь бит D7-D1 кодируют сегменты AG, младший D0 - не используется, я его установил в 0 кроме того, это экономит одное операцию битового сдвига влево - я использую маску 0x80 для проверки бита.
HT1681_Screen (16 байт) просто видеопамять, все 16 байтов. Ваначале рендерится все в память, ein затем все копируется в HT1621.
Ниже код, который выполняет рендеринг в HT1681_Bildschirm, который потом просто выводится в память микросхемы для отображения.


Ein paar:Xbox-Uhr Der nächste streifen:LED LCD und OLED. Преимущества и недостатки технологий дисплеев