Keil uvison 4.7学习笔记

Keil 汉字字符处理

      由于目前在做的项目中需要进行液晶显示界面设计,因此涉及到汉字字符的处理问题,最开始不知道怎么去处理汉字字符,所以为了避免问题,在已有字库的基础上,直接引用汉字字符所在的位置进行编程设计,具体引用方法如下:

 1 const uint8_t CHINESE_12[][24]=
 2 {
 3     {   0x00,0xF8,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0xF8,0x00,0x00,
 4         0x00,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x01,0x00,0x00
 5     },//0:中
 6 
 7     {   0x12,0xD2,0xFE,0x51,0x90,0x12,0x24,0x00,0xFF,0x80,0x80,0x00,
 8         0x01,0x00,0x0F,0x00,0x00,0x01,0x01,0x01,0x0F,0x00,0x00,0x00
 9     },//1:科
10 
11     {   0x78,0x00,0xFF,0x08,0x12,0xFA,0x4A,0x4A,0x4A,0xFA,0x02,0x00,
12         0x00,0x00,0x0F,0x00,0x08,0x0B,0x0A,0x0A,0x0A,0x0B,0x08,0x00
13     },//2:恒

例如我要显示“中”字符,我可能会直接采用“中”所在位置进行编程,引用代码如下:

1  LCD_DISPLAY_CHAR(6, 118, X_HZ, CHINESE_12[0]); //下翻

      采用此种编程设计,具有很大的问题,一旦界面需要修改,就必须先写出需要显示的汉字,然后找出对应的字库编码,最后把字库编码填写进去;这是个很愚蠢的做法,导致代码维护相当的不方便,例如下面的界面显示:

1 uint16_t MSG[4][5] =       //系统信息
2     {
3         {'', '', '', ''},
4         {'', '', '', ''},
5         {'', '', '', ''},
6         {'', '', '', ''},
7     };

      这个项目初步估计需要30-40个中文显示界面,如果采用这种设计思路,我得死了很多回了,所以在程序设计一开始就摒弃了这种设计思路,但是怎么做才能更好地去实现字符显示呢,后来参照别人的程序,然后阅读了汉字字符编码的相关知识,所以采用了一种设计思路,具体显示方法如下:

 

posted @ 2013-05-01 15:03  PengHuifeng  阅读(323)  评论(0编辑  收藏  举报