單片機(jī) LED 燈閃爍程序
點(diǎn)亮 LED 小燈的程序我們第二課完成了,就是讓 LED = 0。熄滅小燈的程序也很簡(jiǎn)單,就是 LED = 1。點(diǎn)亮和熄滅都會(huì)了,那么如果我們?cè)诹梁蜏缰虚g加個(gè)延時(shí),反復(fù)不停的點(diǎn)亮和熄滅小燈,就成了閃爍了。
我們首先復(fù)習(xí)一下 Keil 寫(xiě)程序的過(guò)程,建立工程-->保存工程-->建立文件-->添加文件到工程-->編寫(xiě)程序-->編譯-->下載程序。
LED 閃爍程序?qū)τ谟?C 基礎(chǔ)的同學(xué)來(lái)說(shuō)很簡(jiǎn)單,那我先寫(xiě)出來(lái),大家可以先看下。沒(méi)有 C 語(yǔ)言基礎(chǔ)的同學(xué)也可以跟著抄一遍,下節(jié)課我會(huì)補(bǔ)充部分 C 語(yǔ)言基礎(chǔ)知識(shí),這樣你先抄一遍后,再跟著看 C 語(yǔ)言基礎(chǔ)知識(shí)的時(shí)候也比較容易理解透徹。
#includesbitLED=P0^0;sbitADDR0=P1^0;sbitADDR1=P1^1;sbitADDR2=P1^2;sbitADDR3=P1^3;sbitENLED=P1^4;voidmain(){//void即函數(shù)類(lèi)型//以下為聲明語(yǔ)句部分unsignedinti=0;//定義一個(gè)無(wú)符號(hào)整型變量i,并賦初值0//以下為執(zhí)行語(yǔ)句部分ENLED=0;//U3、U4兩片74HC138總使能ADDR3=1;//使能U3使之正常輸出ADDR2=1;//經(jīng)U3的Y6輸出開(kāi)啟三極管Q16ADDR1=1;ADDR0=0;while(1){LED=0;//點(diǎn)亮小燈for(i=0;i<30000;i++);//延時(shí)一段時(shí)間LED=1;//熄滅小燈for(i=0;i<30000;i++);//延時(shí)一段時(shí)間}}
大家把這個(gè)程序編譯一下,下載到單片機(jī)里,就會(huì)發(fā)現(xiàn) LED2 這個(gè)小燈會(huì)閃爍了。