切换到宽版
  • 19736阅读
  • 50回复

[C51]恭祝坛友们新春快乐!用STC15W4K48及W25Q16,采用土办法编写OLED用的显示字库。 [复制链接]

上一主题 下一主题
离线落叶风
 

发帖
1370
M币
1519
专家
215
粉丝
19587
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-02-16
— 本帖被 發騷友 设置为精华,作者+3000M币+5专家(2018-02-20) —
今天是年初一,恭祝坛友们新春快乐!狗年吉祥,万事如意,身体健康,财运旺旺,有更多的高科技成果出现。今年回乡下过年,无聊,把年前未完工的DIY的部份东西整理一下,把本人显示字库的制作方法整理好,并发出来。

这次编写字库的主要原因是打算升级VFD多功能闹种,


想增加电源控制音频控制等功能,由于单片机空间有限,程序超出了单片机空间,所以才想把显示的字库移到W25Q16中,由于网上没有找不到合适的字库,手头上也没有W25Q16的编程器,网上的字库生成软件找不到破解板,所以采用土办法编写,由于VFD显示不通用,所以在这又制作比较常用的OLED显示字库,把制作过程发出来供坛友参考。
本次制作是采用实验板及IIC总线的OLED显示器及W25Q16芯片进行制作,硬件如下图,




实验板电路图如下,OLED的时钟脚接P21,数据脚接P22,W25Q16的DO脚接 P0^3,DIO 脚接P0^5,CLK 脚接P0^4,CS脚接 P0^2,HOLD及WP接3.3V电源,注意W25Q16供电不能超3.6V。



以下为完成的效果图。
下图为9个区里取一个字或最后个字把它显示出来。在校验字库是否正确时,需显示的内容一样才对。


以下为ASII字库。


以下为唐诗一首。



以下为本人字库的制作方法,比较土,能用。
先在网上下载GB2312字库表,在压缩包文件夹里GB2312编码范围.txt文件就是,由于它是带说明的,字的顺序不连续,所以需把没用的字清空,如用手工清理太麻烦,而且容易出错,所以用易语言写一个小工具,把文字提取出来(如下图),



并进行整理,然后按照表的顺序,分成每1024个编码为一组(在每个32K区程序内的TXT文件就是整理好的文字,不要改动它。),主要是由于是采用STC15W4K48写入W25Q16,由于单片机内部程序空间只有48K,每个显示汉字是用16*16,即需32B,1024个字的编码占了32K,为了方便操作,所以1024个字为一组,汉字编码是有90多区,即9K多个字,所以需分9组,别加ASII编码(16*8,8*8两种显示)占用一组,所以共10组,即需写入单片机十次。

以下按第一区32K的编写过程作介绍,其它区是一样的,由于GB2312是从0100开始的,所为了简化计算,所以第一组补00-99空值。。第9区由于只有607个字,所以需补416个空位。

打开第一区32K的程序文件,里面有个文字编码表1.txt,这个文件是已排列好的字,只需在字模提取软件提取出来就行了。字模提取软件是PCtoLCD2002完美版,本显示字库是宋体16*16,OLED显示的字是列行式逆向,需在设置好相对应的参数,如下图,


点导入文本,导入文字编码表1.txt,然后生成,保存在编码表.txt中,然后打开它,检查一下是不是1024个字的编码,


如没错就全选,复制到第一区程序里面的unsigned char code DISPdat16X16[],


然后生成hex文件就行了,然后写入单片机,运行一下,通过串口输出检查一下对应的文字数据是否正确,如正确(3个连续的0XFF为引导码,用来区分每次传出的数据),就完成这区的写入。如些方法运行十次。就完成字库的编码,然后再运行一下字库显示测试,在开始位置演示的图片,看看是否一样,如正确,就完成本字库的制作。第一区到第九区是汉字宋体显示字库,第十区ASII由于只有8*8及16*8的显示字库。以上是制作字库的方法,可以扩展到制作其它字库。压缩包内的程序是已做好宋体OLED显示字库,如需制作其它的字库只需改动程序里的DISPdat16X16里的值就行了。

以下为字库的使用方法,本程序的字库是宋体汉字,尺寸16*16,以及ASII的8*8及16*8。输入汉字后,取出汉字2位编码,分别减去0XA0,前位*100,再加后位,就是这个汉字的GB2312的地址,由于每个汉字显示占用32B,所以当前汉字显示数据开始地址为GB2312编码地址*32。对于ASII的8*8显示数据开始地址为ASII*8+0x048000  ASII的8*8显示数据开始地址为ASII*16+0x048400。
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共1条打赏 ,M币+30
zhuwenjie M币 +30 優秀文章 2018-09-20
关键词: OLED字库
离线落叶风

发帖
1370
M币
1519
专家
215
粉丝
19587
只看该作者 1楼 发表于: 2018-02-16
请登录后查看
[ 此帖被落叶风在2018-02-16 22:52重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共10条打赏 ,M币+138
离线elecfunwb

发帖
1539
M币
4506
专家
8
粉丝
16
只看该作者 2楼 发表于: 2018-02-16
请登录后查看
离线维民所止

发帖
1351
M币
763
专家
2
粉丝
5
只看该作者 3楼 发表于: 2018-02-16
请登录后查看
本帖最近打赏记录:共1条打赏 ,M币+1
离线by64214

发帖
2653
M币
4284
专家
0
粉丝
21
只看该作者 4楼 发表于: 2018-02-16
请登录后查看
离线温力口

发帖
60313
M币
51283
专家
569
粉丝
909
只看该作者 5楼 发表于: 2018-02-16
请登录后查看
离线widjrerpfnvd

发帖
1128
M币
2079
专家
9
粉丝
37
只看该作者 6楼 发表于: 2018-02-16
离线落叶风

发帖
1370
M币
1519
专家
215
粉丝
19587
只看该作者 7楼 发表于: 2018-02-16
回 by64214 的帖子
请登录后查看
离线xiaomage

发帖
744
M币
3546
专家
5
粉丝
37
只看该作者 8楼 发表于: 2018-02-16
请登录后查看
离线2545889167

发帖
13268
M币
20754
专家
302
粉丝
4860
只看该作者 9楼 发表于: 2018-02-16
请登录后查看
快速回复
限80 字节
温馨提示:欢迎交流讨论,请勿发布纯表情、纯引用等灌水帖子;以免被删除
 
上一个 下一个