Можете ли вы использовать 128-контактный ЖК-дисплей на atMega?

Я нашел пару старых калькуляторов, и их ЖК-дисплеи имеют около 130 контактов.

Мне было интересно, могу ли я создать драйвер ЖК-дисплея, чтобы уменьшить количество контактов ввода-вывода, потому что я не хочу использовать 14 расширителей ввода-вывода; или можно сделать 1 огромный расширитель?

, 👍-2

Обсуждение

Сдвиговые регистры могут быть проще и дешевле, поскольку вам не нужны возможности ввода, как с расширителями ввода-вывода., @chrisl

Что это за ЖК? Подключен ли каждый контакт к одному сегменту/пикселю, и все ли они имеют одну и ту же объединительную плату? Или это матрица строк-столбцов? Пожалуйста, имейте в виду, что вам нужно подать переменное напряжение на ЖК-дисплей, потому что постоянное напряжение будет вредным для него., @the busybee

Это точечная матрица 32x96, все работает на 1 1,5 В LR44., @Gert Maree


1 ответ


0

В этом ответе предполагается, что каждый сегмент ЖК-дисплея управляется отдельным выводом (см. комментарий Юрая).

С 74HC595 (сдвиговый регистр) вы можете использовать SPI для управления 8 выходами. Вы можете последовательно соединить 4 из них, чтобы получить 32 выхода только с контактами SPI, чтобы получить 128 контактов. Я предполагаю, что два контакта предназначены для GND и VCC. Если вам нужно более 128 выходных контактов GPIO, используйте 5 или более наборов последовательных регистров сдвига.

Теперь, поскольку эти регистры сдвига используют SPI, вы можете использовать выбор подчиненного устройства для использования нескольких наборов последовательно соединенных регистров сдвига. Хотя сам я этого никогда не пробовал.

Вы используете следующие контакты (кроме GND/VCC):

  • 3 контакта SPI (MISO, MOSI, CLK)
  • 4 контакта SS (по одному на каждый набор из 4 последовательных регистров сдвига)

Идея такова:

  1. Установите вывод SS на первый набор из 4 сдвиговых регистров
  2. Записать 32 выхода для первых 32 выходных контактов сегмента (используя 4 сдвиговых регистра первого набора)
  3. Установите вывод SS на следующий набор из 4 сдвиговых регистров
  4. Записать 32 вывода для следующего набора
  5. Продолжите со следующими двумя наборами (вы можете использовать 32 * 4 = 128 булавок)
  6. В следующем цикле снова начните с шага 1.
,

это предполагает, что один контакт управляет одним сегментом на ЖК-дисплее с цифровыми сегментами., @Juraj

@Juraj Правда, я добавил это в ответ, спасибо. Я бы подумал, что все равно иначе, зачем создавать нетривиальный протокол и все еще использовать 130 контактов. И спасибо за улучшение моего ответа., @Michel Keijzers

это может быть матрица, но теперь, когда я думаю об этом, это не меняет ответа, @Juraj

@Juraj Это сделало бы возможным множество сегментов (с матрицей XY). Но ведь сложнее только алгоритм заполнения кеглей. Я ожидаю, например, 10 цифр * 8 сегментов = 80 булавок и немного дополнительных элементов/слов вокруг (так как это старый калькулятор)., @Michel Keijzers

Я вижу, я думал об использовании 8 микросхем mcp23017 с 2-мя контактами, чтобы получить 128, и использовать 15 для матричных кнопок, что оставляет мне 36 контактов., @Gert Maree

Это тоже возможно, я пока не использовал MCP23017. В принципе, 74HC595 обычно предназначены для добавления выходов, однако я обнаружил, что 74HC595 могут подавать только 70 мА, поэтому в случае 8 сегментов вы можете использовать, например, ULN2803. Однако, как написал Busybee, вы можете вообще не использовать их, а конкретную микросхему / драйвер ЖК-дисплея, поскольку ЖК-дисплей использует переменный ток., @Michel Keijzers