使用汉字显示自己组成员的姓名和班级信息,屏幕向左侧滚动后还原 至初始状态,可以用单行显示也可以用两行显示,需用满 1602 LCD 的 8 个自定 义字符。请用Arduino编写这段代码
时间: 2024-05-06 09:17:38 浏览: 158
以下是使用单行显示的代码:
```C++
#include <LiquidCrystal.h>
// 定义 LCD 引脚
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
// 定义自定义字符数组
byte customChar[8][8] = {
{0x1F, 0x11, 0x1F, 0x04, 0x1F, 0x11, 0x1F, 0x00}, // C
{0x1F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x00}, // S
{0x1F, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1F, 0x00}, // D
{0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1F, 0x00}, // N
{0x1F, 0x11, 0x15, 0x15, 0x11, 0x11, 0x1F, 0x00}, // J
{0x1F, 0x00, 0x0A, 0x15, 0x11, 0x11, 0x1F, 0x00}, // 1
{0x1F, 0x11, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00}, // 0
{0x00, 0x00, 0x00, 0x00, 0x1F, 0x11, 0x1F, 0x00} // 2
};
void setup() {
// 初始化 LCD
lcd.begin(16, 2);
// 加载自定义字符
for (int i = 0; i < 8; i++) {
lcd.createChar(i, customChar[i]);
}
}
void loop() {
// 显示组员信息
lcd.setCursor(0, 0);
lcd.write(byte(0)); // C
lcd.write(byte(1)); // S
lcd.write(byte(2)); // D
lcd.print(" ");
lcd.write(byte(3)); // N
lcd.write(byte(4)); // J
lcd.write(byte(5)); // 1
lcd.write(byte(6)); // 0
lcd.write(byte(7)); // 2
// 屏幕向左滚动
for (int i = 0; i < 16; i++) {
lcd.scrollDisplayLeft();
delay(200);
}
// 屏幕还原至初始状态
for (int i = 0; i < 16; i++) {
lcd.scrollDisplayRight();
delay(200);
}
}
```
以下是使用两行显示的代码:
```C++
#include <LiquidCrystal.h>
// 定义 LCD 引脚
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
// 定义自定义字符数组
byte customChar[8][8] = {
{0x1F, 0x11, 0x1F, 0x04, 0x1F, 0x11, 0x1F, 0x00}, // C
{0x1F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x00}, // S
{0x1F, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1F, 0x00}, // D
{0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1F, 0x00}, // N
{0x1F, 0x11, 0x15, 0x15, 0x11, 0x11, 0x1F, 0x00}, // J
{0x1F, 0x00, 0x0A, 0x15, 0x11, 0x11, 0x1F, 0x00}, // 1
{0x1F, 0x11, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00}, // 0
{0x00, 0x00, 0x00, 0x00, 0x1F, 0x11, 0x1F, 0x00} // 2
};
void setup() {
// 初始化 LCD
lcd.begin(16, 2);
// 加载自定义字符
for (int i = 0; i < 8; i++) {
lcd.createChar(i, customChar[i]);
}
}
void loop() {
// 显示组员信息
lcd.setCursor(0, 0);
lcd.write(byte(0)); // C
lcd.write(byte(1)); // S
lcd.write(byte(2)); // D
lcd.setCursor(0, 1);
lcd.write(byte(3)); // N
lcd.write(byte(4)); // J
lcd.write(byte(5)); // 1
lcd.write(byte(6)); // 0
lcd.write(byte(7)); // 2
// 屏幕向左滚动
for (int i = 0; i < 16; i++) {
lcd.scrollDisplayLeft();
delay(200);
}
// 屏幕还原至初始状态
for (int i = 0; i < 16; i++) {
lcd.scrollDisplayRight();
delay(200);
}
}
```
阅读全文