在数码管上显示两位数30,并用俩独立按键控制加一减一的代码
时间: 2024-10-10 12:03:59 浏览: 46
在Arduino或类似的微控制器平台上,通常会使用7段数码管和两个按键来实现一个简单的两位数加减计算器。这里是一个基础的示例代码,假设你已经连接了数码管、两个按键(A和B分别对应增加和减少操作)以及必要的硬件库:
```cpp
#include <LiquidCrystal.h> // 引入LCD库
// 定义数码管和按键的别名
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD的数字接口地址
int increaseButton = A; // 加一按钮
int decreaseButton = B; // 减一按钮
void setup() {
lcd.begin(16, 2); // 初始化LCD,16行2列
pinMode(increaseButton, INPUT_PULLUP); // 设置按键为上拉模式
pinMode(decreaseButton, INPUT_PULLUP);
}
void loop() {
int number = 30; // 初始显示数字30
char digit[3]; // 用于存储每一位的数字字符
// 将十位和个位分开显示
digit[0] = (number / 10) + '0';
digit[1] = (number % 10) + '0';
lcd.setCursor(0, 0); // 清除屏幕
lcd.print(digit[0]); // 显示十位
lcd.setCursor(0, 1);
lcd.print(digit[1]); // 显示个位
if (digitalRead(decreaseButton) == LOW && pressedOnce(decreaseButton)) { // 按下减一键
number--;
// 数字溢出处理,如从9到0
if (digit[1] == '9') {
digit[1] = '0';
digit[0]--;
} else {
digit[1]--;
}
}
if (digitalRead(increaseButton) == LOW && pressedOnce(increaseButton)) { // 按下加一键
number++;
// 同样处理溢出
if (digit[0] == '9') {
digit[0] = '0';
} else {
digit[0]++;
}
}
// 更新数字
lcd.setCursor(0, 0);
lcd.print(digit[0]);
lcd.setCursor(0, 1);
lcd.print(digit[1]);
delay(100); // 稍作延时
}
boolean pressedOnce(int pin) {
static boolean wasPressed = false;
if (!wasPressed && digitalRead(pin) == LOW) {
wasPressed = true;
return true;
} else {
wasPressed = false;
return false;
}
}
```
这个代码片段展示了如何初始化数码管和按键,读取按键输入并更新显示。请注意,这只是一个基本示例,实际应用中可能需要添加错误检查和其他细节。
阅读全文