lcd1602显示汉字
时间: 2023-09-13 22:07:50 浏览: 195
lcd1602汉字显示
4星 · 用户满意度95%
要在LCD1602上显示汉字,需要使用汉字点阵表和相关的代码进行编程。以下是一个示例程序,可以在Arduino上使用:
```
#include <LiquidCrystal.h>
#include <avr/pgmspace.h>
// 定义LCD1602的引脚
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// 汉字点阵表
const unsigned char Hanzi[] PROGMEM = {
// 一
0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x00,
// 二
0x00, 0x00, 0x1F, 0x00, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00,
};
void setup() {
// 初始化LCD1602
lcd.begin(16, 2);
lcd.clear();
}
void loop() {
// 在第一行第一列显示汉字“一”
lcd.createChar(0, (uint8_t*)pgm_read_word(&Hanzi[0]));
lcd.setCursor(0, 0);
lcd.write(byte(0));
// 在第一行第八列显示汉字“二”
lcd.createChar(1, (uint8_t*)pgm_read_word(&Hanzi[32]));
lcd.setCursor(7, 0);
lcd.write(byte(1));
delay(1000);
}
```
在上面的示例程序中,我们首先定义了汉字点阵表,其中包括了两个汉字“一”和“二”的点阵数据。然后在`setup()`函数中初始化LCD1602,`loop()`函数中使用`lcd.createChar()`函数创建两个自定义字符,并在LCD上分别显示汉字“一”和“二”。注意,`pgm_read_word()`函数用于读取程序存储器中的数据,因为汉字点阵表是存储在程序存储器中的。最后,使用`delay()`函数控制每个汉字的显示时间。
阅读全文