Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 使用16x2液晶显示器和ARM组件_Assembly_Raspberry Pi_Arm_Lcd_Fasm - Fatal编程技术网

Assembly 使用16x2液晶显示器和ARM组件

Assembly 使用16x2液晶显示器和ARM组件,assembly,raspberry-pi,arm,lcd,fasm,Assembly,Raspberry Pi,Arm,Lcd,Fasm,我一直在尝试在FASMARM程序中使用16x2液晶显示器。LCD显示器的确切型号为tc1602a-21t。我也在这个项目中使用树莓皮3 因此,为了让生活更轻松,我编写了几个函数,打开和关闭,分别将r0中的Pin码设置为高或低。还有一个sleep功能,使程序睡眠r0毫秒。最后,我有另一个函数名为set_gpio_to_output和set_gpio_to_input,它依次将r0中的管脚设置为任一输出输入模式。 我只是列出了这些函数,因为它们在我的代码中非常常见 我的项目代码位于 首先,我声明R/

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

因此,为了让生活更轻松,我编写了几个函数,
打开
关闭
,分别将r0中的Pin码设置为
。还有一个
sleep
功能,使程序睡眠
r0
毫秒。最后,我有另一个函数名为
set_gpio_to_output
set_gpio_to_input
,它依次将
r0
中的管脚设置为任一输出输入模式。 我只是列出了这些函数,因为它们在我的代码中非常常见

我的项目代码位于

首先,我声明R/S、Enable和最后4个数据管脚的管脚号。我确保所有的接线都正确,并对其进行了彻底的测试,所以我可以肯定地说,接线没有问题

start
方法中,我调用
init\u display
函数,该函数应设置显示。然而,液晶显示器从未发生过任何变化。它只是打开第一行,因为电源引脚,但似乎数据引脚从来没有做任何事情

我主要遵循Python脚本,它完成了与我想做的相同的事情,但是使用Python

它表示要初始化,将数字0x33作为命令写入,然后写入0x32。我分别在第30行和第34行完成这两项工作。这些行前面的
mov r1、#0
命令指示传递的整数应作为命令发送到显示器

我用LED灯测试了很多次,延迟较慢,它们总是正确显示。每次我调用
write8
时,LED会先亮起较高的4位,然后亮起较低的4位。因此,理论上,显示器应正确初始化并显示闪烁的灯光。但什么也没发生,它只是保持蓝色背光,第一行高亮显示。就像你在没有任何引脚的情况下设置它一样,除了电源引脚


有什么我写错的吗?如果是,那又怎样?我现在非常困惑。

您是否将LCD模块的R/W插脚绑得很低?是的,我没有将其连接到任何电缆。如果插脚没有连接到任何东西,则我问题的答案是“否”。模块的一个输入浮动时无法可靠工作。我想我误解了什么,如果一个管脚没有连接到任何东西,该管脚不是一直很低吗?我仍然不明白为什么,但只要我将R/W管脚接地,它就开始工作了。如果你能解释为什么我会接受它作为正确答案c: