標(biāo)題: 在51hei單片機(jī)開(kāi)發(fā)板上寫(xiě)一個(gè)最簡(jiǎn)單的亮燈程序遇到問(wèn)題 [打印本頁(yè)]

作者: a330    時(shí)間: 2013-1-4 19:49
標(biāo)題: 在51hei單片機(jī)開(kāi)發(fā)板上寫(xiě)一個(gè)最簡(jiǎn)單的亮燈程序遇到問(wèn)題

#include<reg52.h>
sbit d1=P1^4;
sbit d2=P0^7;
void main()
{
while(1);
{
d1=0;
d2=0;
}
}
這個(gè)程序可以編譯通過(guò)為啥燒寫(xiě)到板上不亮啊
while循環(huán)語(yǔ)句用錯(cuò)了么

幫我分析一下吧

while(1)是死循環(huán)不,從哪開(kāi)始循環(huán),到哪結(jié)束啊
我把while去掉就亮了

作者: admin    時(shí)間: 2013-1-4 19:55

while(1); 后面的分號(hào)應(yīng)該去掉,

 

while  語(yǔ)句的意思很不難理解,在英語(yǔ)中它的意思是“當(dāng)…的時(shí)候…”,在這里我們可 以理解為“當(dāng)條件為真的時(shí)候就執(zhí)行后面的語(yǔ)句”,它的語(yǔ)法如下:

while  (條件表達(dá)式)  語(yǔ)句;

 

while(1) 條件表達(dá)式是1 所以這個(gè)循環(huán)會(huì)永遠(yuǎn)執(zhí)行,但是循環(huán)體在哪里呢?簡(jiǎn)單的說(shuō)就是while(1) 括號(hào)后面的第一條語(yǔ)句,或者是while(1)  后面的{}語(yǔ)句塊的的內(nèi)容,當(dāng)你在while(1) 后面跟一個(gè);分號(hào),那么循環(huán)體就是這個(gè)分號(hào),也就是這條空語(yǔ)句會(huì)一直不停的執(zhí)行,所以程序就無(wú)法往下面繼續(xù)了,燈也不會(huì)亮.我建議你去看看這課 :c51循環(huán)語(yǔ)句http://www.torrancerestoration.com/mcuteach/136.html


作者: huyan1230    時(shí)間: 2013-1-8 12:45
while(1); 后面的分號(hào)應(yīng)該去掉,




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1