关于lcd1602移屏问题

2019-07-15 23:03发布

我想按一下键盘的时候把整个屏幕移16位,得到新的两行,可是为什么我一输入移屏指令0x18之后,屏幕就不断地移动,不能停下来那?
求大神帮帮忙!!!最好有具体指令讲解
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
Mcgrady/v
1楼-- · 2019-07-16 18:11
tangkii 发表于 2013-8-13 20:47
不用,直接把0x18,当作命令送进1602就可以了,送一次移动一列。
还是建议你贴一下程序
...

write_com(0x80+0x11);
for(num=0;num<15;num++)
{
write_date(table7[num]);
}
   
write_com(0x80+0x54);
for(num=0;num<5;num++)
{
  write_date(table8[num]);
}
for(num=0;num<16;num++)
{
  write_com(0x18);
}
前面初始化的那几个函数都不写了,主函数就是这个,就想把它移进显示区域.可是执行后只会不停地移动
tangkii
2楼-- · 2019-07-16 19:26
 精彩回答 2  元偷偷看……
Mcgrady/v
3楼-- · 2019-07-16 20:32
tangkii 发表于 2013-8-13 22:42
最后加一个while(1);
用于停止程序,不停下来的话会从main函数开始语句再次执行程序(我记得好像是这样 ...

可是如果在有其它程序的情况下,整个程序一执行不就停在这里了吗? 有什么方法可以让它跳出来阿?
tangkii
4楼-- · 2019-07-16 23:39
Mcgrady/v 发表于 2013-8-14 10:47
可是如果在有其它程序的情况下,整个程序一执行不就停在这里了吗? 有什么方法可以让它跳出来阿? ...

如果你还有其他程序,那你就不加while(1),在下面继续写的程序,他执行完移屏后会继续执行下面的语句,知道所有程序都执行完了,在后面再加一个while(1)。
或者你把这个1602显示程序改为子函数,当需要的时候就在main函数里调用,在main函数结尾处加上while(1)。
云上懒虫
5楼-- · 2019-07-17 03:38
说的不错,顶一个
太阳真滴很圆
6楼-- · 2019-07-17 06:34
看1602的指令表,每写一次,整屏移动一位

一周热门 更多>