51单片机LCD1602字符平移的一个简单问题

0x07 和0x18/0x1c 这两种有什么不同啊。。我为什么第二种可以实现平移 而第一种初始化的时候设置过之后后面没反应啊?

根据我的理解,移位方式设定寄存器的D4位的复位状态为1,此时允许移位操作,如果设置为0x07那么,D4被强行置0,就一定没有移位操作了,而后是S/C(D3)、R/L(D2)这两位,复位状态为0、0;此时为默认的光标左移(AC-1操作),这也是常用的工作模式,所以一般初始化时都不进行移位方式的格式化,此时默认为0x10即“光标左移方式”;而你的0x18模式为“整个显示屏左移方式”,0x1c为“整个显示屏右移方式;找本书或找些资料看看,很简单的。追问

额。。不是太懂。。可能太专业了 我才学的 我在描述下我的问题吧 在初始化的时候 设置
显示光标移动设置 的时候会用到写指令0x06 是最常用的 然后在while循环中可以通过写指令0x18/0x1c进行左右移 这种方式我可以理解
但是我看芯片资料说当DB3-DB7为0 DB2为1的时候 ,DB0为1的时候解释为“数据读写操作,画面平移” 就是对这句话不懂 不知道这个画面平移和0x18/0x1c 这个有什么不同

追答

我本来就不是高手,让你也拐晕了,我都是在初始化函数里一次性把每个指令设置好,进入while循环前调用一次后,在while里就只有功能函数了,你说的0x18/0x1c 应该就是所说的“画面左、右平移”指令,另外,涉及到光标和字符的移动设置,在“输入模式设定”、“移位方式设定”、“光标归位”等设定里都有设定位,只懂以上这些,1602的资料极多,百度下会搞清的,祝成功。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-02
0x18/0x1c是整屏移动 ,而0x07是每写入一个字符都需要一次这个指令,不是直接加在初始化程序的
相似回答