标题: 10分钟理解LCD1602如何显示自定义字符 [打印本页]

作者: ppptalk    时间: 2018-4-10 15:30
标题: 10分钟理解LCD1602如何显示自定义字符
相信大家都知道如何通过查字库表的方法来显示表中的任意一个字符。假如现在我想显示某个温度值,需要标志出温度符号”°C”,现在你去字库表里面查找,发现根本找不到这个符号,那怎么办?可以通过自定义字符解决这个问题。在上一个帖子简单讲解了LCD1602的基本操作过程,下面我们就来简单描述如何让1602显示自定义字符。

1. 思路分析

为了方便阅读,在这里我们把LCD1602字库表的一部分截取过来。前面讲了,如果要显示字符‘A’,那么写入数据高位(b7-b4)为0100,写入数据低位(b3-b0)为0001,合起来为0x41.那么如果现在写入数据0x00显示什么呢?数据0x00高4位和低4位全部为0,对应下表中第一行的第一列,我们发现里面是空的,如下图中红色方框所示。




图1

这个红色框的部分就是给我们‘自定义字符的’。CGRAM一共64个字节,一个字符需要8个字节,这样CGRAM一共可以表示8个字符,简单的说就是有8个‘空’可以由我们来自定义(我们把它记作-“自定义空”)。类似的,在(b7-b4)为0000的整列都是空的,右边蓝色框部分是‘固定’的,或者说别人已经帮我们写好的。现在我们要写入数据0x00显示某个字符,那么就需要在0x00对应的这个位置(上图红色框所示)构造出一个字符,简单的讲就是先‘填空’, ‘填空’之后就和蓝色部分一样了。而‘填空’的这个字符可以是任意的,也就是说属于‘自定义字符’。
这样思路就很清楚了
第一步:填空           (构造这个字符)
第二步:显示这个空  (显示这个字符)

2. 如何填空(构造字符)


前面讲了1602模块共2行,每行16个空格,一共32个空格,如下图所示,每一个空格能显示一个字符。




图2

现在我们从这32个空格中提取出一个来分析,如下图所示。仔细观察,一个大空格实际上是由很多小空格组成的,每一行5个小空格,一共8行。我们把这里面的每一个小空格理解成一个led(共40个)。那么也就是说,LCD1602模块显示32个字符,实际上每一个字符是由40个led组成的。这样回到我们的目的-显示自定义字符,实际上就是控制这40个led点亮或者熄灭。
这里为了分析的方便,现在给每一行(5个led)前面多添加3个led,如下图所示,只不过每一行前面的这3个led永远都不亮。


图3

这样问题就变成了如何控制8×8的点阵,每一行8个led,一共8行。那么如何控制这个8×8的点阵呢?回去查看LCD1602指令表即可,这个命令字节(CMD)的高两位固定为01(也就是0x40),剩下的6位如何分布,如下图所示。CMD剩下6位中的高3位,用来确定“你要填哪一个空”,前面讲了一共有8个“自定义空”可用。如果你取000的话,就表示你填的是图1中红色方框所示的“自定义空”,如果取001的话,就表示图1中红色方框下面的一个“自定义空”,依此类推。继续看,CMD的低3位就来确定8×8的点阵位置。如果取000,就表示第一行的8个led,如果取001,就表示第二行的8个led,依此类推。确定了点阵的‘行’,紧跟着写入一个字节的数据就可以了,一个字节8位,刚好对应这一行的8个led,1表示led亮,0表示led灭。


图4

3. 显示构造字符


当这个字符构造好了之后,剩下步骤就前面一样了,确定显示位置,确定显示内容。





图5


LCD1602液晶模块如何显示自定义字符参考代码:
1602自定义字符参考代码.rar (4.38 KB, 下载次数: 460)



上一篇:10分钟理解LCD1602液晶显示模块



作者: huanghu    时间: 2018-4-10 17:43
我初学,想了解下
作者: york_岳    时间: 2018-4-13 23:56
1602学习中。这里是自定义字符
作者: chaoself    时间: 2018-4-14 07:47
我初学,想了解下
作者: qinwenyuqw2    时间: 2018-4-14 10:49
谢谢楼主分享资料
作者: morning。。。    时间: 2018-4-19 20:40
3加油  厉害了啊啊啊啊
作者: fontex    时间: 2018-4-20 10:07
正在学习中,多谢!
作者: mine13800    时间: 2018-4-20 11:20
谢谢大神救小白!
作者: qin339599454    时间: 2018-4-20 12:20
我初学,想了解下
作者: jians57    时间: 2018-4-20 23:53
谢谢楼主
作者: lizhendong    时间: 2018-4-22 19:47
支持支持,学习学习
作者: czj_    时间: 2018-4-23 16:49
最近在学习这个,对于自定义字符一脸懵
作者: a92031180    时间: 2018-4-24 08:47
很有用的帖子,这样变得很容易理解了
作者: 赵森heart    时间: 2018-4-25 12:27
支持支持学习学习
作者: qq383570990    时间: 2018-4-26 11:27

很给力!
作者: LCD1602    时间: 2018-4-26 14:51
感谢楼主分享
作者: 风流有何罪    时间: 2018-4-26 16:31
谢谢分享谢谢分享
作者: 丨释然丶居士灬    时间: 2018-4-26 17:24
学习学习
作者: 丨释然丶居士灬    时间: 2018-4-26 17:24
学习学习资料
作者: raymondau    时间: 2018-5-2 16:34
好资料,学习了
作者: zhangsanshun    时间: 2018-5-3 07:32
小白想看
作者: haiguangshi    时间: 2018-5-4 11:08
学习了,明白了很多

作者: lookchard    时间: 2018-5-4 12:15
学习下自定义字符
作者: ok195688    时间: 2018-5-4 19:54
学习学习看看自己能不能用
作者: sal7777777    时间: 2018-5-5 10:46
谢谢,很详细
作者: fscommand    时间: 2018-5-5 12:44
谢谢分享!
作者: ipcb    时间: 2018-5-11 23:30

学习下自定义字符
作者: 李文健    时间: 2018-5-12 18:28
谢谢楼主
作者: 大眼儿炮    时间: 2018-5-13 15:59
学习一下..
作者: 1258305043    时间: 2018-5-13 17:44
常见错误
作者: STC89C51    时间: 2018-5-13 21:19
51黑有你更精彩!
作者: Clealoveee    时间: 2018-5-13 21:58
支持楼主的分享
作者: 564    时间: 2018-5-16 11:55
新手学习中,感谢楼主
作者: free594    时间: 2018-5-16 13:14
初学,想了解下
作者: 小小白0329    时间: 2018-5-16 15:37
很不错,谢谢
作者: HuaMu    时间: 2018-5-16 16:14
很给力
作者: jmsmall    时间: 2018-5-16 16:34
谢谢楼主分享资料
作者: huhu867175980    时间: 2018-5-16 19:22
厉害 膜大佬
作者: s686941    时间: 2018-5-17 19:52
很好理解不错
作者: lemaden520    时间: 2018-5-20 09:54
感谢分享,不错了
作者: 蒋莉丶    时间: 2018-5-20 19:36
谢谢

作者: fds251    时间: 2018-5-24 21:53
看不懂啊
作者: 老二不怕黑    时间: 2018-5-24 23:29
点个赞,以后用得着
作者: 维维哩    时间: 2018-6-3 09:11
讲的很清楚6666
作者: csy521100    时间: 2018-6-3 11:18

我初学,想了解下
作者: brave_ruan    时间: 2018-6-3 12:29
总结的不错
作者: BigWheels    时间: 2018-6-3 22:10
前来学习
作者: liyongan_1985    时间: 2018-6-5 18:57
版主威武,好东西。
作者: yzcook    时间: 2018-6-6 15:05
看看  正好再使用这个模块
作者: luofeng    时间: 2018-6-6 16:31
小白,求大佬告知
作者: lixinren45    时间: 2018-6-6 19:52
感谢分享,学习中!~
作者: bilibili02    时间: 2018-6-6 22:05

谢谢楼主
作者: lc0663    时间: 2018-6-6 22:49
谢谢分享,学习学习
作者: 花柶芕    时间: 2018-6-8 10:35
大神,求代码
作者: lon7085    时间: 2018-6-8 13:10
谢谢楼主资料分享
作者: 蚩梦00    时间: 2018-6-9 21:42
谢谢分享
作者: 123456789dss    时间: 2018-6-10 11:06
很通俗易懂
作者: 新手小苏    时间: 2018-6-10 11:53
学习学习
作者: yuki_ring    时间: 2018-6-11 08:30
学习,谢谢分享!
作者: uaeng    时间: 2018-6-11 16:15
谢谢解惑!51黑有你更精彩!
作者: zhaoboo2006    时间: 2018-6-13 15:51
希望学习一下。
作者: 78336478    时间: 2018-6-13 18:39
想知道源码在哪里

作者: Mo_Sheng    时间: 2018-6-13 20:36
66666666666666
作者: laoying_rc    时间: 2018-6-14 17:40
正需要用这个。。谢谢楼主
作者: bulia    时间: 2018-6-14 18:05
有用!非常有用!想学习学习!
作者: 客源菜鸟    时间: 2018-6-14 21:53
感谢感谢
作者: 第一次    时间: 2018-6-15 19:34
正需要
作者: dengtianyun1997    时间: 2018-6-15 21:20
感谢楼主
作者: jingboxu    时间: 2018-6-16 09:35
谢谢分享,学习下

作者: 朱浩zh    时间: 2018-6-16 13:45
学习

作者: 空心呀    时间: 2018-6-17 20:38
一下子就明白了,接下来就是实际操作了

作者: 落叶无情    时间: 2018-6-17 21:24
非常好,感谢楼主!!
作者: -.-    时间: 2018-6-18 14:35
支持楼主
作者: 破晓之光    时间: 2018-6-18 17:14
学习学习

作者: 1351142686    时间: 2018-6-18 21:49
感谢大神,说的很明白易懂
作者: Edwina    时间: 2018-6-20 10:03
求详解
作者: wdfabc    时间: 2018-6-21 17:23
赞一个666加油
作者: wdfabc    时间: 2018-6-21 17:23

谢谢楼主分享资料
作者: oled12345    时间: 2018-6-23 09:22
加油  厉害了
作者: dingqinhong    时间: 2018-6-24 15:22
感谢楼主分享
作者: 909427730    时间: 2018-6-24 17:44
特别感谢,特别感谢
作者: mengbanaxi    时间: 2018-6-24 21:18
感谢分享
作者: 维超    时间: 2018-6-25 00:19
楼主的分享很棒。
作者: 简——亦    时间: 2018-6-25 08:30
继续发帖了
作者: 飘飘飘    时间: 2018-6-27 09:18
学一学
作者: HUSTLE    时间: 2018-6-29 14:39
初学,了解下
作者: dabus    时间: 2018-6-30 22:41
写得不错 。通俗易懂
作者: qwero    时间: 2018-7-2 20:01
学习学习
作者: han0895    时间: 2018-7-3 10:34
了解下 过来看看
作者: 狗熊不爱吃玉米    时间: 2018-7-8 16:01
写的非常好,非常感谢

作者: mhxbyl    时间: 2018-7-9 00:26
求教,看影藏内容
作者: SKU    时间: 2018-7-9 11:49
很有用的帖子,这样变得很容易理解了
作者: ivanzeng    时间: 2018-7-9 14:10
学习中
作者: 水星无泪    时间: 2018-7-9 21:25
多谢楼主分享
作者: 123@阿斯顿    时间: 2018-7-9 22:21
赞一个!给力
作者: 123@阿斯顿    时间: 2018-7-9 22:22
想学习下
作者: 1107230861    时间: 2018-7-10 09:43
这就很厉害了。学习学习
作者: tianlai8624    时间: 2018-7-10 18:01
我初学,想了解下
作者: LAW1100    时间: 2018-7-10 19:32
初学者了解下
作者: LAW1100    时间: 2018-7-10 19:33
初学者,了解下




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1