單個I/O口驅動單個LED
單個LED驅動,可以使用I/O口和限流電阻來實現。根據LED在電路中的接法,驅動程序也不盡相同,但驅動方法基本類似。
由圖可知當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輸出低電平,此時可點亮發光二極管D1
//D1=1 ; //如果D1反接。則需要P1.0輸出高電平時才能點亮發光二極管D1
}
(2)熄滅D1的程序如下:
sbit D1=P1^0 ; //定義D1為P1.0端口
void main(void)
{
D1 = 1; //P1.0輸出高電平,此時可熄滅發光二極管D1
//D1=0 ; //如果D1反接。則需要P1.0輸出低電平時才能熄滅發光二極管D1
}
單個I/O口驅動兩個LED
根據電路的接法不同1個I/O口可以同時驅動兩種不同狀態的LED。其驅動程序與“單個I/O口驅動單個LED”相似。1個I/O口驅動2個LED的實驗電路圖如下:
點亮D1的程序如下:
sbit LED=P1^0 ;//定義LED為P1.0端口
void main(void)
{
LED=0 ; //P1.0輸出低電平,此時可點亮發光二極管D1,熄滅D2
}
由上述程序可知,D1和D2的狀態總是互斥的。讀者可以根據所示的電路,試著自己編寫點亮D2的程序。由于單片機I/O口的電流驅動能力是有限制的,當我們需要用1個I/O口線控制多個LED(如LED組合而成的點陣漢字)時,就需要使用三極管或驅動芯片(如UNL2003)來實現。
-
led
+關注
關注
242文章
23820瀏覽量
673368 -
單片機
+關注
關注
6067文章
44970瀏覽量
649788 -
發光二極管
+關注
關注
13文章
1216瀏覽量
67559 -
端口
+關注
關注
4文章
1046瀏覽量
32882 -
程序
+關注
關注
117文章
3826瀏覽量
82851
發布評論請先 登錄
使用單個PRM驅動多個VTMs的設計
pc機單個232口和設備通信
詭異的PIC單片機的I/O口問題(相同的I/O口配置單個出問題...
請問“PCA9956BTWY”會在每個端口上驅動單個LED嗎?
I/O并行口直接驅動LED顯示實驗(含電路原理圖)

使用MAX6958/MAX6959LED驅動器實現單個LED

C51編程6-雙向I/O口與準雙向I/O口

51單片機雙向I/O口與準雙向I/O口解析

評論