LCD1602显示中文汉字 lcd1602中文资料

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 codetable1[]={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);

lc————den=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中文资料

  

爱华网本文地址 » http://www.413yy.cn/a/25101016/312355.html

更多阅读

SecureCRT中文乱码解决方法 securecrt如何显示中文

SecureCRT中文乱码解决方法——简介SecureCRT是一个商业终端连接工具。默认设置下,通过SecureCRT连接SSH服务器可能出现中文乱码的情况。这是由于SecureCRT字符编码与服务器的字符编码不一致造成的。 SecureCRT中文乱码解决方法—

Linux中文显示乱码?如何设置centos显示中文 centos7 中文乱码

Linux中文显示乱码?如何设置centos显示中文——简介 怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码。出现这个情况一般是由于没有安装中文语言包,或者设置的

中文广播剧CV--薄荷 资料 l7812cv中文资料

昵称:植物、薄荷叔叔、薄荷蝈蝈、BH身高:186cm体重:最近138斤 ←2010.05.13   生日:1977.09.09   星座:处女座   家乡:山东烟台   现居地:北京   所属:决意同人配音社团   喜欢的食物:水饺   喜欢的歌手:王菲   喜欢的书籍:科

时钟芯片DS1302中文资料 ds1302中文资料下载

首页 在线计算 EDA技术 电路图库 嵌入式 经验心得 电子基础 电子制作 国外资源 技术文章 专利技术 下载频道电子基础 > 常用芯片时钟芯片DS1302中文资料概述DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和3

mc34063中文资料应用原理 mc34063

MC34063A(MC33063)集成电路芯片器件简介该器件本身包含了DC/DC变换器所需要的主要功能的单片控制电路且价格便宜。它由具有温度自动补偿功能的基准电压发生器、比较器、占空比可控的振荡器,R—S触发器和大电流输出开关电路等组成。该器

声明:《LCD1602显示中文汉字 lcd1602中文资料》为网友憨厚的小么熊分享!如侵犯到您的合法权益请联系我们删除