TFT液晶屏模拟LED数码管显示字符
上图是瑞生LPC1114 V3.0开发板上的显示效果
上图是瑞生LPC1114 V3.1开发板上的显示效果
TFT上,模拟LED数码管字符显示,常用于工业控制界面或者时钟显示,用于增强科技感视觉。那么,如何显示呢?瑞生给你慢慢道来。
共计3大步:1.获取字体;2.生成字模;3.写程序显示。
1.获取字体
LED数码管字体,分为好几种,我在网上找了一种字体,名称DigifaceWide.ttf(文章后面附上字体下载链接,亲们就不用去百度找了)。下载好字体文件以后,把DigifaceWide.ttf复制粘贴到C盘windows文件夹下的font文件下里面。有没有看到这里面有好多种字体,对了,这就是你的WINDOWS系统所有的字体,以后你不管想要给电脑安装哪种字体,只要下载好文件,复制粘贴到这里就好了。
2.生成字模
生成字模要用到一个软件:PCtoLCD。此软件可以百度下载。
打开PCtoLCD软件,如下图所示:
改变字体,找到我们刚才安装的DigifaceWide字体(不要和我说你找不到,看花眼了了吧,英文字体是按照ABCD排列的,找到D开头的,就找到了)。然后在键入0123456789数字。由于默认的16X16字体太小了,我们改为48X48的。
最后如下图所示:
点击“设置图标”,把格式改为C51格式,点击确定。
点击“生成字模”按钮,会看到生成了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
下面是网友“卡索”提供的另外几种超级漂亮的数码管字体:
点击下载:数码管字体