LED有兩種連接方式,一種是共陽(yáng)極連接,一種是共陰極連接。
共陽(yáng)極連接是指多個(gè)LED的陽(yáng)極連接在一起,接到電源正極,而各自的陰極接到單片機(jī)的輸出引腳。這樣,當(dāng)單片機(jī)輸出低電平時(shí),相應(yīng)的LED就會(huì)點(diǎn)亮;當(dāng)輸出高電平時(shí),相應(yīng)的LED就會(huì)熄滅。
共陰極連接是指多個(gè)LED的陰極連接在一起,接到電源負(fù)極,而各自的陽(yáng)極接到單片機(jī)的輸出引腳。這樣,當(dāng)單片機(jī)輸出高電平時(shí),相應(yīng)的LED就會(huì)點(diǎn)亮;當(dāng)輸出低電平時(shí),相應(yīng)的LED就會(huì)熄滅。
我們可以根據(jù)上述的原理來(lái)實(shí)現(xiàn)一個(gè)LED閃爍,讓你的LED真正會(huì)“眨眼睛”
準(zhǔn)備知識(shí):
在實(shí)現(xiàn)LED閃爍之前,我們需要學(xué)習(xí)一下一些基本的知識(shí)。
1、typedef(重定義)的功能使用
C語(yǔ)言允許用戶(hù)使用 typedef 關(guān)鍵字來(lái)定義自己習(xí)慣的數(shù)據(jù)類(lèi)型名稱(chēng),來(lái)替代系統(tǒng)默認(rèn)的基本類(lèi)型名稱(chēng)、數(shù)組類(lèi)型名稱(chēng)、指針類(lèi)型名稱(chēng)與用戶(hù)自定義的結(jié)構(gòu)型名稱(chēng)、共用型名稱(chēng)、枚舉型名稱(chēng)等。一旦用戶(hù)在程序中定義了自己的數(shù)據(jù)類(lèi)型名稱(chēng),就可以在該程序中用自己的數(shù)據(jù)類(lèi)型名稱(chēng)來(lái)定義變量的類(lèi)型、數(shù)組的類(lèi)型、指針變量的類(lèi)型與函數(shù)的類(lèi)型等。
例如:
typedef unsigned char u8;
typedefunsigned int ul6;
重新定義一些常用的關(guān)鍵詞,可以增強(qiáng)程序的可移植性,因?yàn)樵诓煌木幾g軟件上面,C語(yǔ)言的數(shù)據(jù)類(lèi)型的關(guān)鍵詞的位寬是不一樣的。
2、While循環(huán)函數(shù)
while循環(huán)函數(shù)語(yǔ)句的意義:當(dāng)函數(shù)值內(nèi)的循環(huán)條件為真時(shí),則執(zhí)行循環(huán)體內(nèi)的函數(shù)值;當(dāng)且僅當(dāng)循環(huán)條件為假時(shí),才會(huì)退出循環(huán),程序往下執(zhí)行。
3、delay延時(shí)函數(shù)
簡(jiǎn)答的以while循環(huán)來(lái)做一個(gè)延時(shí)函數(shù)說(shuō)明,根據(jù)設(shè)定的延時(shí)時(shí)間i,然后每次循環(huán)一個(gè)while程序進(jìn)行減一計(jì)算,直到i為0時(shí)才退出延時(shí)計(jì)算。
void delay(u16 i)
{
while(i--);
}
編寫(xiě)程序:
有了上述的知識(shí)儲(chǔ)備之后,我們?cè)诰帉?xiě)一個(gè)LED閃爍的程序,首先要明白,一個(gè)LED閃爍,就是要通過(guò)接通一段時(shí)間,斷開(kāi)一段時(shí)間,這樣反反復(fù)復(fù)的原理,讓我們的視覺(jué)上產(chǎn)生出閃爍現(xiàn)象,有了這個(gè)想法之后,我們就可以使用程序?qū)⑾敕ň攥F(xiàn)化。
#include //頭文件
typedef unsigned char u8;
typedef unsigned int u16; //重定義類(lèi)型
sbit led=P2^0; //定義P2.0引腳為L(zhǎng)ED
void delay(u16 i) //延時(shí)函數(shù)
{
while(i--);
}
void main() //主函數(shù)
{
while(1) //循環(huán)函數(shù),while循環(huán)函數(shù)條件為1,就永遠(yuǎn)循環(huán)下去
{
led=1; //LED接通
delay(5000); //延時(shí)5000,這個(gè)時(shí)間不準(zhǔn)確,如果非要準(zhǔn)確的花需要自己使用小工具來(lái)實(shí)現(xiàn)最好
led=0; //LED斷開(kāi)
delay(5000);
}
}
仿真演示:
利用proteus軟件進(jìn)行仿真具現(xiàn)出來(lái)。
可以看到,當(dāng)我們啟動(dòng)仿真的時(shí)候,那么對(duì)應(yīng)的LED燈就會(huì)亮一段時(shí)間,然后熄滅一段時(shí)間,這樣就能實(shí)現(xiàn)了“眨眼睛”了。
-
led
+關(guān)注
關(guān)注
242文章
23286瀏覽量
661101 -
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44561瀏覽量
635636 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7605瀏覽量
136930 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4332瀏覽量
62666 -
LED閃爍
+關(guān)注
關(guān)注
0文章
29瀏覽量
9822
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論