很多人在用TFT屏做显示时,遇到一个汉字显示问题,到底是做放个字库显示还是汉字取模显示呢?
一、 做字库前的分析
当拿到项目要求后,如果其中一段,看到有汉字显示的要求时,就不得不考虑汉字的问题了。
如果使用字库,根据使用字数多少,可有如下划分:
A、用量很多。基本要用到全部汉字。此时要考虑自己手中存储资源,是否有足够的空间放这些字模(即,内部,外部FALSH存储)。
1、如果空间充足,可以做字库到FLASH中(有例程SD卡做字库,字库大小,根据取模大小不同,有几百K到几十M不等),把SD卡的字库文件读出来,存储到FALSH(W26Q16)中。
2、空间少,可以外买字库芯片(当然啦,产品成本要增加)。
B、用量很少,可以自己取模(比如,二三十个汉字,用字库太浪费FLASH了),那么下面写的流程,即为单个取模流程。
二、汉字取模
第一步:总结要用到的所有汉字,比如只有三个字:你好!;
第二步:打开取字模软件。例如:LCD点阵提取工具;
第三步:取字模。
注意上面提示:右键也可以选择字体。
以上面这个字体大小为例,点击确定。
注意:在左下脚,结束文字输入请按CTRL+ENTER组合键。
取模生成的字,如上图所示。下面我们使其换成代表汉字的代码(如果此处无法理解,google查一下“点阵”,很快都能明白,汉字的显示是一个一个点组合成的)。
左边选框,有一个取模方式,选C51格式,会输出上图字模数据。
拷贝生成的字模区,我们生成的字体“你”,算是完成了。
三、 软件的分析
我假设,屏驱动已好,你也已经知道如何打点了。
在写程序之前,我们把上面三个字的取模数据,放到字库文件中,截图如下:
要清楚,放的位置,在Font_lib.H中。
放入上面字模数据后,如何调用他们呢,我们在main.c主程序中加放这一句话
WriteString(10,150,"你好!",Red);
这句话的意思:在X轴10,Y轴150的地方作为起始点,打出字样“你好!”,字体色为Red红色。如下图
最后图片
硬件平台:红龙103
程序:
【15】LCD—红龙显示汉字测试.rar
(1.28 MB)
|