关于lcd1602移屏问题
求大神帮帮忙!最好有具体指令讲解
求大神解答.
程序贴上来看看,不然不好说
额,我就是想问一下,移屏到第二页之后应该怎样将它固定着~
应该是你程序有问题,移屏指令每次只移动一列,操作完就结束了,不会不停的移动。看看你控制移屏16列的循环有没有问题。
指令不是用0x18吗? 要不要先设置指针什么的先阿?
不用,直接把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);
}
前面初始化的那几个函数都不写了,主函数就是这个,就想把它移进显示区域.可是执行后只会不停地移动
最后加一个while(1);
用于停止程序,不停下来的话会从main函数开始语句再次执行程序(我记得好像是这样),就造成了你说的不断移屏的现象了。
- 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);
- }
- while(1);
可是如果在有其它程序的情况下,整个程序一执行不就停在这里了吗? 有什么方法可以让它跳出来阿?
如果你还有其他程序,那你就不加while(1),在下面继续写的程序,他执行完移屏后会继续执行下面的语句,知道所有程序都执行完了,在后面再加一个while(1)。
或者你把这个1602显示程序改为子函数,当需要的时候就在main函数里调用,在main函数结尾处加上while(1)。
说的不错,顶一个
看1602的指令表,每写一次,整屏移动一位
同求同求同求同求同求同求同求同求同求同求同求同求同求同求