单片机中如何实现LCD屏字符一行一行向上移动?

如题,我想实现单片机控制1602,2004等lcd整行字符串往上移动功能,如:开始第一行显示: 12345,第二行显示:6789,第三行显示:abcde,下一秒鈡变成:第一行显示:6789,第二行显示abcde,第三行显示:fijkl,也就是看起来所有字符行向上移动的功能,不知C代码要如何实现,

增设一个N行的输出缓冲区,要输出的内容先写到缓冲区中,记录缓冲区实际数据行数
每次新输出一行时,缓冲区数据行数未满则直接添加一行,如果满则先移动:第二行复制到第一行,第三行复制到第二行...第N行复制到第N-1行,然后新内容写到第N行
然后清屏把缓冲区内容全部重新输出到LCD屏, 大体的思路如此,应当可以实现你的想法追问

有没有同类型的代码可作参考?缓冲区数组结构应如何判断为好?谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-03
如果你会写LCD,那就每隔一定的时间,重新写一遍LCD。
每一次,你愿意显示什么,就显示什么。
向上滚动、向下滚动,拉幕、平移...,还不是随你的意?追问

一条条写上去哪每次得写多少行啊

追答

LCD1602 仅仅有两行,而且是字符方式,
和 LED 汉字显示屏的滚动显示效果相比,编程要容易的多了。

追问

谢谢你的回答,但我用的是4*4的屏啊,这样要做成动态上移效果就要码很多代码了,所以我才会上面问各位高手了啊,

第2个回答  2012-11-03
指针改变指向,使其指向下一行
第3个回答  2012-11-03
通过更改CGRAM首地址来实现。
相似回答