51单片机用六位数码管循环显示hello和21061
时间: 2023-06-13 10:02:35 浏览: 42
可以通过以下代码实现:
```c
#include <reg51.h>
unsigned char code table[] = {
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F, // 9
};
void delay(unsigned int xms) // 延时函数
{
unsigned int i, j;
for (i = xms; i > 0; i--)
for (j = 112; j > 0; j--);
}
void main()
{
unsigned char i, j;
while (1)
{
for (i = 0; i < 5; i++) // 显示 "hello"
{
P0 = table[i];
for (j = 0; j < 100; j++) // 循环显示延时
{
P2 = 0x01 << j % 6; // 选中数码管
delay(1);
}
}
for (i = 2; i < 7; i++) // 显示 "21061"
{
P0 = table[i];
for (j = 0; j < 100; j++) // 循环显示延时
{
P2 = 0x01 << j % 6; // 选中数码管
delay(1);
}
}
}
}
```
这个代码中,首先定义了一个数码管显示字符的表,然后通过循环显示 "hello" 和 "21061"。每次显示一个字符,都通过延时和数码管的选择实现循环显示。