应该有很多多单片机感兴趣的人也许还不会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”。
有了这些认识其实就可以尝试写写看,如果还有什么困难的话给我留言,需要程序的话告诉我邮箱直接发给你们,在网上有很多这样的程序,有写的很好的,但是不好的也有,但是我相信对于百度搜索出来的程序你们看起来将会十分困难,我这边的程序是自己编写的,比较简洁,应为目的只要能显示自定义字符,其他的我都没写上,写程序么 本来就是这样,需要的写,不需要的就不要写,浪费时间;