这个C程序怎么了?

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:07:45
请高手指点一下,下面这个程序为什么运行不了?(我原意是想让LED按跑马灯来工作,可为什么不行呢?)

#include <at89x51.h>

void main(void)
{
int arr[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xfe,0xfc,
0xf8,0xf0,0xe0,0xc0,0x80,0x0,0xe7,0xdb,0xbd,0x7e,0xff};
unsigned int m;
unsigned int n;
do
{
for (n=31;n==0;n--);
{
for (m=0;m<10;m++);
P1 = arr[n];
}

}
while(1);

}

for (n=31;n==0;n--);

应该改为

for (n=31;n>=0;n--);

for (n=31;n==0;n--);有问题
如果n==0,那么循环不能执行,因为n==31不等于0,如果要执行应该改为for(n==31;n>=0;n--);

楼主再好好学学for语句:for(初始条件;判断条件;条件变化)

另外while(1)是死循环,最好加个Sleep(100);之类的,否则系统会崩溃