微控制器IO口介紹 OK

2022-08-20 16:06:06 字數 3168 閱讀 8257

微控制器i/o口的使用

對微控制器的控制,其實就是對i/o口的控制,無論微控制器對外界進行何種控制,或接受外部的何種控制,都是通過i/o口進行的。51微控制器總共有p0、p1、p2、p3四個8位雙向輸入輸出埠,每個埠都有鎖存器、輸出驅動器和輸入緩衝器。4個i/o埠都能作輸入輸出口用,其中p0和p2通常用於對外部儲存器的訪問。

51系列微控制器有4個i/o埠,每個埠都是8位準雙向口,共佔32根引腳。每個埠都包括乙個鎖存器(即專用暫存器p0~p3)、乙個輸出驅動器和輸入緩衝器。通常把4個埠籠統地表示為p0~p3。

在無片外擴充套件儲存器的系統中,這4個埠的每一位都可以作為準雙向通用i/o埠使用。在具有片外擴充套件儲存器的系統中,p2口作為高8位位址線,p0口分時作為低8位位址線和雙向資料匯流排。

51微控制器4個i/o埠線路設計的非常巧妙,學習i/o埠邏輯電路,不但有利於正確合理地使用埠,而且會給設計微控制器外圍邏輯電路有所啟發。

下面簡單介紹一下輸入/輸出埠結構。

一、 p0口和p2的結構

1、p0口的結構

下圖為p0口的某位結構圖,它由乙個輸出鎖存器、兩個三態輸入緩衝器和輸出驅動電路及控制電路組成。從圖中可以看出,p0口既可以作為i/o用,也可以作為位址/資料線用。

a、p0口作為普通i/o口

①輸出時

cpu發出控制電平「0」封鎖「與」門,將輸出上拉場效電晶體t1截止,同時使多路開關mux把鎖存器與輸出驅動場效電晶體t2柵極接通。故內部匯流排與p0口同相。由於輸出驅動級是漏極開路電路,若驅動nmos或其它拉流負載時,需要外接上拉電阻。

p0的輸出級可驅動8個lsttl負載。

② 輸入時----分讀引腳或讀鎖存器

讀引腳:由傳送指令(mov)實現;

下面乙個緩衝器用於讀埠引腳資料,當執行一條由埠輸入的指令時,讀脈衝把該三態緩衝器開啟,這樣埠引腳上的資料經過緩衝器讀入到內部匯流排。

讀鎖存器:有些指令如:anl p0,a稱為「讀-改-寫」 指令,需要讀鎖存器。

上面乙個緩衝器用於讀埠鎖存器資料。

原因:如果此時該埠的負載恰是乙個電晶體基極,且原埠輸出值為1,那麼導通了的pn結會把埠引腳高電平拉低;若此時直接讀埠引腳訊號,將會把原輸出的「1」電平誤讀為「0」電平。現採用讀輸出鎖存器代替讀引腳,圖中,上面的三態緩衝器就為讀鎖存器q端訊號而設,讀輸出鎖存器可避免上述可能發生的錯誤。

準雙向口:

從圖中可以看出,在讀入埠資料時,由於輸出驅動fet並接在引腳上,如果t2導通,就會將輸入的高電平拉成低電平,那麼不管外部是高電平還是低電平,微控制器接受到的資料都是0。產生誤讀。可見,要讓這一埠作為輸入使用,要先做乙個『準備工作』,就是先讓內部的開關斷開,也就是讓埠輸出『1』才行,使t2截止,引腳處於懸浮狀態,變為高阻抗輸入。

正因為要先做這麼乙個準備工作,所以我們稱之為「準雙向i/o口」。

8051微控制器在對埠p0一p3的輸入操作上,有如下約定:凡屬於讀-修改-寫方式的指令,從鎖存器讀入訊號,其它指令則從埠引腳線上讀入訊號。

b、p0作為位址/資料匯流排

在系統擴充套件時,p0埠作為位址/資料匯流排使用時,分為:

p0引腳輸出位址/資料資訊。

cpu發出控制電平「1」,開啟「與」門,又使多路開關mux把cpu的位址/資料匯流排與t2柵極反相接通,輸出位址或資料。由圖上可以看出,上下兩個fet處於反相,構成了推拉式的輸出電路(t1導通時上拉,t2導通時下拉),其負載能力大大增強。

p0引腳輸出位址/輸入資料

輸入訊號是從引腳通過輸入緩衝器進入內部匯流排。

此時,cpu自動使mux向下,並向p0口寫「1」,「讀引腳」控制訊號有效,下面的緩衝器開啟,外部資料讀入內部匯流排。

