最佳答案
你那个编码数码管的数值可能有问题,写出来全是乱码。
(这是我写的,你可以做个参考):
#include
sbit wela=P2^7;
sbit dula=P2^6;
#define uchar unsigned char
#define uint unsigned int
void delay();//声明延时函数
void main()
{
uchar table[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
,0x77};
while(1)
{
wela=1;//以后皆是重复的段位输入
P0=0xfe;
wela=0;
dula=1;
P0=table[2];
dula=0;
delay();
dula=0xff;//消隐
wela=1;
P0=0xfd;
wela=0;
dula=1;
P0=table[0];
dula=0;
delay();
dula=0xff;
wela=1;
P0=0xfb;
wela=0;
dula=1;
P0=table[1];
dula=0;
delay();
dula=0xff;
wela=1;
P0=0xf7;
wela=0;
dula=1;
P0=table[7];
dula=0;
delay();
dula=0xff;
}
}
void delay()//延时函数体
{
uint m=100;//时间尽可能短,达到数码管的动态显示效果
while(m--);
}
最佳答案由网友 仁者ZXX 提供