微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 环境颜色检测开发套件测评(4)

环境颜色检测开发套件测评(4)

时间:10-02 整理:3721RD 点击:

       前面我们对套件的源代码进行了一定程度的解读,在此基础上为了弥补当初为拍照LOGO而将程序误擦除的遗憾,只需在 PUTImage(LOGO)语句后加一条while(1)即可让显示停顿下来,拍到的LOGO显示效果则如图1所示。


图1 LOGO显示效果


通过对源程序的分析可以发现该套件是能够实现中文显示的,该函数为void PUTchar8x16(unsigned char row,unsigned char col,unsigned char *pcStr,unsigned char flag);

其中,row为行位置,col为列位置,pcStr为中文字符串, flag为显示标志列位置。

由于LCM_12864自身不带中文字库,所以使用的字库必须构建在程序中,其字库结构如下:

  1. const unsigned char CHINESE[]=
  2. {
  3. 0x40,0x40,0x42,0xCC,0x00,0x00,0xFC,0x24,0xA4,0x24,0x22,0x22,0xA3,0x62,0x00,0x00,
  4. 0x00,0x40,0x20,0x1F,0x20,0x58,0x47,0x50,0x48,0x45,0x42,0x45,0x48,0x50,0x40,0x00,/*"退",0*/
  5. 0x00,0x00,0xFE,0x02,0x02,0xF2,0x12,0x12,0x12,0xF2,0x02,0x02,0xFE,0x00,0x00,0x00,
  6. 0x00,0x00,0x7F,0x20,0x20,0x27,0x24,0x24,0x24,0x27,0x20,0x20,0x7F,0x00,0x00,0x00,/*"出",1*/
  7. 0x10,0x60,0x02,0x8C,0x00,0x0C,0xA4,0xA4,0xA5,0xE6,0xA4,0xA4,0xA4,0x0C,0x00,0x00,
  8. 0x04,0x04,0x7E,0x01,0x00,0x80,0x4F,0x2A,0x0A,0x0F,0x0A,0x2A,0x4F,0x80,0x00,0x00,/*"演",2*/
  9. 0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00,
  10. 0x20,0x10,0x08,0x06,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x02,0x04,0x08,0x30,0x00,/*"示",3*/
  11. };

复制代码

要想实现图2的显示效果,对PUTchar8x16()的使用方法为:

LcmClear();

PUTchar16x16(6,10,"演",0); //演示

PUTchar16x16(6,12,"示",0); //4行 8列 32字


图2 中文显示效果


那如何来构建自己的小字库呢?

经比对使用3310液晶显示屏汉字提取程序即可构建与PUTchar8x16()相匹配的字库。


图3 字模提取


此外,为了保证显示的正常,在自行构建字库后,还要适当地修改该字库索引数组。

const unsigned int GBC_Index[]=

{

2321,/*"退"      0*/

2756,/*"出",     1*/

4961,/*"演",     2*/

4230,/*"示",     3*/

};


   值得注意的是在索引数组中,每行注释前的数字为对应字模的区位码,可使用图4所示的内码查看工具来获得。


图4 内码查看工具


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top