利用51单片机编写数码管显示'HELLO',再显示21061
时间: 2023-06-13 08:03:14 浏览: 78
以下是51单片机的代码:
```c
#include <reg52.h> // 51单片机头文件
unsigned char code table[] = { // 数码管字形表
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f
};
void delay(unsigned int i) { // 延时函数
unsigned int j;
while (i--)
for (j = 0; j < 125; j++);
}
void main() {
unsigned char i;
unsigned char str1[] = "HELLO"; // 显示的字符
unsigned char str2[] = "21061";
while (1) { // 循环显示
for (i = 0; i < 5; i++) { // 显示HELLO
P0 = table[str1[i] - 'A'];
P2 = 0x01 << i;
delay(100);
}
for (i = 0; i < 5; i++) { // 显示21061
P0 = table[str2[i] - '0'];
P2 = 0x10 >> i;
delay(100);
}
}
}
```
在以上代码中,我们定义了一个数码管字形表 `table[]`,包含了从0到9和A到F的字形。然后我们编写了一个延时函数 `delay()`,用于控制数码管的显示时间。接下来,在主函数中,我们定义了两个字符串 `str1` 和 `str2`,分别用于显示HELLO和21061。在循环中,我们首先显示HELLO,通过将 `P0` 端口连接到数码管的段选信号, `P2` 端口连接到数码管的位选信号,来控制数码管的显示。然后延时一段时间后,再显示21061,同理控制数码管的显示。循环不断重复,实现了数码管的循环显示。