这是为什么呢?
51单片机吧
全部回复
仅看楼主
level 13
hyrule 楼主
LED的状态只能停在最开始的位置。
程序如下:
#include<reg51.h>
void Delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<125;j++)
{;}
}
main ()
{
unsigned char a[16]={0x7E,0xBE,0xDE,0xEE,0xF6,0xFA,0xFA,0xFC,0xFE,0x7D,0xBB,0xD7,0x6D,0x55,0xAA,0x00};
unsigned char b;
unsigned char n =0;
unsigned char butt;
while(1)
{
P1=a[b];
butt = P3;
butt = butt&0x80;
if(butt == 0x00){n++;}
else {n=n;}
switch(n)
{
case 0 : b=0;P1=a[b];break;
case 1 : b=1;P1=a[b];break;
case 2 : b=2;P1=a[b];break;
case 3 : b=3;P1=a[b];break;
case 4 : b=4;P1=a[b];break;
case 5 : b=5;P1=a[b];break;
case 6 : b=6;P1=a[b];break;
case 7 : b=7;P1=a[b];break;
case 8 : b=8;P1=a[b];break;
case 9 : b=9;P1=a[b];break;
case 10 : b=10;P1=a[b];break;
case 11 : b=11;P1=a[b];break;
case 12 : b=12;P1=a[b];break;
case 13 : b=13;P1=a[b];break;
case 14 : b=14;P1=a[b];break;
case 15 : b=15;P1=a[b];break;
case 16 : P1=a[b];b++;if(b>15)b=0;break;
}
while(1)
{;}
}
}
2014年02月04日 13点02分 1
level 11
你的b没有任何变化啊,
2014年02月04日 23点02分 2
1