КАК ПОДКЛЮЧИТЬ LCD ЭКРАН ОТ КАССОВОГО АППАРАТА К ЭКР-2102 АРДУИНО

- Mar 09, 2018 -

КАК-ТО ПРОСМАТРИВАЯ ОБЪЯВЛЕНИЯ НА OLX, Я НАТКНУЛСЯ НА РАСПРОДАЖУ СТАРОЙ ЭЛЕКТРОНИКИ ПО ОЧЕНЬ НИЗКИМ ЦЕНАМ, В ИТОГЕ БЫЛО КУПЛЕНО ТРИ КАССОВЫХ АППАРАТА И ОДИН МОДЕМ (НА РАЗБОР С ЦЕЛЬЮ ПОПОЛНЕНИЯ ЗАПАСОВ). ЦЕНА ВОПРОСА 1500 ТЕНГЕ — ПРИМЕРНО 250 РУБЛЕЙ.

Разобрав это добро я стал обладателем трех ЖК дисплеев и трех чековых принтеров.
КАК ПОДКЛЮЧИТЬ ДИСПЛЕЙ К АРДУИНО? НА ПЛАТЕ ЖК ДИСПЛЕЯ БЫЛО ОБНАРУЖЕНО НЕСКОЛЬКО НАДПИСЕЙ. 5104219-01, 251 12, 251-Т2. Использована микросхема Holtek HT1621B, folha de dados был скачан и изучен. К СОЖАЛЕНИЮ, ТИП ИСПОЛЬЗУЕМОГО ЖКИ ТАК И НЕ БЫЛ ОПОЗНАН.
Прозвонив тестером выводы (6 выводов) я определил их назначение:
1) dados
2) WR
3) CS
4) неизвестно*
5) Gnd
6) Vdd (+ 5 v)
* — подключены резисторы, конденсаторы, поскольку мне нужно было, я и не разбирался глубоко.
Я ИСПОЛЬЗОВАЛ ГОТОВЫЕ ПРОЦЕДУРЫ ДЛЯ РАБОТЫ С ПОРТАМИ HT1621 ИЗ АРДУИНО.
Микросхема HT1621 128 ячеек для ЖКИ, которые организованы следующим образом 32 x 4 bocados, в памяти это 16 байт. В моем ЖКИ были подключены выводы Com0, Com1, Com2 и все сегменты 0-31.
Для определения какой адрес и какой бит отвечает за какой сегмент была написана простая программа, которая перебирает все адреса и все биты. Результаты были записаны в электронную таблицу для последующего анализа. Вот так выглядит заполненная таблица.
ТЕПЕРЬ СТАЛО ЯСНО, КАК УПРАВЛЯТЬ ДИСПЛЕЕМ. ТАК, НАПРИМЕР, ЧТОБЫ ВКЛЮЧИТЬ СЕГМЕНТЫ B И C В ПЕРВОЙ ПОЗИЦИИ (САМАЯ ЛЕВАЯ) НУЖНО ИЗМЕНИТЬ БИТЫ D5 И D6 НА 1 ПО АДРЕСУ 0X05, ОСТАЛЬНЫЕ БИТЫ ДОЛЖНЫ БЫТЬ ОСТАВЛЕНЫ БЕЗ ИЗМЕНЕНИЙ, ПОСКОЛЬКУ ОНИ ПОВЛИЯЮТ НА ДРУГИЕ ПОЗИЦИИ.
Если обратить внимание на таблицу, можно увидеть, что для отображения какой — либо цифры нужно поменять несколько битов в нескольких байтах. Эту задачу я решил следующим образом. Были подготовлены несколько таблиц:

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

2. b7SegDsp(10 байт)

HT1681_Address(72 байта), HT_1681_Value (72 байта) эти две таблицы связаны между собой следующим образом — вторая таблица представляет собой маску (для ou) для установки соответствующего в бита 1, причем первые девять байтов отвечают за сегменты A, B, C, D, E, F, G + ДЕСЯТИЧНУЮ ТОЧКУ + ВЕРНЕЕ «ПОДЧЕРКИВАНИЕ» ПЕРВОГО ЗНАКОМЕСТА, СЛЕДУЮЩИЕ ДЕВЯТЬ — ЗНАКОМЕСТА DE ВТОРОГО СЕГМЕНТЫ ЗА, И ТАК ДАЛЕЕ. ПЕРВАЯ ТАБЛИЦА — ПРЕДСТАВЛЯЕТ СОБОЙ АДРЕСА, КОТОРЫЕ СООТВЕТСТВУЮТ ВТОРОЙ ТАБЛИЦЕ. ДЛЯ ПОНИМАНИЯ ВНИЗУ ПРИВЕДЕНА ИЛЛЮСТРАЦИЯ.

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

b7SegDsp (байт 10) Эта таблица кодирует какие сегменты должны включаться для отображения числа.Первый байт — это кодирование числа 0, последний байт кодирует 9. СТАРШИЕ СЕМЬ БИТ D7-D1 КОДИРУЮТ СЕГМЕНТЫ AG, МЛАДШИЙ D0 — НЕ ИСПОЛЬЗУЕТСЯ, Я ЕГО УСТАНОВИЛ В 0, КРОМЕ ТОГО, ЭТО ЭКОНОМИТ ОДНУ ОПЕРАЦИЮ БИТОВОГО СДВИГА ВЛЕВО — Я USO МАСКУ 0X80 ДЛЯ ПРОВЕРКИ БИТА.
HT1681_Screen (байт 16) просто видеопамять, байтов все 16. ВНАЧАЛЕ РЕНДЕРИТСЯ ВСЕ В ПАМЯТЬ, А ЗАТЕМ ВСЕ КОПИРУЕТСЯ В HT1621.

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


Um par de:Nova tecnologia de LCD poderia fazer exposições de realidade virtual três vezes mais nítidas O próximo artigo:IPS-ЭКРАН – ЧТО ЭТО ТАКОЕ И В ЧЕМ ПРЕИМУЩЕСТВА ТЕХНОЛОГИИ