当前位置:首页 > 技术学院 > 热搜器件
[导读]LCD1602显示中文汉字

 LCD1602相比大家都比较了解,但是我们一般只用来显示字符,数字。
最近在网上看许多人用LCD1602来显示汉字,觉得有趣
于是拜读了一些资料,教程,但感觉大部分相当晦涩难懂,本人认为既然是教程,就不必要相当的复杂,毕竟人家看完许久后还是不能得出实验结果~!!
接下我谈谈我得做法,保证你10分钟之内一样可以在LCD1602上显示你想显示的各种符号,汉字!!!
 
首先:我们要弄清楚一个概念,其实我们使用1602显示中文汉字,就是利用其内部的自定义字节空间,我们都知道LCD1602内部有一个64字节的自定义CGRAM,那么好,我们就是要利用自定义字节来达到显示汉字的效果.
我们知道一个字符占8个字节,所以在CGRAM能够存放8个字符。
也就是说,这个64字节的CGRAM是给我们提供写入数据的,
那么我们怎么把我们要的汉字写入CGRAM呢?
不要急,大家查看LCD1602的用户手册,里面提到当我们需要想CGRAM写入数据时,我们需要先写入CGRAM的地址,从手册上可知,CGRAM的地址为0x40.所以当我们要写入数据时,要先写入一条地址命令 write_com(0x040);
然后把你要写入的数据通过写数据命令写入  write_date( 你要写得数据);
 
做完以上步骤了,是不是LCD1602就会显示你输入的汉字呢?
不要急,以上你只是把你要显示汉字的代码存放在CGRAM里,就相当于其他常用字符一样固定在LCD里面了,如果你不把它读出来,LCD是不会显示的。。
 
当你把上面的步骤做完后,接下来要做的与你平常怎么使用LCD1602是一样的,只不过是LCD1602里面增加了一些你自定义的字符,汉字。
 
可能到这里,也许会有些疑问,既然自定义字符、汉字的代码需要我们自己输入,那么我该怎么编写这些代码,呵呵,不要着急,接下来就要用到下面这个取字模软件。。
 
相信有的朋友应该都用过这个软件。那么我们怎么来使用这个软件来获取代码呢?大家有没有注意到,我们的LCD1602是5*8点阵(可以数一数)。但是5*8不能提取代码,最少只能8*8,所以我们这里只用后前5列,前3列不用。。
新建图像 8*8.然后再图像里面点你要显示的字符,汉字,注意是在后5列中点,黑点表示显示,白点不显示,用鼠标左键可以切换,下面是我点得一个坦克~~
 
点好后,就可以产生代码了,这软件里面可以选择C51或汇编,这里选择C51。
下面的8个代码就是要产生这个字符的数据。。也就是要输入到自定义字符CGRAM里面的

 
好的,怎么把获取汉字代码,怎么把代码输入到CGRAM里面都知道了,
下面就是要把我们的自定义汉字、字符显示在LCD1602屏幕上了。。
我们知道常用字符是从0x20开始显示,而0x00—0x0f都是没有用的,其实这个正式为我们自定义显示字符准备的。当你把上面的代码输入到CGRAM中,LCD1602机会把汉字或字符赋予地址,这个地址是从0x00开始,因为最多只能8个字符,所以当在CGRAM里面输入8个字符代码时,这8个字符的代码的数据地址就是0x00开始到0x07。
所以当你要在LCD1602上显示自定义字符时,只需要把这个地址用数据输入就OK。
  Write_date(0x00—0x07);
也就是说现在你要显示自定义字符和你显示常用字符一样的做法了,先写地址,然后写数据
自定义字符的数据就是0x00—0x07。也就是你自定义的8个字符。
这里用 Proteus 仿真软件演示
 
 
附程序
 
编写时间:2011-11-25
功能:LCD显示自定义字符、汉字
#include"reg52.h"
 
#define uchar unsigned char
#define uint unsigned int
 
sbit lcdrs=P2^4;
sbit lcdrw=P2^5;
sbit lcden=P2^6;
 
