大虾帮我看看这个C51程序
本小虾最近在用89C51制作一数字触发器,在做显示部分始终有问题存在,困扰多日,我把程序贴出来,大虾们帮我看看问题出在哪里
sbit WDI=P1^1;//max813LWDI输入
sbit first=P1^3;//三位LED显示的片选信号,高电平有效
sbit second=P1^4;
sbit third=p1^5;
//P2接LED数据线
void Delay1ms(uchar);//延时1ms函数
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,但是实际却只能显示最高位,百思不得其解,望大虾指点迷津
发表时间:2003年7月27日22:29:35