写一个c程序实现八位数码管循环显示HELLOC51
时间: 2023-11-28 12:48:04 浏览: 52
以下是使用51单片机的C代码,实现八位数码管循环显示“HELLOC51”:
```c
#include <reg52.h>
// 定义数码管段码值
unsigned char code SMG[]={
// 0~9
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
// A~F
0x77,0x7c,0x39,0x5e,0x79,0x71
};
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;
while(1)
{
for(i=0;i<8;i++) // 循环显示每个字符
{
P0=SMG[10]; // 显示"H"
P2=0xfe;
delay(1000);
P0=SMG[11]; // 显示"E"
P2=0xfd;
delay(1000);
P0=SMG[12]; // 显示"L"
P2=0xfb;
delay(1000);
P0=SMG[12]; // 显示"L"
P2=0xf7;
delay(1000);
P0=SMG[13]; // 显示"O"
P2=0xef;
delay(1000);
P0=SMG[14]; // 显示"C"
P2=0xdf;
delay(1000);
P0=SMG[1]; // 显示"5"
P2=0xbf;
delay(1000);
P0=SMG[10]; // 显示"H"
P2=0x7f;
delay(1000);
}
}
}
```
该程序使用了一个循环来依次显示“HELLOC51”中的每个字符,其中P0口用于控制数码管显示的段码值,P2口用于控制显示的位置。在每次循环中,程序通过P0和P2口的控制,将相应字符的段码值输出到数码管上,从而实现了循环显示“HELLOC51”的效果。