初级会员

- 积分
- 197
- 金钱
- 197
- 注册时间
- 2013-4-4
- 在线时间
- 0 小时
|
发表于 2013-4-10 17:07:12
|
显示全部楼层
font.h字库文件添加如下代码
struct typFNT_GB16 // 汉字16*16字模数据结构
{
char Msk[32]; // 点阵码数据
unsigned char Index[3]; // 汉字内码索引
};
struct typFNT_GB24 // 汉字24*24字模数据结构
{
char Msk[72]; // 点阵码数据
unsigned char Index[3]; // 汉字内码索引
};
const struct typFNT_GB16 codeGB_1616[] = // 数据表
{
0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,
0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,0X01,0X00,0X00,0X00,"一",//0,
}
const struct typFNT_GB24 codeGB_2424[] = // 数据表
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,
0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,
0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,
0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,
0x30,0x00,0x00,0x10,0x00,0x00,0x00,0x00,"一",//0,
}
ILI93xx.c添加如下
//在指定位置 显示1个16*16的汉字
//可以指定前景背景色
void  ut_MyZi(u16 x,u16 y,u8 c[2],u16 ft,u16 bg,u8 mode)
{
u8 i,temp,t1;
u16 y0=y,k;
switch(mode)
{
case 16: //16*16
for (k=0;k<1000;k++)
{
if ((codeGB_1616[k].Index[0]==c[0])&&(codeGB_1616[k].Index[1]==c[1]))
{
for (i=0;i<32;i++)
{
temp=codeGB_1616[k].Msk;
for(t1=0;t1<8;t1++)
{
if(temp&0x80)LCD_Draw_Point(x,y,ft);//画实心点
else LCD_Draw_Point(x,y,bg); //画空白点(使用背景色)
temp<<=1;
y++;
if((y-y0)==16)
{
y=y0;
x++;
//break;
}
}
}
break;
}
}
break;
case 24: //24×24
for (k=0;k<1000;k++)
{
if ((codeGB_2424[k].Index[0]==c[0])&&(codeGB_2424[k].Index[1]==c[1]))
{
for (i=0;i<72;i++)
{
temp=codeGB_2424[k].Msk;
for(t1=0;t1<8;t1++)
{
if(temp&0x80)LCD_Draw_Point(x,y,ft);//画实心点
else LCD_Draw_Point(x,y,bg); //画空白点(使用背景色)
temp<<=1;
y++;
if((y-y0)==24)
{
y=y0;
x++;
//break;
}
}
}
break;
}
}
break;
}
}
lcd.h中添加如下
void  ut_MyZi(u16 x,u16 y,u8 c[2],u16 ft,u16 bg,u8 mode);//显示汉字
这样可以显示一个16×16或者24×24的汉字 ,由mode变量控制,ft是字的颜色,bg是背景颜色。
显示字符串的见原子的源码。
用的是Mini板子 |
|