Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Подключение дисплея от кассового аппарата Меркурий 130К к микроконтроллеру

После введения онлайн касс, у многих в загашниках завалялись старые кассовые аппараты. Вот и я стал обладателем нескольких аппаратов Меркурий 130К.

Внутри аппарата нет практически ничего ценного - древний микроконтроллер, никому ненужный термопринтер, свинцовый аккумулятор, итд. Но кое-что в нём меня всё же заинтересовало - это ЖК дисплей. Вернее их два: один дисплей является основным, а второй служит в роли дисплея покупателя.

Основной дисплей меня не очень интересовал, так как он впаян в основную плату кассового аппарата. А вот дисплей покупателя очень заинтересовал, так как он установлен на отдельной плате небольшого размера, по сути является готовым дисплейным модулем для радиолюбительских самоделок.

После демонтажа дисплея выяснилось, что он сделан на базе микросхемы контроллера ЖК дисплея Holtek HT1621B. Это широко известный контроллер дисплея, в интернете про него есть много информации.

Даташит на микросхему был найден на сайте производителя. Далее при помощи даташита и прозвонки мультиметром, была определена распиновка дисплея. Напряжение питания дисплея составляет 5В, это я выяснил включив кассовый аппарат.

Дисплей работает по последовательной шине. О принципах работы микросхемы HT1621 рассказывать не буду, так как про этот чип есть много информации в интернете. Я подключил дисплей к макетной плате с микроконтроллером ATmega48PA по следующей схеме.

Вот так это выглядит "в железе".

В даташите на микросхему HT1621 описан протокол обмена, но мне не удалось найти схему коммутации сегментов внутри стекла дисплея. Чтобы не прозванивать каждый сегмент мультиметром, с целью определить комбинацию адреса и бита для каждого сегмента, я написал простенькую программу для перебора всех адресов и всех битов каждого адреса. Всего у микросхемы 32 адреса по 4 бита в каждом, то есть микросхема поддерживает управление до 128 сегментами. В итоге получилась вот такая раскладка сегментов.

Первая цифра обозначает адрес данного сегмента, вторая цифра - значение, или битовая маска для включения сегмента. Для удобной работы микроконтроллера с дисплеем, я объединил каждую пару адресов, получив при этом 16 адресов по 8 бит. Раскладка сегментов получилась следующая:

Далее была написана библиотека для работы с дисплеем. В библиотеке используется программная реализация последовательного интерфейса. При помощи библиотеки можно отображать на дисплее: цифры, знаковые и беззнаковые числа, символы, верхние и нижние точки. В общем реализована полная поддержка всех сегментов данного дисплея. На фотографиях ниже можно ознакомиться с примерами отображения.

Напоследок - выкладываю исходный код, который был написан в AVR Studio 5 версии.
Ну и конечно желаю всем успешных самоделок!

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 03.05.2020 0 2
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (12) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
+1
shved #
Я тоже игрался с индикаторами на таком контроллере. Применяется очень много где: в некоторых счетчиках "ЛЭМЗ", "меркурий" и "энергомера", стационарных телефонах и т.п.
Делал несколько приборов:
https://cxem.net/master/98.php
И еще делал двухканальный градусник на термисторах и Arduino.
Ответить
0

[Автор]
Zlodey #
Посмотрел статью, прикольно
Ответить
0
andro #
Сколько он потребляет в среднем?
Ответить
+1

[Автор]
Zlodey #
300-600 мкА в рабочем режиме
Ответить
0
andro #
Прекрасный показатель, можно смело использовать в носимых устройствах.
Ответить
0
Pauk #
Чтобы не прозванивать каждый сегмент мультиметром, с целью определить комбинацию адреса и бита для каждого сегмента, я написал простенькую программу для перебора всех адресов и всех битов каждого адреса.
Попался экран с таким же контроллером, можете поделиться кодом для определения адресов и бит сегментов?
Ответить
0

[Автор]
Zlodey #
Ответил вам в статье про дисплей от "Элвеса"
Ответить
0
Pauk #
Благодарю!
Ответить
+1
walhi #
Спасибо за карту сегментов. Пригодится. Тоже стал обладателем пары экземпляров. Один планирую перешить в термопринтер для компа, а из второго сделать автономную игрушку. В смысле оставить родной процессор (или заменить его на похожий, но прошиваемый через SPI). Код из статьи попробовал, переделал его, чтобы мог собираться как под 8051, установленный на родной плате (компилятор SDCC), так и под AVR (gcc). Как проект будет готов - опубликую ссылку на github репозиторий.
Ответить
0

[Автор]
Zlodey #
Благодарю за отзыв!
Ответить
0
Василий #
Под 8051 переделали? Я переделал под Keil, хотелось бы с вашим сравнить. Может у вас более оптимально сделано.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Raspberry Pi 2 Бокс для хранения компонентов
вверх