1.首先看一下屏的存储器是多少的,也就是一行显示多少个字.我说的是1602的驱动IC里的ROM字.如果你显示的字符少于40个那请在显示时定位.
2.程序中是否有定义显示的位置.1602第一行第一个是80第二行加起来就是C0.
write_com(0x80+0x40); //更改数据指针,让字符换行
1602上下两行的起始地址不是连续的,有可能你的程序是正确的,只你要显示的内容没有在屏幕上显示出来。写第二行时改一下起始地址就行了。
既然你说了,程序在仿真中没有问题,而且在板子上能显示第一行,我估计就是对比度没有调节好,你可以试着调节一下。