1 技术概述 MT22彩色LCD模块为北京铭正同创科技有限公司为广大用户提供的一款高性能TFTLCD显示模块,用户可以非常方便的在北京铭正同创网站上(www.mzdesign.com.cn)下载到MT22彩色LCD模块完整的驱动程序,其中包括了基本的绘图功能函数、西文显示功能函数,以及用户自定义的字库显示程序等。 本文重要介绍应用MT22模块配套的驱动程序进行中文显示的原理,以及操作过程。中文显示实际上是与LCD的硬件无关的,仅与驱动程序及基本的显示API函数相关,所以在本技术文章中将会基于LCD模块的驱动程序相关的代码进行介绍,以解释驱动程序中自定义字库的显示原理,并介绍从取字模数据到实际修改代码的中文显示操作过程。 2 LCD驱动程序字符显示原理 MT22彩色LCD模块的基础驱动程序(DemoCode)当中,字符库的数据采用的是一般单色点阵LCD的数据组成方式,即字库数据当中的一个位代表LCD显示中的一个像素点,取点方式为从左到右,自上到下的顺序。对于这点,驱动中自带的西文(ASCII码)字库和用户可自定义的中文字库是一样的。 字库数据采用了以Byte为单位的位流结构,即当一行取点不为8的整数倍时,补齐数据至8位,无用位填零(低位补零)。 同一种大小(X轴宽度和Y轴高度)的字体,其字库数据都放置在同一个数组中,除了自带的西文字库用户不需要改动外,用户可以自行定义汉字字库,但需要在FontSet函数中修改相应的代码,以声明自行定义的字库的X大小。之后,便可以通过调用FontSet函数选择用户自定义的字库,并通过调用PutChar函数显示字库中的字符。 当然,根据不同的MCU的字长特性,用户在定义自己的字库时,需要选择合适的字模提取工具,并将字库数组定义好,这点请具体问题具体分析。比如,在所提供的MCS51的MT22模块驱动程序当中,字库数组是以8位的BYTE为单位进行存储的,而在所提供的unSP的MT22模块驱动程序当中,字库数组以16位长的WORD为单位进行存储的。 2.1 驱动程序当中FontSet函数 下面介绍FontSet函数的源码: void FontSet(int Font_NUM,unsigned int Color) { switch(Font_NUM) { case 1: Font_Wrod = 29; //ASII字符每个字符占用的存储单位 X_Witch = 15; //字符的宽度 Y_Witch = 29; //字符的高度 Char_Color = Color;//设置字符颜色 Char_TAB = (unsigned char *)(Asii16 - (32*29));//设置字库数组首地址 break; case 2: Font_Wrod = 64; //自定义字库的每个字符占用存储单位 X_Witch = 32; //字符的宽度 Y_Witch = 32; //字符的高度 Char_Color = Color; Char_TAB = (unsigned char *)GB32; //设置字库数组首地址 break; } } 上述代码当中提供了一个用户自定义的字库:GB32,该字库数组在GB_Table.c中进行定义,并在LCD_Dis.c的前面作了外部声明,我们可以从代码中看出,需要做的工作是针对这个自定义的字库,设置好其宽度和高度的信息,并设置好每个字符所占用的存储单元数。 该段代码中,如果选取Font_NUM为1时,为选用驱动自带的西文字库,西文字库中的代码用户是不需要改动的。 MT22模块的显示驱动程序当中,大部份代码是兼容MCS51系列MCU和凌阳unSP系列单片机的,如刚刚介绍的FontSet函数,就是完全兼容两者的。需要用户注意的一点是,由于有的unSP系列单片机是不支持Byte(字节)操作的,所以在字库存储时,是以16位字长为单位的Word形式存储的,故同样的(尺寸)字模数组所占用的存储单元数unSP的驱动为MCS51的驱动的1/2。 2.2 GB32自定义字库 以凌阳unSP系列单片机对MT22模块的驱动程序当中的字库为例,从前面的代码中可知,GB32字库所定义的字符宽度为32点,高度为32点;而每个字符所占用的存储单元数为64个words。下面再给出一个GB32字库数组的示例: const unsigned char GB32[ ] = { //“科”字,字符数据流开始 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0070,0x0E00,0x01F8,0x0E00,0x07FC,0x0C00, 0x3FC7,0x0C00,0x7983,0xCC00,0x0181,0xEC00,0x0199,0xEC00, 0x01BC,0xCC00,0x7FFC,0x0C00,0x0386,0x0C00,0x07C3,0x8C00, 0x07F3,0xCC00,0x07B9,0xCC80,0x0FBD,0xCDC0,0x0D98,0x8DE0, 0x1D80,0x3FE0,0x3987,0xFC00,0x319F,0x8C00,0x6190,0x0C00, 0x4180,0x0C00,0x0180,0x0C00,0x0180,0x0C00,0x0180,0x0C00, 0x0180,0x0C00,0x0180,0x0C00,0x0100,0x0800,0x0000,0x0000, //“技”字,字符数据流开始 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x4000,0x0700,0x7000,0x0700,0x7000,0x0600,0x6000, 0x0600,0x6180,0x0660,0x63C0,0x06FF,0xFFE0,0xFFF8,0x6000, 0x0600,0x6000,0x0600,0x6200,0x06F8,0x6700,0x07FF,0xFF80, 0x0F8C,0x0F00,0x7E06,0x0E00,0xFE06,0x1E00,0x7607,0x1C00, 0x2607,0x3C00,0x0603,0xB800,0x0603,0xF800,0x0601,0xF000, 0x0601,0xF800,0x0603,0xFE00,0x060F,0xBFC0,0xFE1E,0x1FF0, 0x3E78,0x07C0,0x1FE0,0x0380,0x0800,0x0000,0x0000,0x0000//end }; 可以看到,在GB32字库当中,定义了两个汉字的字符,每个字符占用了64个16位长度的word型空间,两个字符的数据流连在一起定义;不过由于在FontSet函数当中设置了GB32字库当中每个字符的占用存储单元数,所以是可以通过索引,分别找到两个字符的数据。 定义完成后,需要在LCD_Dis.c当中对该字库进行声明,如下: extern const unsigned char GB32[ ]; //32*32自定义的汉字库 然后就可以在应用程序当中调用驱动所提供的API函数来显示这两个汉字了,如: ……… FontSet(2,0xf800); //选择用户自定义的字库,并设置字符颜色 PutChar(10,10,0); //在10,10点上显示“科” PurtChar(42,10,1); //在42,10点上显示“技” ………. 如果用户使用的MCU为8位或者更长的字长的话,在定义字库数组时需要考虑合适的数据类型,对于这种情况,北京铭正同创科技有限公司(Mzdesign)分别提供了基于51兼容MCU的驱动和基于凌阳unSP系列MCU的驱动,用户可以在北京铭正同创网站上(www.mzdesign.com.cn)找到具体的驱动程序。 例如,前面的两个32*32点阵的汉字:“科”、“技”的MCS51驱动的字库为: code unsigned char GB32[ ] = { //“科”字,字符数据流开始 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x70,0x0E,0x00,0x01,0xF8,0x0E,0x00,0x07,0xFC,0x0C,0x00, 0x3F,0xC7,0x0C,0x00,0x79,0x83,0xCC,0x00,0x01,0x81,0xEC,0x00,0x01,0x99,0xEC,0x00, 0x01,0xBC,0xCC,0x00,0x7F,0xFC,0x0C,0x00,0x03,0x86,0x0C,0x00,0x07,0xC3,0x8C,0x00, 0x07,0xF3,0xCC,0x00,0x07,0xB9,0xCC,0x80,0x0F,0xBD,0xCD,0xC0,0x0D,0x98,0x8D,0xE0, 0x1D,0x80,0x3F,0xE0,0x39,0x87,0xFC,0x00,0x31,0x9F,0x8C,0x00,0x61,0x90,0x0C,0x00, 0x41,0x80,0x0C,0x00,0x01,0x80,0x0C,0x00,0x01,0x80,0x0C,0x00,0x01,0x80,0x0C,0x00, 0x01,0x80,0x0C,0x00,0x01,0x80,0x0C,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x00,0x00, //“技”字,字符数据流开始 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x40,0x00,0x07,0x00,0x70,0x00,0x07,0x00,0x70,0x00,0x06,0x00,0x60,0x00, 0x06,0x00,0x61,0x80,0x06,0x60,0x63,0xC0,0x06,0xFF,0xFF,0xE0,0xFF,0xF8,0x60,0x00, 0x06,0x00,0x60,0x00,0x06,0x00,0x62,0x00,0x06,0xF8,0x67,0x00,0x07,0xFF,0xFF,0x80, 0x0F,0x8C,0x0F,0x00,0x7E,0x06,0x0E,0x00,0xFE,0x06,0x1E,0x00,0x76,0x07,0x1C,0x00, 0x26,0x07,0x3C,0x00,0x06,0x03,0xB8,0x00,0x06,0x03,0xF8,0x00,0x06,0x01,0xF0,0x00, 0x06,0x01,0xF8,0x00,0x06,0x03,0xFE,0x00,0x06,0x0F,0xBF,0xC0,0xFE,0x1E,0x1F,0xF0, 0x3E,0x78,0x07,0xC0,0x1F,0xE0,0x03,0x80,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00//end }; 2.3 提取32*32尺寸的汉字字模至自定义字库 依照前面所介绍的自定义字库的字模数组,这里介绍如何使用取字模的工具软件取出合适于MT22的驱动程序的汉字字模数据,并加入自定义的字库中的过程。 打开字模提取工具后,设置好参数,主要是字体以及字号大小,使其取出来的字模数据正好是32*32点阵大小,并且设置取模的方向为自左向右,从上到下的顺序。下面给出一个使用字模提取软件V2.2(Zimo221)提取字模的例子,首先设置字体为华文中宋,字号为21时,正好生成的字模数组是32*32的;如果使用别的字体或者是别的取字模软件时,可以自行调整,以得到32*32点阵的数据。在取字模时,采用取C语言的数组数据形式(因为驱动是使用C语言编写的)。 这里提取了一个“华”字的字模数据,如下: 

可以看到,所取回的字模数据是以8位字长的BYTE类型存储的,这时就需要考虑是否符合对应的驱动程序了。如果使用了MCS51系列MCU的MT22模块的驱动程序的话,可以直接将字模当中的有效数据拷贝到GB32数组当中即可。这样要显示该汉字时,只需调用PutChar函数显示GB32字库当中该汉字所在的相对位置即可。 如果使用了以16位字长的WORD型数据为基本的存储单元的unSP系列单片机的MT22模块驱动程序的话,需要先将取回的字模数据进行处理,即将数组当中以8位字长的BYTE为单位的数据改为16位字长的WORD。修改字模数据可以使用一些代码编辑软件,如UltraEdit。当然,如果使用了一些可以直接生成16位字长数据的取字模工具的话,也就无需修改了。 这里示例一下使用UltraEdit对8位的字模数据修改成16位字模数据的过程。 将取回的8位的字模数据拷贝存放到一个.TXT文档中,并保存关闭。使用UltraEdit软件打开此文档,如下图所示: 
然后,选用工具栏上的“列块模式”工具,如下图中显示的工具: 
这时可以以列为单位去选择文本,如下图所示:  将选中的文本(蓝色的区域)删除,然后依次将每隔两个BYTE数据的“,0x”都删除掉,得到如下图所示的数据:
将数据拷贝,置入GB32数组当中,如下表所示: const unsigned char GB32[ ] = { //“科”字,字符数据流开始 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0070,0x0E00,0x01F8,0x0E00,0x07FC,0x0C00, 0x3FC7,0x0C00,0x7983,0xCC00,0x0181,0xEC00,0x0199,0xEC00, 0x01BC,0xCC00,0x7FFC,0x0C00,0x0386,0x0C00,0x07C3,0x8C00, 0x07F3,0xCC00,0x07B9,0xCC80,0x0FBD,0xCDC0,0x0D98,0x8DE0, 0x1D80,0x3FE0,0x3987,0xFC00,0x319F,0x8C00,0x6190,0x0C00, 0x4180,0x0C00,0x0180,0x0C00,0x0180,0x0C00,0x0180,0x0C00, 0x0180,0x0C00,0x0180,0x0C00,0x0100,0x0800,0x0000,0x0000, //“技”字,字符数据流开始 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x4000,0x0700,0x7000,0x0700,0x7000,0x0600,0x6000, 0x0600,0x6180,0x0660,0x63C0,0x06FF,0xFFE0,0xFFF8,0x6000, 0x0600,0x6000,0x0600,0x6200,0x06F8,0x6700,0x07FF,0xFF80, 0x0F8C,0x0F00,0x7E06,0x0E00,0xFE06,0x1E00,0x7607,0x1C00, 0x2607,0x3C00,0x0603,0xB800,0x0603,0xF800,0x0601,0xF000, 0x0601,0xF800,0x0603,0xFE00,0x060F,0xBFC0,0xFE1E,0x1FF0, 0x3E78,0x07C0,0x1FE0,0x0380,0x0800,0x0000,0x0000,0x0000,//end //“华”字 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0060,0x0000,0x00F1,0xE000,0x00F9,0xE000,0x01F1,0xC700, 0x01E1,0xCF80,0x03E1,0xDFC0,0x03C1,0xFF00,0x07C1,0xFC00, 0x0FC1,0xF0E0,0x0FC7,0xC0E0,0x1DDF,0xC0E0,0x39F9,0xC0E0, 0x71C1,0xE1F0,0x01C1,0xFFF0,0x01C7,0xFFE0,0x01C7,0x8000, 0x0007,0x00E0,0x0007,0x01F0,0x3FFF,0xFFF8,0x0007,0x0000, 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0x0007,0x0000, 0x0007,0x0000,0x0007,0x0000,0x0007,0x0000,0x0000,0x0000 }; 可以在应用程序当中调用驱动所提供的API函数来显示这个汉字了,如: ……… FontSet(2,0xf800); //选择用户自定义的字库,并设置字符颜色 PutChar(10,10,2); //在10,10点上显示“华” ………. 2.3.1 提取并增加另外尺寸的字模字库 实际上可以在MT22模块的驱动程序当中作小小的改动,可以方便的添加其它尺寸大小的自定义字库,下面以unSP的MT22模块驱动程序为例,介绍添加新的字库的过程。 与前面一样,首先利用字模提取工具提取出所需要的汉字(其它的字符当然也可)的字模数据,并利用其它的工具修改成以16位字长为单位的WORD型数据的数组。如提取“铭”、“正”、“同”、“创”这四个字,点阵大小为48*45。在软件工程当中,新建一个C文件或者就直接在驱动自带的GB_Table.c文件当中定义一个新的数组,如命名为GB48,如下所示: const unsigned char GB48[ ] = { //“铭”字,字符数据流开始 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0180,0x0000,0x00E0, 0x01E0,0x0000,0x00F8,0x01F8,0x0000,0x00FC,0x03F8,0x0000, 0x01F8,0x03F0,0x0000,0x01F0,0x03E0,0x6000,0x01F1,0x87E0, 0xF000,0x01F3,0xC7C1,0xFC00,0x03E7,0xE7FF,0xFE00,0x03FF, 0xFF81,0xFE00,0x03E0,0x0F83,0xF800,0x07C0,0x1F03,0xF000, 0x07C7,0x1F87,0xE000,0x078F,0xBFCF,0xE000,0x0F8F,0xFFEF, 0xC000,0x0FFF,0xF9FF,0x8000,0x1EF0,0xF1FF,0x8000,0x1CF0, 0xE1FF,0x0000,0x3CF0,0x01FE,0x0000,0x38F3,0x80FC,0x0000, 0x70F3,0xC1F8,0x4000,0x00F7,0xEFF0,0xF000,0x3FFF,0xFFE1, 0xFC00,0x00F0,0x1FFF,0xFE00,0x00F0,0x3F00,0x7C00,0x00F0, 0x7F00,0x7800,0x00F0,0xFF00,0x7800,0x00F3,0xEF00,0x7800, 0x00F7,0xCF00,0x7800,0x00F3,0xEF00,0x7800,0x00F7,0xCF00, 0x7800,0x00FF,0x8F00,0x7800,0x01FE,0x0F00,0x7800,0x01FC, 0x0FFF,0xF800,0x03F8,0x0F00,0x7800,0x01F0,0x0F00,0x7800, 0x00E0,0x1F00,0x7800,0x0060,0x1E00,0x6000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, //“正”字,字符数据流开始 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0001,0xC000,0x0000,0x0003,0xF000, 0x0000,0x0007,0xF800,0x0FFF,0xFFFF,0xFC00,0x0000,0x1E00, 0x0000,0x0000,0x1E00,0x0000,0x0000,0x1E00,0x0000,0x0000, 0x1E00,0x0000,0x0000,0x1E00,0x0000,0x0000,0x1E00,0x0000, 0x0000,0x1E00,0x0000,0x00C0,0x1E00,0x0000,0x00F8,0x1E00, 0x0000,0x00FC,0x1E0F,0x0000,0x00F8,0x1E0F,0xC000,0x00F0, 0x1E1F,0xE000,0x00F0,0x1FFF,0xE000,0x00F0,0x1E00,0x0000, 0x00F0,0x1E00,0x0000,0x00F0,0x1E00,0x0000,0x00F0,0x1E00, 0x0000,0x00F0,0x1E00,0x0000,0x00F0,0x1E00,0x0000,0x00F0, 0x1E00,0x0000,0x00F0,0x1E00,0x0000,0x00F0,0x1E00,0x0000, 0x00F0,0x1E00,0x0000,0x00F0,0x1E00,0x0000,0x00F0,0x1E00, 0x0000,0x00F0,0x1E00,0x0000,0x00F0,0x1E00,0xF000,0x00F0, 0x1E01,0xF800,0x00F0,0x1E03,0xFC00,0x7FFF,0xFFFF,0xFE00, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, //“同”字,字符数据流开始 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0700,0x0001,0xF000, 0x07C0,0x0003,0xF800,0x07FF,0xFFFF,0xFC00,0x0780,0x0000, 0xF800,0x0780,0x0000,0xF000,0x0780,0x0000,0xF000,0x0780, 0x0070,0xF000,0x0780,0x0078,0xF000,0x0780,0x00FC,0xF000, 0x07BF,0xFFFE,0xF000,0x0798,0x0000,0xF000,0x0780,0x0000, 0xF000,0x0780,0x0000,0xF000,0x0787,0x00C0,0xF000,0x0787, 0xC1F0,0xF000,0x0787,0xFFF8,0xF000,0x0787,0x81F8,0xF000, 0x0787,0x81E0,0xF000,0x0787,0x81E0,0xF000,0x0787,0x81E0, 0xF000,0x0787,0x81E0,0xF000,0x0787,0x81E0,0xF000,0x0787, 0x81E0,0xF000,0x0787,0x81E0,0xF000,0x0787,0xFFE0,0xF000, 0x0787,0x81E0,0xF000,0x0787,0x81E0,0xF000,0x0787,0x81E0, 0xF000,0x078F,0x81C0,0xF000,0x0780,0x0000,0xF000,0x0780, 0x0079,0xF000,0x0780,0x007F,0xF000,0x0780,0x001F,0xF000, 0x0780,0x0007,0xF000,0x0F80,0x0007,0xE000,0x0E00,0x0007, 0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, //“创”字,字符数据流开始 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0018, 0x0000,0x6000,0x003F,0x0000,0x7C00,0x003F,0x8000,0x7E00, 0x003F,0x0000,0x7800,0x007E,0x0000,0x7800,0x007F,0xC000, 0x7800,0x007F,0xF800,0x7800,0x00FD,0xFE38,0x7800,0x00F8, 0xFE3E,0x7800,0x01F8,0x3F3E,0x7800,0x01F0,0x1F3C,0x7800, 0x03F0,0x1F3C,0x7800,0x03E0,0x0E3C,0x7800,0x03C0,0x703C, 0x7800,0x07E0,0xFC3C,0x7800,0x0FFF,0xFE3C,0x7800,0x0FE0, 0x7C3C,0x7800,0x1FE0,0x783C,0x7800,0x1DE0,0x783C,0x7800, 0x39E0,0x783C,0x7800,0x71E0,0x783C,0x7800,0x61E0,0x783C, 0x7800,0x01E0,0xF83C,0x7800,0x01E0,0xF83C,0x7800,0x01EF, 0xF83C,0x7800,0x01E7,0xFB3C,0x7800,0x01E3,0xF73C,0x7800, 0x01E1,0xE730,0x7800,0x01E0,0x0700,0x7800,0x01E0,0x0780, 0x7800,0x01E0,0x0780,0x7800,0x01E0,0x0FFC,0x7800,0x01F8, 0x7FFF,0xF800,0x01FF,0xFFCF,0xF800,0x01FF,0xFF83,0xF800, 0x00FF,0xFF01,0xF000,0x0000,0x0001,0xE000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 }; 定义完成后,需要在LCD_Dis.c文件的前面对该数组进行外部的声明,如下: extern const unsigned char GB48[ ]; /48*45自定义的汉字库 然后,修改FontSet函数的代码,增加一个选项,如下: void FontSet(int Font_NUM,unsigned int Color) { switch(Font_NUM) { case 1: Font_Wrod = 29; //ASII字符每个字符占用的存储单位 X_Witch = 15; //字符的宽度 Y_Witch = 29; //字符的高度 Char_Color = Color;//设置字符颜色 Char_TAB = (unsigned char *)(Asii16 - (32*29));//设置字库数组首地址 break; case 2: Font_Wrod = 64; //自定义字库的每个字符占用存储单位 X_Witch = 32; //字符的宽度 Y_Witch = 32; //字符的高度 Char_Color = Color; Char_TAB = (unsigned char *)GB32; //设置字库数组首地址 break; case 3: Font_Wrod = 135; //自定义字库的每个字符占用存储单位 X_Witch = 48; //字符的宽度 Y_Witch = 45; //字符的高度 Char_Color = Color; Char_TAB = (unsigned char *)GB48; //设置字库数组首地址 break; } } 最后就可以在应用程序当中调用驱动所提供的API函数来显示这几个汉字了,如: ……… FontSet(3,0xf800); //选择用户自定义的字库,并设置字符颜色 PutChar(20,20,0); //在20,20点上显示“铭” PurtChar(68,20,1); //在68,20点上显示“正” PutChar(20,65,2); //在20,65点上显示“同” PurtChar(68,65,3); //在68,65点上显示“创” ………. 3 结语 本文介绍了如何在MT22彩色LCD模块的驱动程序的基础上进行汉字显示的原理,以及一般的操作方法,包括提取汉字字模数据,以及将字模数据添加到字库当中的操作过程等,依据本文提供的显示汉字的方法,使用户可以更加灵活方便的使用MT22彩色LCD模块,解决了目前LCD模块显示汉字的需求与设计麻烦之间的矛盾。 实际上在用户的操作过程当中,可能会使用不同的工具软件,或者是不同的操作方法,这些并不重要,只要了解了MT22模块显示驱动程序对字符显示的组织形式,了解了汉字显示的原理,都可根据自身的实际情况去完成具体的操作的。
|