欢迎光临
我们一直在努力

基于Arduino的1602显示屏显示简单汉字

1、概述

LCD1602显示屏的每一格,就代表一格5*8的点阵。所以我们可以尝试使用点阵的取模方式来对1602显示屏的简易汉字显示。

对于模块不了解的,可以先看一下我们的模块教程[传送门],了解掌握模块使用方法后,再尝试本小实验。因为综合实验一般涉及多个模块,我们仅对全部使用我司产品的客户做技术支持,若只是部分使用我司产品的,我们只对我司产品部分是否有故障进行排查。

2、所需材料

1、UNO主控板:官方板 或者 国产板
2、辅助配件:杜邦线
3、传感器和模块:1602显示屏

3、接线

1602显示屏 UNO主控板
GND GND
VCC 5V
SDA A4(AREF旁的SDA)
SCL A5 (AREF旁的SCL)
1602显示屏 MEGA主控板
GND GND
VCC 5V
SDA D20(AREF旁的SDA)
SCL D21(AREF旁的SCL)

IIC版接线图

标准版接线图:
LCD RS pin to digital pin 12
LCD Enable pin to digital pin 11
LCD D4 pin to digital pin 5
LCD D5 pin to digital pin 4
LCD D6 pin to digital pin 3
LCD D7 pin to digital pin 2
LCD R/W pin to ground
10K电位器或者1OK电阻(测试下来,5K的电阻或者电位器显示最正常):
ends to +5V and ground
wiper to LCD VO pin (pin 3)

4、示例程序

#include   //程序调用了该库文件
#include   //程序调用了该库文件
LiquidCrystal_I2C lcd(0x27,16,2);  // 定义LCD的地址为0x27,16列2行
//////////////////////////////////////////////////////////////////
//显示字符
#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args)  write(args);
#else
#define printByte(args)  print(args,BYTE);
#endif
//////////////////////////////////////////////////////////////////
//要显示的汉字编码,定义为一个数组
uint8_t dong[8]= {0x04,0x1F,0x08,0x14,0x1F,0x04,0x15,0x0C,};//东
uint8_t nan[8]= {0x04,0x1F,0x04,0x1F,0x1B,0x15,0x1F,0x15,};//南
uint8_t xi[8]= {0x00,0x1F,0x0A,0x1F,0x1B,0x1B,0x11,0x1F,};//西
uint8_t bei[8]= {0x0A,0x0A,0x0A,0x1B,0x0A,0x0A,0x0A,0x1B,};//北
uint8_t jia[8]= {0x1F,0x15,0x1F,0x15,0x1F,0x04,0x04,0x04,};//甲
uint8_t yi[8]= {0x1F,0x01,0x02,0x04,0x08,0x10,0x11,0x0E,};//乙
uint8_t bing[8]= {0x1F,0x04,0x04,0x1F,0x15,0x1B,0x11,0x13,};//丙
uint8_t ding[8]= {0x1F,0x04,0x04,0x04,0x04,0x04,0x14,0x0C,};//丁
//////////////////////////////////////////////////////////////////
void setup(){
   lcd.init();     //初始化LCD
   lcd.backlight(); //打开背光
   //////////////////////////////////////////////////////////////////
//创建新字符,将每个数组映射为一个字符,分别命名为0,1,2,3,4......
   lcd.createChar(0, dong);
   lcd.createChar(1, nan);
   lcd.createChar(2, xi);
   lcd.createChar(3, bei);
   lcd.createChar(4, jia);
   lcd.createChar(5, yi);
   lcd.createChar(6, bing);
   lcd.createChar(7, ding);
//////////////////////////////////////////////////////////////////
  //定义字符光标位置
   lcd.setCursor(0,0);
   lcd.printByte(0);
   lcd.printByte(1);
   lcd.printByte(2);
   lcd.printByte(3);
   lcd.printByte(4);
   lcd.printByte(5);
   lcd.printByte(6);
   lcd.printByte(7);
//////////////////////////////////////////////////
   lcd.setCursor(0,1);//定义光标位置
   lcd.print("arduino365.com");//显示英文及标点
   }
void loop(){
}

如果手头没有I2C1602显示屏,排针版程序修改:

修改为

接好线后,板子上电,模块显示指定内容。按一下RESET键可以重新显示内容。

5、5*8点阵取模方法

使用的是88点阵的取模软件,没有58的取模软件
直接在5*8的范围内,进行点亮点阵LED。从而实现文字。

6、相关下载

1、软件已生成字模的汉字(直接复制字模到程序里替换即可)
2、库文件
3、字模软件

未经允许不得转载:Arduino-Maker » 基于Arduino的1602显示屏显示简单汉字

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育