TFT液晶屏模拟LED数码管显示字符

TFT_LED1

TFT_LED字符2

上图是瑞生LPC1114 V3.0开发板上的显示效果

TFT显示LED数码管字符

上图是瑞生LPC1114 V3.1开发板上的显示效果

TFT上,模拟LED数码管字符显示,常用于工业控制界面或者时钟显示,用于增强科技感视觉。那么,如何显示呢?瑞生给你慢慢道来。

共计3大步:1.获取字体;2.生成字模;3.写程序显示。

1.获取字体

LED数码管字体,分为好几种,我在网上找了一种字体,名称DigifaceWide.ttf(文章后面附上字体下载链接,亲们就不用去百度找了)。下载好字体文件以后,把DigifaceWide.ttf复制粘贴到C盘windows文件夹下的font文件下里面。有没有看到这里面有好多种字体,对了,这就是你的WINDOWS系统所有的字体,以后你不管想要给电脑安装哪种字体,只要下载好文件,复制粘贴到这里就好了。

2.生成字模

生成字模要用到一个软件:PCtoLCD。此软件可以百度下载。

打开PCtoLCD软件,如下图所示:

pctolcd1

改变字体,找到我们刚才安装的DigifaceWide字体(不要和我说你找不到,看花眼了了吧,英文字体是按照ABCD排列的,找到D开头的,就找到了)。然后在键入0123456789数字。由于默认的16X16字体太小了,我们改为48X48的。

最后如下图所示:

pctolcd2

点击“设置图标”,把格式改为C51格式,点击确定。

PCtolcd设置图标

PCTOLCDC51

点击“生成字模”按钮,会看到生成了0~9的字模,点击“保存字模”到你的计算机上备用。

3.写程序显示

把字模单独放到一个文件,或者直接放到main.c文件里面都可以。

显示字模的原理,有同学不明白的话,可以看我写的这篇文章:

https://rationmcu.com/elecjc/356.html

总的来说就是,在字模中,遇到0显示背景色,遇到1显示与背景色不同的颜色(即定义的字符的颜色)即可。基本的显示程序如下:

void LCD_ShowLEDChar(uint16_t x,uint16_t y,uint16_t num)
{
  uint8_t temp;
  uint8_t pos,i,j;

  LCD_WR_REG_DATA(0x0020,x); // 设置X坐标
  LCD_WR_REG_DATA(0x0021,y); // 设置Y坐标
  LCD_XYRAM(x,y,x+23,y+47); // 为一个字符开辟显存
  LCD_WR_REG(0x0022); // 发送写显存命令
  num=num*9; // 每个48*48的字体共有9行,每行16个字节,详见字模文件
  for(j=0;j<9;j++) // 循环显示9行
  {
    for(pos=0;pos<16;pos++) // 每行16个字节
    {
      temp=led_ma[num][pos]; // 获取字节
      for(i=0;i<8;i++) // 观察每个字节的8个位
      {
        if(temp&0x80)LCD_WR_DATA(POINT_COLOR); // 遇1写字颜色
        else LCD_WR_DATA(BACK_COLOR); // 遇0写背景色
        temp<<=1;
      }
    }
    num++;
  }
}

下面是在瑞生LPC1114开发板V3.0上的源工程KEIL(KEIL4)文件,效果如文章最上面所示。

点击下载:TFT液晶屏模拟数码管字符(做好的字模文件在ILI9325文件夹里面,名称为ledma.h,亲们可以打开看看)

下面是在瑞生LPC1114开发板V3.1上的源工程KEIL(KEIL5)文件,效果如文章最上面所示。

点击下载:TFT显示LED数码管字符?(做好的字模文件在ILI9325文件夹里面,名称为ledma.h,亲们可以打开看看)

下面是Digifacewide.ttf文件

点击下载:digifaw

下面是网友“卡索”提供的另外几种超级漂亮的数码管字体:

点击下载:数码管字体