求C51驱动ST7735R屏显示16*16中文点阵程序

2020-01-19 19:39发布

本帖最后由 kiiir00t 于 2013-10-16 01:30 编辑

屏的其他都功能没问题了,中文显示有问题,预定义的16X16点阵数据,不能超过8个字(预定义数据不能超过256)  即uchar code Zk_ASCII16X16[]={}里的数据不能多于256

求中文显示程序

这个中文程序是根据8*16英文显示瞎改的,能显示,但是问题大

//显示16*16的 中文字符串
void Display_ASCII16X16(uint x0,uint y0,uchar *s,unsigned short Color)
{
        uint i,j,k,x,y,z,xx;       
        unsigned char qm;       
        long int ulOffset;       
        uchar  ywbuf[32],temp[2];

        for(i = 0; i<strlen((char*)s);i++)
        {

                        qm = *(s+i);
                        ulOffset = (long int)(qm) * 32;       

                for(z=0;z<2;z++)        //重复2次(8*16)点阵
                        {
                                for (j = 0; j < 16; j ++)
                                {
                                        ywbuf[j]=Zk_ASCII16X16[ulOffset+j+z*16];       
                                }

                                for (y = 0;y < 16;y++)
                                {
                                        for (x=0;x<8;x++)
                                        {
                                                k=x % 8;
                                                if (ywbuf[y]&(0x80 >> k))
                                                {
                                                        xx=x0+x+i*16+z*8;
                                                        Output_Pixel(xx,y+y0,Color);
                                                }
                                        }
                                }
                        }
        }            
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。