uchar code table[]={
0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,//一
0x00,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,//二
0x00,0x1F,0x00,0x0E,0x00,0x1F,0x00,0x00,//三
0x02,0x04,0x0F,0x12,0x0F,0x0A,0x1F,0x02,//年
0x0F,0x09,0x0F,0x09,0x0F,0x09,0x09,0x11,//月
0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F,0x00,//日
0x00,0x00,0x00,0x0A,0x15,0x0A,0x04,0x00,//心型
0x00,0x04,0x15,0x0E,0x1F,0x0E,0x11,0x00//坦克
};
uchar code table1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};  //自定义字符数据地址
uchar code table2[]="QQ:598852247";
void delay(uchar z)
{
       uint x,y;
       for(x=z;x>0;x--)
              for(y=122;y>0;y--);     
}
void write_cmd(uchar cmd)
{
       lcdrs=0;
       lcdrw=0;    //选择指令寄存器
       lcden=1;
       P0=cmd;     //写了命令
       delay(5);
       lcden=0;    //使能拉低
       lcden=1;
}
void write_date(uchar date)
{
       lcdrs=1;
       lcdrw=0;    //选择数据寄存器
       lcden=1;
       P0=date;     //写了命令
       delay(5);
       lcden=0;    //使能拉低
       lcden=1;
}
void init_lcd1602()
{
       write_cmd(0x01);  //清屏
       write_cmd(0x38);  //功能设置
       write_cmd(0x0c);  //显示设置
       write_cmd(0x06);  //输入方式从左到右
       delay(1);
}
void main()
{
       uchar i;
       init_lcd1602();
       delay(1);
     
       while(1)
       {
              write_cmd(0x40);    //开始写入你要显示的自定义字符、汉字代码
              for(i=0;i<64;i++)
              {
                     write_date(table[i]);
                     delay(5);
              }
              write_cmd(0x80);    //从第一行第一列开始显示
              for(i=0;i<8;i++)     //显示自定义字符
              {
                     write_date(table1[i]); 
                     delay(5);
              }
              write_cmd(0xc0);   //显示QQ:598852247
              for(i=0;i<12;i++)
              {
                     write_date(table2[i]);
                     delay(5);
              }
       }
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

lcd1602液晶屏在很懂工业产品上都有应用,LCD1602能够能够同时显示32个字符,价格便宜,编程简单而且稳定可靠。lcd1602液晶屏是一种图形点阵显示器,显示原理简单易懂,都是液晶屏内部的液晶材料变化而显示不同的...

关键字: lcd1602 接线

  用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,下面介绍两种初始化方法:   1. 利用内部复位电路进行初始化   下面指令是在初始化过程中执行的。  

关键字: lcd1602

51单片机——LCD1602

关键字: 51单片机 lcd1602

一.接口LCD1602是很多单片机爱好者较早接触的字符型液晶显示器,它的主控芯片是HD44780或者其它兼容芯片。与此相仿的是LCD12864液晶显示器,它是一种图形点阵显示器,能显示的内容比LCD1602要丰富得多,除...

关键字: lcd1602 单片机 显示原理

程序要写出自己的风格********************************************************这是学习 msp430g2553 单片机时写的 1602 的程序****时间精确到us,...

关键字: lcd1602 msp430g2553

#include "lcd1602_driver.h"#include #include "typedef.h"#ifndef _LCD_1602_#define _LCD_160...

关键字: lcd1602 驱动程序 4线数据传输

/这个程序已经调试过了//下面调用实例////////////////////////////////////LCD1602读写头文件//四线驱动方式//////////////////////////////////#...

关键字: 51 lcd1602 四数据线驱动

平台:stm32f302, 屏幕: LCD16021 #ifndef __LCD1602_H__2 #define __LCD1602_H__3 #include "stm32f30x.h"4 vo...

关键字: lcd1602 驱动 stm32f302

给 STC89C51 安一个 LCD1602 液晶显示器。写一段程序,使得 STC89C51 有计时、显示功能。当给 STC89C51 一个连续的高电平时,单片机开始计时,同时在显示器上显示计时的秒数

关键字: lcd1602 stc89c51 液晶显示器

给 STC89C51 安一个 LCD1602 液晶显示器。写一段程序,使得 STC89C51 有计时、显示功能。当给 STC89C51 一个连续的高电平时,单片机开始计时,同时在显示器上显示计时的秒数

关键字: lcd1602 stc89c51 液晶显示器
关闭
关闭