標(biāo)題: 這個(gè)程序 為什么點(diǎn)不亮led [打印本頁]

作者: kinin    時(shí)間: 2010-10-24 18:07
標(biāo)題: 這個(gè)程序 為什么點(diǎn)不亮led

把這個(gè)程序生成hex文件后  燒入51hei-5開發(fā)板 無法點(diǎn)亮led 是什么原因啊?

#include<reg51.h>
sbit b=P1^4;
sbit D1=P0^1;
void main()
{
   b=0;
   D1=0;   
}

[此貼子已經(jīng)被作者于2010-10-24 18:08:43編輯過]

作者: admin    時(shí)間: 2010-10-24 18:11

因?yàn)橹鞒绦蛭膊?缺少死循環(huán) while(1){ ;} 

 

你把這句加到D1=0;   的后面就可以了,

原因:

 這個(gè)死循環(huán)應(yīng)放在主程序的末尾,表示程序處理完后一直等待下去。直到有任何中斷產(chǎn)生,程序會(huì)跳到中斷程序執(zhí)行。其他時(shí)間都在等待中斷的觸發(fā)。單片機(jī)是順序執(zhí)行指令的,它的所有操作都要靠指令來完成。正常狀態(tài)是要等待中斷的產(chǎn)生,然后轉(zhuǎn)到中斷中執(zhí)行。在等待的時(shí)候單片機(jī)是不能停止的,所以要執(zhí)行一個(gè)空的循環(huán)語句。如果去掉,程序運(yùn)行完就停了,而在真正的應(yīng)用中是不希望發(fā)生這樣的情況的。


作者: windwithgone    時(shí)間: 2012-3-28 23:11
當(dāng)然也可以放在前面,不一定要放在尾部




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