1、引言
STC8系列單片機(jī)的輸入/輸出口(英文是:Input/Output Interface,下文簡稱為:I/O口)有4種可以通過軟件配置的工作模式。其分別是:準(zhǔn)雙向口、推挽輸出、開漏輸出和高阻輸入這4種工作模式,或者稱之為:I/O口的4種可配置電路結(jié)構(gòu)。在學(xué)習(xí)和設(shè)計(jì)產(chǎn)品的過程中,該如何理解和使用這4種輸入/輸出口的工作模式呢?
2、準(zhǔn)雙向口工作模式
STC8系列單片機(jī)輸入/輸出口的準(zhǔn)雙向口工作模式內(nèi)部電路結(jié)構(gòu)如圖1所示。雖然準(zhǔn)雙向口工作模式的內(nèi)部電路結(jié)構(gòu)看起來比較復(fù)雜,但是,在進(jìn)行硬件電路設(shè)計(jì)和軟件編程過程中,僅僅需要知道以下兩個(gè)基本操作原理即可。

(1)當(dāng)某個(gè)I/O口為輸出口時(shí),向端口鎖存器寫入“1”,該I/O口內(nèi)部電路下面的MOSFET截止,上邊的某個(gè)MOSFET導(dǎo)通,對外輸出至端口引腳為高電平;向端口鎖存器寫入“0”,該I/O口內(nèi)部電路下面的MOSFET導(dǎo)通,上邊的某個(gè)MOSFET導(dǎo)通,對外輸出至端口引腳為低電平。
(2)當(dāng)某個(gè)I/O口作為輸入口時(shí),先向端口鎖存器寫入“1”,該I/O口內(nèi)部電路下面的MOSFET截止,上邊的某個(gè)MOSFET導(dǎo)通,端口引腳為高電平,處于輸入狀態(tài)。此時(shí),當(dāng)I/O口端口引腳為高電平時(shí),讀取到的I/O口狀態(tài)為“1”;當(dāng)I/O端口引腳為低電平時(shí),讀取到的I/O口狀態(tài)為“0”。下次再讀取該I/O口的輸入狀態(tài)時(shí),按照上述操作方式進(jìn)行讀取即可。
在圖1中所示“弱”、“極弱”和“強(qiáng)”的3只具備上拉作用的MOSFET是STC8系列單片機(jī)I/O準(zhǔn)雙向口工作模式特有的電路結(jié)構(gòu)。其上拉有效的時(shí)機(jī)為:
(1)弱上拉MOSFET有效的時(shí)機(jī):當(dāng)某I/O端口鎖存器和引腳都為“1”時(shí),弱上拉MOSFET導(dǎo)通,給準(zhǔn)雙向口提供基本的驅(qū)動電流,使該I/O端口引腳輸出為高電平。當(dāng)該I/O端口引腳輸入為低電平時(shí),弱上拉MOSFET關(guān)閉,極弱上拉MOSFET導(dǎo)通。當(dāng)弱上拉MOSFET有效導(dǎo)通時(shí),如果單片機(jī)供電電壓為DC 5V,那么,其導(dǎo)通電流約為250μA;如果單片機(jī)供電電壓為DC 3.3V,那么,其導(dǎo)通電流約為150μA。由此可知:當(dāng)STC8系列單片機(jī)采用DC 3.3V供電電壓,I/O準(zhǔn)雙向口的功耗比較小。
(2)極弱上拉MOSFET有效的時(shí)機(jī):當(dāng)某I/O端口鎖存器和引腳都為“1”或懸空,且對應(yīng)引腳輸入為低電平時(shí),極弱上拉MOSFET導(dǎo)通,提供非常小的上拉導(dǎo)通電流用于維持該I/O端口引腳的高電平狀態(tài)。當(dāng)極弱上拉MOSFET有效導(dǎo)通時(shí),如果單片機(jī)供電電壓為DC 5V,那么,其導(dǎo)通電流約為18μA;如果單片機(jī)供電電壓為DC 3.3V,那么,其導(dǎo)通電流約為5μA。由此可知:當(dāng)STC8系列單片機(jī)采用DC 3.3V供電電壓,I/O準(zhǔn)雙向口的功耗比較小。
(3)強(qiáng)上拉MOSFET有效的時(shí)機(jī):當(dāng)某I/O端口鎖存器由“0”到“1”跳變時(shí),在延時(shí)約2個(gè)CPU時(shí)鐘后,快速的導(dǎo)通,使該I/O端口引腳迅速的處于高電平狀態(tài)。
注意:通過以上對STC8系列單片機(jī)I/O準(zhǔn)雙向口工作模式和內(nèi)部電路的分析,一直在提I/O準(zhǔn)雙向口3只上拉MOSFET的導(dǎo)通狀態(tài),沒有討論其截止?fàn)顟B(tài),其實(shí),為了保證I/O準(zhǔn)雙向口的正常工作,3只上拉MOSFET至少有一只要始終保持導(dǎo)通狀態(tài),具體是那一只導(dǎo)通,要根據(jù)以上3只上拉MOSFET有效的時(shí)機(jī)進(jìn)行判斷。
另外,從圖1中可以看出:STC8系列單片機(jī)I/O準(zhǔn)雙向口輸入電路由一個(gè)干擾抑制電路和施密特觸發(fā)器組成,說明該系列單片機(jī)I/O口的輸入接口抗干擾能力比較好。
3、推挽輸出工作模式
STC8系列單片機(jī)輸入/輸出口的推挽輸出工作模式內(nèi)部電路結(jié)構(gòu)如圖2所示。該工作模式的內(nèi)部電路結(jié)構(gòu)與準(zhǔn)雙向口模式相仿,少了“弱”和“極弱”兩只上拉MOSFET。對于同一個(gè)I/O口而言,圖1和圖2中的強(qiáng)上拉MOSFET,很有可能是同一只MOSFET,不過,其在準(zhǔn)雙向口和推挽輸出模式下的有效導(dǎo)通時(shí)機(jī)和狀態(tài)不同。在準(zhǔn)雙向口工作模式下,當(dāng)I/O端口鎖存器出現(xiàn)由“0”至“1”的跳變時(shí),強(qiáng)上拉MOSFET用于快速的把端口引腳上拉至高電平,然后,由“弱”或“極弱”上拉MOSFET維持端口引腳的高電平狀態(tài)(猜測:正常情況下,由于極弱上拉MOSFET導(dǎo)通電流最小,因此,一般是其導(dǎo)通維持端口引腳處于高電平狀態(tài))。在推挽輸出工作模式下,當(dāng)I/O端口鎖存器為“1”時(shí),強(qiáng)上拉MOSFET持續(xù)導(dǎo)通,其最大能提供20mA的拉電流。注意:雖然I/O口推挽輸出工作模式能夠提供最大20mA的拉電流,但是,通過STC8單片機(jī)VCC引腳的供電電流最大不能超過90mA。
I/O口推挽輸出工作模式與準(zhǔn)雙向口工作模式除了以上不同之外,其輸入內(nèi)部電路與準(zhǔn)雙向口工作模式相同。在此不在詳述。

