首页 > 技术支持 > 应用与案例 > 正文
第五讲 单片机驱动彩色液晶屏 显示文字:Part1.内部字库 作者:BW.SU   发表日期:2024-01-02   来源:菱致电子   浏览:
目录
第五讲 单片机驱动彩色液晶屏 控制RA8889软件:显示文字:Part1.内部字库
第七讲 单片机驱动彩色液晶屏 控制RA8889软件:显示文字:Part3.自建字库
第八讲 单片机驱动彩色液晶屏 控制RA8889软件:显示图片
第九讲 单片机驱动彩色液晶屏 控制RA8889软件:认识显存并进行读、写、复制
第十讲 单片机驱动彩色液晶屏 控制RA8889软件:图像运算
第十一讲 单片机驱动彩色液晶屏 控制RA8889软件:播放avi视频
第十二讲 单片机驱动彩色液晶屏 如何打包bin档
第十三讲 单片机驱动彩色液晶屏 bin档的烧录方法
 
如何通过RA8889 / RA8876来显示文字?

UI界面需求最大的两个功能,第一个是显示图形,第二个是显示文字。文字部分有ASCII和中文,或者是多国语言,下面我们就专门针对RA8889如何显示文字展开介绍。本章涉及内容较多,会分为三篇进行介绍。

 
 
 

单片机在没有使用嵌入式OS的情况下,显示文字有很多方法。先介绍如何调用RA8889内建文字。这颗控制芯片内建12x24 ASCII字体的ROM,字体为ISO/IEC 8859-1/2/4/5字符集。

调用内建字符出来显示的速度很快且只占用MCU很少的资源,用户可指定前景、背景色,以及是否为透明色,文字可以放大1~4倍,只是越大锯齿会越明显,参考下图实例:


显示内建文字,调用API举例:

Internal_CGROM_Select_ISOIEC8859_1();  //选择字符集
Select_Font_Height_WxN_HxN_ChromaKey_Alignment(24,4,4,0,0);  //设定文字的尺寸、透明色、对齐方式,根据函数名也可以看出来参数含义
Font_Line_Distance(0);  //行间距
Set_Font_to_Font_Width(0); //文字间距
Print_Internal_Font_String(100,330,800,480,0xFFFFFF,0x000000,"Embeded Fonts of RA8889");



如果只是要调用通用的ASCII字符,那么无需多言,这篇文章您看到这边即可。

如果您的产品有西欧各国文字显示的需求,那么您接着往下看!


RA8889内建了ISO/IEC 8859-1/2/4/5字符集,各字符集先简要说明一下:





字符集表如下,常用ASCII存放在0x00 ~ 0x7F,0x80 ~ 0xFF存放西欧字符。





显示内建的西欧文字实际效果展示:


 

调用API代码如下:

 // 设定字体格式
 Select_Font_Height_WxN_HxN_ChromaKey_Alignment(24, 1, 1, 0, 0);
 
 // 显示4种欧洲文字字符演示
 Internal_Font_Europe_ISO8859_1();
 Internal_Font_Europe_ISO8859_2();
 Internal_Font_Europe_ISO8859_4();
 Internal_Font_Europe_ISO8859_5();


 

其中,函数是这样写的:





注意到了吗?文字是乱码!该文件是使用Keil打开的,即使我们将编码改为UTF-8,显示出来一样是乱码!Keil内核编码支持还是有限。


 


经过测试,我们找到一种可行的方法。使用VS Code平台安装EIDE扩展后,再导入编辑Keil工程,保存相应的编码即可。

方法如下:
(1)先打开文件,再同时按住Ctrl+Shift+P,输入“更改文件编码”:


(2)选中后,再选择“通过编码保存”:

 

(3)选中后,再输入“8859-1”即可找到“Westen(ISO 8859-1)”这个选项:


 

保存好后,再输入或者贴上ISO8859-1编码内的文字,显示出来就不会乱码了:

 


其它编码类似,同时强调一下不同编码只能存到不同文件并相应地保存编码,这样就可以显示不同编码的字体了。

这些代码文件可下载参考:

Europe_Fonts.zip


第五讲 THE END

 

分享到:

相关热词搜索:

上一篇:第四讲 单片机驱动彩色液晶屏 控制RA8889软件:绘图
下一篇:第六讲 单片机驱动彩色液晶屏:显示文字:Part2.外接字库