LCD1602知识总结 - 图文

更新时间:2023-12-04 06:04:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

LCD1602写操作时序:

LCD1602读操作时序:

1602采用标准的16脚接口,其中: 第1脚:VSS为地电源 第2脚:VDD接5V正电源

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。 第15~16脚:空脚

1602液晶模块内部的控制器共有11条控制指令:

它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说

明:1为高电平、0为低电平)

指令1:清显示,指令码01H,光标复位到地址00H位置

指令2:光标复位,光标返回到地址00H

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效

指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标

指令6:功能设置命令 DL:高电平时为8位总线,低电平时为4位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符

指令7:字符发生器RAM地址设置 DB5DB4DB3 为字符号,也就是你将来要显示该字符时要用到的字符 地址。(000~111)(能定义八个字符)

DB2DB1DB0为行号。(000~111)(八行) 指令8:DDRAM地址设置

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据 指令11:读数据

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3是DM-162的内部显示地址.

比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)

操作举例:(具体操作以实际为准) 基本操作时序:(0x80+地址)

读状态 输入:RS=0,RW=1, E=1 输出:DB0—DB7=状态字

读数据 输入:RS=1, RW=1, E=1 输出:DB0—DB7=数据

写指令 输入:RS=0, RW=0 ,E=上升沿脉冲,DB0—DB7=指令码 输出:无

写数据 输入:RS=1, RW=0 ,E=上升沿脉冲, DB0—DB7=数据 输出:无

共11条指令:(平常只有三四条常用)(初始化步骤:6---4---3---1) (X表示无所谓)

1、清屏指令(0x01)

2、光标归位(0x02或0x03) 0000001X

3、输入模式设置指令(功能:设定每次写入数据后光标的移位方向,并且设定每次写入的一个字符是否移动)

0x04(写入新数据后光标左移,显示屏不移动)

0x05(写入新数据后光标左移,显示屏整体右移1个字) 0x06(写入新数据后光标右移,显示屏不移动)

0x07(写入新数据后光标右移,显示屏整体右移1个字)

4、显示开关控制指令:00001DCB

D 0显示功能关 1显示功能开 C 0无光标 1有光标 B 0光标不闪烁 1光标闪烁

5、设定显示屏或光标移动方向指令 0001ABXX A B (由AB共同控制)

0 0 光标左移1格,且AC值减1 0 1 光标右移1格,且AC值加1

1 0 显示器上字符全部左移一格,但光标不动 1 1 显示器上字符全部右移一格,但光标不动

---------------------------------------------------------------------------------------------

6、功能设定指令(非常重要的指令) 用来初始化 一般使用0x38 001ABCXX

(功能:设定数据总线位数、显示的行数及字型)

A 0=数据总线为4位 1=数据总线为8位(8个I/O口控制,如果用4位要传两次数据,目的为了减少端口) B 0=显示1行 1=显示2行

C 0=5*7点阵/每字符 1=5*10点阵/每字符 (!!本液晶只能支持0) --------------------------------------------------------------------------------------------- 7、设定CGRAM地址指令 1+CGRAM地址(7位)

8、设定DDRAM地址指令:(功能:设定下一个数据的DDRAM的地址) 注意:这里我们送地址的时候应该是“0x80+地址”

9、读取忙信号或AC地址指令 (BF)+AC内容(7位)

功能:1、读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;

当BF=0时,液晶显示器可以接收单片机送来的数据或指令; 2、读取地址计数器(AC)的内容

10、数据定性DDRAM或CGRAM指令:RS=1 R/W=0

1、将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符; 2、将用户自己设计的图形存入CGRAM

11、从CGRAM或DDRAM读出数据的指令(一般不用,一般只从显示屏读忙指令)

初始化函数

void LcdInt(void) {

delay(15); //延时15ms,首次写指令时应给LCD一段较长的反应时间

Write_com(0x38); //显示模式设置:16×2显示,5×7点阵,8位数据接口 delay(5); //延时5ms Write_com(0x38); delay(5);

Write_com(0x38); //3次写 设置模式 delay(5);

Write_com(0x0F); //显示模式设置:显示开,有光标,光标闪烁 delay(5);

Write_com(0x01); //清屏幕指令,将以前的显示内容清除 delay(5);

Write_com(0x06); //显示模式设置:光标右移,字符不移 }

本文来源:https://www.bwwdw.com/article/unwt.html

Top