STC8單片機之深入理解輸入/輸出口的工作模式

2020-12-08 愛搗鼓

1、引言

STC8系列單片機的輸入/輸出口(英文是:Input/Output Interface,下文簡稱為:I/O口)有4種可以通過軟體配置的工作模式。其分別是:準雙向口、推輓輸出、開漏輸出和高阻輸入這4種工作模式,或者稱之為:I/O口的4種可配置電路結構。在學習和設計產品的過程中,該如何理解和使用這4種輸入/輸出口的工作模式呢?

2、準雙向口工作模式

STC8系列單片機輸入/輸出口的準雙向口工作模式內部電路結構如圖1所示。雖然準雙向口工作模式的內部電路結構看起來比較複雜,但是,在進行硬體電路設計和軟體編程過程中,僅僅需要知道以下兩個基本操作原理即可。

(1)當某個I/O口為輸出口時,向埠鎖存器寫入「1」,該I/O口內部電路下面的MOSFET截止,上邊的某個MOSFET導通,對外輸出至埠引腳為高電平;向埠鎖存器寫入「0」,該I/O口內部電路下面的MOSFET導通,上邊的某個MOSFET導通,對外輸出至埠引腳為低電平。

(2)當某個I/O口作為輸入口時,先向埠鎖存器寫入「1」,該I/O口內部電路下面的MOSFET截止,上邊的某個MOSFET導通,埠引腳為高電平,處於輸入狀態。此時,當I/O口埠引腳為高電平時,讀取到的I/O口狀態為「1」;當I/O埠引腳為低電平時,讀取到的I/O口狀態為「0」。下次再讀取該I/O口的輸入狀態時,按照上述操作方式進行讀取即可。

在圖1中所示「弱」、「極弱」和「強」的3隻具備上拉作用的MOSFET是STC8系列單片機I/O準雙向口工作模式特有的電路結構。其上拉有效的時機為:

(1)弱上拉MOSFET有效的時機:當某I/O埠鎖存器和引腳都為「1」時,弱上拉MOSFET導通,給準雙向口提供基本的驅動電流,使該I/O埠引腳輸出為高電平。當該I/O埠引腳輸入為低電平時,弱上拉MOSFET關閉,極弱上拉MOSFET導通。當弱上拉MOSFET有效導通時,如果單片機供電電壓為DC 5V,那麼,其導通電流約為250μA;如果單片機供電電壓為DC 3.3V,那麼,其導通電流約為150μA。由此可知:當STC8系列單片機採用DC 3.3V供電電壓,I/O準雙向口的功耗比較小。

(2)極弱上拉MOSFET有效的時機:當某I/O埠鎖存器和引腳都為「1」或懸空,且對應引腳輸入為低電平時,極弱上拉MOSFET導通,提供非常小的上拉導通電流用於維持該I/O埠引腳的高電平狀態。當極弱上拉MOSFET有效導通時,如果單片機供電電壓為DC 5V,那麼,其導通電流約為18μA;如果單片機供電電壓為DC 3.3V,那麼,其導通電流約為5μA。由此可知:當STC8系列單片機採用DC 3.3V供電電壓,I/O準雙向口的功耗比較小。

(3)強上拉MOSFET有效的時機:當某I/O埠鎖存器由「0」到「1」跳變時,在延時約2個CPU時鐘後,快速的導通,使該I/O埠引腳迅速的處於高電平狀態。

注意:通過以上對STC8系列單片機I/O準雙向口工作模式和內部電路的分析,一直在提I/O準雙向口3隻上拉MOSFET的導通狀態,沒有討論其截止狀態,其實,為了保證I/O準雙向口的正常工作,3隻上拉MOSFET至少有一隻要始終保持導通狀態,具體是那一隻導通,要根據以上3隻上拉MOSFET有效的時機進行判斷。

另外,從圖1中可以看出:STC8系列單片機I/O準雙向口輸入電路由一個幹擾抑制電路和施密特觸發器組成,說明該系列單片機I/O口的輸入接口抗幹擾能力比較好。

3、推輓輸出工作模式

STC8系列單片機輸入/輸出口的推輓輸出工作模式內部電路結構如圖2所示。該工作模式的內部電路結構與準雙向口模式相仿,少了「弱」和「極弱」兩隻上拉MOSFET。對於同一個I/O口而言,圖1和圖2中的強上拉MOSFET,很有可能是同一隻MOSFET,不過,其在準雙向口和推輓輸出模式下的有效導通時機和狀態不同。在準雙向口工作模式下,當I/O埠鎖存器出現由「0」至「1」的跳變時,強上拉MOSFET用於快速的把埠引腳上拉至高電平,然後,由「弱」或「極弱」上拉MOSFET維持埠引腳的高電平狀態(猜測:正常情況下,由於極弱上拉MOSFET導通電流最小,因此,一般是其導通維持埠引腳處於高電平狀態)。在推輓輸出工作模式下,當I/O埠鎖存器為「1」時,強上拉MOSFET持續導通,其最大能提供20mA的拉電流。注意:雖然I/O口推輓輸出工作模式能夠提供最大20mA的拉電流,但是,通過STC8單片機VCC引腳的供電電流最大不能超過90mA。

