你怎么不用中断来写呢。用delay来写也行,但是运行效率不高,你别“P1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;”这样赋值,你用
main()
{
char i=0;
delay()
{
//这部分你自己写了
}
while(1)
{
delay();
switch(i)
{
case 0:
P1=0xc0;
i++;
break;
case 1:
//你自己仿照一下吧,这里
i++;
break;
//这里 ,你自己仿照一下吧,一直到 case 7:
case 8:
P1=0x90;
i=0;
break;
default:
break;
}
}
}
这里只给了你初步入门的思路,正是写程序别这么干,delay()能不用别用,这东西会让你的CPU堵塞,使得其利用率大大降低,的如果代码大了,可能会让你的CPU运行起来很卡。另外你程序里出现的是P1,但你的题目描述是P2,如果真是P2口,那么我给你的程序中P1要改为P2,还有就是还不知你的硬件接的对不,要注意一点,51单片机是弱上拉的。
当然错了,delay函数申明时是没有参数的,你调用是加了参数:delay(10000);
……
while(1) {
for (k = 0; k < 10; k++) {
P1 = led[k];
delay(10000);
}
}
}