標(biāo)題: 請(qǐng)教顯示ASCII碼的問(wèn)題 OLED1.8寸屏怎樣才能顯示更大字符呢? [打印本頁(yè)]

作者: 芙蓉焊料    時(shí)間: 2024-9-1 15:05
標(biāo)題: 請(qǐng)教顯示ASCII碼的問(wèn)題 OLED1.8寸屏怎樣才能顯示更大字符呢?
學(xué)習(xí)OLED1.8寸屏?xí)r能顯示16x16或24x24漢字,也能顯示8x16字符,但看著很小,請(qǐng)教怎樣才能顯示更大字符呢?



/*****************************************************************************
     函數(shù)說(shuō)明:顯示一個(gè)英文字符
******************************************************************************/
void Display_ASCII8X16(u16 x0,u16 y0,u8 *s)
{
        int i,j,k,x,y,xx;
        
        unsigned char qm;
        
        long int ulOffset;
        
        char  ywbuf[16],temp[2];

        for(i = 0; i<strlen((char*)s);i++)
        {
                if(((unsigned char)(*(s+i))) >= 161)
                {
                        temp[0] = *(s+i);
                        temp[1] = '\0';
                        return;
                }
               
                else
                {
                        qm = *(s+i);

                        ulOffset = (long int)(qm) * 16;
                        
      for (j=0;j<16;j++)
      {
                                ywbuf[j]=Zk_ASCII8X16[ulOffset+j];
      }

      for(y=0;y<16;y++)
      {
                for(x=0;x<8;x++)
                {
             k=x % 8;
                        
                                          if(ywbuf[y]&(0x80 >> k))
                                           {
                                                  xx=x0+x+i*8;
                                            PutPixel(xx,y+y0,white); //字體顏色
                                          }
                                                        
                                   }
      }

                }
        }            
}


作者: zhuls    時(shí)間: 2024-9-2 07:45
可以自制字庫(kù),顯示32*32字體,或更多的都行。
作者: devcang    時(shí)間: 2024-9-2 09:38
函數(shù)是16點(diǎn)陣,再寫1個(gè)顯示24點(diǎn)陣。。。。。想要更大,取更大點(diǎn)陣的模
作者: 芙蓉焊料    時(shí)間: 2024-9-2 13:05
本帖最后由 芙蓉焊料 于 2024-9-2 13:54 編輯

弄了幾天也沒能顯示出16x16的英文字符,有示范的程序?qū)W習(xí)嗎?扒拉了一段程序改了好久也沒弄好,幫忙看看,謝謝!
/*****************************************************************************
   函數(shù)說(shuō)明:顯示單個(gè)字符  x,y顯示坐標(biāo)  num要顯示的字符 fc 字的顏色
      入口數(shù)據(jù):   bc 字的背景色  sizey 字號(hào)  mode:  0非疊加模式  1疊加模式
******************************************************************************/
void LCD_ShowChar(u16 x,u16 y,u8 num,u16 fc,u16 bc,u8 sizey,u8 mode)
{
        u8 temp,sizex,t,m=0;
        u16 i,TypefaceNum;  //一個(gè)字符所占字節(jié)大小
        u16 x0=x;
        sizex=sizey/2;
        TypefaceNum=(sizex/8+((sizex%8)?1:0))*sizey;
        num=num-' ';    //得到偏移后的值
        Lcd_SetRegion(x,y,x+sizey-1,y+sizey-1);  //設(shè)置光標(biāo)位置
        for(i=0;i<16;i++)
        {
//                if(sizey==12)temp=ascii_1206[num];                       //調(diào)用6x12字體
                else if(sizey==16)temp=asc2_1608[num];                 //調(diào)用8x16字體
                //else if(sizey==24)temp=ascii_2412[num];                 //調(diào)用12x24字體
//                else if(sizey==32)temp=ascii_3216[num];                 //調(diào)用16x32字體
                else return;
                for(t=0;t<8;t++)
                {
                        if(!mode)//非疊加模式
                        {
                                if(temp&(0x01<<t))Lcd_WriteData_16(fc);
                                else Lcd_WriteData_16(bc);
                                m++;
                                if(m%sizex==0)
                                {
                                        m=0;
                                        break;
                                }
                        }
                        else//疊加模式
                        {
                                if(temp&(0x01<<t))LCD_DrawPoint(x,y,fc);//畫一個(gè)點(diǎn)
                                x++;
                                if((x-x0)==sizex)
                                {
                                        x=x0;
                                        y++;
                                        break;
                                }
                        }
                }
        }
}





作者: hcfat51h    時(shí)間: 2024-9-2 16:51
用更大的字庫(kù)就可以顯示更大的字了
作者: rayin    時(shí)間: 2024-9-9 08:16
8x16,16x16是讀字庫(kù)顯示一個(gè)pixel, 程序軟件修改一下,改為顯示4個(gè)pixel, 就能放大4倍成32x64, 64x64點(diǎn)陣字符了.




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1