用动态数码管原理设计显示:第一屏显示年级21-c-1,显示1S,灭屏1S;第二屏显示学号的后6位,显示1S,灭屏1S。如此重复显示。
时间: 2023-05-29 13:05:34 浏览: 115
PLC实现LED数码管动态扫描数据显示
由于需要显示两个不同的内容,我们需要使用两个七段数码管,并且需要使用一个单片机来控制显示内容和时间。
首先,我们需要定义每个数字在七段数码管中的编码,例如:
```c
unsigned char code[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
```
然后,我们可以在主函数中循环执行以下代码:
```c
while (1) {
// 显示年级
P0 = 0xFE; // 第一屏
P2 = code[2]; // 显示数字 2
delay(1000); // 延时 1 秒
P0 = 0xFD; // 第二屏
P2 = code[1]; // 显示数字 1
delay(1000); // 延时 1 秒
P0 = 0xFB; // 第三屏
P2 = code[11]; // 显示字母 c
delay(1000); // 延时 1 秒
P0 = 0xF7; // 第四屏
P2 = code[1]; // 显示数字 1
delay(1000); // 延时 1 秒
P0 = 0xEF; // 第五屏
P2 = code[1]; // 显示数字 1
delay(1000); // 延时 1 秒
P0 = 0xDF; // 第六屏
P2 = code[0]; // 显示数字 0
delay(1000); // 延时 1 秒
// 显示学号后6位
P0 = 0xBF; // 第一屏
P2 = code[6]; // 显示数字 6
delay(1000); // 延时 1 秒
P0 = 0x7F; // 第二屏
P2 = code[5]; // 显示数字 5
delay(1000); // 延时 1 秒
P0 = 0xBF; // 第三屏
P2 = code[4]; // 显示数字 4
delay(1000); // 延时 1 秒
P0 = 0x7F; // 第四屏
P2 = code[3]; // 显示数字 3
delay(1000); // 延时 1 秒
P0 = 0xBF; // 第五屏
P2 = code[2]; // 显示数字 2
delay(1000); // 延时 1 秒
P0 = 0x7F; // 第六屏
P2 = code[1]; // 显示数字 1
delay(1000); // 延时 1 秒
}
```
在上面的代码中,我们通过设置 P0 和 P2 的值来控制显示内容,然后使用 delay 函数来延时 1 秒。
具体的 P0 和 P2 的值可以根据硬件连接情况进行调整。
需要注意的是,由于单片机的时钟频率、delay 函数的实现方式等因素的影响,实际的延时时间可能会略有偏差,需要根据实际情况进行调整。
阅读全文