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