LCD全称Liquid Crystal Display,中文名液晶显示器。要实现机器与人的交互,那么就要给人一个直观的输出显示,数码管的丰富性过低,于是便要学习LCD显示器
LCD1602液晶显示屏的使用
工作原理
LCD1602专门用来显示字母、数字、符号,由两行,每行16个57或510的点阵自字符位组成,每个字符位可以显示一个字符。显示器内置128个ASCII码字符库,只有并行接口。
接口信号说明
1602有16个接口控制,接口功能如下图
基本时序操作
读状态:输入: RS=L,R/W=H,E=H;
读数据: 输入:RS=H,R/W=H,E=H;
写指令: 输入:RS=L,R/W=L,D0D7=指令码,E=高脉冲;D7=数据,E=高脉冲.
写数据: 输入:RS=H,R/W=L,D0
DDRAM
1602显示器基于HD44780芯片,其内置了DDRAM、CGRAM和CGROM。DDRAM相当于RAM,用来寄存待现显示的字符代码,共80个字节,地址和屏幕的对应关系如下:
当我们想要在第二行第一列显示“A“,只要在40H地址输入”A”的字形码就行了。
显示器只有16列,那么第一行10H和第二行50H之后的地址上的数据,需要通过移屏指令将他们移入。
状态字说明
原则上每次对单片机进行读写操作之前,都必须先进行读写检测,确保STA7=0,实际上,单片机操作速度慢于液晶控制器反应速度,因此可不进行检测,只进行短暂延时即可。
指令操作
清屏指令
功能:
1.将DDRAM全部填入“空白”ASCII码20H;
2.光标归位;
3.将地址计数器值设置为0。
进入模式设置指令
功能:进入一位数据后光标移动方向,字符是否移动。
|I/D:| 0 =光标左移 | 1=光标右移|
| – | – | – |
S: | 0=显示屏不移动 | 1=显示屏整体右移
显示开关控制指令
功能:控制显示器开关、光标是否显示及光标是否闪烁
|位名|0|1
|–|–|–|
D|显示功能关|显示功能开
C|无光标|有光标
B|光标闪烁|不闪烁
功能设定指令
功能:设定数据总线位数、显示的行数及字形。
|位名|0|1
|–|–|–|
DL|数据总线4位|8位
N|显示一行|两行
F|每字符57点阵|510点阵
写操作时序
- 通过RS确定写数据还是命令
- R/W端设置为写模式
- 将数据或命令送达数据总线
- 给E一个高脉冲,将数据送入液晶显示器
图中各个时序的延时因厂家不同而不同,大多很小,但为了运行稳定,最好短暂延时。
单片机接口
代码实现
1 | #include<reg52.h> |