第一个while(1),这是一个无条件循环,因为条件永远为真,即永远循环下去,就是无条件循环了,这是单片机主程序必须的主循环结构。而循环执行的程序是下面{ }内的所有程序。这个程序的主循环有3条语句,i=2000;是给i赋初值,led1=1;是点亮发光二极管,而while(i--);是一个小循环语句,用来延时的,注意与while(1)不同,后面它是有分号的,还是有条件的,条件是i--为真,但每循环一次,i 是减一的,这样,由初值i=20000,减了20000次以后,i=0了,就不满足条件了,结束循环了。这样大循环结束,再重复主循环,即回到i=2000;重新开始。
第一个while(1),这是一个无条件循环,因为条件永远为真,即永远循环下去,就是无条件循环了,这是单片机主程序必须的主循环结构。而循环执行的程序是下面{
}内的所有程序。
虽然不是很懂C语言,不过我知道 。在清华大学出版的C程序设计中是这样所的:While(表达式)语句中, 当表达式为非0则执行语句中的内嵌语句。while(1)是个死循环,会不停的循环,我知道的就是可以用break来跳出循环。你的代码中whlie(i--) 你说了i--为真,就是非0,并且你的Whlie(i--);后有个分号。就说明下面的”i=20000;led1=1,while(i--);“是第一个While(1)中循环的语句,所以会执行的。希望对你又帮助
while语句是一个循环语句,当其值(括号内的值)为真时执行循环体。while(1)是死循环,而while(i--)是内,i值不断在进行自减运算,故当i==0时,循环结束,跳出循环。
while(i--);
这个后面有分号的,说明是执行一个空循环。
这儿的意思表示意先延迟一下吧。
然后接着做下面的i=2000;这些语句。