❶ 單片機的四個io口分別是
單片機的四個io口分別是P0、P1、P2和P3。
P0口:作外部三匯流排的地址匯流排(低8位)/數據匯流排;
P1口:作擴展型晶元的外部引腳,例如52的C/T2外部信號輸入,S52之WDT的報警輸出等;
P2口:作外部三匯流排的地址匯流排(高8位);
P3口:作串口、定時器、外部中斷的輸入/出線,及外部RAM讀寫的控制信號(外部控制匯流排的一部分)。
❷ 單片機AT89S52的p0,p1,p3管腳都有什麼用
P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0埠寫「1」時,引腳用作高阻抗輸入。
當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有內部上拉電阻。
在flash編程時,P0口也用來接收指令位元組;在程序校驗時,輸出指令位元組。程序校驗時,需要外部上拉電阻。
P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅動4個TTL邏輯電平。對P1埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發輸入(P1.1/T2EX),具體如下表所示。
在flash編程和校驗時,P1口接收低8位地址位元組。
P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX
@DPTR)時,P2口送出高八位地址。在這種應用中,P2口使用很強的內部上拉發送1。在使用8位地址(如MOVX
@RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。
在flash編程和校驗時,P2口也接收高8位地址位元組和一些控制信號。
P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅動4個TTL邏輯電平。對P3埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。
在flash編程和校驗時,P3口也接收一些控制信號。
❸ 單片機p0口工作原理
P0埠由鎖存器、輸入緩沖器、切換開關、一個與非門、一個與門及場效應管驅動電路構成。再看圖的右邊,標號為P0.X引腳的圖標,也就是說P0.X引腳可以是P0.0到P0.7的任何一位,即在P0口有8個與上圖相同的電路組成。
下面,我們先就組成P0口的每個單元部份跟大家介紹一下:
先看輸入緩沖器:在P0口中,有兩個三態的緩沖器,在學數字電路時,我們已知道,三態門有三個狀態,即在其的輸出端可以是高電平、低電平,同時還有一種就是高阻狀態(或稱為禁止狀態),大家看上圖,上面一個是讀鎖存器的緩沖器,也就是說,要讀取D鎖存器輸出端Q的數據,那就得使讀鎖存器的這個緩沖器的三態控制端(上圖中標號為'讀鎖存器』端)有效。下面一個是讀引腳的緩沖器,要讀取P0.X引腳上的數據,也要使標號為'讀引腳』的這個三態緩沖器的控制端有效,引腳上的數據才會傳輸到我們單片機的內部數據匯流排上。
D鎖存器:構成一個鎖存器,通常要用一個時序電路,時序的單元電路在學數字電路時我們已知道,一個觸發器可以保存一位的二進制數(即具有保持功能),在51單片機的32根I/O口線中都是用一個D觸發器來構成鎖存器的。大家看上圖中的D鎖存器,D端是數據輸入端,CP是控制端(也就是時序控制信號輸入端),Q是輸出端,Q非是反向輸出端。
對於D觸發器來講,當D輸入端有一個輸入信號,如果這時控制端CP沒有信號(也就是時序脈沖沒有到來),這時輸入端D的數據是無法傳輸到輸出端Q及反向輸出端Q非的。如果時序控制端CP的時序脈沖一旦到了,這時D端輸入的數據就會傳輸到Q及Q非端。數據傳送過來後,當CP時序控制端的時序信號消失了,這時,輸出端還會保持著上次輸入端D的數據(即把上次的數據鎖存起來了)。如果下一個時序控制脈沖信號來了,這時D端的數據才再次傳送到Q端,從而改變Q端的狀態。
多路開關:在51單片機中,當內部的存儲器夠用(也就是不需要外擴展存儲器時,這里講的存儲器包括數據存儲器及程序存儲器)時,P0口可以作為通用的輸入輸出埠(即I/O)使用,對於8031(內部沒有ROM)的單片機或者編寫的程序超過了單片機內部的存儲器容量,需要外擴存儲器時,P0口就作為'地址/數據』匯流排使用。那麼這個多路選擇開關就是用於選擇是做為普通I/O口使用還是作為'數據/地址』匯流排使用的選擇開關了。大家看上圖,當多路開關與下面接通時,P0口是作為普通的I/O口使用的,當多路開關是與上面接通時,P0口是作為'地址/數據』匯流排使用的。
輸出驅動部份:從上圖中我們已看出,P0口的輸出是由兩個MOS管組成的推拉式結構,也就是說,這兩個MOS管一次只能導通一個,當V1導通時,V2就截止,當V2導通時,V1截止。
與門、與非門:這兩個單元電路的邏輯原理我們在第四課數字及常用邏輯電路時已做過介紹,不明白的同學請回到第四節去看看。
前面我們已將P0口的各單元部件進行了一個詳細的講解,下面我們就來研究一下P0口做為I/O口及地址/數據匯流排使用時的具體工作過程。
1、作為I/O埠使用時的工作原理
P0口作為I/O埠使用時,多路開關的控制信號為0(低電平),看上圖中的線線部份,多路開關的控制信號同時與與門的一個輸入端是相接的,我們知道與門的邏輯特點是「全1出1,有0出0」那麼控制信號是0的話,這時與門輸出的也是一個0(低電平),與讓的輸出是0,V1管就截止,在多路控制開關的控制信號是0(低電平)時,多路開關是與鎖存器的Q非端相接的(即P0口作為I/O口線使用)。
P0口用作I/O口線,其由數據匯流排向引腳輸出(即輸出狀態Output)的工作過程:當寫鎖存器信號CP 有效,數據匯流排的信號→鎖存器的輸入端D→鎖存器的反向輸出Q非端→多路開關→V2管的柵極→V2的漏極到輸出端P0.X。前面我們已講了,當多路開關的控制信號為低電平0時,與門輸出為低電平,V1管是截止的,所以作為輸出口時,P0是漏極開路輸出,類似於OC門,當驅動上接電流負載時,需要外接上拉電阻。