void main(void)
{
uchar i,discode,k;
i=0;
while(1)
{
if(++i> 2)i=0;
switch(i)
{
case 0 :
first=1,second=0,third=0,k=1;
break;
case 1 :
first=0,second=1,third=0,k=2;
break;
case 2:
first=0,second=0,third=1,k=3;
break;
default : break;
}
discode=disTab[k];//disTab[]为显示段码表,未贴出,测试正确
P2=discode;
WDI=!WDI;
Delay1ms(10);
}
}
现在出现的问题是虽然程序中使用了动态刷新LED,但是实际却只能显示最高位,百思不得其解,望大虾指点迷津
void main(void)
{
uchar i,discode,k=0;
i=0;
while(1)
{
discode=distab[++k];//distab[]为显示段码表,未贴出,测试正确
if(i++> 2) i=k=0;
else{
switch(i)
{
case 0 :
{first=1;second=0;third=0;}
break;
case 1 :
{first=0;second=1;third=0;}
break;
case 2:
{first=0;second=0;third=1;}
break;
default : break;
}
delay1ms(10);
p2=discode;
wdi=!wdi;
}
}
}