分享一段汉字寻址示范程序

2020-01-12 17:20发布

struct typFNT_GB162
{
    unsigned char Index[3];
    char Msk[32];
};

#define hz16_num  3
const struct typFNT_GB162 hz16[] =
{
#if USE_ONCHIP_FLASH_FONT
    "电", 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7F, 0xF0, 0x42, 0x10, 0x42, 0x10, 0x7F, 0xF0, 0x42, 0x10, 0x42, 0x10, 0x7F, 0xF0, 0x42, 0x00, 0x02, 0x08, 0x02, 0x08, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00,
    "子", 0x7F, 0xF0, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0xFF, 0xF8, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
    "全", 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x2F, 0xE8, 0xC1, 0x06, 0x01, 0x00, 0x01, 0x00, 0x1F, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0xFC, 0x00, 0x00,
#endif
}
void show_One_Chinese(u8 x,u8 y,char *HZ)
{                                  
        u8 t;
        u16 HZK_POS,i=0;
        while((*HZ++!=hz16[i].Index[0])||(*HZ!=hz16[i].Index[1])&& i<hz16_num  ){
                i++;
        }
        HZK_POS = i;
        set_pos(x,y);       
    for(t=0;t<16;t++)
    {
        write_data(hz16[HZK_POS].Msk[t]);
     }       
    set_pos(x,y+1);       
    for(t=0;t<16;t++)
    {       
        write_data(hz16[HZK_POS].Msk[t+16]);
    }                                       
}
show_One_Chinese(0,0,"电")
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
lcw_swust
1楼-- · 2020-01-12 17:23
好办法,学习了。
我以前是用的宏定义来指定汉字序号,就没办法直接写中文字符串。
ibichao
2楼-- · 2020-01-12 21:34
 精彩回答 2  元偷偷看……
wanglituan
3楼-- · 2020-01-12 21:45
不错,标记一下
b_snow
4楼-- · 2020-01-12 23:20
mark一下,很不错的
bias
5楼-- · 2020-01-13 00:16
本帖最后由 bias 于 2019-9-18 22:39 编辑

第一次看到这种寻址方式好像还是05年看xiaoqi 晓奇写的1335驱动320x240单 {MOD}屏程序的时候
还有人知道xiaoqi这个id 么


编辑补充:xiaoqi还专门做了一个取模软件,导入.c程序,直接获取里面所有汉字,然后生成这样的格式,到现在还保留再用.
heimareed
6楼-- · 2020-01-13 04:31
bias 发表于 2019-9-18 22:36
第一次看到这种寻址方式好像还是05年看xiaoqi 晓奇写的1335驱动320x240单 {MOD}屏程序的时候
还有人知道xiaoqi ...

貌似还用过。不过用的时候是12年~

一周热门 更多>