LCD1602液晶显示模块的单片机驱动深入详解之硬件篇 (4)

说明:因为是写指令字,所以RS和RW都是0。LCD1602只能用并行方式驱动,不能用串行方式驱动。而并行方式又可以选择8位数据接口或4位数据接口。这里我们选择8位数据接口(D7—D0)。我们的设置是8位数据接口,两行显示,5×8点阵,即0b00111000也就是0x38。(注意:NF是10或11的效果是一样的,都是两行5×8点阵。因为它不能以两行5×10点阵方式进行显示,换句话说,这里用0x38或0x3c是一样的)。

2.显示开关控制指令(如图14)

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇


图14

D=1:显示开,D=0:显示关。

C=1:光标显示,C=0:光标不显示。

B=1:光标闪烁,B=0:光标不闪烁。

说明:这里的设置是显示开,不显示光标,光标不闪烁,设置字为0x0c。

(总结一下:显示开关与否不影响DDRAM已经写入的内容,光标闪烁速度与内部时钟Fosc有关)

3.进入模式设置指令(如图15、16)

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇


图15

I/D=1:写入新数据后光标右移。

I/D=0:写入新数据后光标左移。

S=1:显示移动。

S=0:显示不移动。

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇


 图16

说明:这里的设置是0x06。

(总结一下:光标的位置实际就是“地址计数器Address Counter/AC”的位置,I/D用来控制AC增加或减小。Shift就是屏幕移动,实际使用注意方向即可,如果只是屏移操作,是不会影响AC值的,是不是光标的位置也不变呢?当然要变,因为屏幕平移了,AC没有变即光标位置没有变,但相对位置变了。要注意这个指令与下一指令的区别:这个指令必须要有数据写入到DDRAM后才会相应有变化,而下一个指令是不需要有数据写入,直接控制光标或屏幕移动)

4.光标或显示移动指令(如图17、18)

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇


图17

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇


 图18

说明:在需要进行整屏移动时,这个指令非常有用,可以实现屏幕的滚动显示效果。初始化时不使用这个指令。

(总结一下:如果光标持续移动到某一行的结尾,比如光标在第一行向右移到第40(0x27)个字符,再移动的话,就会跳到第二行的第一个字符(0x40),注意看内存地址,两行的内存地址不是连续的)

5.清屏指令(如图19)

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇


图19

说明:清除屏幕显示内容。光标返回屏幕左上角。执行这个指令时需要一定时间。

(总结一下:清屏指令就是将所有80个字符地址写“Space”的字模地址,即20H,CGROM表中第一行从左到右第三个,也是空字符的ASCII码)

6.光标归位指令(如图20)

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇

 图20

说明:光标返回屏幕左上角,它不改变屏幕显示内容。

7.设置CGRAM地址指令(如图21)

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇


图21

说明:这个指令在上面已经介绍过。用法在后面例子中说明。

(总结一下:设置CGRAM地址或写CGRAM数据时,应将光标光闭,因为此时的光标是没有意义的)

8.设置DDRAM地址指令(如图22)

LCD1602液晶显示模块的单片机驱动深入详解之硬件篇


图22

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpwdd.html