LCD1602显示中文汉字.docx
- 文档编号:4906004
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:23
- 大小:17.71KB
LCD1602显示中文汉字.docx
《LCD1602显示中文汉字.docx》由会员分享,可在线阅读,更多相关《LCD1602显示中文汉字.docx(23页珍藏版)》请在冰豆网上搜索。
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开始显示,而0x000x0f都是没有用的,其实
这个正式为我们自定义显示字符准备的。
当你把上面的代码输入到CGRAM
中,LCD1602机会把汉字或字符赋予地址,这个地址是从0x00开始,因为
最多只能8个字符,所以当在CGRAM里面输入8个字符代码时,这8个字
符的代码的数据地址就是0x00开始到0x07。
所以当你要在LCD1602上显示自定义字符时,只需要把这个地址用数据输
入就OK。
Write_date(0x000x07);
也就是说现在你要显示自定义字符和你显示常用字符一样的做法了,先写
地址,然后写数据
自定义字符的数据就是0x000x07。
也就是你自定义的8个字符。
这里用Proteus仿真软件演示
附程序
编写时间:
2011-11-25
功能:
LCD显示自定义字符、汉字
#includereg52.h
#defineucharunsignedchar
#defineuintunsignedint
sbitlcdrs=P2;
sbitlcdrw=P2;
sbitlcden=P2;
ucharcodetable[]={
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//坦克
};
ucharcodetable1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};//自定义字
符数据地址
ucharcodetable2[]=QQ:
598852247;
voiddelay(ucharz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=122;y>0;y--);
}
voidwrite_cmd(ucharcmd)
{
lcdrs=0;
lcdrw=0;//选择指令寄存器
lcden=1;
P0=cmd;//写了命令
delay(5);
lcden=0;//使能拉低
lcden=1;
}
voidwrite_date(uchardate)
{
lcdrs=1;
lcdrw=0;//选择数据寄存器
lcden=1;
P0=date;//写了命令
delay(5);
lcden=0;//使能拉低
lcden=1;
}
voidinit_lcd1602()
{
write_cmd(0x01);//清屏
write_cmd(0x38);//功能设置
write_cmd(0x0c);//显示设置
write_cmd(0x06);//输入方式从左到右
delay
(1);
}
voidmain()
{
uchari;
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);
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD1602 显示 中文 汉字
![提示](https://static.bdocx.com/images/bang_tan.gif)