新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > stc單片機(jī)IO口輸入輸出方式

stc單片機(jī)IO口輸入輸出方式

作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
個(gè)人感觸:
我只想說,有些話,第一遍看根本不知道是什么意思或者記不得,
但是自己在項(xiàng)目中遇到這個(gè)問題困擾很久之后,再回來重新看到這句話,就會(huì)醍醐灌頂。
最近編PCA9306的驅(qū)動(dòng),遇到的問題就是片子只能讀奇數(shù)地址,不能讀偶數(shù)地址的寄存器,后來采用的辦法是寫完地址之后,SDIO強(qiáng)制拉高(因?yàn)?306的SPI數(shù)據(jù)線是SDIO雙向的,只有1根)
當(dāng)時(shí)不明白為什么,現(xiàn)在回頭來看到這篇文章,終于懂了。
以下是轉(zhuǎn)載的正文:

傳統(tǒng)51單片機(jī)IO接口只可以作為標(biāo)準(zhǔn)雙向IO接口,如果用其來驅(qū)動(dòng)LED只能用灌電流的方式或是用三極管外擴(kuò)驅(qū)動(dòng)電路。

本文引用地址:http://butianyuan.cn/article/201611/322747.htm

灌電流方式:LED正極接VCC,負(fù)極接IO口。IO為高電平是LED兩極電平相同,沒有電流,LED熄滅;IO為低電平時(shí),電流從VCC流入IO,LED點(diǎn)亮。但是當(dāng)你吧LED正極接在IO接口,負(fù)極接GND時(shí),將IO接口置于高電平,LED會(huì)亮,但因?yàn)镮O接口上拉能力不足而使亮度不理想,可以用下面介紹的方式解決這個(gè)問題。

推挽工作方式:LED正負(fù)極分別接在兩個(gè)IO口上,然后設(shè)置正極IO接口為推挽輸出,負(fù)極IO接口為標(biāo)準(zhǔn)雙向灌電流輸入。推挽方式具有強(qiáng)上拉能力,可以實(shí)現(xiàn)高電平驅(qū)動(dòng)LED。

IO口的四種使用方法

從I/O口的特性上看,標(biāo)準(zhǔn)51的P0口在作為I/O口使用時(shí),是開漏結(jié)構(gòu),在實(shí)際應(yīng)用中通常要添加上拉電阻;P1、P2、P3都是準(zhǔn)雙向I/O,內(nèi)部有上拉電阻,既可作為輸入又可以作為輸出。而LPC900系列單片機(jī)的I/O口特性有一定的不同,它們可以被配置成4種不同的工作模式:準(zhǔn)雙向I/O、推挽輸出、高阻輸入、開漏。


準(zhǔn)雙向I/O模式與標(biāo)準(zhǔn)51相比,雖然在內(nèi)部結(jié)構(gòu)上是不同的,但在用法上類同,比如要作為輸入時(shí)都必須先寫“1”置成高電平,然后才能去讀引腳的電平狀態(tài)。!?。。?!同時(shí)要注意:因?yàn)?T的8051單片機(jī)速度比較快,由低變高指令后立即讀外部狀態(tài),此時(shí)由于實(shí)際輸出還沒有變高,就有可能讀不對(duì),正確的方法時(shí)軟件設(shè)置由低變高后加1~2個(gè)空操作延時(shí),再讀就行。(個(gè)人記錄:我記得電平變化是需要2個(gè)CPU時(shí)鐘延時(shí))

推挽輸出的特點(diǎn)是不論輸出高電平還是低電平都能驅(qū)動(dòng)較大的電流,比如輸出高電平時(shí)可以直接點(diǎn)亮LED(要串聯(lián)幾百歐限流電阻),而在準(zhǔn)雙向I/O模式下很難辦到。

高阻輸入模式的特點(diǎn)是只能作為輸入使用,但是可以獲得比較高的輸入阻抗,這在模擬比較器和ADC應(yīng)用中是必需的。

開漏模式與準(zhǔn)雙向模式相似,但是沒有內(nèi)部上拉電阻。開漏模式的優(yōu)點(diǎn)是電氣兼容性好,外部上拉電阻接3V電源,就能和3V邏輯器件接口,如果上拉電阻接5V電源,又可以與5V邏輯器件接口。此外,開漏模式還可以方便地實(shí)現(xiàn)“線與”邏輯功能。

高阻態(tài)這是一個(gè)數(shù)字電路里常見的術(shù)語,指的是電路的一種輸出狀態(tài),既不是高電平也不是低電平,如果高阻態(tài)再輸入下一級(jí)電路的話,對(duì)下級(jí)電路無任何影響,和沒接一樣,如果用萬用表測(cè)的話有可能是高電平也有可能是低電平,隨它后面接的東西定。

電路分析時(shí)高阻態(tài)可做開路理解。你可以把它看作輸出(輸入)電阻非常大。他的極限可以認(rèn)為懸空。

高阻態(tài)的典型應(yīng)用:

1、在總線連接的結(jié)構(gòu)上。總線上掛有多個(gè)設(shè)備,設(shè)備與總線以高阻的形式連接。這樣在設(shè)備不占用總線時(shí)自動(dòng)釋放總線,以方便其他設(shè)備獲得總線的使用權(quán)?!?br />2、大部分單片機(jī)I/O使用時(shí)都可以設(shè)置為高阻輸入,如凌陽,AVR等等。高阻輸入可以認(rèn)為輸入電阻是無窮大的,認(rèn)為I/O對(duì)前級(jí)影響極小,而且不產(chǎn)生電流(不衰減),而且在一定程度上也增加了芯片的抗電壓沖擊能力。




評(píng)論


技術(shù)專區(qū)

關(guān)閉