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