标题: 在51hei单片机开发板上写一个最简单的亮灯程序遇到问题 [打印本页]

作者: a330    时间: 2013-1-4 19:49
标题: 在51hei单片机开发板上写一个最简单的亮灯程序遇到问题

#include<reg52.h>
sbit d1=P1^4;
sbit d2=P0^7;
void main()
{
while(1);
{
d1=0;
d2=0;
}
}
这个程序可以编译通过为啥烧写到板上不亮啊
while循环语句用错了么

帮我分析一下吧

while(1)是死循环不,从哪开始循环,到哪结束啊
我把while去掉就亮了

作者: admin    时间: 2013-1-4 19:55

while(1); 后面的分号应该去掉,

 

while  语句的意思很不难理解,在英语中它的意思是“当…的时候…”,在这里我们可 以理解为“当条件为真的时候就执行后面的语句”,它的语法如下:

while  (条件表达式)  语句;

 

while(1) 条件表达式是1 所以这个循环会永远执行,但是循环体在哪里呢?简单的说就是while(1) 括号后面的第一条语句,或者是while(1)  后面的{}语句块的的内容,当你在while(1) 后面跟一个;分号,那么循环体就是这个分号,也就是这条空语句会一直不停的执行,所以程序就无法往下面继续了,灯也不会亮.我建议你去看看这课 :c51循环语句http://www.51hei.com/mcuteach/136.html


作者: huyan1230    时间: 2013-1-8 12:45
while(1); 后面的分号应该去掉,




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1