I/O口推輓輸出工作模式與準雙向口工作模式除了以上不同之外,其輸入內部電路與準雙向口工作模式相同。在此不在詳述。

圖2 推輓輸出工作模式

4、開漏輸出工作模式

STC8系列單片機輸入/輸出口的開漏輸出工作模式內部電路結構如圖3所示。該工作模式與準雙向口和推輓輸出工作模式最大的不同是:其無上拉MOSFET,即在開漏輸出工作模式,I/O埠引腳內部電路所接的所有上拉MOSFET都處於截止無效狀態。該工作模式能夠比較好的匹配外接不同工作電源電壓的邏輯電路類外設(注意:一般不建議不同工作電源電壓的邏輯電路晶片進行直接連接,如果I/O口的工作模式設置不對,那麼,有可能導致單片機I/O埠承受過高電壓而損壞)。由於開漏輸出模式無片內上拉MOSFET,因此,必須在I/O埠引腳上外接上拉電阻,才能保證能夠使該I/O口具備正常的輸入和輸出功能。在外接上拉電阻的情況下,其輸入和輸出功能詳見準雙向口工作模式下的說明。

圖3 開漏輸出模式

5、高阻輸入工作模式

STC8系列單片機輸入/輸出口的高阻輸入工作模式內部電路結構如圖4所示。該工作模式僅有輸入功能,而且其輸入內部電路結構與以上3種工作模式相同,即:當I/O口配置為高阻輸入工作模式時,沒有片內上拉MOSFET、上拉電阻和下拉MOSFET,I/O埠引腳處於完全懸空狀態。我覺得該工作模式最大好處是:把I/O口配置為高阻輸入模式時,其消耗的輸入電流主要有外置的上拉電阻確定,可以做的僅可能的低功耗,單片機自身I/O口處於高阻輸入工作模式,消耗電流非常小。注意:當STC8系列單片機I/O口配置為高阻輸入工作模式時,一定在對應I/O埠引腳上外置上拉電阻,保證I/O口輸入電平的穩定。

圖4 高阻輸入模式

6、使用輸入/輸出口的經驗

以上關於STC8系列單片機輸入/輸出口4種工作模式的描述,不需要死記硬背,僅僅需要理解或者了解其基本工作原理即可。當採用STC8系列單片機進行產品硬體設計時,一般需要注意以下事項和經驗規則:

(1)一般在成本和印製電路板面積要求不是特別嚴格的情況下,為了保證單片機I/O埠引腳高低電平的可靠和穩定,通常在I/O埠引腳上外置4.7kΩ、5.1kΩ或10kΩ的上拉電阻(注意:上拉電阻越大,邏輯工作所需功耗越小,但是,其壞處是脈衝上升沿變得越緩慢,應根據實際情況進行調整)。

(2)對於成本和印製電路板面積特別受限的產品而言,可以有限的利用I/O口的推輓輸出模式下拉電流大可以直接驅動外部負載和準雙向口、推輓輸出與開漏輸出工作模式下灌電流大的特性節省成本和印製電路板面積,但是,這種方式僅限於玩具等商業消費類,且對可靠性和安全性無特殊要求的產品設計中。在工業、電力、測試測量、軌道交通等產品中,嚴禁使用。

(3)STC8系列單片機流入VCC供電引腳和流出GND接地引腳的最大電流不能超過90mA,否則,容易導致單片機工作異常或損壞。

歡迎關注我的百家號:愛搗鼓!獲得更多關於STC8系列單片機的精彩文章。謝謝!

