(图片来源网络,侵删)
好了,在上一个教程中我们已经成功的显示了0,但是方法是不可取的我们说到程序里面的列其实是有归一性质的今天我们就来详细的看这个就写这个0:第 0 页第 0 列为 0x7e, 第 0 页第 1列为 0x81, 第 0 页第 2 列为 0x81, 第 0 页第 3 列为 0x81, 第 0 页第 4 列为 0x7e看一下我们上一个教程里面写的比较low的程序:我们注意到, 程序里面的列其实是规律的, 即列地址高四位右移 4 位后, 与“0x10” 相与, 就可以将列地址高四位写入, 而将列地址的高四位清 0 之后, 即可以将列地址的低四位写入包装函数先将“0” 这个字符需要现实的内容数据存储在一个数组里面, 我们把它称作为“0” 这个字体的字模 我们可以用如下的数组表示u8 num0[5] = {0x7e, 0x81, 0x81, 0x81, 0x7e};然后在写入的时候, 我们需要一个函数, 可以实现在指定的页和指定的列上面进行显示将这个数字放大, 那我们该怎么做呢?怎么写一个这呢?在这里, 我们首先肯定像之前一样写数据是不可能了, 因为这个显示的字符比较庞大 那在这里, 我们肯定不会对它一个点一个点地手动取模了, 我们就必须借助软件了, 即使用“字模提取 ”软件 需要这个软件的可以关注我,私信发送“字模提取”4个字获取该软件当然你也可以在网上自己下载了,类似的软件有很多的我用的这个软件界面如下:字模软件的使用点击“新建图像”设置你需要的字符尺寸,注意这里你所需要设置的宽度和高度指的是像素点, 以上图里面的数字“1” 为例, 我们需要设置宽度为“6”,高度为“19” ;然后就会生成如下所示的界面 我们在这里可以放大图的格点, 只要点击图 中所示的选项即可进行放大按照图中所示的1的格点进行取模了, 只需要单击相应的格点, 即可实现描出黑色的部分接着, 点击图中所示的取模方式, 我们将其设置成 C 语言, 就可以看到相应的字符数组了由于这个字符是横跨 3 页, 因此在写入的时候, 应先写第 0 页的 6 列, 再写入第 1 页的 6 列, 最后写入第 2 页的 6 列 我们观察一下这个数组, 一共有 18个字节, 正好对应我们上述的逻辑顺序好了,我们来看最终的代码:以此类推, 我们可以将所有需要的 0~9 写在一个二维数组里面, 第一维数组的元素代表某一个数字, 第二维数组的元素, 代表字模 其实我们可以将所有ASCII 码的字符进行取模, 编排在一个二维数组里面 具体的实现方法, 我们就不一一说明我自己也写好了很多字模以及显示函数, 需要的可以私信我但是最好还是大家自己写了更多的内容请关注头条号:小5嵌入式
0 评论