单片机自建中文字库_单片机自建字库 - CSDN
  • 单片机字库建立

    2017-06-28 20:25:08
    本文转载://www.rationmcu.com/elecjc/356.html ...在有些系统中,我们需要显示汉字,可以购买汉字芯片,或者购买带汉字显示的显示器,当然,也可以自己做字库。 这里我们介绍一种自己做字库的方法,成本2元人民

    本文转载自://www.rationmcu.com/elecjc/356.html


    学完这篇文章,你将会使你的单片机显示系统中加入中文显示的功能。

    1.导言

    和单片机搭配的显示器,有12864、TFT、OLED等。在有些系统中,我们需要显示汉字,可以购买汉字芯片,或者购买带汉字显示的显示器,当然,也可以自己做字库。

    这里我们介绍一种自己做字库的方法,成本2元人民币左右。

    2.汉字显示原理

    看原理需要知道什么是像素:像素是液晶屏的最小单位,看你的手机屏幕或者电脑屏幕,他们实际上是由一个一个的正方形组成的,如果你的电脑或手机屏幕分辨率太高,不容易看到,需要借助放大镜,分辨率低的话,仔细一看就看见了,都是由一个一个的正方形组成的,这里面的一个正方形,就是1个像素。例如,12864屏幕就是128像素*64像素的屏幕,即横着有12864个正方形,竖着有64个正方形。

    12864放大

    上图是12864屏幕的一角,请你仔细看看,是不是一个一个的正方形组成?

    比128*64大的分辨率是320*240,还有800*600,1024*768,1280*720等,总之,分辨率越大,人的肉眼就越但不见它是由一个一个小正方形组成的。所以现在的手机屏幕是越来越高,当你用惯一个分辨率极高的手机,再去用你原来分辨率极低的手机,你就会发现原来的那个手机真是很模糊!

    讲完了像素的概念,下面开始讲汉字显示的原理:

    现在流行的汉字字库有两种,一种是GB2312、一种是GBK。这是两种不同的编码约定。

    • GB2312有六千多个汉字,是一些常用的汉字
    • GBK有2万多个汉字,包含所有的GB2312汉字,包含整个中国的汉字

    假如我们想在液晶显示器上显示一个16*16像素大小的汉字“瑞”,怎么办呢?先看一下“瑞”字在液晶显示器上被放大的效果:

    瑞

    上面的这个瑞即是16*16像素大小的字体,你可以数一下上面的像素点。你可以看一下,在上面“亮”的地方用“写点函数”写成和其它点不同的颜色,不就可以了吗!按照这个思想,我们就需要采用一种有效的办法了。从上面图像的右上角开始扫描,每行有16个点,即可以用两个字节来表示,“暗”的地方用0表示,亮的地方用1表示,那么第一行就可以写成十六进制的0020,以此类推,可以得出第二行,第三行的字节码,如此一来,一个汉字就需要32个字节来表示。搞好了汉字的这些码,在程序中给TFT开个16*16大小的区域,然后开始扫描这些字节,遇到0,写背景色,遇到1,写定义的颜色。汉字显示就是如此了。

    3.为什么显示英文一般不用字库芯片?

    英文的单词都是由26个字母构成了,加上大小写的区别和一些字符,也不过才95个。假如要显示8*16像素大小的字符,每一个字符需要16个字节的字库空间,95个字符即是95*16=570个字节。即占用570个字节的RAM。对于LPC1114的8K字节RAM来说,搓搓有余了。

    4.为什么显示中文需要字库芯片?

    显示中文的话,必须需要每一个字的字模,16*16像素大小的中文,每一个中文都要32个字节。GBK收录了中文两万多个,如果要都能显示,需要700多K字节的空间。

    所以,我们选择了把这些字库放在外部存储器当中,我们选择了2M的FLASH存储芯片W25Q16做为存储媒介。放个700多K的字库足够了,如果你愿意,同时放两种字体的字库都没问题。

    5.如何把GBK字库做成字模?(此部分做字模参考阿莫论坛一帖子,非瑞生原创,特此感谢分享者)

    5.1需要准备的文件和软件

    • 取模软件
    • GBK字库
    • 二进制文件生成工具

    点此下载:GBK字库制作软件和文件

    5.2开始制作

    取模软件

    在工具栏处点“打开”按钮,打开gbk_ziku.txt文件,然后根据自己的需要,设置想要的取模方式,然后点工具栏上的“输出”按钮 并等待其完成,完成后会在取模软件所在路径生成了一个temp.txt文件,修改这个文件名,比如现在我是按照“宋体、点阵数为16、字重为4、取模为为16*16、对齐设置为左上、方向设置为横向取模,高位在左”的方式来取的字模,也就是我平时TFT常用的一种字模,改文件名为st16x16.txt 。

    为了生成的方便,我们在D盘根目录下新建一个文件夹,名称就叫ziku吧,然后,把ziku.exe 和 st16x16.txt复制一份到这个文件夹里。

    打开自己计算机的命令窗口:“开始”->“运行”->“cmd”,如下图所示:

    命令1

    然后用cd命令进入到我们刚刚建的ziku文件夹下,输入命令如下图所示:

    命令2

    输入命令,生成字库文件,如下图所示:

    命令3

    回车,然后程序会在ziku文件夹下生成一个名称固定为ziku.bin的字库文件

    命令4

    为了区分,把这个字库文件修改名称为st16x16.bin 。

    到此,字库已经制作完成。

    6.如何把做好的GBK字库字模存储到W25Q16中?

    硬件:电脑串口—单片机—W25Q16

    程序:单片机与电脑采用串口连接,单片机与W25Q16采用SPI方式连接。所以,我们只需要给单片机写一个接收串口数据再把数据通过SPI口传输到W25Q16中的程序即可。

    下面的视频是瑞生LPC1114开发板下载GBK字库的演示:(支持超清模式观看)

    轻松制作与使用中文字库(第一集) 

    轻松制作与使用中文字库(第二集)

     

    7.单片机如何读取W25Q16中的字模并显示在液晶屏上?

    假设我们的GBK字模是从W25Q16地址中的0x100开始存储的,那么,从0x100地址开始,单片机读取32个字节,就是GBK字库的第一个字“丂”的字模,再读32个字节,就是GBK字库第二个字“丄”的字模。(有人会问,你是怎么知道GBK字库第几个字是什么的?答:你把上文中5.1节提到的文件下载后,打开GBK字库,就看见了。)根据上文中第2步讲的原理,字模中,遇到0就给LCD的1个像素画一个颜色,遇到1就给LCD的下一个像素画不同的颜色,把32个字节都捋一遍,一个汉字就显示在LCD上了。

    如果我们想要显示汉字“瑞”,我们该从W25Q16中的哪个字节开始提取它的字模呢?这时候,就需要知道字符存储编码的原理了。

    字符编码原理:英文字母带各种符号等共有95个,都有自己的ascii码,一个字母或者符号就是一个ascii码。汉字以及汉字的符号是需要2个字节来存储,在keil等主流编译器中,一般都是以GBK编码方式存储。

    GBK编码:每个GBK码由2个字节组成,第一个字节为0X81~0XFE,第二个字节分为两部分,一是0X40~0X7E,二是0X80~0XFE。例如汉字“瑞”的GBK编码为C8F0,第一字节C8,位于0X81~0XFE之间,第二字节F0,位于0X40~0XFE之间。第一个字节代表的意义称为区,那么GBK里面总共有126个区(0XFE-0X81+1=126);第二个字节代表的意义就是每个区内有多少个汉字,算了一下,一共有190个(0XFE-0X80+0X7E-0X40+2=190)。那么,GBK一共存储了126X190=23940个汉字。

    我们仔细看GBK编码第二个字节两部分,0X40~0X7E0X80~0XFE,也就是说它是从0X40~到0XFF,中间的0x7F和最后的0xFF没有用到。但是为了能够线性查找,我们暂且认为这两个字节也存在,就是我们强制把每个区190个汉字当做每个区192个汉字,不过0X7F和0XFF上没有汉字。

    定义GBKH代表第一个字节,GBKL代表第二个字节,字库的偏移量offset,放入W25Q16的字库从0x100地址开始存储,那么获取某个汉字的字模的函数就可以写成:

    voidGet_GBK_DZK(uint8_t *code, uint8_t *dz_data) {    
    uint8_tGBKH,GBKL;                   
    uint32_toffset;            
    GBKH=*code;   
    GBKL=*(code+1);        
    if(GBKH>0XFE||GBKH<0X81)return;   
    GBKH-=0x81;   
    GBKL-=0x40;   
    offset=((uint32_t)192*GBKH+GBKL)*32;   
    W25Q16_Read(dz_data,offset+0x100,32);             
    return; 
    }

    函数中,参数*code带入汉字的两字节编码,*dz_data是一个32个字节的数据,带入函数中,就可以得到任何一个汉字的字模了。例如:

        uint8_t buf[32];    Get_GBK_DZK("瑞", buf);
    展开全文
  • 学完这篇文章,你将会使你的单片机显示系统中加入中文显示的功能。 1.导言 和单片机搭配的显示器,有12864、TFT、OLED等。在有些系统中,我们需要显示汉字,可以购买汉字芯片,或者购买带汉字显示的显示器,当然,...

    本文转自:http://www.rationmcu.com/elecjc/356.html

    学完这篇文章,你将会使你的单片机显示系统中加入中文显示的功能。

    1.导言

    和单片机搭配的显示器,有12864、TFT、OLED等。在有些系统中,我们需要显示汉字,可以购买汉字芯片,或者购买带汉字显示的显示器,当然,也可以自己做字库。

    这里我们介绍一种自己做字库的方法,成本2元人民币左右。

    2.汉字显示原理

    看原理需要知道什么是像素:像素是液晶屏的最小单位,看你的手机屏幕或者电脑屏幕,他们实际上是由一个一个的正方形组成的,如果你的电脑或手机屏幕分辨率太高,不容易看到,需要借助放大镜,分辨率低的话,仔细一看就看见了,都是由一个一个的正方形组成的,这里面的一个正方形,就是1个像素。例如,12864屏幕就是128像素*64像素的屏幕,即横着有12864个正方形,竖着有64个正方形。

    12864放大

    上图是12864屏幕的一角,请你仔细看看,是不是一个一个的正方形组成?

    比128*64大的分辨率是320*240,还有800*600,1024*768,1280*720等,总之,分辨率越大,人的肉眼就越但不见它是由一个一个小正方形组成的。所以现在的手机屏幕是越来越高,当你用惯一个分辨率极高的手机,再去用你原来分辨率极低的手机,你就会发现原来的那个手机真是很模糊!

    讲完了像素的概念,下面开始讲汉字显示的原理:

    现在流行的汉字字库有两种,一种是GB2312、一种是GBK。这是两种不同的编码约定。

    • GB2312有六千多个汉字,是一些常用的汉字
    • GBK有2万多个汉字,包含所有的GB2312汉字,包含整个中国的汉字

    假如我们想在液晶显示器上显示一个16*16像素大小的汉字“瑞”,怎么办呢?先看一下“瑞”字在液晶显示器上被放大的效果:

    瑞

    上面的这个瑞即是16*16像素大小的字体,你可以数一下上面的像素点。你可以看一下,在上面“亮”的地方用“写点函数”写成和其它点不同的颜色,不就可以了吗!按照这个思想,我们就需要采用一种有效的办法了。从上面图像的右上角开始扫描,每行有16个点,即可以用两个字节来表示,“暗”的地方用0表示,亮的地方用1表示,那么第一行就可以写成十六进制的00 20,以此类推,可以得出第二行,第三行的字节码,如此一来,一个汉字就需要32个字节来表示。搞好了汉字的这些码,在程序中给TFT开个16*16大小的区域,然后开始扫描这些字节,遇到0,写背景色,遇到1,写定义的颜色。汉字显示就是如此了。

    3.为什么显示英文一般不用字库芯片?

    英文的单词都是由26个字母构成了,加上大小写的区别和一些字符,也不过才95个。假如要显示8*16像素大小的字符,每一个字符需要16个字节的字库空间,95个字符即是95*16=570个字节。即占用570个字节的RAM。对于LPC1114的8K字节RAM来说,搓搓有余了。

    4.为什么显示中文需要字库芯片?

    显示中文的话,必须需要每一个字的字模,16*16像素大小的中文,每一个中文都要32个字节。GBK收录了中文两万多个,如果要都能显示,需要700多K字节的空间。

    所以,我们选择了把这些字库放在外部存储器当中,我们选择了2M的FLASH存储芯片W25Q16做为存储媒介。放个700多K的字库足够了,如果你愿意,同时放两种字体的字库都没问题。

    5.如何把GBK字库做成字模?(此部分做字模参考阿莫论坛一帖子,非瑞生原创,特此感谢分享者)

    5.1需要准备的文件和软件

    • 取模软件
    • GBK字库
    • 二进制文件生成工具

    点此下载:GBK字库制作软件和文件

    5.2开始制作

    取模软件

    在工具栏处点“打开”按钮,打开gbk_ziku.txt文件,然后根据自己的需要,设置想要的取模方式,然后点工具栏上的“输出”按钮 并等待其完成,完成后会在取模软件所在路径生成了一个temp.txt文件,修改这个文件名,比如现在我是按照“宋体、点阵数为16、字重为4、取模为为16*16、对齐设置为左上、方向设置为横向取模,高位在左”的方式来取的字模,也就是我平时TFT常用的一种字模,改文件名为st16x16.txt 。

    为了生成的方便,我们在D盘根目录下新建一个文件夹,名称就叫ziku吧,然后,把ziku.exe 和 st16x16.txt复制一份到这个文件夹里。

    打开自己计算机的命令窗口:“开始”->“运行”->“cmd”,如下图所示:

    命令1

    然后用cd命令进入到我们刚刚建的ziku文件夹下,输入命令如下图所示:

    命令2

    输入命令,生成字库文件,如下图所示:

    命令3

    回车,然后程序会在ziku文件夹下生成一个名称固定为ziku.bin的字库文件

    命令4

    为了区分,把这个字库文件修改名称为st16x16.bin 。

    到此,字库已经制作完成。

    6.如何把做好的GBK字库字模存储到W25Q16中?

    硬件:电脑串口—单片机—W25Q16

    程序:单片机与电脑采用串口连接,单片机与W25Q16采用SPI方式连接。所以,我们只需要给单片机写一个接收串口数据再把数据通过SPI口传输到W25Q16中的程序即可。

    7.单片机如何读取W25Q16中的字模并显示在液晶屏上?

    假设我们的GBK字模是从W25Q16地址中的0x100开始存储的,那么,从0x100地址开始,单片机读取32个字节,就是GBK字库的第一个字“丂”的字模,再读32个字节,就是GBK字库第二个字“丄”的字模。(有人会问,你是怎么知道GBK字库第几个字是什么的?答:你把上文中5.1节提到的文件下载后,打开GBK字库,就看见了。)根据上文中第2步讲的原理,字模中,遇到0就给LCD的1个像素画一个颜色,遇到1就给LCD的下一个像素画不同的颜色,把32个字节都捋一遍,一个汉字就显示在LCD上了。

    如果我们想要显示汉字“瑞”,我们该从W25Q16中的哪个字节开始提取它的字模呢?这时候,就需要知道字符存储编码的原理了。

    字符编码原理:英文字母带各种符号等共有95个,都有自己的ascii码,一个字母或者符号就是一个ascii码。汉字以及汉字的符号是需要2个字节来存储,在keil等主流编译器中,一般都是以GBK编码方式存储。

    GBK编码:每个GBK码由2个字节组成,第一个字节为0X81~0XFE,第二个字节分为两部分,一是0X40~0X7E,二是0X80~0XFE。例如汉字“瑞”的GBK编码为C8 F0,第一字节C8,位于0X81~0XFE之间,第二字节F0,位于0X40~0XFE之间。第一个字节代表的意义称为区,那么GBK里面总共有126个区(0XFE-0X81+1=126);第二个字节代表的意义就是每个区内有多少个汉字,算了一下,一共有190个(0XFE-0X80+0X7E-0X40+2=190)。那么,GBK一共存储了126X190=23940个汉字。

    我们仔细看GBK编码第二个字节两部分,0X40~0X7E 0X80~0XFE,也就是说它是从0X40~到0XFF,中间的0x7F和最后的0xFF没有用到。但是为了能够线性查找,我们暂且认为这两个字节也存在,就是我们强制把每个区190个汉字当做每个区192个汉字,不过0X7F和0XFF上没有汉字。

    定义GBKH代表第一个字节,GBKL代表第二个字节,字库的偏移量offset,放入W25Q16的字库从0x100地址开始存储,那么获取某个汉字的字模的函数就可以写成:

    void Get_GBK_DZK(uint8_t *code, uint8_t *dz_data)
    {
        uint8_t GBKH,GBKL;                 
        uint32_t offset;        
    
        GBKH=*code;
        GBKL=*(code+1);     
        if(GBKH>0XFE||GBKH<0X81)return;
        GBKH-=0x81;
        GBKL-=0x40;
        offset=((uint32_t)192*GBKH+GBKL)*32;
        W25Q16_Read(dz_data,offset+0x100,32);           
        return;
    }

    函数中,参数*code带入汉字的两字节编码,*dz_data是一个32个字节的数据,带入函数中,就可以得到任何一个汉字的字模了。例如:

        uint8_t buf[32];
        Get_GBK_DZK("瑞", buf);
    展开全文
  • 在许多单片机应用系统中,经常要用到汉字,以便进行输出显示,此时需要建立单片机的专用字库,而人工向单片机输入所需汉字是非常费时费力的工作。因此需要从大字库中分离出小字库,自我生成一个专用的小字库。  1. 汉字...

               在许多单片机应用系统中,经常要用到汉字,以便进行输出显示,此时需要建立单片机的专用字库,而人工向单片机输入所需汉字是非常费时费力的工作。因此需要从大字库中分离出小字库,自我生成一个专用的小字库。

              1. 汉字的区位码与内码

               国家标准的汉字字符集(GB2312-80)在汉字操作系统中是以汉字库的形式提供的。汉字库结构有统一规定,即将汉字库分成94个区,每个区有94个汉字(以位作区别),每个汉字在汉字库中有确定的区和位编号(用两个字节),这就是所谓的区位码。区位码的第一个字节表示区号,第二个字节表示位号,因而只要知道了区位码,就可以知道该汉字在字库中的地址。每个汉字在字库中是以点阵字模形式存储的,当用存储单元存储该字模信息时,将需要32字节。在计算机内,英文字符是用一个字节的ASCII码表示的,而对于众多的汉字,需用两个字节才能代表,国家为此制定了统一标准,称为国标码。又规定国标码在机内表示汉字时,将每个字节的最高位置1。这些国标码的两字节最高位加1后的代码称为机器内的汉字代码,简称内码。

              2 内码转换为区位码与取字模

                 汉字内码与区位码有固定的转换关系,即若汉字内码为十六进制数aaff,则区号qh和位号wh分别为 qh=aa-0xa0;wh=ff-0xa0。 由于在中文DOS下,输入汉字时,其相应的内码即已在程序中存在,如同在西文DOS下,输入英文字符时,其对应的ASCII也在程序中存在一样。因而得知汉字内码,将其转换为区位码,这样就可以找出该汉字字模在字库中存放的地址,由此地址调出该32字节汉字的内容(字模)。

                在以上知识的基础上,单片机利用C语言建立小字库的方法是这样的:在UCDOS下打开标准字库→取出所需汉字字模→生成专用小字库文件。但是,单片机不能识别C语言建立的专用小字库文件。 因此,需要把C语言建立的专用小字库转换成MCS51单片机能识别的存储模式。下面是转换过程所需的C语言语句: //C语言建立小字库文件

    fp16 fread(&buffer,char_16,1,fp16);//取字模

    for(j=0;j<= char_16-1;j )//设置循环次数(一个汉字字模为32字节)

    { fprintf(fp22,“db”);//MCS51语句定义符(fp22为MCS51能识别的库文件)

    if(buffer\[j\]<=0xf buffer\[j\]>=0xa)//若一个字节左边 是字母(≥10),前面加0

    { fprintf(fp22,“%x”0); } printf(fp22,“%x”,buffer\[j\]);//写汉字字模(一次一个字节)

     fprintf(fp22,“h\\n”);//最后加上H,然后换行 } 

            在DOS环境下,把利用C语言建立的单片机小字库文件fp22与单片机汇编程序合在一起,通过单片机开发器写入EPROM。可以看出,每个汉字字模都由程序自动写入EPROM,既节省时间,又避免了字模人工输入时可能产生的错误。

    展开全文
  • 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,...原因在于:KEIL C51 的一个汉字BUG,keil c51在编译的时候会将0xfd的字符(有些汉字含该字符的内码)过滤, 最佳解决方案:打补丁,用 晓奇工作室出的...

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://arm-linux.blog.csdn.net/article/details/52881610
    原因在于:KEIL C51 的一个汉字BUG,keil c51在编译的时候会将0xfd的字符(有些汉字含该字符的内码)过滤,

    最佳解决方案:打补丁,用  晓奇工作室出的补丁 cckeilvxx.exe

    http://www.pc6.com/softview/SoftView_67694.html

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------

    下面来自网友:http://blog.sina.com.cn/s/blog_6101ed5f0101g6ee.html

    1.官方解释


    GENERAL: COMPILER IGNORES 0XFD, 0XFE, 0XFF VALUES IN STRINGS
    Information in this article applies to:


    C166 Compiler All Versions
    Cx51 Compiler All Versions
    C251 Compiler All Versions
    QUESTION


    I have a problem with the interpretation of Russian strings in the Keil C51 compiler. Some Russian characters are using the encoding 0xFD. It looks like this encoding is ignored by the compiler and is not included in the program code.


    Example:


    code char RussianString[] = "??? ????";
    Why does this problem exist and how can I avoid this behavior?


    ANSWER


    The character encodings 0xFD, 0xFE, and 0xFF are used internally by the C compiler. The ANSI standard only requires support for ASCII characters in the range 0x00 - 0x7F.


    You may insert these characters by using HEX encodings in the string as follows:


    code char RussianString[] = "My Text" "\xFD";
    A simple text replacement which replaces all 0xFD characters with the string '" "\xFD' should do the job.


    即遇到无法显示字符时在其后加\xFD


    如 :unsigned char code s[]="数学"; 改为 unsigned char code s[]="数\xFD学"; 即可正常显示


    2.修改keil编译器


    用WinHex或C32Asm等HEX编辑工具修改\C51\BIN中的C51.exe和A51.exe


    十六进制搜索 80FBFD 改为 80FBFF 即可。


    不过不建议使用这种方法,修改编译器后可能会产生某些意想不到的错误。
    ————————————————
    版权声明:本文为CSDN博主「Alen.Wang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://arm-linux.blog.csdn.net/article/details/52881610

    展开全文
  • 首先,完整的字库包含超过6000个汉字,体积相对较大,而大多数时候我们只需要显示几百个或更少的汉字。显然此方式不适于空间占用要求高的场合。其次,程序运行时依赖字库,不能独立运行。再者,为了显示在区位相距较...
  • 以前在用51显示汉字的时候
  • 最近在学习emWin,在走到显示汉字时,发现想要使用字库要么使用UCODS字库,和LCD屏自带函数原来类似的显示方式自己重建字库类型。但是UCODS字库我目前真是没有找到可以自己做的,连字库也要去下载,很不方便。使用...
  • 1 字体设置  首先需要设置字体。Win32 SDK提供了用于字体选择的通用对话框,只需调用ChooseFont函数,其返回值为一个布尔值。具体定义为BOOL ChooseFont(LPCHOOSEFONT lpcf)。调用此函数后,弹出字体选择对话框,...
  • 字库烧录到外部的flash中,减少STM32的资源占用,方便用于调试。正式量产时,可以直接那芯片给工厂。
  • 最近在准备做19年电子设计...正点原子的视频教程上通过TFT液晶屏显示汉字是通过建立字库进行显示,个人感觉比较繁琐,况且在做比赛或者其它的显示的时候都只需要几个汉字就差不多了,所以不需要这么麻烦去建立字库...
  • 近期有项目需要用的LCD显示沐足显示一些中文,对比了下带字库的模组要比不带字库的模组要贵得多,想想那就自己建立字库吧,能剩下不少费用,再说设备内部的FLASH大把的容量,不利用也有点浪费了。下文转载:...
  • 上一篇博客,给大家介绍了在LCD上显示汉字/特殊图形需要知道对应的显示编码(GBK码/ASCII码),显示编码对应着每个图形的点阵集(数组),我们可以通过这个点阵集,将自己DIY的图形显示在LCD上面。现在先说一下怎么...
  • 点阵创建,创建字库

    2019-07-01 21:00:30
    点阵字体在单片机液晶显示屏,嵌入式GUI开发中,用得也是非常频繁的。 主要有两种使用场景: 1.生成某种编码的全部点阵,以BIN的形式放在FLASH中加载。(GUI开发常见) 2.生成部份文字的点阵,以C文件的方式,写在代码...
  • 在有些系统中,我们需要显示汉字,可以购买汉字芯片,或者购买带汉字显示的显示器,当然,也可以自己做字库。这里我们介绍一种自己做字库的方法。 2.汉字显示原理 看原理需要知道什么是像素:像素是液晶屏的最小...
  • 实验名称:基于51单片机音乐播放器 实验目的: 声音的音调不同是因为声音的频率不同造成的。那么,就可以通过单片机发送不同频率的脉冲信号给蜂鸣器,来达到让蜂鸣器发出不同音调声音的目的。不同频率的脉冲信号就...
  • 基于Segger的emwin进行液晶屏上的图形开发,减低了很多工作量,也非常的好移植,ST系列的单片机上可以免授权使用。  emwin自带了很多字体,有各种大小的数字的字体,可以在GUI.h里面看到定义了的字体。 emwin工程...
  • 基于RA8806的LCD与同类产品相比,具有功能强、调试简单、编程灵活和性价比高等优点,且内4线电阻式触摸屏接口,内置中文字库和ASCII码字库。因此基于RA8806的LCD可广泛应用于智能仪表、数字化仪器等。
  • 51单片机驱动12864液晶显示模块(2009年生产的古董)
1 2 3
收藏数 60
精华内容 24
关键字:

单片机自建中文字库