|
在建立汉字字库时,应用下面结构体
struct typFNT_GB12 // 汉字字模数据结构
{
signed char Index[3]; // 汉字内码索引
unsigned char Msk[24]; // 点阵码数据
};
然后应用下面程序来索引汉字
void LCD_print_string(unsigned char x, unsigned char y, const unsigned char*point, unsigned char BGD_color, unsigned char FONT_color)
{
signed char temp1, temp2, i;
unsigned char *pdata = (unsigned char*)0;
while (*point!= '\0')
//判断是否显示完成
{
//取汉字数据
temp1 = *point++;
if (temp1 &0x80)
//如果是要显示汉字
{
temp2 = *point++;
for (i = 0; i < ZIKU_SIZE; i++)
{
if (temp1 == GB12.Index[0] && temp2 == GB12.Index[1])
//查索引
{
pdata = (unsigned char*)(&(GB12.Msk[0])); //找到,字模指针赋值
break;
}
}
if (i == ZIKU_SIZE)
pdata = (unsigned char*)FONT_NULL;
//找到
LCD_Drawhz(x, y, pdata, 1, BGD_color, FONT_color);
x += 12;
LCD_CS_PORT_SET;
}
else if (temp1 == 0x20)
x += 6;
else
//如果要显示字符
{
if (temp1 >= '0' && temp1 <= '9')
{
temp1 &= 0x0F;
LCD_DrawNum(x, y, temp1, 0, 255);
x += 8;
}
else if (temp1 >= 'A' && temp1 <= 'F')
{
temp1 = temp1 - 55;
LCD_DrawNum(x, y, temp1, 0, 255);
x += 8;
}
else
{
LCD_DrawNum(x, y, 0, 0, 255);
}
LCD_CS_PORT_SET;
}
}
}
请问 if (temp1 &0x80)
//如果是要显示汉字 和 else if (temp1 == 0x20) 这两句是怎么区别是要显示的字符是否为汉字?? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|