标题: 单片机怎么要LCD1602第一行左移,而第二行右移?求帮助 [打印本页]

作者: 143838    时间: 2021-4-2 11:57
标题: 单片机怎么要LCD1602第一行左移,而第二行右移?求帮助
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家
如题
作者: OHHO    时间: 2021-4-2 19:31
不知道你这个需求具体想实现什么,不过倒是可以给你个思路,考虑一下将字符串分为两个部分,同时在第二行左侧和第一行右侧写空白字符来实现视觉上的左右移。
作者: dzbj    时间: 2021-4-2 20:19
1602一般不都是先写指令然后写数据么 要左移的时候 指令减一位然后开始写数据 右移相同 不就行了 然后如2楼说的 第一行和第二行分别写起始指令 后边跟随数据呗 比如你默认第一个字符在0x84和0xc4 那第一行从0x83 第二行从0xc5开始写呗
作者: 143838    时间: 2021-4-2 22:45
OHHO 发表于 2021-4-2 19:31
不知道你这个需求具体想实现什么,不过倒是可以给你个思路,考虑一下将字符串分为两个部分,同时在第二行左 ...

感谢

作者: 143838    时间: 2021-4-2 22:45
dzbj 发表于 2021-4-2 20:19
1602一般不都是先写指令然后写数据么 要左移的时候 指令减一位然后开始写数据 右移相同 不就行了 然后如2楼 ...

感谢

作者: 1051798957    时间: 2021-4-3 19:19
楼上说的对,找不到思路时最简单的就是利用for,i++
作者: lwh999995    时间: 2021-4-3 23:04
1. 看手册有移位指令
2. 左移右移其实就是移地址,例如右移,每次设置新的地址+1,那么字符串就会向右移动
作者: GlenXu    时间: 2021-4-4 21:09
分两部分,左移和右移是程序完成的,由你的字符缓冲区生成程序完成,一个数组把这个组的编号加一减一以及其它操作。另一部分是显示,第一行直接发送,即可,第二行的地址部分加80即完成第二行的发送。
就这样,先组装好你的字符数组,然后发送即可。
作者: ANT1987    时间: 2021-4-5 08:35
for(i=0;i<16;i++)//第一行X左向右移
{
    writeCMD(0x80+i);
    write_String('X');
}
for(i=15;i>=0;i--)//第二行X右向左移
{
    writeCMD(0x80+0x40+i);
    write_String('X');
}
类似这样
作者: 143838    时间: 2021-4-6 20:35
能提供代码吗,实在想不出,人太傻了
作者: 143838    时间: 2021-4-6 20:46
GlenXu 发表于 2021-4-4 21:09
分两部分,左移和右移是程序完成的,由你的字符缓冲区生成程序完成,一个数组把这个组的编号加一减一以及其 ...

可以具体看看代码啥的吗,




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1