完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 渴死的鱼儿 于 2016-2-20 15:08 编辑 上一篇帖子实现了修改OLED的程序,并基本摸清其程序的流程。现在厂家又提供了OLED的取模软件,我们就可以创造自己的内容了。下面进入正题: 我们先将程序源码恢复到出厂时间状态,OLED的开机内容恢复到正常。然后我们去修改“开发从未如此简单”的界面。首先还是要找到控制这个内容的代码位置,如下图: 程序当中的每一个OLED_show_chn()的功能是显示一个字,后面我添加了注释,“开发从未如此简单”一共8个字,一共使用了8次OLED_show_chn();我们进入到这个函数中: 从程序员对程序的信息标注知道这段程序是用来显示汉字的,函数的3个参数代表起始点坐标和汉字内容,其中第3个参数就是选择字库当中的字了,16,17,18,19,20,21,22,23分别对应“开发从未如此简单”8个汉字。如下图: 程序里面的两个for循环是逐个点亮OLED的点阵,因为使用的是16*16的字库,所以要想显示一个字每次都要刷新16次才能完整的将字体显示出来。但是为什么是两个for语句?第一感觉一个就可以的了,但是不知道为什么需要2个,那么下面就将第二个for语句注释掉,编译烧录看看现象: 我烧录进板子之后的现象是“开发从未如此简单”的字样只显示了上面的半部分,下半部分完全消失了。由此可以看来第二个for语句是控制汉字的下半部分的,那第一个for就是控制上半部分了。OLED屏幕现象如下图(手机像素实在是差): 然后看到程序里面第三个参数之前都被乘32了,不知道什么原因,开始猜测可能是显示屏的硬件原因,我把那个32去掉之后OLED的显示内容就是乱码了,不成汉字。但是再观察一下16*16的字库发现,一个汉字是由32个数据组成的,程序员为了观察方面就把数据分层次了,并标注的0-23。因为我把32去掉了,本来“开”是第16行的所有32个数据的(16*32),然后就只剩下16了,就变成了第一行的第16个数据了0x04了,再扫描16次隐隐约约出现的是“温”的一部分,说白了*32就是该汉字在字库中的偏移地址。所以这个现象也解释通了,下面是修改的程序和OLED的现象: 好了,现在我们已经弄清楚程序是怎么一步一步控制汉字的显示了,下面我们就用厂家提供的“取模软件”生成一些自己的汉字添加到程序当中。我用这个软件生成了几个汉字“渴死的鱼儿”,并且代替了“开发从未如此简单”的内容显示在OLED上,效果还是不错的!下面这个是软件的界面: 这是个是字符模式,大家可以自己摸索摸索怎么玩的。打开软件的选项菜单,在弹出的窗口里面设置好字模选项,输出方式,点阵格式,取模走向,取模方式,输出数制等等点击确定,从codetab.h的字库程序说明情况来看,对软件的取模方式是:共阴(点阵格式:阴码)、列行式(取模方式)、逆向输出(取模走向)、输出数制(16进制)、点阵选择16。如下图: 设置确定后,点击“选项”下面的文本的图标,在弹出的窗口中输入你要生成的汉字,最后点击“开始生成”。如下图我输入的是“渴死的鱼儿”: 生成之后在你选择的保存路径中就可以看到2个文本了: 第一个文本内容就是程序中需要到的一堆十六进制数据,第二个文本是软件的设置输出的无关紧要,下图就是数据的内容: 可以看到这个内容和程序中的16*16的字库格式是一模一样的,我们把它复制到相应的程序当中去: 并在原来显示“开发从未如此简单”的程序位置修改程序内容,让其显示“渴死的鱼儿”(记得把之前的程序注释掉),如下图: 因为为了让字体显示的更散开一点,我每个字之间空了一个字,所以函数的起始点坐标相隔32个像素,但是最后一个是在不够32了,如果写出128就会被“挤”到下一行去显示了,所以最后的效果图最后一个字有点挤! 到现在已经可以完全实现自己的效果了,自己想添加什么内容可以随时加入程序,还有后期开发过程中显示“温度”、“湿度”、“大气压”什么的都可以,也可以加入自己的logo!附件资料是厂家提供的字模软件和这篇帖子的Word文档,厂商的技术支持还是挺给力的! 取模软件PCtoLCD:
PCtoLCD2002(取字软件).zip
(907.5 KB, 下载次数: 11
)
本帖Word版教程:
DIY自己的字体.rar
(1.23 MB, 下载次数: 11
)
|
|
相关推荐
8 个讨论
|
|
图片怎么显示 ,比如公司LOGO
|
|
|
|
|
|
恩 按照点阵自己画吗?谢谢
|
|
|
|
|
|
谢谢分享,....................
|
|
|
|
|
|
谢谢分享........
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 07:24 , Processed in 0.736724 second(s), Total 60, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号