如何從單片機(jī)初學(xué)者邁向單片機(jī)工程師

2013-09-05 11:39 來源:電子信息網(wǎng) 作者:和靜

從點亮LED(發(fā)光二極管)開始

在眾多的單片機(jī)學(xué)習(xí)資料中,最基礎(chǔ)的實驗無疑于點亮LED了,即控制單片機(jī)的I/O的電平的變化。

如同如下實例代碼一般

void main(void)

{

LedInit() ;

While(1)

{

LED = ON ;

DelayMs(500) ;

LED = OFF ;

DelayMs(500) ;

}

}

程序很簡單,從它的結(jié)構(gòu)可以看出,LED先點亮500MS,然后熄滅500MS,如此循環(huán)下去,形成的效果就是LED以1HZ的頻率進(jìn)行閃爍。下面分析程序有沒有什么問題。

看來看出,好像很正常的啊,能有什么問題呢?這個時候我們應(yīng)該換一個思路去想了。試想,整個程序除了控制LED = ON ; LED = OFF; 這兩條語句外,其余的時間,全消耗在了DelayMs(500)這兩個函數(shù)上。而在實際應(yīng)用系統(tǒng)中是沒有哪個系統(tǒng)只閃爍一只LED就其它什么事情都不做了的。因此,在這里我們要想辦法,把CPU解放出來,讓它不要白白浪費500MS的延時等待時間。寧可讓它一遍又一遍的掃描看有哪些任務(wù)需要執(zhí)行,也不要讓它停留在某個地方空轉(zhuǎn)消耗CPU時間。

1 2 3 > 
單片機(jī)

一周熱門