8只数码管滚动显示数字串
时间: 2023-10-25 13:07:32 浏览: 209
8只数码管滚动显示数字串.rar
4星 · 用户满意度95%
以下是使用Arduino实现的8位数码管滚动显示数字串的示例代码:
```
// 定义数字0~9在数码管中的显示码
const byte digits[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
// 定义8位数码管引脚
const int digitPins[8] = {2, 3, 4, 5, 6, 7, 8, 9};
void setup() {
// 设置数码管引脚为输出模式
for(int i = 0; i < 8; i++) {
pinMode(digitPins[i], OUTPUT);
}
}
void loop() {
// 定义要显示的数字串
const char* numStr = "12345678";
const int strLen = strlen(numStr);
// 循环滚动显示数字串
for(int i = 0; i < strLen + 8; i++) {
// 每次循环显示8位数字
for(int j = 0; j < 8; j++) {
// 计算当前要显示的数字的位置
int digitIndex = i + j - 8;
if(digitIndex >= 0 && digitIndex < strLen) {
// 显示数字
digitalWrite(digitPins[j], LOW);
byte digitCode = digits[numStr[digitIndex] - '0'];
shiftOut(11, 10, MSBFIRST, digitCode);
}
else {
// 显示空白
digitalWrite(digitPins[j], HIGH);
shiftOut(11, 10, MSBFIRST, 0x00);
}
// 控制数码管显示时间
delay(1);
digitalWrite(digitPins[j], LOW);
}
}
}
```
通过上述代码,我们可以实现在8位数码管上滚动显示数字串"12345678"。其中,我们使用了Arduino自带的shiftOut函数来控制数码管的显示,同时使用了delay函数来控制数码管的显示时间。
阅读全文