傳統(tǒng)51單片機IO接口只可以作為標準雙向IO接口,如果用其來驅(qū)動LED只能用灌電流的方式或是用三極管外擴驅(qū)動電路。
灌電流方式:LED正極接VCC,負極接IO口。IO為高電平是LED兩極電平相同,沒有電流,LED熄滅;IO為低電平時,電流從VCC流入IO,LED點亮。但是當你吧LED正極接在IO接口,負極接GND時,將IO接口置于高電平,LED會亮,但因為IO接口上拉能力不足而使亮度不理想,可以用下面介紹的方式解決這個問題。
推挽工作方式:LED正負極分別接在兩個IO口上,然后設(shè)置正極IO接口為推挽輸出,負極IO接口為標準雙向灌電流輸入。推挽方式具有強上拉能力,可以實現(xiàn)高電平驅(qū)動LED。
IO口的四種使用方法
從I/O口的特性上看,標準51的P0口在作為I/O口使用時,是開漏結(jié)構(gòu),在實際應用中通常要添加上拉電阻;P1、P2、P3都是準雙向I/O,內(nèi)部有上拉電阻,既可作為輸入又可以作為輸出。而LPC900系列單片機的I/O口特性有一定的不同,它們可以被配置成4種不同的工作模式:準雙向I/O、推挽輸出、高阻輸入、開漏。
準雙向I/O模式與標準51相比,雖然在內(nèi)部結(jié)構(gòu)上是不同的,但在用法上類同,比如要作為輸入時都必須先寫“1”置成高電平,然后才能去讀引腳的電平狀態(tài)。!!!!!為什么是這樣子?見下面圖解分析。
推挽輸出的特點是不論輸出高電平還是低電平都能驅(qū)動較大的電流,比如輸出高電平時可以直接點亮LED(要串聯(lián)幾百歐限流電阻),而在準雙向I/O模式下很難辦到。
高阻輸入模式的特點是只能作為輸入使用,但是可以獲得比較高的輸入阻抗,這在模擬比較器和ADC應用中是必需的。
開漏模式與準雙向模式相似,但是沒有內(nèi)部上拉電阻。開漏模式的優(yōu)點是電氣兼容性好,外部上拉電阻接3V電源,就能和3V邏輯器件接口,如果上拉電阻接5V電源,又可以與5V邏輯器件接口。此外,開漏模式還可以方便地實現(xiàn)“線與”邏輯功能。
對于上面疑問的解釋,有這樣一個資料:
高阻態(tài)這是一個數(shù)字電路里常見的術(shù)語,指的是電路的一種輸出狀態(tài),既不是高電平也不是低電平,如果高阻態(tài)再輸入下一級電路的話,對下級電路無任何影響,和沒接一樣,如果用萬用表測的話有可能是高電平也有可能是低電平,隨它后面接的東西定。
電路分析時高阻態(tài)可做開路理解。你可以把它看作輸出(輸入)電阻非常大。他的極限可以認為懸空。
高阻態(tài)的典型應用:
1、在總線連接的結(jié)構(gòu)上。總線上掛有多個設(shè)備,設(shè)備與總線以高阻的形式連接。這樣在設(shè)備不占用總線時自動釋放總線,以方便其他設(shè)備獲得總線的使用權(quán)。
2、大部分單片機I/O使用時都可以設(shè)置為高阻輸入,如凌陽,AVR等等。高阻輸入可以認為輸入電阻是無窮大的,認為I/O對前級影響極小,而且不產(chǎn)生電流(不衰減),而且在一定程度上也增加了芯片的抗電壓沖擊能力。
擴展閱讀:51單片機IO口輸入輸出方式