//cslg lcd key
#include <LiquidCrystal.h> // 引入LiquidCrystal库,用于LCD显示
#include <Keypad.h> // 引入Keypad库,用于键盘输入
/* Display (LCD显示屏设置) */
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); // 初始化LCD,参数为连接LCD的RS, E, D4, D5, D6, D7引脚
/* Keypad setup (键盘设置) */
const byte KEYPAD_ROWS = 4; // 键盘行数
const byte KEYPAD_COLS = 4; // 键盘列数
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2}; // 键盘行连接的引脚
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0}; // 键盘列连接的引脚
char keys[KEYPAD_ROWS][KEYPAD_COLS] = { // 键盘按键布局
{'1', '2', '3', '+'},
{'4', '5', '6', '-'},
{'7', '8', '9', '*'},
{'.', '0', '=', '/'}
};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS); // 初始化键盘
void setup() {
lcd.begin(16, 2); // 初始化LCD为16x2字符
lcd.print("Welcome To CSLG"); // 在LCD上显示欢迎信息
lcd.setCursor(0, 1); // 设置光标到第二行的开始位置
lcd.print(" "); // 清除第二行的内容
}
void loop() {
char key = keypad.getKey(); // 从键盘获取按键
if (key) {
// 如果检测到按键被按下
lcd.setCursor(0, 1); // 设置光标到第二行的开始位置
lcd.print(" "); // 清除第二行的内容,为显示新按键做准备
lcd.setCursor(0, 1); // 再次设置光标到第二行的开始位置
lcd.print(key); // 在LCD上显示被按下的按键
}
}