圖2 推挽輸出工作模式
4、開漏輸出工作模式
STC8系列單片機(jī)輸入/輸出口的開漏輸出工作模式內(nèi)部電路結(jié)構(gòu)如圖3所示。該工作模式與準(zhǔn)雙向口和推挽輸出工作模式最大的不同是:其無上拉MOSFET,即在開漏輸出工作模式,I/O端口引腳內(nèi)部電路所接的所有上拉MOSFET都處于截止無效狀態(tài)。該工作模式能夠比較好的匹配外接不同工作電源電壓的邏輯電路類外設(shè)(注意:一般不建議不同工作電源電壓的邏輯電路芯片進(jìn)行直接連接,如果I/O口的工作模式設(shè)置不對,那么,有可能導(dǎo)致單片機(jī)I/O端口承受過高電壓而損壞)。由于開漏輸出模式無片內(nèi)上拉MOSFET,因此,必須在I/O端口引腳上外接上拉電阻,才能保證能夠使該I/O口具備正常的輸入和輸出功能。在外接上拉電阻的情況下,其輸入和輸出功能詳見準(zhǔn)雙向口工作模式下的說明。

圖3 開漏輸出模式
5、高阻輸入工作模式
STC8系列單片機(jī)輸入/輸出口的高阻輸入工作模式內(nèi)部電路結(jié)構(gòu)如圖4所示。該工作模式僅有輸入功能,而且其輸入內(nèi)部電路結(jié)構(gòu)與以上3種工作模式相同,即:當(dāng)I/O口配置為高阻輸入工作模式時(shí),沒有片內(nèi)上拉MOSFET、上拉電阻和下拉MOSFET,I/O端口引腳處于完全懸空狀態(tài)。我覺得該工作模式最大好處是:把I/O口配置為高阻輸入模式時(shí),其消耗的輸入電流主要有外置的上拉電阻確定,可以做的僅可能的低功耗,單片機(jī)自身I/O口處于高阻輸入工作模式,消耗電流非常小。注意:當(dāng)STC8系列單片機(jī)I/O口配置為高阻輸入工作模式時(shí),一定在對應(yīng)I/O端口引腳上外置上拉電阻,保證I/O口輸入電平的穩(wěn)定。

圖4 高阻輸入模式
6、使用輸入/輸出口的經(jīng)驗(yàn)
以上關(guān)于STC8系列單片機(jī)輸入/輸出口4種工作模式的描述,不需要死記硬背,僅僅需要理解或者了解其基本工作原理即可。當(dāng)采用STC8系列單片機(jī)進(jìn)行產(chǎn)品硬件設(shè)計(jì)時(shí),一般需要注意以下事項(xiàng)和經(jīng)驗(yàn)規(guī)則:
(1)一般在成本和印制電路板面積要求不是特別嚴(yán)格的情況下,為了保證單片機(jī)I/O端口引腳高低電平的可靠和穩(wěn)定,通常在I/O端口引腳上外置4.7kΩ、5.1kΩ或10kΩ的上拉電阻(注意:上拉電阻越大,邏輯工作所需功耗越小,但是,其壞處是脈沖上升沿變得越緩慢,應(yīng)根據(jù)實(shí)際情況進(jìn)行調(diào)整)。
(2)對于成本和印制電路板面積特別受限的產(chǎn)品而言,可以有限的利用I/O口的推挽輸出模式下拉電流大可以直接驅(qū)動外部負(fù)載和準(zhǔn)雙向口、推挽輸出與開漏輸出工作模式下灌電流大的特性節(jié)省成本和印制電路板面積,但是,這種方式僅限于玩具等商業(yè)消費(fèi)類,且對可靠性和安全性無特殊要求的產(chǎn)品設(shè)計(jì)中。在工業(yè)、電力、測試測量、軌道交通等產(chǎn)品中,嚴(yán)禁使用。
(3)STC8系列單片機(jī)流入VCC供電引腳和流出GND接地引腳的最大電流不能超過90mA,否則,容易導(dǎo)致單片機(jī)工作異?;驌p壞。
電子發(fā)燒友App














評論