導語
通過單片機控制外圍器件(LED,蜂鳴器,數碼管,按鍵),本質上是對于單片機IO口的操作,相對于STM32,51單片機IO口模式較少,但了解IO的內部對于學習了解51單片機也由很大的幫助。
GPIO
GPIO(General Purpose Input Output),通用輸入輸出。既能當輸入口使用,又能當輸出口使用。端口,就是元器件上的一個引腳。可以通過軟件去控制。
在大多數的時候,我們將IO口可以看為一個電子開關,通過向IO寄存器中寫入相應的值,其輸出的電平就隨著寄存器的變化而變化,這是IO口的輸出,在大多數的單片機中,需要去配置單片機的IO模式,是輸入還是輸出。
即需要預先初始化,配置GPIO的參數,再去使用GPIO。在51單片機中不支持這樣的操作,即不能配置GPIO的參數。
51GPIO
除去P3口的特殊引腳,P1/P2/P3/P4上電復位后為準雙向口/弱上拉(傳統8051的/0口)模式。P3口可通過配置其他寄存器使用第二功能。
P0口上電復位后為開漏輸出,無法輸出高電平,但是如果在output上接上拉電阻,則可以進行電平轉換,且驅動能力較強。當P0口作為地址/數據復用總線使用時,不用外加上拉電阻(極少極少使用)學習單片機,需要購買器件可以去唯樣商城,學生什么的還有優惠。
準雙向
準雙向口輸出類型可用作輸出和輸入功能而不需重新配置端口輸出狀態,其上電復位默認電平為高。
當端口輸入為1時,其驅動能力極若,其允許外部將其拉低。如按鍵。當輸出為低時,驅動能力很強,可吸收相當大的電流。因此采用由高電平向低電平轉換的按鍵設計。
其設計采用3個上拉晶體管適應不同的需求,在3個上拉晶體管中,有1個上拉晶體管稱為“弱上拉”,當端口寄存器為1且引腳本身也
為1時打開。此上拉提供基本驅動電流使準雙向口輸出為1。
如果一個引腳輸出為1而由外部裝置下拉到低時,弱上拉關閉而“極弱上拉”維持開狀態,為了把這個引腳強拉為低,外部裝置必須有足夠的灌電流能力使引腳上的電壓降到門檻電壓以下。
第2個上拉晶體管,稱為“極弱上拉”,當端口鎖存為1時打開。當引腳懸空時,這個極弱的上拉源產生很弱的上拉電流將引腳上拉為高電平。
第3個上拉晶體管稱為“強上拉”。當端口鎖存器由0到1跳變時,這個上拉用來加快準雙向口由邏輯0到邏輯1轉換。當發生這種情況時,強上拉打開約2個時鐘以使引腳能夠迅速地上拉到高電平。
準雙向IO口在讀取外部狀態時,需要先寫1,才可正確的讀取外部正確狀態。
開漏輸出
當p0輸出1時,由于內部結構,只能輸出高阻態,需外加10K-4.7K的上拉電阻才可正常輸出。當端口鎖存器為0時,開漏輸出關閉所有上拉晶體管。
如果外部有上拉電阻,開漏的I0口還可讀外部狀態,即此時被配置為開漏模式的I/0口還可作為輸入I/0口。這種方式的下拉與準雙向口相同。
Ps:以下是(STC89C52RC)數據手冊中提供的一些關于數碼管電路的一些參考,學習單片機,需要購買器件可以去唯樣商城,學生什么的還有優惠。
審核編輯:湯梓紅
-
51單片機
+關注
關注
274文章
5704瀏覽量
123665 -
GPIO
+關注
關注
16文章
1204瀏覽量
52124 -
IO口
+關注
關注
3文章
170瀏覽量
24054
發布評論請先 登錄
相關推薦
評論