В продолжении предыдущей статьи по подключению и запуску дисплея от кассового аппарата "Меркурий 130К", решил также запустить дисплей от кассы "Элвес-Микро-К".
Дисплей выглядит следующим образом.
На плате дисплея имеется маркировка "UTC STC030801DLGY-E", но даташита на дисплей найти не удалось. Сердцем дисплея является контроллер Holtek HT1621, кристалл которого установлен на плату и залит компаундом. Даташит на контроллер без проблем нашёлся в Интернете.
Дисплей примечателен тем, что подключается по последовательной шине (SPI), а также имеет подсветку и звуковую индикацию. Управление подсветкой и звуковым сигналом происходит путём отправки специальных команд контроллеру дисплея, при этом не требуется подключать дополнительные провода. Подсветку можно только включать и отключать, регулировка яркости не предусмотрена. Частоту звукового сигнала можно выбирать: 2 кГц либо 4 кГц. Для общения с дисплеем использовалась программная реализация последовательного интерфейса. Распиновку дисплея я взял из схемы кассового аппарата. Дисплей был подключен к микроконтроллеру по следующей схеме.
Дисплейная память в контроллере HT1621 представлена в виде 32 адресов, по 4 бита в каждом адресе. Первым делом я записал по всем адресам логические "1", чтобы зажечь все сегменты и понять, какую информацию способен отображать дисплей.
Затем путём перебора всех адресов и битов каждого адреса, была составлена карта сегментов, где я обозначил соответствие адреса и бита для включения каждого сегмента. Первая цифра обозначает адрес сегмента в памяти, вторая цифра - битовую маску для включения сегмента.
Но так как работать с 4-битными данными неудобно, я объединил каждые 2 адреса вместе, получив 16 адресов по 8 бит, и сделал новую карту сегментов.
Далее была написана небольшая библиотека для работы с дисплеем. Исходный код можно скачать в конце статьи. В библиотеке имеется базовый набор функций для отображения цифр, чисел, и символов. На фотографиях ниже можно ознакомиться с примерами отображения на дисплее.
Пример отображения беззнакового числа.
Пример отображения цифр и символов.
Пример отображения чисел с разделителем.
Прикрепленные файлы:
- HT1621_rev3_21_Holtek.pdf (513 Кб)
- LCD_Elves_Micro_K_Zlodey_v20200503.zip (157 Кб)
Комментарии (13) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
З.Ы. Звуком вообще не выгодно управлять, энергозатратно. Проще на мк ногой подрыгать.
[Автор]
Наибольшей ценностью статьи является карта адресов сегментов, т.к. остальная информация имеется в даташите на HT1621.
Про дисплей от Меркурия 130 я также писал статью, правда в таком же "урезанном" стиле.
[Автор]
[Автор]
При каждом нажатии на кнопку увеличивал счётчик бита в текущем адресе.
Если счётчик бита был максимальным - сбрасывал счётчик бита, и увеличивал счётчик адреса на 1.
При каждом нажатии на кнопку битовое поле текущего адреса отправлялось на дисплей.
Так как один бит зажигает один сегмент на дисплее, сегменты постепенно зажигались.
Таким образом при помощи кнопки я перебирал все комбинации бит по всем адресам, и составил карту соответствия адресов/битов сегментам.
Всего адресное пространство дисплея содержит 32 адреса по 4 бита в каждом.
Для удобства можно "объединить" каждые 2 адреса, представив адресное пространство дисплея как 16 адресов по 8 бит.
[Автор]
Таким образом, если микроконтроллер будет отправлять 2 раза по 4 бита, или отправит 1 раз 8 бит - дисплей в итоге получит одни и те же данные (8 бит). Всё благодаря тому, что адреса идут друг за другом.
То есть были данные 0000 1111, а стало 00001111. От этого ни содержимое битов, ни их количество, не изменилось.
Не знаю, понятно ли объяснил.
Исходный код есть в приложении к статье, там только добавить пару счётчиков, пару условий и опрос кнопки.