2、p2的內部結構

口作為普通i/o口

cpu發出控制電平「0」 ,使多路開關mux倒向鎖存器輸出q端,構成乙個準雙向口。其功能與p1相同。

口作為位址匯流排

在系統擴充套件片外程式儲存器擴充套件資料儲存器且容量超過256b (用movx @dptr指令)時,cpu發出控制電平「1」,使多路開關mux倒內部位址線。此時,p2輸出高8位位址。

補充:在具有片外擴充套件儲存器系統中,p2口送出高8位位址.p0口為雙向匯流排,分時送出低8位位址和資料的輸入/輸出。

二、 p1口和p3口的內部結構

①p1口的一位的結構

它由乙個輸出鎖存器、兩個三態輸入緩衝器和輸出驅動電路組成----準雙向口。

②p3的內部結構

1、作為通用i/o口與p1口類似----準雙向口(w=1)

2、p3第二功能(q=1)此時引腳部分輸入(q=1、w=1) ,部分輸出(q=1、w輸出) 。

p3第二功能各引腳功能定義:

p3.0:rxd序列口輸入

p3.1:txd序列口輸出

p3.2:int0外部中斷0輸入

p3.3:int1外部中斷1輸入

p3.4:t0定時器0外部輸入

p3.5:t1定時器1外部輸入

p3.6:wr外部寫控制

p3.7:rd外部讀控制

綜上所述:

當p0作為i/o口使用時,特別是作為輸出時,輸出級屬於開漏電路,必須外接上拉電阻才會有高電平輸出;如果作為輸入,必須先向相應的鎖存器寫「1」,才不會影響輸入電平。

當cpu內部控制訊號為「1」時,p0口作為位址/資料匯流排使用,這時,p0口就無法再作為i/o口使用了。

p1、p2 和p3 口為準雙向口, 在內部差別不大, 但使用功能有所不同。

p1口是使用者專用 8 位準雙向i/o口, 具有通用輸入/輸出功能, 每一位都能獨立地設定為輸入或輸出。當有輸出方式變為輸入方式時, 該位的鎖存器必須寫入「1」, 然後才能進入輸入操作。

p2口是 8 位準雙向i/o口。外接i/o裝置時, 可作為擴充套件系統的位址匯流排, 輸出高8位位址, 與p0 口一起組成 16 位位址匯流排。 對於 8031 而言, p2 口一般只作為位址匯流排使用, 而不作為i/o線直接與外部裝置相連。

前已述及,由於p0-p3埠已對映成特殊功能暫存器中的p0一p3埠暫存器,所以對這些埠暫存器的讀/寫就實現了資訊從相應埠的輸入/輸出。

例如:mov a, p1 ;把pl埠線上的資訊輸入到a

mov p1, a ;把a的內容由p1埠輸出

mov p3, #0ffh ;使p3埠線各位置l

??????為此,在作引腳讀入前,必須先對該埠寫入l。具有這種操作特點的輸入/輸出埠,稱為準雙向i/o口。

8051微控制器的p1、p2、p3都是準雙向口。p0埠由於輸出有三態功能,輸入前,埠線已處於高阻態,無需先寫入l後再作讀操作。

51微控制器IO引腳IO口工作原理

一 p0埠的結構及工作原理 p0埠8位中的一位結構圖見下圖 由上圖可見,p0埠由鎖存器 輸入緩衝器 切換開關 乙個與非門 乙個與門及場效電晶體驅動電路構成。再看圖的右邊,標號為p0.x引腳的圖示,也就是說p0.x引腳可以是p0.0到p0.7的任何一位,即在p0口有8個與上圖相同的電路組成。下面,我們...

51微控制器IO口使用經驗

按常規,在51埠 p1 p2 p3 某位用作輸入時,必須先向對應的鎖存器寫入1,使fet截止。一般情況是這樣,也有例外。所謂io口內部與電源相連的上拉電阻而非一常規線性電阻,實質上,該電阻是由兩個場效電晶體併聯在一起 乙個fet為負載管,其阻值固定 另乙個fet可工作在導通或截止兩種狀態 姑且叫可變...

數碼管解碼晶元驅動和微控制器IO口介紹

8051引腳 現在我們介紹8051微控制器引腳及功能,8051系列各種晶元的引腳是相互相容的,8051 8751 8031引腳均40腳雙列直插封裝形式。當然,不同晶元之間引腳也略有差異。8051微控制器是高效能微控制器,因受到引腳數目限制,所以不少引腳具有第二功能,各引腳功能簡要說明如下 vcc 4...