Service Hotline
+86-755-86524100
Hiểu biết
Trang chủ > Hiểu biết > Nội dung

Danh mục sản phẩm

Màn hình LCD có màn hình LCD экран от кассового аппарата ЭКР-2102 к Ардуино

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

Разобрав это добро я стал обладателем трех ЖК дисплеев и трех чековых принтеров.
Как подключить дисплей к Ардуино? На плате ЖК дисплея было обнаружено несколько надписей. 5104219-01, 251 12, 251-Т2. Использована микросхема Holtek HT1621B, datasheet был скачан и изучен. К сожалению, тип используемого ЖКИ так и не был опознан.
Прозвонив тестером выводы (6 phút) я определил их назначение:
1) Dữ liệu
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 trang), 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 байтов. Вначале рендерится все в память, а затем все копируется trong HT1621.
Ниже код, который выполняет рендеринг в HT1681_Screen, который потом просто выводится в память микросхемы для отображения.


Yêu cầu thông tin
Send
Liên hệ chúng tôi
Địa chỉ: tầng 5, HSAE công nghệ xây dựng, công nghệ cao Park, Nanshan, Shenzhen, Trung Quốc 518057,
Điện thoại: +86-755-86524100
Fax: +86-755-86524101
Thư điện tử: info@blazedisplay.com
Công ty TNHH công nghệ màn chuyển ngọn lửa