接前一篇文章:GT20L16S1Y标准汉字字库芯片完全解析(2)
本文内容参考:
字库芯片GT20L16S1Y使用记录-CSDN博客
GT20L16S1Y字库IC驱动_gt20l16s1y字库芯片测试程序-CSDN博客
《GT20L16S1Y 标准点阵汉字库芯片产品规格书 V4.0I_K 2023-04》
特此致谢!
五、字库排置
1. 点阵排列格式
每个汉字在芯片中是以汉字点阵字模的形式存储的,每个点用一个二进制位表示。存“1”的点,当显示时可以在屏幕上显示亮点;存“0”的点,则在屏幕上不显示。
点阵排列格式为竖置横排:即一个字节的高位表示下面的点,低位表示上面的点(如果用户按 16bit总线宽度读取点阵数据,请注意高低字节的顺序),排满一行后再排下一行。这样把点阵信息用来直接在显示器上按上述规则显示, 则将出现对应的汉字。
2. 15X16点汉字排列格式
15X16点汉字的信息需要 32 个字节(BYTE 0 – BYTE 31)来表示。该15X16点汉字的点阵数
据是竖置横排的,其具体排列结构如下图所示:
3. 16点阵不等宽ASCII(圆角字体)字符排列格式
16点阵不等宽字符的信息需要34个字节(BYTE 0 – BYTE33)来表示。
- 存储格式
由于字符是不等宽的,因此在存储格式中
BYTE0 ~ BYTE1
存放点阵宽度数据,
BYTE2-33
存放
竖置横排点阵数据。具体格式见下图:
- 存储结构
点阵存储宽度固定为 16,根据不同字符,其实际点阵宽度会小于 16,并会出现相应的空白
区。根据 BYTE0 ~ BYTE1 所存放点阵的宽度数据,可以对还原下一个字的显示或排版留作参考。
举例:
ASCII 圆角字符 ‘B’,其0-33BYTE 的点阵数据是:
00 0C 00 F8 F8 18 18 18 18 18 F8 F0 00 00 00 00 00 00 00 7F 7F63 63 63 63 63 67 3E 1C 00 00 00 00 00
其中:
- BYTE0~BYTE1
BYTE0~BYTE1的数据为:00 0C。
表示ASCII 圆角字符 B 的点阵宽度数据,即:12位宽度。
字符后面有4位空白区,可以在排版下一个字时考虑到这一点,将下一个字的起始位置前移。
- BYTE2~33
BYTE2~BYTE33的数据为:
00 F8 F8 18 18 18 18 18 F8 F0 00 00 00 00 00 00 00 7F 7F 63 63 63 63 63 67 3E 1C
00 00 00 00 00。
为ASCII圆角字符B的点阵数据。
根据上图图示推演一下B点阵数据的具体形态:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
六、点阵数据验证
将芯片内字符'A'的数据调出与以下进行对比。若一致,表示 SPI 驱动正常工作;若不一致,请重
新编写驱动。
七、附录
1. GB2312 1区(376字符)
GB2312标准点阵字符 1区对应码位的A1A1~A9EF共计376个字符,如下图所示:
2. 8x16点国际扩展字符(126字符)
内码组成为AAA1~ABC0共计126个字符,如下图所示: