在ARM组件上使用16x2 LCD显示器

我一直试图在FASMARM程序中使用16x2 LCD显示器。 LCD显示器的确切型号为tc1602a-21t。我还在这个项目中使用树莓派3。

因此,为了使生活更轻松,我编写了一些函数turn_gpio_onturn_gpio_off,将位于r0的Pin编号分别转换为HIGHLOW。还具有sleep函数,该函数可使程序休眠r0毫秒。最后,我还有另一个名为set_gpio_to_outputset_gpio_to_input的功能,它们依次将r0中的引脚设置为任一输出输入模式。 我之所以列出这些功能是因为它们在我的代码中相当常见。

我的项目代码位于here

首先,我声明R / S,使能和最后4个数据引脚的引脚号。我确保正确连接所有电线并进行了全面测试,以便可以肯定地说接线没有问题。

然后从start方法中调用init_display函数,该函数应设置显示。但是,液晶显示器什么也没有发生。由于电源引脚的作用,它只是打开了第一行,但似乎数据引脚从未做任何事情。

我主要遵循this Python脚本,该脚本执行与我想做的相同的事情,但是使用python。

它说在那里初始化将数字0x33作为命令,然后写入0x32。我分别在第30行和第34行上做它们。这些行之前的mov r1,#0命令表示应将传递的整数作为命令发送到显示器。

我用LED多次测试了所有内容,但延迟时间较慢,并且它们始终正确显示。每次我呼叫write8时,LED都会先打开高4位,然后再低4位。因此,理论上应该正确初始化显示器并显示闪烁的灯光。但是什么也没发生,它只是停留在蓝色背光灯下,而第一行高亮显示。就像您将其设置为除了电源引脚外没有其他引脚一样。

我写错了什么吗?如果是这样呢?我现在非常困惑。

junqiou 回答:在ARM组件上使用16x2 LCD显示器

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3165363.html

大家都在问