文章来源:《单片机C语言编程与Proteus仿真技术》。
点阵字符型LCD显示模块只能显示英文字符和简单的汉字,要想显示较为复杂的汉字或图形,就必须采用点阵图型LCD显示模块,比如12864点阵图型LCD显示模块。
一、 LCD12864点阵图型显示模块
12864点阵图型LCD显示模块内部控制器采用KS0108或HD61202。其引脚排列如下图所示:
各引脚功能功能如下表:
引脚 | 符号 | 功能 | 引脚 | 符号 | 功能 |
1 | /CS1 | 1=选择左边64x64点 | 7 | RW | 1=数据读取,0=数据写入 |
2 | /CS2 | 1=选择右边64x64点 | 8 | E | 使能信号,负跳变有效 |
3 | GND | 地 | 9~16 | DB0~DB7 | 数据信号 |
4 | VCC | +5V电源 | 17 | /RST | 复位,低电平有效 |
5 | V0 | 显示驱动电源0~5V | 18 | -Vout | LCD驱动负电源 |
6 | RS | 1=数据输入,0=命令输入 | 有些模块19、20引脚为空脚 |
12864点阵图型LCD内部存储器DDRAM与显示屏上的显示内容具有对应关系,使用时只需要将显示内容写入到1286412864内部显示存储器DDRAM中,就能正确显示。
12864点阵图型LCD屏横向有128个点,纵向有64个点,分为左半屏和右半屏。
DDRAM与显示屏的对应关系如下表:
/CS1=1(左半屏) | /CS2=1(右半屏) | ||||||||||
Y= | 0 | 1 | ... | 62 | 63 | 0 | 1 | ... | 62 | 63 | 行号 |
X=0 | DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
0 ↓ 7 |
X=1 | DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
8 ↓ 15 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
X=7 | DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
DB0 ↓ DB7 |
56 ↓ 63 |
在12864点阵图型LCD屏上显示图形或汉字时,可以利用字模提取软件获得图形或汉字的点阵代码。
二、12864的指令
12864点阵图型LCD显示模块的指令功能比较简单,共有8条指令。
- 读忙标志
编码格式为:
RS | R/W | E | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | BUSY | 0 | ON/OFF | RESET | 0 | 0 | 0 | 0 |
BUSY=1表示显示模块内部控制器忙,不能进行操作,只有BUSY=0时才允许操作。
ON/OFF=1表示显示关闭,ON/OFF=0表示显示打开。
RESET=1表示复位状态,RESET=0表示正常状态。
在BUSY和RESET状态下,除读忙标志指令外,其它指令均不对液晶显示模块产生作用。
- 写指令
编码格式为:
RS | R/W | E | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 下降沿 | 指令 |
- 写数据
编码格式为:
RS | R/W | E | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
1 | 0 | 下降沿 | 显示数据 |
- 显示开/关
编码格式为:
RS | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | D | 3E/3F |
D=1表示显示RAM中的内容,D=0表示关闭显示。
- 显示起始行
编码格式为:
RS | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 1 | 1 | 显示起始行(0~63) |
该指令规定显示屏上起始行对应DDRAM的行地址,有规律地改变现实起始行,可以实现现实滚屏的效果。
- 页面地址
编码格式为:
RS | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 页面(0~7) |
DDRAM共64行,分8页,每页8行。
- 列地址
编码格式为:
RS | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |