注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
hujunjie的个人空间 https://home.eeworld.com.cn/space-uid-135723.html [收藏] [复制] [分享] [RSS]
日志

1602自定义字符显示 使用参考说明

已有 5637 次阅读2009-8-3 13:03 |

应该有很多多单片机感兴趣的人也许还不会1602显示汉字的方法,其实这个并没有很大意义,但是有时候却是十分重要的,所以我个人认为如果有其他可以替代1602显示的还是使用其他比较好,除非1602可以轻松胜任;
那么在此我把1602的中文显示方法在下面讲一件吧:
 
  我们知道LCD1602是5X8点阵,分二行,每行十六个显示单元。因为点数少,其显示汉字的效果并不好,单个显示单元只能显示一些简单的汉字。但是其字形并不好看。
    查看LCD1602的CGROM字符代码表,可以发现 从00000000B~00000111B(00H~07H)地址的内容是没有定义的,它是留给用户自己定义的,用户可以通过先定义LCD1602的CGRAM中的内容,然后就可以同调用CGROM字符一样来调用自定义好的字符
那么如何设定CGRAM中的内容呢?首先我们要把所要编写的字符对应于5X8点阵的“字模”提取出来,我们可以通过相关的软件来提取,也可以手工提取。说白了也就是将点阵的某一行中有显示的点用1表示,无显示的点用0表示,以此形成该行对应的字模数据。
    设定CGRAM的内容,要一行一行的设定,每一行对应一个CGRAM,5X8点阵,每行5点,共8行,因此要将8行的字模数据都写入CGRAM。写好后,就可像调用CGROM字符一样来来调用它了。
    定义一行的内容,分两步:
     1. 设定行地址(CGRAM地址):
        用到的命令如下:
RS  R/W DB7  DB6  DB5  DB4  DB3  DB2  DB1  DB0 
0       0     0     1                      DATA 
其中:DB5DB4DB3为字符号,也就是你将来要显示该字符时要用到的字符地址。//所以地址可定要加上0X40;
      DB2DB1DB0为行号。
      2. 设定CGRAM数据(内容)指令码如下:
RS  R/W  DB7  DB6  DB5  DB4  DB3  DB2 DB1  DB0
1     0                                     DATA
其中:DB4DB3DB2DB1DB0对应于每行5点的字模数据。
       DB7DB6DB5可为任何数据,一般取“000”。
     
有了这些认识其实就可以尝试写写看,如果还有什么困难的话给我留言,需要程序的话告诉我邮箱直接发给你们,在网上有很多这样的程序,有写的很好的,但是不好的也有,但是我相信对于百度搜索出来的程序你们看起来将会十分困难,我这边的程序是自己编写的,比较简洁,应为目的只要能显示自定义字符,其他的我都没写上,写程序么 本来就是这样,需要的写,不需要的就不要写,浪费时间;
发表评论 评论 (2 个评论)
回复 372020552 2011-11-25 18:13
谢谢楼主               
回复 372020552 2011-11-25 18:23
这个写的时候0x40会不会自动加

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章