51单片机8位数码管显示循环
时间: 2023-08-16 07:39:40 浏览: 119
下面是基于51单片机的8位数码管循环显示代码:
```
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
// 数码管显示码表
uchar code table[] = {
0x3f, // 0
0x06, // 1
0x5b, // 2
0x4f, // 3
0x66, // 4
0x6d, // 5
0x7d, // 6
0x07, // 7
0x7f, // 8
0x6f // 9
};
// 数码管位选控制
sbit dula = P2^6;
sbit wela = P2^7;
void delay(uint x) {
uint i, j;
for (i = x; i > 0; i--) {
for (j = 110; j > 0; j--);
}
}
void main() {
uchar i = 0;
while (1) {
P0 = table[i];
dula = 0;
dula = 1;
delay(10);
wela = 0;
wela = 1;
i++;
if (i >= 10) {
i = 0; // 循环显示
}
}
}
```
该代码中使用了一个数码管显示码表,通过循环控制显示的数字,达到数码管循环显示的效果。其中,通过设置 `dula` 和 `wela` 两个引脚来控制数码管的位选和段选。同时,通过 `delay` 函数来实现延时,使得显示效果更佳稳定。
阅读全文