
显示容量为16×2个字符;
芯片工作电压为4.5~5.5V;
工作电流为2.0mA(5.0V);
模块最佳工作电压为5.0V;
字符尺寸为2.95×4.35(W×H)mm。
(2)接口,信号说明1602LCD采用标准的14引脚(无背光)或16引脚(带背光)接口,各引脚接口说明见表
1602液晶接口引脚定义
| 编号 | 符号 | 引脚说明 | 编号 | 符号 | 引脚说明 |
| 1 | VSS | 电源地 | 9 | D2 | Date I/O |
| 2 | VDD | 电源正极 | 10 | D3 | Date I/O |
| 3 | VL | 液晶显示偏压信号 | 11 | D4 | Date I/O |
| 4 | RS | 数据/命令选择端(V/L) | 12 | D5 | Date I/O |
| 5 | R/W | 读/写选择端(H/L) | 13 | D6 | Date I/O |
| 6 | E | 使能信号 | 14 | D7 | Date I/O |
| 7 | D0 | Date I/O | 15 | BLA | 背光源正极 |
| 8 | D1 | Date I/O | 16 | BLK | 背光源负极 |
1、2组电源 一组是模块的电源 一组是背光板的电源 均为5V供电。
2、VL是调节对比度的引脚调节此脚上的电压可以改变黑白对比度
3、RS是很多液晶上都有的引脚 是命令/数据选择引脚 该脚电平为高时表示将进行数据操作;为低时表示进行命令操作。
4、RW也是很多液晶上都有的引脚 是读写选择端 该脚电平为高是表示要对液晶进行读操作;为低时表示要进行写操作。
5、E同样很多液晶模块有此引脚 通常在总线上信号稳定后给一正脉冲通知把数据读走,在此脚为高电平的时候总线不允许变化。
6、D0—D7 8位双向并行总线,用来传送命令和数据。
7、BLA是背光源正极,BLK是背光源负极。
与单片机的连接方式,如图9所示
图7 1602与单片机的连接方式图
(3)控制器接口说明
基本操作时序见表
基本操作时序
| 读状态 | 输入 | RS=L,R/W=H,E=H | 输出 | D0~D7=状态字 |
| 写指令 | 输入 | RS=L,R/W=L,D0~D7=指令码,E=高脉冲 | 输出 | 无 |
| 读数据 | 输入 | RS=H,R/W=H,E=H | 输出 | D0~D7=数据 |
| 写数据 | 输入 | RS=H,R/W=L,D0~D7=数据,E=高脉冲 | 输出 | 无 |
1写命令(包括但不限于初始化、调节显示位置、清除显示)
2写数据(把一个字符的ASC码写入液晶使其显示)
3读忙信号(液晶乃低速设备,每次操作前应该测试忙信号,确定其不忙时再操作)
(4)1602LCD的指令码(命令码)
此液晶上电的时候需要初始化 典型的指令码是38H,也就是上电的时候需要 调用void write_cmd(unsigned char command)这个函数写指令码,用法是write_cmd(0x38);执行完这个函数可以把液晶初始化成16x2显示5x7的点阵8位总线接口。以下指令码用法相同。
此液晶支持的指令码有
| 指令码 | 功能 | |||||||||||||
| 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 设置16×2显示,5×7点陈,8位数据接口 | ||||||
| 0 | 0 | 0 | 0 | 1 | D | C | B | D=1开显示;D=0关显示 C=1显示光标;C=0不显示光标 B=1光标闪烁;B=0光标不显示 | ||||||
| 0 | 0 | 0 | 0 | 0 | 1 | N | S | N=1当读或写一个字符后地址指针加一,且光标加一 N=0当读或写一个字符后地址指针减一,且光标减一 S=1当写一个字符,整屏显示左移(N=1) 或右移(N=0),以得到光标不移动而屏幕移动的效果。 S=0当写一个字符,整屏显示不移动 | ||||||
解释:第一行指令主要能完成的功能是 控制液晶显示否,光标显示否,光标闪烁否?
共有以下8种指令
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 08H | 关液晶显示 光标不闪烁 不显示光标位置 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 09H | 关液晶显示 光标不闪烁 显示光标位置 |
| 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0AH | 关液晶显示 光标不闪烁 不显示光标位置 |
| 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0BH | 关液晶显示 光标不闪烁 显示光标位置 |
| 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0CH | 开液晶显示 光标不闪烁 不显示光标位置 |
| 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0DH | 开液晶显示 光标不闪烁 显示光标位置 |
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0EH | 开液晶显示 光标不闪烁 不显示光标位置 |
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0FH | 开液晶显示 光标不闪烁 显示光标位置 |
| 指令码 | 功能 |
| 80H+地址码(0-27H,40H-67H) | 设置数据地址指针 |
解释: 用该指令码可以把光标移动到想要的位置
| 这是虚拟的液晶显示图 表示2行16列显示 方框中的数字表示当前位置的指针 | |||||||||||||||||||
| 80H | 81H | 82H | 83H | 84H | 85H | 86H | 87H | 88H | H | 8AH | 8BH | 8CH | 8DH | 8EH | 8FH | ||||
| C0H | C1H | C2H | C3H | C4H | C5H | C6H | C7H | C8H | C9H | CAH | CBH | CCH | CDH | CEH | CFH | ||||
| 例如: 只要调用write_cmd(0x82) ;函数就能把光标挪到第1行第3列的位置 | |||||||||||||||||||
| 指令码 | 功能 | ||||||||||||||||||
| 01H | 显示清屏:1.数据指针清零 2.所有显示清零 | ||||||||||||||||||
| 02H | 显示回车:1数据指针清零 | ||||||||||||||||||
