使用单片机p0和p2口作为输出,c51编程实现用单片机控制五个led数码管固定显示 HELLO

使用单片机p0和p2口作为输出,c51编程实现用单片机控制五个led数码管固定显示 HELLO 急需 摆脱大神

#include<reg51.h>     //包含单片机寄存器的头文件
//dp g f e d c b a
#define SMG_SEG_H 0x76;//01110110
#define SMG_SEG_E 0x79;//01111001
#define SMG_SEG_L 0x38;//00111000
#define SMG_SEG_O 0x3F;//00111111
//unsigned char code SMG_SEG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};; //共阳极
unsigned char code SMG_SEG[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//dp g f e d c b a
//unsigned char code SMG_COM[]={0x01,0x02,0x04,0x08,0x10}; //共阳极
unsigned char code SMG_COM[]={0xFE,0xFD,0xFB,0xF7,0xEF}; //共阴极

/****************************************
函数功能:延时一段时间
*****************************************/
void delay(void)          //两个 void 意思分别为无需返回值,没有参数传递
{
unsigned int i;         //定义无符号整数,最大取值范围 65535
for(i=0;i<100;i++)   //做 100 次空循环
;                  //什么也不做,等待一个机器周期
}
/*******************************************************
函数功能:主函数 (C 语言规定必须有也只能有 1 个主函数)
********************************************************/
void main(void)
{
while(1)       //无限循环
{
P2=0xFF;//关显示
P0=SMG_SEG_H;
P2=SMG_COM[0];
delay();

P2=0xFF;//关显示
P0=SMG_SEG_E;
P2=SMG_COM[1];
delay();

P2=0xFF;//关显示
P0=SMG_SEG_L;
P2=SMG_COM[2];
delay();

P2=0xFF;//关显示
P0=SMG_SEG_L;
P2=SMG_COM[3];
delay();

P2=0xFF;//关显示
P0=SMG_SEG_O;
P2=SMG_COM[4];
delay();

}
}

温馨提示:答案为网友推荐,仅供参考