谢谢你选择 LYC EDA 开发板—学习板
也就是说想要在 LCD1602 屏幕的第一行第一列显示一个"A"字,就要向 DDRAM 的
00H 地址写入“A”字的代码就行了。但具体的写入是要按 LCD 模块的指令格式
来进行的,后面我会说到的。那么一行可有 40 个地址呀?是的,在 1602 中我们
就用前 16 个就行了。第二行也一样用前 16 个地址。对应如下:
DDRAM 地址与显示位置的对应关系
我们知道文本文件中每一个字符都是用一个字节的代码记录的。一个汉字是用两
个字节的代码记录。在 PC 上我们只要打开文本文件就能在屏幕上看到对应的字
符是因为在操作系统里和 BIOS 里都固化有字符字模。什么是字模?就代表了是
在点阵屏幕上点亮和熄灭的信息数据。例如“A”
字的字模:
01110 ○■■■○
10001 ■○○○■
10001 ■○○○■
10001 ■○○○■
11111 ■■■■■
10001 ■○○○■
10001 ■○○○■
上图左边的数据就是字模数据,右边就是将左边数据用“○”代表 0,用“■”
代表 1。看出是个“A”字了吗?在文本文件中“A”字的代码是 41H,PC 收到 41H
的代码后就去字模文件中将代表 A 字的这一组数据送到显卡去点亮屏幕上相应
的点,你就看到“A”这个字了。
刚才我说了想要在 LCD1602 屏幕的第一行第一列显示一个"A"字,就要向 DDRAM
的 00H 地址写入“A”字的代码 41H 就行了,可 41H 这一个字节的代码如何才能
让 LCD 模块在屏幕的阵点上显示“A”字呢?同样,在 LCD 模块上也固化了字模
存储器,这就是 CGROM 和 CGRAM。HD44780 内置了 192 个常用字符的字模,存于
字符产生器 CGROM(Character Generator ROM)中,另外还有 8 个允许用户自定
义的字符产生 RAM,称为 CGRAM(Character Generator RAM)。下图说明了 CGROM
和 CGRAM 与字符的对应关系。