51单片机使用六位数码管循环显示hello和21061
时间: 2023-06-13 15:02:17 浏览: 97
以下是使用51单片机循环显示hello和21061的代码:
```c
#include <reg51.h>
unsigned char code hello[] = {0x38, 0x44, 0x44, 0x44, 0x38, 0x00}; // "hello"的编码
unsigned char code num[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; // 数字0~9的编码
unsigned char code data[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // 存放要显示的数据
void delay(unsigned int t) // 延时函数
{
unsigned int i, j;
for(i = 0; i < t; i++)
for(j = 0; j < 110; j++);
}
void main()
{
unsigned char i, j, k;
while(1)
{
for(i = 0; i < 6; i++) // 显示"hello"
{
for(j = 0; j < 6; j++)
data[j] = hello[j];
for(k = 0; k < 6; k++)
P0 = data[k], delay(5), P0 = 0x00;
}
for(i = 0; i < 6; i++) // 显示"21061"
{
for(j = 0; j < 6; j++)
data[j] = num[i];
for(k = 0; k < 6; k++)
P0 = data[k], delay(5), P0 = 0x00;
}
}
}
```
其中,`hello`是存放"hello"的编码数组,`num`是存放数字0~9的编码数组,`data`是存放要显示的数据的数组。`delay`函数是延时函数,用于控制数码管的亮灭时间。在`main`函数中,通过循环分别显示"hello"和"21061",并且循环不停止,实现循环显示的效果。