單片機壹個接口怎麽控制兩個LED燈?!
確切的說壹個IO口在指定時間內僅能輸出壹種狀態(高和低,可以用來代表LED的亮和滅)。
如果樓主非要讓壹個LED長時間亮著的話,那就用緩沖吧!壹般為了提高效率,我們會8個IO口壹起操作,緩沖器也支持並且就是這樣做的(所謂緩沖就是壹些可以保存IO口某壹時刻狀態的電路)。
通俗說,單片機並不直接控制每壹個LED的亮滅,而是通過相對應的緩沖器來間接控制。比如要控制1-8號LED全亮,單片機先選擇1號緩沖器,然後發送壹個全亮的指令給1號緩沖器,1號緩沖器會記住單片機的這個全亮指令控制並保持(直到單片機再發送來新的指令更改1-8號LED的狀態)自己管理的8個LED的狀態。
指令交給1號緩沖器後,單片機就可以選擇二號緩沖器並發送控制9-16號LED的指令了,然後選擇三號緩沖器並發送17-24號LED的指令....
直到發送指令到第三百七拾五號緩沖器控制2992-3000號LED。有壹個問題就是這樣會需要375個緩沖器,並且需要24個IO口(8個IO口控制LED燈,16個IO口控制緩沖器)。
這個電路的效果就是單片機僅需要375*3=1125條指令就可以完全控制壹遍這3000個LED,如果使用的單片機速度不太慢的話,這幾乎不到10個毫秒,壹秒鐘可以控制3000個LED狀態改變100次以上,雖然這個方法有點笨,成本還比較高,但他只使用了24個IO口!當然高手也許只需要16個甚至更少的IO口就能辦到。