找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1048|回复: 5
打印 上一主题 下一主题
收起左侧

请教显示ASCII码的问题 OLED1.8寸屏怎样才能显示更大字符呢?

[复制链接]
跳转到指定楼层
楼主
学习OLED1.8寸屏时能显示16x16或24x24汉字,也能显示8x16字符,但看着很小,请教怎样才能显示更大字符呢?



/*****************************************************************************
     函数说明:显示一个英文字符
******************************************************************************/
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); //字体颜色
                                          }
                                                        
                                   }
      }

                }
        }            
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:69038 发表于 2024-9-2 07:45 | 只看该作者
可以自制字库,显示32*32字体,或更多的都行。
回复

使用道具 举报

板凳
ID:277550 发表于 2024-9-2 09:38 | 只看该作者
函数是16点阵,再写1个显示24点阵。。。。。想要更大,取更大点阵的模
回复

使用道具 举报

地板
ID:891876 发表于 2024-9-2 13:05 | 只看该作者
本帖最后由 芙蓉焊料 于 2024-9-2 13:54 编辑

弄了几天也没能显示出16x16的英文字符,有示范的程序学习吗?扒拉了一段程序改了好久也没弄好,帮忙看看,谢谢!
/*****************************************************************************
   函数说明:显示单个字符  x,y显示坐标  num要显示的字符 fc 字的颜色
      入口数据:   bc 字的背景色  sizey 字号  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;  //一个字符所占字节大小
        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);  //设置光标位置
        for(i=0;i<16;i++)
        {
//                if(sizey==12)temp=ascii_1206[num];                       //调用6x12字体
                else if(sizey==16)temp=asc2_1608[num];                 //调用8x16字体
                //else if(sizey==24)temp=ascii_2412[num];                 //调用12x24字体
//                else if(sizey==32)temp=ascii_3216[num];                 //调用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);//画一个点
                                x++;
                                if((x-x0)==sizex)
                                {
                                        x=x0;
                                        y++;
                                        break;
                                }
                        }
                }
        }
}




回复

使用道具 举报

5#
ID:466505 发表于 2024-9-2 16:51 | 只看该作者
用更大的字库就可以显示更大的字了
回复

使用道具 举报

6#
ID:517951 发表于 2024-9-9 08:16 | 只看该作者
8x16,16x16是读字库显示一个pixel, 程序软件修改一下,改为显示4个pixel, 就能放大4倍成32x64, 64x64点阵字符了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表