單片機IO口結構與工作原理_第1頁
單片機IO口結構與工作原理_第2頁
單片機IO口結構與工作原理_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、、P0端口的構造及工作原理P0端口 8位中的一位構造圖見下列圖:內部總線讀引腳-控制信號(0、VI地址/數據+ VCCL<3http/WWW zsP0 口工作無理B3由上圖可見,P0端口由鎖存器、輸入緩沖器、切換開關、一個與非門、一個與 門及場效應管驅動電路構成 下面,先分析組成P0 口的各個局部:先看輸入緩沖器:在P0 口中,有兩個三態(tài)的緩沖器,在其的輸出端可以是高電 平、低電平,同時還有一種就是高阻狀態(tài)或稱為制止狀態(tài),上面一個是讀鎖 存器的緩沖器,下面一個是讀引腳的緩沖器,讀取PO.X引腳上的數據,要使這個三態(tài)緩沖器有效,引腳上的數據才會傳輸到部數據總線上。D鎖存器:在51單片機的3

2、2根I/O 口線中都是用一個D觸發(fā)器來構成鎖存器的。D端是數據輸入端,CP是控制端也就是時序控制信號輸入端,Q是輸出端,Q非是反向輸出端。多路開關:在51單片機中,不需要外擴展存儲器時,P0 口可以作為通用的輸入 輸出端口即I/O使用,對于8031部沒有ROM的單片機或者編寫的程序 超過了單片機部的存儲器容量,需要外擴存儲器時,P0 口就作為地址/數據總線使用。這個多路選擇開關就是用于選擇是做為普通I/O 口使用還是作為數據/地址總線使用的選擇開關了。當多路開關與下面接通時,P0 口是作為普通的I/O 口使用的,當多路開關是與上面接通時,P0 口是作為 地址/數據總線使用的。輸出驅動部份:P0

3、 口的輸出是由兩個MOS管組成的推拉式構造,也就是說,這 兩個MOS管一次只能導通一個,當 V1導通時,V2就截止,當V2導通時,V1 截止。P0 口作為I/O端口使用時,多路開關的控制信號為 0低電平,V1管截止, 多路開關是與鎖存器的Q非端相接的即P0 口作為I/O 口線使用。作為地址/ 數據線使用時,多路開關的控制信號為 1,V1管由地址/數據線決定,多路開關 與地址/數據線連接。輸出過程:1、I/O輸出工作過程:當寫鎖存器信號 CP有效,數據總線的信號一鎖存器的輸 入端D-鎖存器的反向輸出Q非端一多路開關-V2管的柵極-V2的漏極到輸出 端P0.X這時多路開關的控制信號為低電平 0,

4、V1管是截止的,所以作為輸出 口時,P0是漏極開路輸出,類似于OC門,當驅動上接電流負載時,需要外接上 拉電阻。下列圖就是由部數據總線向P0 口輸出數據的流程圖紅色箭頭。*VCCPO”腳預存器 內沽息線二m 片犠仃器_t p :/WWW控!W信弓(0*VI莖誹丿關Rcom逢引腳2、地址輸出過程控制信號為1,地址信號為“時,與門輸出低電平,V1管截止;反相器輸出高 電平,V2管導通,輸出引腳的地址信號為低電平。http;/www zsMCU comPO口作為壇址銭.址制tfr號博1.內制總線Vl«±輸出為低電半0耳饋禰5»地址信號為0時的工作訛eu反之,控制信號為“

5、、地址信號為1,與門輸出為高電平,V1管導通; 反相器輸出低電平,V2管截止,輸出引腳的地址信號為高電平。請看下列圖蘭 色字體為電平:P0 口作為it址罐地址tfr號為1時的工作3MM0B可見,在輸出 地址/數據信息時,VI、V2管是交替導通的,負載能力很強, 可以直接與外設存儲器相連,無須增加總線驅動器。3、作為數據總線的輸出過程如果該指令是輸出數據,如 MOVX DPTR A將累加器的容通過 P0 口數據總 線傳送到外部RAM中,那么多路開關 控制信號為'與門解鎖,與輸出 地址信號的工作流程類似,數據據由 地址/數據'線反相器V2場效應管柵極 -V2漏極輸出。輸入過程:1、

6、I/O讀引腳工作過程:讀芯片引腳上的數據時,讀引腳緩沖器翻開,通過部數據總線輸入,請看下列圖紅色簡頭。P0口讀引種時的沫根禺2、I/O讀鎖存器工作過程:通過翻開讀鎖存器三態(tài)緩沖器讀取鎖存器輸出端 Q的狀態(tài),請看下列圖紅色 箭頭:內部總錢幵fit存!BP0 口慎領存黯吋的派程地址/數摞+VCC旳制信號(隊1)3、地址/數據時讀指令碼和數據過程作為數據總線使用。在訪問外部程序存儲器時,P0 口輸出低8位地址信息后,將變?yōu)閿祿偩€,以便讀指令碼輸入。在取指令期間, 控制信號為“, V1管截止,多路開關也跟著轉向鎖存器反相輸出端Q非;CPU自動將OFFH11111111,即向D鎖存器寫入一個高電平&#

7、39;寫入P0 口鎖存器,使V2管截 止,在讀引腳信號控制下,通過讀引腳三態(tài)門電路將指令碼讀到部總線, 這個過 程和I/O讀引腳過程是一樣的。在輸入狀態(tài)下,從鎖存器和從引腳上讀來的信號一般是一致的,但也有例外。例如,當從部總線輸出低電平后,鎖存器 Q= 0, Q非=1,場效應管T2開通,端 口線呈低電平狀態(tài)。此時無論端口線上外接的信號是低電乎還是高電平,從引腳讀入單片機的信號都是低電平,因而不能正確地讀入端口引腳上的信號。又如, 當從部總線輸出高電平后,鎖存器 Q= 1, Q非=0,場效應管T2截止。如外接 引腳信號為低電平,從引腳上讀入的信號就與從鎖存器讀入的信號不同。為此, 8031單片機

8、在對端口 P0 一 P3的輸入操作上,有如下約定:為此,8051單片機 在對端口 P0一 P3的輸入操作上,有如下約定:凡屬于讀-修改-寫方式的指令, 從鎖存器讀入信號,其它指令那么從端口引腳線上讀入信號。讀-修改-寫指令的特點是,從端口輸入(讀)信號,在單片機加以運算(修改)后,再輸出(寫)到該端口 上。這樣安排的原因在于讀-修改-寫指令需要得到端口原輸出的狀態(tài),修改后再 輸出,讀鎖存器而不是讀引腳,可以防止因外部電路的原因而使原端口的狀態(tài)被 讀錯。當P0作為地址/數據總線使用時,在讀指令碼或輸入數據前,CPU自動向 P0 口鎖存器寫入0FFH,破壞了 P0 口原來的狀態(tài)。因此,不能再作為通

9、用的 I/O 端口。在系統(tǒng)設計時務必注意,即程序中不能再含有以P0 口作為操作數包含源操作數和目的操作數的指令。、P1端口的構造及工作原理jxbR評細內部總統(tǒng)讀引腳Pl 口工作原理圖http:/www smcucom由圖可見,P1端口與P0端口的主要差異在于,P1端口用部上拉電阻R代替了 P0端口的場效應管T1,并且輸出的信息僅來自部總線。由部總線輸出的數據經 鎖存器反相和場效應管反相后,鎖存在端口線上,所以,P1端口是具有輸出鎖存的靜態(tài)口。要正確地從引腳上讀入外部信息, 必須先使場效應管關斷,以便由 外部輸入的信息確定引腳的狀態(tài)。 為此,在作引腳讀入前,必須先對該端口寫入l。具有這種操作特點

10、的輸入/輸出端口,稱為準雙向I/O 口。8051單片機的P1、 P2、P3都是準雙向口。P0端口由于輸出有三態(tài)功能,輸入前,端口線已處于高 阻態(tài),無需先寫入I后再作讀操作。單片機復位后,各個端口已自動地被寫入了 1,此時,可直接作輸入操作。如果在應用端口的過程中,已向P1 一 P3端口線輸出過0,那么再要輸入時,必須先寫1后再讀引腳,才能得到正確的信息。此 外,隨輸入指令的不同,P1端口也有讀鎖存器與讀引腳之分。三、P2端口的構造及工作原理P2內部總線名蹄幵黃地址/數1KP2 口工作原理罔上拉電科由圖可見,P2端口在片既有上拉電阻,又有切換開關MUX,所以P2端口在功能 上兼有P0端口和P1端

11、口的特點。這主要表現在輸出功能上,當切換開關向下接 通時,從部總線輸出的一位數據經反相器和場效應管反相后,輸出在端口引腳線上;當多路開關向上時,輸出的一位地址信號也經反相器和場效應管反相后,輸出在端口引腳線上。對于8031單片機必須外接程序存儲器才能構成應用電路或者我們的應用電路 擴展了外部存儲器,而P2端口就是用來周期性地輸出從外存中取指令的地址 (高 8位地址),因此,P2端口的多路開關總是在進展切換,分時地輸出從部總線來 的數據和從地址信號線上來的地址。因此 P2端口是動態(tài)的I/O端口。輸出數據 雖被鎖存,但不是穩(wěn)定地出現在端口線上。 其實,這里輸出的數據往往也是一種 地址,只不過是外部

12、RAM的高8位地址。在輸入功能方面,P2端口與P0和H端口 一樣,有讀引腳和讀鎖存器之分, 并且P2端口也是準雙向口??梢?,P2端口的主要特點包括: 不能輸出靜態(tài)的數據; 自身輸出外部程序存儲器的高8位地址;執(zhí)行MOVX指令時,還輸出外部 RAM的高位地址,故稱P2端口為動態(tài)地址 端口。即然P2 口可以作為I/O 口使用,也可以作為地址總線使用,下面我們就分析下 它的兩種工作狀態(tài)。1、作為I/O端口使用時的工作過程沒有外部程序存儲器或雖然有外部數據存儲器,但容易不大于256B,即不需要高8位地址時在這種情況下,不能通 過數據地址存放器DPTR讀寫外部數據存儲器,P2 口可以I/O 口使用。這時

13、, 控制信號為“,多路開關轉向鎖存器同相輸出端 Q,輸出信號經部總線一鎖 存器同相輸出端Qf反相器f V2管柵極f V2管9漏極輸出。由于V2漏極帶有上拉電阻,可以提供一定的上拉電流,負載能力約為8個TTL與非門;作為輸出口前,同樣需要向鎖存器寫入“,使反相器輸出低電平,V2管截止,即引腳懸空時為高電平,防止引腳被鉗位在低電平。讀引腳有效后, 輸入信息經讀引腳三態(tài)門電路到部數據總線。2、作為地址總線使用時的工作過程 P2 口作為地址總線時,控制信號為1' 多路開關車向地址線即向上接通,地址信息經反相器 -V2管柵極-漏極輸 出。由于P2 口輸出高8位地址,與P0 口不同,無須分時使用,

14、因此 P2 口上的 地址信息程序存儲器上的A15A8功數據地址存放器高8位DPH保存時間長, 無須鎖存。四、P3端口的構造及工作原理P3 口是一個多功能口,它除了可以作為I/O 口外,還具有第二功能,P3端口的 一位構造見下列圖P3J腳鎖存器內 M 4 j 丫£ ”上拉電阻1弟二功能輸入P3 口工作冰理園 ht tp'/www 上上圖可見,P3端口和P1端口的構造相似,區(qū)別僅在于 P3端口的各端口線有兩種功能選擇。當處于第一功能時,第二輸出功能線為1,此時,部總線信號經鎖存器和場效應管輸入/輸出,其作用與P1端口作用一樣,也是靜態(tài)準雙向I/O端 口。當處于第二功能時,鎖存器輸

15、出1,通過第二輸出功能線輸出特定的含信號, 在輸入方面,即可以通過緩沖器讀入引腳信號,還可以通過替代輸入功能讀入片 的特定第二功能信號。由于輸出信號鎖存并且有雙重功能,故P3端口為靜態(tài)雙功能端口。使P3端品各線處于第二功能的條件是1、串行I/O處于運行狀態(tài)(RXD,TXD);2、翻開了處部中斷(INT0,INT1);3、定時器/計數器處于外部計數狀態(tài)(T0,T1)4、執(zhí)行讀寫外部RAM的指令(RD,WR)在應用中,如不設定P3端口各位的第二功能(WR,RD信號的產生不用設置),那 么P3端口線自動處于第一功能狀態(tài),也就是靜態(tài)1/O端口的工作狀態(tài)。在更多 的場合是根據應用的需要,把幾條端口線設置

16、為第二功能,而另外幾條端口線處 于第一功能運行狀態(tài)。在這種情況下,不宜對P3端口作字節(jié)操作,需采用位操作的形式。四、驅動能力P0端口能驅動8個LSTT負載。如需增加負載能力,可在 P0總線上增加總線驅 動器。P1, P2, P3端口各能驅動4個LSTTL負載。由于P0-P3端口已映射成特殊 功能存放器中的P0一 P3端口存放器,所以對這些端口存放器的讀/寫就實現了 信息從相應端口的輸入/輸出。例如:MOV A, P1 ;把Pl端口線上的信息輸入到 AMoV P1, A ;把A的容由P1端口輸出MOV P3, #0FFH ;使P3端口線各位置II/O口線的低電平的驅動能力明顯高于高電平的驅動能力

17、;關于51單片機P0 口的構造及上拉問題1 .P0作為地址數據總線時,T1和T2是一起工作的,構成推挽構造。高電平時, T1翻開,T2截止;低電平時,T1截止,T2翻開。這種情況下不用外接上 拉電阻.而且,當T1翻開,T2截止輸出高電平的時候,因為部電源直接通過T1輸出 到P0口線上,因此驅動能力(電流河以很大,這就是為什么教科書上說可以"驅動8 個TTL負載"的原因.2 .P0作為一般端口時,T1就永遠的截止,T2根據輸出數據0導通和1截止, 導通時拉地,當然是輸出低電平;截止時,PO 口就沒有輸出了, (注意,這種情 況就是所謂的高阻浮空狀態(tài)),如果加上外部上拉電阻,輸

18、出就變成了高電平 1.3 .其他端口 P1、P2、P3,在部直接將P1 口中的T1換成了上拉電阻,所以不 用外接,但部上拉電阻太大,電流太小,有時因為電流不夠,也會再并一個上拉 電阻。4. 在某個時刻,P0 口上輸出的是作為總線的地址數據信號還是作為普通I/O 口的電平信號,是依靠多路開關MUX來切換的.而MUX的切換,又是根據單片機指令來 區(qū)分的當指令為外部存儲器/IO 口讀/寫時,比方MOVX A,DPTR ,MUX!切換到地 址/數據總線上 而當普通MOV傳送指令操作P0 口時,MUX是切換到部總線上的.PS:Because Ports 1, 2, and 3 have fixed in

19、ternal pullups, they are sometimes called quasi- bidirecti on al" ports.因為端口 1、2、3有固定的部上拉,所以有時候他們被稱為"準雙向"口 .Port 0, on the other hand, is con sidered true" bidirecti on al, because whe n con figured as an in put it floats.端口 0,從另外一方面來說,就被認為是"真正的"雙向,因為當它被設置為輸入的時 候是浮空(高阻態(tài)

20、)的51單片機P0 口的作為I/O的問題,其實看了 51的P1 口的電路就很容易理 解了,主要是一個鎖存器和推拉構造,在此作些說明。當用作輸出,所有口線的狀態(tài)都與 SFR鎖存位的設置有密切的聯系。P0 口為低除外。當P0 口的一個位寫入0時,這個位被拉低。但是對 P0 口 的其中一個位寫入1時,這個位呈現高阻,也就是未能連機,不能使用。要想獲 得1輸出,你必須在P0 口外加上拉電阻。一般驅動LED的上拉電阻為470Q,外 接邏輯電路的上拉電阻為 4.7K。補充:一些口線被作為簡單的高電平輸入也與SFR鎖存位有關。因為P1、P2、P3有部上拉電阻,可以隨意被拉高,拉低。 而P0 口作為高電平輸入

21、時,也會呈現高阻態(tài)。P0 口和P2 口的輸入緩沖被用來作存取外部存貯用, P0 口用作外部存貯器 的低位字節(jié)的位址,并與數據讀寫多工。輸出第一位元址,當位置線是16位時, P2 口用作高8位的位址線,因此當對外面存貯時,P0 口、P2 口沒法當作I/O 口 線。P1 口具有部上拉電阻,當端口用作輸入時,必須通過指令將端口的位鎖存 器置1,以關閉輸出驅動場效應管,這時 P1 口的引腳由部上拉電阻拉為高電平, 所以向P1寫入1, 工作正常。P0那么不同,它沒有部上拉電阻,在驅動場效應管的上方有一個提升場效 應管,它只是在對外存儲器進展讀寫操作,用作地址/數據時才起作用,當向位鎖存器寫入1,使驅動場效應管截止,那么引腳浮空,所以寫入1而未獲得。P0 口上拉電阻的阻值:1、如果是驅動led,那么用1K左右的就行了。如果希望亮度大一些,電阻可減小,最小不要小于200歐姆,否那么電流太大;如果希望亮度小一些,電阻可增 大,增加到多少呢,主要看亮度情況,以亮度適宜為準,一般來說超過3K以上時,亮度就很弱了,但是對于超高亮度的LED有時候電阻為10K時覺得亮度還能夠用。我通常就用1k的。2、對于驅動光耦合器,如果是高電位有效,即耦合器輸入端接端口和地之間, 那么和LED的情況是一樣的;如果是低電位有效,即耦合器輸入端接端口和 VCC 之間,那么除了要串接一個1 4.7k之間的電阻以外,同時上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論