相關焦點

  • STM32的IO口輸入輸出模式的理解
    可以簡單的理解為:在所有引腳連在一起時,外接一上拉電阻,如果有一個引腳輸出為邏輯0,相當於接地,與之並聯的迴路「相當於被一根導線短路」,所以外電路邏輯電平便為0,只有都為高電平時,與的結果才為邏輯1。關於推輓輸出和開漏輸出,最後用一幅最簡單的圖形來概括:該圖中左邊的便是推輓輸出模式,其中輸出高電平時下面的PNP三極體截止,而上面NPN三極體導通,輸出電平VS+;當比較器輸出低電平時則恰恰相反,PNP三極體導通,輸出和地相連,為低電平。右邊的則可以理解為開漏輸出形式,需要接上拉。
  • 單片機的常見輸入輸出電路介紹(一)
    針時電氣控制產品的特點,討論了幾種單片機常用輸入/輸出電路的設計方法,對合理地設計電氣控制系統,提高電路的接口能力,增強系統穩定性和抗幹擾能力有實際指導意義。
  • 如何將單片機的上拉電阻配置為上拉輸入模式
    打開APP 如何將單片機的上拉電阻配置為上拉輸入模式 發表於 2018-12-04 14:31:15 如何配置為上拉輸入模式 如果在設計硬體電路的時候,忘記了設計上下拉電阻,該怎麼辦呢?
  • stc單片機IO口輸入輸出方式
    推挽工作方式:LED正負極分別接在兩個IO口上,然後設置正極IO接口為推輓輸出,負極IO接口為標準雙向灌電流輸入。推挽方式具有強上拉能力,可以實現高電平驅動LED。而LPC900系列單片機的I/O口特性有一定的不同,它們可以被配置成4種不同的工作模式:準雙向I/O、推輓輸出、高阻輸入、開漏。
  • 單片機IO口結構及上拉電阻
    MCS-51有4組8位I/O口:P0、P1、P2和P3口,P1、P2和P3為準雙向口,P0口則為雙向三態輸入輸出口,下面我們分別介紹這幾個口線。由圖可見,電路中包含一個數據輸出鎖存器(D觸發器)和兩個三態數據輸入緩衝器,另外還有一個數據輸出的驅動(T1和T2)和控制電路。這兩組口線用來作為CPU與外部數據存儲器、外部程序存儲器和I/O擴展口,而不能象P1、P3直接用作輸出口。它們一起可以作為外部地址總線,P0口身兼兩職,既可作為地址總線,也可作為數據總線。
  • 單片機上拉電阻應用及阻值選擇原則
    3、為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。 4、在COMS晶片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產生降低輸入阻抗,提供洩荷通路。 5、晶片的管腳加上拉電阻來提高輸出電平,從而提高晶片輸入信號的噪聲容限增強抗幹擾能力。
  • 以單片機為核心的步進電機控制系統驅動設計
    由於單片機資源沒有PC豐富,人機界面也沒有PC友好,因此,本文採用了主從式結構,即PC用於管理,單片機用於執行。 由A3967SLB構成步進電機的驅動部分 A3967SLB是美國Allegro公司生產的PWM恆流控制微步距驅動二相步進電機專用驅動器。它的工作電壓可達30V,驅動電流達750mA,一個A3967SLB即可驅動一臺二相步進電機,可實現8細分驅動。
  • AVR單片機IO口結構和上拉和下拉電阻的作用
    最小輸入高電平和低電平:輸入高電平>=2.0V,輸入低電平<=0.8V,噪聲容限是 0.4V。 2,CMOS電平: 1邏輯電平電壓接近於電源電壓,0邏輯電平接近於0V。而且具有很寬的噪聲容限。),此時需用上拉電阻來提升輸出高電平的電壓值 。  2、OC門必須外加上拉電阻,才能使用。(OC門:三極體的叫集電極開路,場效應管的叫漏極開路,簡稱開漏輸出。
  • STM8S單片機入門2(關機模式開關機按鈕)
    開關機功能要使用單片機的一個引腳(PD4)作為輸入端,連接到按鈕,接收按紐按下產生的電信號,然後再使用另一個引腳(PD3)作為輸出端去驅動由三極體8550構成的一個電子開關實現對系統電源的控制。而STM8S單片機本身就直接接在電池上,利用單片機的停機模式,將單片機本身的電流降低到μA級,對電池的消耗就可以忽略不計了。
  • 單片機STCl2C2052AD的比例遙控系統
    外觀上,在遙控器的發射端應該有帶旋鈕的比例錶盤,把5 V電壓平均分成360°,每一個小的度量單位就代表一定的電壓值,當旋鈕轉動一定角度時,也就是輸入給發射單片機一定的電壓值,與此同時,發射單片機一直以一定的時間間隔去查詢當前的速度並讀入到單片機內部,並根據計算公式計算出模型應該前進的距離或者當前應該的速度且根據此值設置相應的計數/定時器的初值,然後由系統外部驅動電路(伺服機)把接收單片機收到的電信號轉換成相應的機械動作
  • 51單片機IO埠基礎知識及應用
    >單片機IO引腳輸入應用總結89C51單片機引腳信息我們在學習使用任何晶片到時候,可能第一個要注意的就是晶片的引腳信息了,因為我們必須弄懂每個引腳的功能才能更好的設計出對應的電路。本文就來說下89C51單片機的引腳IO埠及應用,學習單片機的IO口的應用也是入門單片機的第一步。上圖是89C51單片機的封裝引腳圖,89C51單片機有4個IO埠為P0~P3,每個埠有8個引腳,分別對應8個位0~7,每個埠的引腳都可以作為輸入輸出使用。
  • 為什麼很多單片機的工作電壓是5v?
    所以3v3和5v一般出現在信號電路或者單片機等vcc供電,而12v/24v一般出現在低壓動力電,例如主板、顯卡、軸流風機、監控器。硬體決定系統基礎,如果鋰電池早點應用的話估計還會有3.7/7.4這個系統。 為什麼很多單片機的工作電壓是5v? 因為大多數晶片都是5V的TTL電平,要做到電平兼容,電平匹配,避免要電平轉換操作,所有很多單片機的工作電壓都是5V。
  • 基於雙同步斬波模式的LED聲控燈驅動電源設計
    摘要 提出了基於雙同步斬波模式的微功耗LED聲控燈驅動電源設計方法。該驅動電源用一個單片機控制兩個開關管分別為主電源和待機電源提供工作電流。主電源採用全波斬波工作模式為LED燈組提供工作電流;待機電源採用半波斬波工作模式,從而大幅降低了待機功耗。
  • STM32單片機GPIO寄存器
    (ADC用),0x3表示推輓輸出模式(作輸出口用,50M速率),0x8表示上/下拉輸入模式(做輸入口用),0xB表示復用輸出(使用IO口的第二功能,50M速率)。這是對一位的操作,當然也可以多位操作,因為STM32對GPIO操作必須是32位全字操作,設置完成後GPIOA的第8位就可以使用了之後給GPIOA->ODR=0x xxxx xxxx送數據就行了STM32單片機,有了埠才能和外界聯繫,學會了埠控制,才能更好地利用外設。
  • 單片機小白學步(23) IO口原理知識補充:雙向IO口 互補推挽
    IO口模式下,為準雙向IO口。所以需要用電路控制好兩個開關的協調工作。雙向IO口的輸入:高阻態、輸入電阻雙向IO口的輸出,只要求能輸出高低電平,因此並不是必須採用互補推挽電路。而採用互補推挽電路的好處在於,這種電路同時又可以實現高阻態的輸入,從而實現標準雙向IO口。當圖中的K1和K2同時斷開時,IO口就可以工作在高阻態的輸入狀態下。
  • 單片機原理|定時器/計數器的工作原理及應用作業
    A、外部計數脈衝由T1(P3.5)輸入B、B.外部計數脈衝由內部時鐘頻率提供C、外部計數脈衝由T0(P3.4)輸入D、外部計數脈衝計數我的答案:A 得分: 2.3分 17
  • 單片機C語言程序設計:INT0 中斷計數
    /mcu/2018/ic-news112342136.html 推薦閱讀 51單片機學習實踐:用NTC電阻測溫並顯示在TM1637數碼管 STC15單片機實驗名稱:使用NTC電阻測量溫度實驗內容:
  • 單片機中各種周期的關係與定時器原理
    單片機內部所有工作,都是基於由晶振產生的同一個觸發信號源,由這個信號來同步協調工作步驟,我們把這個信號稱為系統時鐘,系統時鐘一般由晶振產生,但在單片機內部系統時鐘不一定等於晶振頻率,有可能小於晶振頻率,也有可能大於晶振頻率,具體是多少由單片機內部結構決定,正常情況和晶振頻率會存在一個整數倍關係。系統時種是整個單片機工作節奏的基準,它每振蕩一次,單片機就被觸發執行一次操作。
  • 基於EMP78P156單片機的RC測溫的實現
    以前做一個電熨鬥的項目,其中要使用到溫度的測量,但是為了節省成本,要用不帶AD的單片機來控制。測溫部分是利用RC來測溫,就是利用熱敏電阻結合RC電路來實現溫度的測量,可以精確到1℃。本電路採用了臺灣義隆單片機EM78P156來實現溫度的測量和控制。
  • 關於單片機上拉電阻
    1.一般51單片機的P0口在作為地址/數據復用時不接上拉電阻。2.作為一般的I/O口時用時,由於內部沒有上拉電阻,故要接上上拉電阻!!3.當p0口用來驅動PNP管子的時候,就不需要上拉電阻,因為此時的低電平有效;4.當P0口用來驅動NPN管子的時候,就需要上拉電阻的,因為此時只有當P0為1時候,才能夠使後級端導通。