LCD1602显示汉字

2016-07-022.4万
AI 快速预览详细 收起
本文介绍了如何在5*8点阵的LCD1602上显示汉字。通过自定义字符编码,将每个汉字映射为一个字符,然后使用`lcd.createChar()`函数创建这些字符。最后,通过`lcd.printByte()`函数将这些字符显示在LCD1602上。文中提供了具体的编码示例,如“上午下雨了”五个汉字的编码。通过这种方法,可以在LCD1602上显示多达8个汉字。
LCD16025*8点阵的,用8*8的点阵编码写汉字,前面空3个空格都是0,后面有黑点的就是1,空的是0
还做了一百多字的字库。软件做不出5*8的,只能自己动手做。
还有:LCD1602一次最多只能显示8个汉字,再多了就乱,只有8个自定义字符空间哦!

程序:关键是创建新字符。
  1. //LCD1602显示5*8点阵汉字程序,显示“上午下雨了”5个汉字
  2. #include <Wire.h>  //加载Wire通讯库
  3. #include <LiquidCrystal_I2C.h>  //加载液晶屏库
  4. LiquidCrystal_I2C lcd(0x27,16,2);  // 设 LCD的地址为0x27,16列2行
  5. //显示字符
  6. #if defined(Arduino) && ARDUINO >= 100
  7. #define printByte(args)  write(args);
  8. #else
  9. #define printByte(args)  print(args,BYTE);
  10. #endif
  11. //要显示的汉字编码,定义为一个数组
  12. uint8_t shang[8]= {0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x1F,};//上
  13. uint8_t wu[8]= {0x08,0x08,0x0E,0x14,0x04,0x1F,0x04,0x04,};//午
  14. uint8_t xia[8] = {0x1F,0x04,0x04,0x06,0x05,0x04,0x04,0x04,};//下
  15. uint8_t yu[8] = {0x1F,0x04,0x1F,0x15,0x1F,0x15,0x1F,0x15,};//雨
  16. uint8_t le[8] = {0x1F,0x01,0x02,0x04,0x04,0x04,0x04,0x0C,};//了
  17. void setup(){
  18.   lcd.init();     //初始化LCD
  19.   lcd.backlight(); //打开背光
  20.    
  21. //创建新字符,将每个数组映射为一个字符,分别命名为0,1,2,3,4
  22.   lcd.createChar(0, shang);
  23.   lcd.createChar(1, wu);
  24.   lcd.createChar(2, xia);
  25.   lcd.createChar(3, yu);
  26.   lcd.createChar(4, le);
  27. //将字符显示到光标所在位
  28.   lcd.setCursor(0,0);
  29.   lcd.printByte(0);
  30.   lcd.setCursor(1,0);
  31.   lcd.printByte(1);
  32.   lcd.setCursor(2,0);
  33.   lcd.printByte(2);
  34.   lcd.setCursor(3,0);
  35.   lcd.printByte(3);
  36.   lcd.setCursor(4,0);
  37.   lcd.printByte(4);
  38.   }
  39. void loop(){
  40. }
复制代码




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
vickywong
vickywong
就是转的我的。。。。。在Arduino中文社区里
http://www.arduino.cn/thread-21760-1-1.html
dsweiliang
dsweiliang
LCD限制真大啊
凌风清羽
凌风清羽
这是用在哪里的程序,求图解啊
qq815076543322
qq815076543322
作者
回复凌风清羽
我转的 我转的
virtualwiz
virtualwiz
2333肯定好看~求效果图
qq815076543322
qq815076543322
作者
回复virtualwiz
我转的 我转的
gada888
gada888
这是IIC LCD吧。而且这是那种带汉子字库的1602吗?
- 没有更多了 -