找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5947|回复: 1
打印 上一主题 下一主题
收起左侧

如何将文字或图形转成LCD上使用的C51字模数据

[复制链接]
跳转到指定楼层
楼主
ID:104835 发表于 2016-2-5 02:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
26、如何将文字或图形转成LCD上使用的C51字模数据


这一讲说说如何用取模软件将图形转成数据吧,有很多人反复问我这个问题,我就再罗嗦下吧!
  取字模的软件有很多款。有的只能将文字转成字模数据,有的既可将文本文字转字模也能将图片转成点阵数据。在这里我就介绍一款使用简单易用的,它能将文字或图形转成我们LCD模块使用的C51数据,其它的软件也大同小异。



界面很简单,左边是各种功能和设置修改栏,右边上半部分是显示你所工作的点阵图,右下部分是文字输入框和点阵数据查看框。
  我们用它主要是想让它将文字或图形转成我们在LCD12864上显示的点阵数据。所有我们就讲讲如何将文字和图形转成点阵数据。
  点击左边功能栏里的“参数设置”,再点击“文字输入区字体选择”如下图。


我们选宋体,小五号字。小五号字就是12X12的点阵。然后在文字输入框里输入你想要转为字模的文字。例如“你好”然后按住“CTRL”键的同时按“Enter”键。文字就显示在左上部分的点阵图上了。如下图:


如果觉得字形不好看你还可以用鼠标在点阵图上修改,点左键画点,点右键擦除。
下面就要进行点阵的转换了。在转换之前首先要弄清几个问题。
1、数据字节与点阵的关系
  我们的LCD12864是黑白显示的,没有灰度级。也就是说任意一个点只有两种状态,要么是白(不显示),要么是黑(黑色显示)。那么只要一位的数据就能表示出一个点,即0或1。那么一个字节的数据就能表示LCD屏上的8个点。所以一般LCD屏的宽和高的总点数都是8的倍数。例如128X64。
2、LCD屏上每个字节点的排列顺序
  上面讲过一个字节的数据可以表示LCD上的8个点。也就是说将一个字节的数据送到LCD模块,它就能相应地显示8个点,但这8个点是如何排列的呢?不同的LCD模块对每字节8个点的排列是不同的。在LCD模块的产品说明书上会告诉你它的排列方式。例如,我前面讲的那种采用KS0108控制器的并口LCD12864,它的每字节点阵排列方式是竖(纵)向排列的。而我这篇前面讲的串行LCD12864采用ST7920控制器的模块就是按每字节横向排列的。
  另外还有一个正序和倒序的问题,通常我们一个字节的数据按二进制排列的话都是左边为高位A7,右边为低位A0,这就是正序。如果LCD的点阵与一个字节数据的排列顺序想反,左边最左边显示的是A0,右边显示A7,这就是倒序。竖向排列也一样,通常数据是上面为A7,下面为A0,如果LCD模块正好反了,就是竖向倒序。见下图:

下图是KS0108控制器的LCD竖向倒序排列:


下面是ST7920控制器的的横向正序排列:



对于一个具体的汉字点阵来说如下图:




16×16点阵汉字也一样的:










待续。。。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:99525 发表于 2016-2-9 23:10 | 只看该作者
这个程序功能太多了,不适合新手,特别是非16X16点阵的汉字
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表