Используйте ЖК-дисплей 16x2 со сборкой ARM - PullRequest
0 голосов
/ 04 ноября 2019

Я пытался использовать ЖК-дисплей 16x2 с моей программой FASMARM. Точная модель ЖК-дисплея tc1602a-21t. Я также использую Raspberry Pi 3 для этого проекта.

Итак, чтобы упростить жизнь, я написал несколько функций, turn_gpio_on и turn_gpio_off, которые превращают номер Pin, расположенный в r0, в HIGH илиLOW соответственно. Также есть функция sleep, которая переводит программу в спящий режим на r0 миллисекунды. Наконец, у меня есть еще одна функция с именем set_gpio_to_output и set_gpio_to_input, которая, в свою очередь, устанавливает вывод в r0 на любой из режимов ввода. Я просто перечислил эти функции, потому что они довольно часто встречаются в моем коде.

Мой код проекта находится здесь .

Сначала я объявляю номера выводов для R/ S, Включить и последние 4 вывода данных. Я удостоверился, что все правильно подключено, и проверил это тщательно, так что я могу точно сказать, что нет проблем с проводкой.

Из метода start я затем вызываю функцию init_display, которая должна настроитьдисплей. Тем не менее, ничего не происходит с ЖК-дисплеем. Он просто включает первую строку из-за контактов питания, но кажется, что контакты данных ничего не делают.

Я в основном следовал этому скрипту Python, который делает то же самое, что и яdo, но в python.

Там написано, что для инициализации запишите число 0x33 в качестве команды, а затем 0x32. Я делаю оба из них в строке 30 и 34 соответственно. Команда mov r1, #0 перед этими строками указывает, что переданное целое число должно быть отправлено на дисплей в виде команды.

Я тестировал все со светодиодами так много раз, с более медленной задержкой, и они всегда отображались правильно,Каждый раз, когда я звоню write8, светодиоды включают сначала старшие 4 бита, а затем младшие 4 бита. Таким образом, теоретически дисплей должен быть правильно инициализирован и отображать мигающий свет. Но ничего не происходит, просто остается синяя подсветка и подсвечивается первый ряд. Точно так же, как если бы вы установили его без каких-либо контактов, кроме силовых.

Что-то я написал неправильно? И если так, что? Я сейчас очень растерялся.

...