0.96寸oled汉字显示函数

2019-07-21 01:16发布

本帖最后由 小灰灰的爱恋 于 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;
                        }
                }           
        }         
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。