Я пытался использовать ЖК-дисплей 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 бита. Таким образом, теоретически дисплей должен быть правильно инициализирован и отображать мигающий свет. Но ничего не происходит, просто остается синяя подсветка и подсвечивается первый ряд. Точно так же, как если бы вы установили его без каких-либо контактов, кроме силовых.
Что-то я написал неправильно? И если так, что? Я сейчас очень растерялся.