51单片机数码管0到9循环程序
时间: 2024-03-20 20:44:58 浏览: 14
以下是51单片机数码管0到9循环显示程序的示例代码:
```
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1 = P2^0; // 数码管段选端口定义
sbit D2 = P2^1;
sbit D3 = P2^2;
sbit D4 = P2^3;
sbit D5 = P2^4;
sbit D6 = P2^5;
sbit D7 = P2^6;
sbit D8 = P2^7;
uchar code table[] = {
0x3F, // 数码管0~9的显示码
0x06,
0x5B,
0x4F,
0x66,
0x6D,
0x7D,
0x07,
0x7F,
0x6F
};
void main()
{
uchar i;
while (1)
{
for (i = 0; i < 10; i++) // 数码管0~9循环显示
{
D1 = 1; D2 = 1; D3 = 1; D4 = 1;
D5 = 1; D6 = 1; D7 = 1; D8 = 0;
P0 = table[i];
Delay(1000);
}
}
}
void Delay(uint z)
{
uint x, y;
for (x = z; x > 0; x--)
{
for (y = 110; y > 0; y--);
}
}
```
在该程序中,先定义了数码管的段选端口,然后定义了一个显示码表,该表中存储了数码管0~9的显示码。在主函数中,使用一个无限循环来进行数码管的循环显示,循环中使用 for 语句来遍历显示码表,并将对应的显示码通过 P0 端口输出到数码管上,并通过 Delay 函数实现延时,使得数码管能够显示每个数字一段时间。