小子在西藏 2011-11-25编写

特别说明笔者是上面的作者,感谢那些原意分享知识的人。时隔5年我又看到了笔者当年写的东西,我想这期间还有许许多多的人

今天写在博客上,愿更多后来者可以学习。

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";

/******************************

ms延时函数

******************************/

void delay(uchar z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=122;y>0;y--);

}

/******************************

lcd1602写命令函数

******************************/

void write_cmd(uchar cmd)

{

lcdrs=0;

lcdrw=0;    //选择指令寄存器

lcden=1;

P0=cmd;     //写了命令

delay(5);

lcden=0;    //使能拉低

lcden=1;

}

/******************************

lcd1602写数据函数

******************************/

void write_date(uchar date)

{

lcdrs=1;

lcdrw=0;    //选择数据寄存器

lcden=1;

P0=date;     //写了命令

delay(5);

lcden=0;    //使能拉低

lcden=1;

}

/******************************

lcd1602初始化

******************************/

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显示中文汉字相关推荐

  1. OpenCV显示中文汉字,未使用CvxText和FreeType库

    OpenCV显示中文汉字,未使用CvxText和FreeType库 采用windows的GDI显示系统的TrueType字体,没有封装,就两个函数,分成了h和cpp文件,可以自己编辑文件名和函数名,亦 ...

  2. android 只能输入汉字,EditText限制输入的几种方式及只显示中文汉字的做法

    前段时间项目中有个需求是要求只能输入汉字,并且不能输入偏旁部首,于是总结了下EditText限制输入的几种方式,但是对于语音输入的还没找到好的解决方案: 通过设置EditText的inputType来 ...

  3. jetson nano 在opencv拉流的视频上显示中文汉字(含c++完整源码)

    目录 问题 解决方案 步骤一:生成中文图片 步骤二:中文图片蒙皮到视频帧,形成中文显示效果 问题 在jetson nano这样的嵌入式设备上,用opencv拉流,并在实时视频上面,显示汉字. 关于使用 ...

  4. 总结一下嵌入式OLED显示屏显示中文汉字的办法

    为什么80%的码农都做不了架构师?>>>    这个问题以为很简单,但最后花很多功夫才能完成,所以总结一下分享给大家. 解决思路 UTF-8->Unicode->GB23 ...

  5. 02.点阵显示中文汉字

    1.环境 官方给的内核文件(linux3.4)和根文件系统.linux2.6和配套根文件系统 不同的内核文件编译时用的交叉编译器不同,linux3.4用4.x的编译器,linux2.6用3.x的编译器 ...

  6. opencv学习笔记六十八:显示中文汉字

    opencv中putText只能显示英文,如果在某个程序中你想显示汉字,可在该项目上新建一个头文件项putText.h和一个putText.cpp即可. putText.h #ifndef PUTTE ...

  7. STM32F29显示中文汉字

    以下资料为网络搜集,发现很多都为"原创",无法判断作者了. 自己理解后整理,看官自己另行查找详源 . 也可以参考一下这文章 : STM32F429 之 LTDC汉字显示_ 开发效果 ...

  8. opencv 显示中文汉字(添加中文支持)

    文章目录 利用CvxText和FreeType库 编译安装FreeType库 CvxText 支持IplImage 支持Mat CvxText和FreeType库使用 重写putText函数 open ...

  9. OpenCV显示中文汉字,未使用CvxText和FreeType库,很强大!!

    采用windows的GDI显示系统的TrueType字体,没有封装,就两个函数,分成了h和cpp文件,可以自己编辑文件名和函数名,亦可以直接将cpp的代码复制到你需要的程序中.FReeType打包的w ...

  10. 物联网开发笔记(63)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:显示中文

    一.目的 这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程的第一步:显示中文. 二.环境 ESP32 + 3.2寸 ILI9341触 ...

最新文章

  1. 本周Github项目精选:高效CNN推理库、多款AlphaGo实现
  2. 一个关于重定向的问题研究,应该具有实用性
  3. 递归下降分析法(编译原理)
  4. 如何使用 Istio 进行多集群部署管理:单控制平面 Gateway 连接拓扑
  5. 前端学习(2346):uniapp环境搭建
  6. h5海报设计开源工具_5个用于教幼儿阅读的开源工具
  7. 华为P50造型没跑了,后摄造型有点吓人!
  8. 共享单车再涨价,真要骑不起了!
  9. 菜单栏底部线条切换效果
  10. WebApi接口访问异常问题。尝试创建“testController”类型的控制器时出错。请确保控制器具有无参数公共构造函数
  11. css canvas_混合canvas API和HTML / CSS模型
  12. pdf怎么删除其中一页 删除pdf页面的方法
  13. 自家主机建云服务器_用云主机还是自己建服务器好
  14. 如何检索国外的博士论文
  15. mysql线上问题排查思路及常用命令
  16. 作业1:小型考勤登记表
  17. 【史上最全】国内外常用精品API接口汇总
  18. 真机测试无法验证应用
  19. 无法识别的usb跟这台计算机,【实战成功】无法识别的USB设备:跟这台计算机连接的一个USB设备运行不正常,WINDOWS无法识别...
  20. Android应用防xposed注入,android hook 框架 xposed 如何实现注入

热门文章

  1. linux谷歌浏览器无法登陆,新版CentOS 7.1上的谷歌浏览器无法启动
  2. SSH、myBatis下载地址
  3. USB协议 - UVC标准协议规范(二)
  4. 《数字孪生体技术白皮书》重磅发布(附完整版下载)
  5. 软件产品测试报告模板
  6. svn分支合并到主干(Merge)
  7. Spyder汉化(python汉化)
  8. 万字干货,交互设计精髓105条设计原则(附中英PDF资料)
  9. 如何官网下载最新的谷歌chrome浏览器离线安装包
  10. Tableau Desktop安装说明