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

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条回答
johnlj
1楼-- · 2020-01-13 05:59
 精彩回答 2  元偷偷看……
我是一个大白菜
2楼-- · 2020-01-13 08:06
楼主你好,有个地方不是特别明白,结构体typFNT_GB162里面的Index[3],为什么要定义3个空间,在后面的使用里,只用了2个 while((*HZ++!=hz16[i].Index[0])||(*HZ!=hz16[i].Index[1])&& i<hz16_num  ){
gliet_su
3楼-- · 2020-01-13 12:02
可以这样吗?show_One_Chinese(0,0,"电子")
creep
4楼-- · 2020-01-13 16:37
我是一个大白菜 发表于 2019-9-19 09:21
楼主你好,有个地方不是特别明白,结构体typFNT_GB162里面的Index[3],为什么要定义3个空间,在后面的使用 ...

字符串结尾NULL
我是一个大白菜
5楼-- · 2020-01-13 17:37
creep 发表于 2019-9-19 14:47
字符串结尾NULL

哦,明白了,谢谢分享
bg6agf
6楼-- · 2020-01-13 18:36
 精彩回答 2  元偷偷看……

一周热门 更多>