Ⅰ 51單片機p0p1p2p3口,到底有啥區別啊,他們的基本功能有啥
51單片機p0、p1、p2、p3口區別如下:
一、意思不同
P0口作輸出口用時,需加上拉電阻。P0口有復用功能。當對外部存儲器進行讀寫操作時,P0口先是
提供外部存儲器的低8位地址,供外部存儲器地址鎖存器鎖存,然後充當數據線,用於寫出或讀入數
據。P1口、P2口只是普通IO口。
二、功能不同
P0口第一個功能是數據介面,第二個功能是地址低八位,P2口第二個功能是地址高八位。另外除了
P0口沒有內部上拉電阻外,其他三個都有內部上拉電阻。
三、用法
信號輸出和交互介面,編程可以確定不同的功能,例如連接液晶屏,作為控制信號輸出輸入等。
由於沒有埠復用功能,所以,P0口的V1變成了一個上拉電阻。由於內部就有上拉電阻,所以,作
為GPIO時,P1口不需要接上拉電阻,當然,您接了也沒關系啦,就相當於兩個上拉電阻並聯。
基本功能:
一、P1 就沒多少功能,就是個准雙向I/O口。
二、P0當准IO口使用,也就是既可以用作輸出口,也可以用作輸入口。
三、P3口除了是個准雙向I/O口外。第二功能很重要P3.0 (RXD)串列數據接收端,P3.1 (TXD)
串列數據發送端,P3.2 (INT0)外部中斷0輸入,P3.3 (INT1)外部中斷1輸入;
P3.4(T0)Timer0計數器輸入,P3.5(T1)Timer1計數器輸入,P3.6(WR)寫外部存儲器的脈沖
輸出,P3.7(RD)讀外部存儲器的脈沖輸出。
(1)單片機P0口是從下往上數嗎擴展閱讀
1、P0口:真正的雙向口,輸出鎖存,輸入緩沖,輸入前要先置1(KEIL包含的頭文件已經有動作
了,如果用匯編,要人工置1),輸出為漏極開路,輸出一般都要上拉電阻。輸入為高阻態,能驅動
8個TTL負載。當有片外存儲器時,作數據線使用。
2、P1口:最簡單的口,輸入也要先置1,無高阻態,只能是輸出或者輸入。能驅動4個TTL負載。
3、P2口:I/O(輸入/輸出)與P1口一樣,當有片外存儲器時,作地址線使用,定址64K片外數據存
儲器。能驅動4個TTL負載。
4、P3口:I/O(輸入/輸出)與P1口一樣,但無論輸入輸出都要先置1。具有很多復用功能。
Ⅱ 單片機p0口結構原理
當內部匯流排輸入是1時,Q非是0,T2截止,p0是1;--不全面,T1也截止,P0應該是高阻態。
當內部匯流排輸入是0時,Q非是1,T2導通,p0是0(即保持了一致),
想問下這個原因是什麼?
----
原因就是:各個電路器件的特性。
電路的分析過程,在上面說的,雖有遺漏,也算是很仔細了。
樓主,是那一句,看不懂呢?
Ⅲ 單片機io口怎麼排序呢
這里的PIO口都是個一位元組的寄存器,晶元內部規定P2.0為最低位,P2.7為最高位;
而數據的表示方式按約定是高位在左低位在右的排序,所以有你看到的1111 1110的順序;
而當數據按位進行串列傳輸,同時先傳低位時,就有你想看到的0111 1111 的順序了;
Ⅳ 關於51單片機的p0口工作原理的一個小疑問
傳統的51單片機P0與P1 P2 P3口的大概區別就是內部沒有上拉電阻,所以當你用作輸入時,需要外部加上一個上拉電阻.
沒有上拉電阻,所以需要先寫1在讀取.
Ⅳ 單片機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門,當驅動上接電流負載時,需要外接上拉電阻。