编写一个c程序实现在八位数码管上显示HELLOC51并循环右移
时间: 2023-11-27 07:54:44 浏览: 28
以下是使用51单片机编写的C语言程序,可以在八位数码管上显示HELLOC51并循环右移:
```c
#include <reg51.h>
unsigned char code table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void delay(unsigned int t)
{
unsigned int i, j;
for(i=0; i<t; i++)
for(j=0; j<125; j++);
}
void main()
{
unsigned char i = 0;
while(1)
{
P0 = 0x00;
P2 = table['H'-'A'];
delay(100);
P0 = 0x01;
P2 = table['E'-'A'];
delay(100);
P0 = 0x02;
P2 = table['L'-'A'];
delay(100);
P0 = 0x03;
P2 = table['L'-'A'];
delay(100);
P0 = 0x04;
P2 = table['O'-'A'];
delay(100);
P0 = 0x05;
P2 = table['C'-'A'];
delay(100);
P0 = 0x06;
P2 = table['5'-48];
delay(100);
P0 = 0x07;
P2 = table['1'-48];
delay(100);
for(i=0; i<7; i++)
{
P0 = 0x00;
P2 = table['C'-'A'];
delay(100);
P0 = 0x01;
P2 = table['5'-48];
delay(100);
P0 = 0x02;
P2 = table['1'-48];
delay(100);
P0 = 0x03;
P2 = table['H'-'A'];
delay(100);
P0 = 0x04;
P2 = table['E'-'A'];
delay(100);
P0 = 0x05;
P2 = table['L'-'A'];
delay(100);
P0 = 0x06;
P2 = table['L'-'A'];
delay(100);
P0 = 0x07;
P2 = table['O'-'A'];
delay(100);
}
}
}
```
程序首先定义了一个数字表格,用于将字母和数字转换为相应的数码管显示。然后定义了一个延迟函数,用于控制数码管的刷新速度。
在主函数中,先显示HELLOC51,然后进入循环,不断将显示内容向右移动,直到再次显示HELLOC51。