HD44780 内置了DDRAM、CGROM 和 CGRAM
DDRAM 就是显示数据 RAM,用来寄存待显示的字符代码
共 80 个字节,其地址和屏幕的对应关系如下表: 也就是说想要在 LCD1602 屏幕的第一行第一列显示一个"A"字,就要向 DDRAM 的00H 地址写入“A”字的代码就行了
但具体的写入是要按 LCD 模块的指令格式来进行的,后面我会说到的
那么一行可有 40 个地址呀
是的,在 1602 中我们就用前 16 个就行了
第二行也一样用前 16 个地址
对应如下: DDRAM 地址与显示位置的对应关系 (事实上我们往DDRAM 里的00H 地址处送一个数据,譬如0x31(数字1 的代码)并不能显示1 出来
这是一个令初学者很容易出错的地方,原因就是如果你要想在DDRAM的00H 地址处显示数据,则必须将00H 加上80H,即80H,若要在DDRAM 的01H 处显示数据,则必须将01H 加上80H 即81H
大家看一下控制指令的的8 条:DDRAM 地址的设定,即可以明白是怎么样的一回事了) 1602 液晶模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H 中的点阵字符图形显示出来,我们就能看到字母“A” 上表中的字符代码与我们PC 中的字符代码是基本一致的
因此我们在向 DDRAM写 C51 字符代码程序时甚至可以直接用 P1='A'这样的方法
PC 在编译时就把“A”先转为41H 代码了
字符代码0x00~0x0F 为用户自定义的字符图形 RAM(对于 5X8 点阵的字符,可以存放 8 组,5X1