本帖最后由 小灰灰的爱恋 于 2019-3-4 11:57 编辑
//在指定位置,显示一个12*12,16*16,24*24大小的汉字
//x,y :汉字的坐标
//index:汉字编号(在字库数组里面的编号)
//size:汉字尺寸
void OLED_ShowChinese2424(u16 x,u16 y,u8 index,u8 size)
{
u8 temp,t,t1;
u16 y0=y;
u8 *dzk;
u8 csize=(size/8+((size%8)?1:0))*size; //汉字字节计算
if(size == 12) dzk=(u8*)Chinese_1212[index]; //得到汉字编号对应的点阵库
else if(size == 16) dzk=(u8*)Chinese_1616[index]; //得到汉字编号对应的点阵库
else if(size == 24) dzk=(u8*)Chinese_2424[index]; //得到汉字编号对应的点阵库
for(t=0;t<csize;t++)
{
temp=dzk[t]; //得到点阵数据
for(t1=0;t1<8;t1++) //按照从高位到低位的顺序画点
{
if(temp&0x80)OLED_DrawPoint(x,y,1);
else OLED_DrawPoint(x,y,0);
temp<<=1;
y++;
if((y-y0)==size) //对y坐标的处理,当y坐标距起始坐标差24个像素点,x坐标加1
{
y=y0;
x++;
break;
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>