Service Hotline
+86-755-86524100
Conoscenza
Casa > Conoscenza > Contenuto

Categorie di prodotti

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

Fiammata Display Technology Co., Ltd | Updated: Mar 09, 2018

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

Разобрав это добро я стал обладателем трех ЖК дисплеев и трех чековых принтеров.
Как подключить дисплей к Ардуино? На плате ЖК дисплея было обнаружено несколько надписей. 5104219-01, 251 12, 251-Т2. Использована микросхема Holtek HT1621B, scheda tecnica был скачан и изучен. К сожалению, тип используемого ЖКИ так и не был опознан.
Прозвонив тестером выводы (6 выводов) я определил их назначение:
1) Dati
2) WR
3) CS
4) неизвестно *
5) Gnd
6) Vdd (+5 v)
* - подключены резисторы, конденсаторы, поскольку мне нужно было, я и не разбирался глубоко.
Я использовал готовые процедуры для работы с портами HT1621 из Ардуино.
Микросхема HT1621 128 ячеек для ЖКИ, которые организованы следующим образом 32x4 bit, в памяти это 16 байт. В моем ЖКИ были подключены выводы Com0, Com1, Com2 и все сегменты 0-31.
Для определения какой адрес и какой бит отвечает за какой сегмент была написана простая программа, которая перебирает все адреса и все биты. Результаты были записаны в электронную таблицу для последующего анализа. Вот так выглядит заполненная таблица.
Теперь стало ясно, как управлять дисплеем. Так, например, чтобы включить сегменты B и C в первой позиции (самая левая) нужно изменить биты D5 D6 и на 1 по адресу 0x05, остальные биты должны быть оставлены без изменений, поскольку они повлияют на другие позиции.
Если обратить внимание на таблицу, можно увидеть, что для отображения какой - либо цифры нужно поменять несколько битов в нескольких байтах. Ту задачу я решил следующим образом. Были подготовлены несколько таблиц:

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

2. b7SegDsp (10 áld)

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 байт) просто видеопамять, in 16 байтов. Вначале рендерится все в память, а затем все копируется в HT1621.

Ниже код, который выполняет рендеринг в HT1681_Screen, который потом просто выводится в память микросхемы для отображения.


Inchiesta
Send
Contattaci
Indirizzo: 5 ° piano, edificio di HSAE Tech, Hi-Tech Park, Nanshan, Shenzhen, Cina 518057,
Telefono: +86-755-86524100
Fax: +86-755-86524101
Posta elettronica: info@blazedisplay.com
Fiammata Display Technology Co., Ltd