http://www.baiheee.com/Documents/081207/081207184434.htm
http://www.baiheee.com/Documents/081207/081207184704.htm
當要顯示綠燈(LED1)亮時,I/O口可置為低電平。此時紅燈(LED2)反向偏置,無電流流過,不會亮。
當要顯示紅燈(LED2)亮時,I/O口可置為高電平。此時綠燈(LED1)反向偏置,無電流流過,不會亮。
若要指示燈不亮,可將I/O口置為高阻態,此時兩個發光管均無電流流過,也不會亮。
若要顯示橙燈亮時,此時LED1、LED2要一起亮,則可以讓I/O口在某一固定頻率下以50%的占空比進行高低電平不停轉換,
利用視覺暫留,使人眼感覺到顯示的是橙燈。
由於單片機中的I/O口通常可設置為三種狀態,即輸出高電平、輸出低電平和輸入狀態(高阻態)。
利用這一點,可以很方便地用一個I/O口實現對2個指示燈的控制。其電路如右圖所示。
當要使LED1亮時,I/O口可置為低電平。此時LED2無電流流過,不會亮。
當要使LED2亮時,I/O口可置為高電平。此時LED1無電流流過,不會亮。
若要LED1、LED2均不亮,可將I/O口置為高阻態,此時發光管被VD1旁路,也不會亮。
若要LED1、LED2一起亮,則可以讓I/O口在某一固定頻率下以50%的占空比進行高低電平不停轉換,
利用視覺暫留,使人眼感覺兩個燈都為亮的狀態。
http://www.amobbs.com/thread-5561641-1-1.html
1個IO控制3個LED

因為現在的led都是高亮的,1mA左右就很亮了,所以MCU的IO壓降可以忽略不計。
IO高阻時,LED3亮,LED1 LED2因為LED3電壓鉗位不亮。
IO輸出高電平,LED2亮,LED1相當於短路,不亮,LED3因為LED2鉗位也不會亮。
IO輸出低電平,LED1亮,LED2相當於短路,不亮,LED3因為LED1鉗位也不會亮。
需要額外考慮的只有LED3支路的壓降,要大於LED1、LED2的大的,小於LED1+LED2,如果都是同樣的LED,在LED3支路上加一個二極管。
流過LED3的電流比LED1、LED2要小約一半,但高亮LED,1mA以上電流減半亮度減弱不是很明顯。也可以LED1、LED2用普亮的,LED3用高亮的。
唯一就是LED亮度不均勻.加兩二極管可完善.
