Главная » Микроконтроллеры
Призовой фонд
на май 2021 г.
1. Тестер компонентов MG328
Сайт Паяльник
2. 100 руб.

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


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

В продолжении предыдущей статьи по подключению и запуску дисплея от кассового аппарата "Меркурий 130К", решил также запустить дисплей от кассы "Элвес-Микро-К".

Дисплей выглядит следующим образом.

На плате дисплея имеется маркировка "UTC STC030801DLGY-E", но даташита на дисплей найти не удалось. Сердцем дисплея является контроллер Holtek HT1621, кристалл которого установлен на плату и залит компаундом. Даташит на контроллер без проблем нашёлся в Интернете.

Дисплей примечателен тем, что подключается по последовательной шине (SPI), а также имеет подсветку и звуковую индикацию. Управление подсветкой и звуковым сигналом происходит путём отправки специальных команд контроллеру дисплея, при этом не требуется подключать дополнительные провода. Подсветку можно только включать и отключать, регулировка яркости не предусмотрена. Частоту звукового сигнала можно выбирать: 2 кГц либо 4 кГц. Для общения с дисплеем использовалась программная реализация последовательного интерфейса. Распиновку дисплея я взял из схемы кассового аппарата. Дисплей был подключен к микроконтроллеру по следующей схеме.

Дисплейная память в контроллере HT1621 представлена в виде 32 адресов, по 4 бита в каждом адресе. Первым делом я записал по всем адресам логические "1", чтобы зажечь все сегменты и понять, какую информацию способен отображать дисплей.

Затем путём перебора всех адресов и битов каждого адреса, была составлена карта сегментов, где я обозначил соответствие адреса и бита для включения каждого сегмента. Первая цифра обозначает адрес сегмента в памяти, вторая цифра - битовую маску для включения сегмента.

Но так как работать с 4-битными данными неудобно, я объединил каждые 2 адреса вместе, получив 16 адресов по 8 бит, и сделал новую карту сегментов.

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

Пример отображения беззнакового числа.

Пример отображения цифр и символов.

Пример отображения чисел с разделителем.

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

Теги:

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

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

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

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

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

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
pcb432 #
У вас более удобный для самоделок, есть двоеточия для часов. У меня много видов, но все только с запятыми и подчеркиванием. Дисплей хорош как альтернатива "народному"16х2 и достаточно прост в управлении (когда разберёшься).
Ответить
0
Rdd #
Что-то статья, какая то не полная. Ну нарисовал карту сегментов и чё? Как ими управлять? На HT1621 не только ККМ Элвис, но Меркурий 130, ЭКР2102, миника, Орион-100к и т.д. У всех разная карта. Как ими управлять?
З.Ы. Звуком вообще не выгодно управлять, энергозатратно. Проще на мк ногой подрыгать.
Ответить
0

[Автор]
Zlodey #
У данных дисплеев используется "посегментное" управление. Для отображения символа необходимо включить несколько сегментов, следовательно необходимо записать несколько битов в несколько адресов согласно карты сегментов. Чтобы сегменты соседних символов не затирали друг друга (соседние символы находятся в пределах одного адреса) - используется дисплейный буфер, в который заполняется содержимое сегментов дисплея, затем буфер отправляется на дисплей.
Наибольшей ценностью статьи является карта адресов сегментов, т.к. остальная информация имеется в даташите на HT1621.
Про дисплей от Меркурия 130 я также писал статью, правда в таком же "урезанном" стиле.
Отредактирован 11.04.2020 20:36
Ответить
+1
andro #
А как узнали что используется именно Holtek HT1621 ?
Ответить
+1

[Автор]
Zlodey #
Сначала планировал снять обмен логическим анализатором, но обошлось без этого - нашёл информацию о типе контроллера на форуме
Ответить
0
Pauk #
Первым делом я записал по всем адресам логические "1", чтобы зажечь все сегменты и понять, какую информацию способен отображать дисплей.
Попался экран с таким же контроллером, можете описать процедуру установки бит всех сегментов?
Ответить
+1

[Автор]
Zlodey #
Я добавлял в прошивку счётчик бита, счётчик адреса, и опрос кнопки.
При каждом нажатии на кнопку увеличивал счётчик бита в текущем адресе.
Если счётчик бита был максимальным - сбрасывал счётчик бита, и увеличивал счётчик адреса на 1.
При каждом нажатии на кнопку битовое поле текущего адреса отправлялось на дисплей.
Так как один бит зажигает один сегмент на дисплее, сегменты постепенно зажигались.
Таким образом при помощи кнопки я перебирал все комбинации бит по всем адресам, и составил карту соответствия адресов/битов сегментам.
Всего адресное пространство дисплея содержит 32 адреса по 4 бита в каждом.
Для удобства можно "объединить" каждые 2 адреса, представив адресное пространство дисплея как 16 адресов по 8 бит.
Ответить
0
Pauk #
Спасибо за информацию, только не понял про объединение адреса, как это происходит? Может у Вас сохранился исходный код?
Ответить
+1

[Автор]
Zlodey #
Отправка данных в дисплей осуществляется последовательно, группами по 4 бита, начиная с 0 адреса, заканчивая адресом 31.
Таким образом, если микроконтроллер будет отправлять 2 раза по 4 бита, или отправит 1 раз 8 бит - дисплей в итоге получит одни и те же данные (8 бит). Всё благодаря тому, что адреса идут друг за другом.
То есть были данные 0000 1111, а стало 00001111. От этого ни содержимое битов, ни их количество, не изменилось.
Не знаю, понятно ли объяснил.
Исходный код есть в приложении к статье, там только добавить пару счётчиков, пару условий и опрос кнопки.
Ответить
0
Pauk #
Теперь понятно, благодарю!
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
МиниПК MK809V - 4 ядра, Android 4.4.2 Макетная плата для пайки (10 шт)
вверх