單個I/O口驅(qū)動單個LED
單個LED驅(qū)動,可以使用I/O口和限流電阻來實現(xiàn)。根據(jù)LED在電路中的接法,驅(qū)動程序也不盡相同,但驅(qū)動方法基本類似。
由圖可知當P1.0口輸出為低電平時,就會點亮D1。當P1.0輸出為高電平時,D1就會熄滅。通常同一個程序會包含點亮和熄滅LED的程序。在實際編程時,使用P1^0=0或P1^0=1語句,就可以點亮或熄滅D1了。
(1)點亮D1的程序如下:
sbit D1 = P1^0 ; //定義D1為P1.0端口
void main(void)
{
D1 = 0; //P1.0輸出低電平,此時可點亮發(fā)光二極管D1
//D1=1 ; //如果D1反接。則需要P1.0輸出高電平時才能點亮發(fā)光二極管D1
}
(2)熄滅D1的程序如下:
sbit D1=P1^0 ; //定義D1為P1.0端口
void main(void)
{
D1 = 1; //P1.0輸出高電平,此時可熄滅發(fā)光二極管D1
//D1=0 ; //如果D1反接。則需要P1.0輸出低電平時才能熄滅發(fā)光二極管D1
}
單個I/O口驅(qū)動兩個LED
根據(jù)電路的接法不同1個I/O口可以同時驅(qū)動兩種不同狀態(tài)的LED。其驅(qū)動程序與“單個I/O口驅(qū)動單個LED”相似。1個I/O口驅(qū)動2個LED的實驗電路圖如下:
點亮D1的程序如下:
sbit LED=P1^0 ;//定義LED為P1.0端口
void main(void)
{
LED=0 ; //P1.0輸出低電平,此時可點亮發(fā)光二極管D1,熄滅D2
}
由上述程序可知,D1和D2的狀態(tài)總是互斥的。讀者可以根據(jù)所示的電路,試著自己編寫點亮D2的程序。由于單片機I/O口的電流驅(qū)動能力是有限制的,當我們需要用1個I/O口線控制多個LED(如LED組合而成的點陣漢字)時,就需要使用三極管或驅(qū)動芯片(如UNL2003)來實現(xiàn)。
-
led
+關注
關注
240文章
23064瀏覽量
657068 -
單片機
+關注
關注
6030文章
44489瀏覽量
631996 -
發(fā)光二極管
+關注
關注
13文章
1192瀏覽量
66144 -
端口
+關注
關注
4文章
948瀏覽量
31985 -
程序
+關注
關注
116文章
3762瀏覽量
80754
發(fā)布評論請先 登錄
相關推薦
評論