單片機IO口工作_第1頁
單片機IO口工作_第2頁
單片機IO口工作_第3頁
已閱讀5頁,還剩7頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、51單片機I/O 口工作原理、P0端口的結構及工作原理+VCCP0端口 8位中的一位結構圖見下圖:輸入緩沖器地址/數據|控制信號(氏I)丄一II VIP0.XW鎖存器寫鎖存器CLK內部總線I多路開關諛引腳多路開關卜1 http:/www,zsUCUP0 口工作原理圖由上圖可見,P0端口由鎖存器、輸入緩沖器、切換開關、一個與非門、一個與門及場效應管驅動電路構成。再看圖的右邊,標號為P0.X引腳的圖標,也就是說P0.X引腳可以是P0.0到P0.7的任何一位,即在P0 口有8個與上圖相同的電路組成。下面,我們先就組成 P0 口的每個單元部份跟大家介紹一下:先看輸入緩沖器: 在P0 口中,有兩個三態的

2、緩沖器,在學數字電路時,我們已知道,三態門有三個狀態,即在其的輸出端可以是高電平、低電平,同時還有一種就是高阻狀態或稱為禁止狀態),大家看上圖,上面一個是讀鎖存器的緩沖器,也就是說,要讀取D鎖存器輸出端 Q的數據,那就得使讀鎖存器的這個緩沖器的三態控制端 上圖中標號為 讀鎖存器端)有效。下面一個是讀引腳的緩沖器,要讀取 P0.X 引腳上的數據,也要使標號為讀引腳勺這個三態緩沖器的控制端有效,引腳上的數據才會傳輸到我們單片機的內部數據總線上。D鎖存器:構成一個鎖存器,通常要用一個時序電路,時序的單元電路在學數字電路時我們已知道,一個觸發器可以保存一位的二進制數 即具有保持功能),在 51單片機的

3、32根I/O 口線中都是用一個 D觸發器 來構成鎖存器的。大家看上圖中的D鎖存器,D端是數據輸入端,CP是控制端 也就是時序控制信號輸入端),Q是輸出端,Q非是反向輸出端。對于D觸發器來講,當D輸入端有一個輸入信號,如果這時控制端CP沒有信號 也就是時序脈沖沒有到 來),這時輸入端 D的數據是無法傳輸到輸出端 Q及反向輸出端 Q非的。如果時序控制端 CP的時序脈沖一旦到了,這時 D端輸入的數據就會傳輸到 Q及Q非端。數據傳送過來后,當CP時序控制端的時序信號消失了,這時,輸出端還會保持著上次輸入端D的數據 即把上次的數據鎖存起來了)。如果下一個時序控制脈沖信號來了,這時D端的數據才再次傳送到

4、Q端,從而改變Q端的狀態。多路開關:在51單片機中,當內部的存儲器夠用 也就是不需要外擴展存儲器時,這里講的存儲器包括數據存儲器及程序存儲器)時,P0 口可以作為通用的輸入輸出端口即I/O)使用,對于8031內部沒有ROM )的單片機或者編寫的程序超過了單片機內部的存儲器容量,需要外擴存儲器時,P0 口就作為地址/數據總線使用。那么這個多路選擇開關就是用于選擇是做為普通I/O 口使用還是作為 數據/地址總線使用的選擇開關了。大家看上圖,當多路開關與下面接通時,P0 口是作為普通的I/O 口使用的,當多路開關是與上面接通時,P0 口是作為 地址/數據總線使用的。輸出驅動部份: 從上圖中我們已看出

5、,P0 口的輸出是由兩個 MOS管組成的推拉式結構,也就是說,這兩 個MOS管一次只能導通一個,當 V1導通時,V2就截止,當 V2導通時,V1截止。與門、與非門: 這兩個單元電路的邏輯原理我們在第四課數字及常用邏輯電路時已做過介紹,不明白的 同學請回到第四節去看看。前面我們已將P0 口的各單元部件進行了一個詳細的講解,下面我們就來研究一下P0 口做為I/O 口及地址/數據總線使用時的具體工作過程。1、作為I/O端口使用時的工作原理P0 口作為I/O端口使用時,多路開關的控制信號為0低電平),看上圖中的線線部份,多路開關的控制信號同時與與門的一個輸入端是相接的,我們知道與門的邏輯特點是全1出1

6、,有0出0”那么控制信號是0的話,這時與門輸出的也是一個 0低電平),與讓的輸出是 0, V1管就截止,在多路控制開關的控制 信號是0低電平)時,多路開關是與鎖存器的Q非端相接的 即P0 口作為I/O 口線使用)。P0 口用作I/O 口線,其由數據總線向引腳輸出即輸出狀態Output )的工作過程:當寫鎖存器信號 CP有效,數據總線的信號 t鎖存器的輸入端 Dt鎖存器的反向輸出 Q非端t多路開關t V2管的柵極tV2的 漏極到輸出端P0.X。前面我們已講了,當多路開關的控制信號為低電平0時,與門輸出為低電平,V1管是截止的,所以作為輸出口時,P0是漏極開路輸出,類似于 OC門,當驅動上接電流負

7、載時,需要外接上拉電阻。逑鎖存褂內部mbu.1寫鎖存器一CLK輸人iTSff讀引腳V2http:/www. zsMCU.com輸入級沖器地址/數黠+VCCI控制信號(隊1) C ViP0 口由內部數據息錢向引腳輸出時的ataP0 口用作I/O 口線,其由引腳向內部數據總線輸入 即輸入狀態In put )的工作過程:數據輸入時 讀P0 口)有兩種情況1、讀引腳讀芯片引腳上的數據,讀引腳數時,讀引腳緩沖器打開 即三態緩沖器的控制端要有效),通過內部數讀鎖存器輸入緩沖器地址/數據控瞬號(0, 1)+VCC寫鎖存黠www jsUCU. com,http:/VIP0.XW鎖存器CLKQ內部總線i蚓腳P0

8、 口讀引腳時的沫穩圖2、讀鎖存器通過打開讀鎖存器三態緩沖器讀取鎖存器輸出端Q的狀態,請看下圖 紅色箭頭)據總線輸入,請看下圖 紅色簡頭)。讀鎖存器,=:;地址/數據|控制惜號(0. 1)+VCC內部總線饋引腳lzlVIpo.xm鎖存器馬做存誥LK多路開Khttp:/www. zsMCU. comP0 口讀鎖存器時的滾程圖在輸入狀態下,從鎖存器和從引腳上讀來的信號一般是一致的,但也有例外。例如,當從內部總線輸出低電平后,鎖存器 Q= 0, Q非=1,場效應管T2開通,端口線呈低電平狀態。此時無論端口線上外接的信號是低電乎還是高電平,從引腳讀入單片機的信號都是低電平,因而不能正確地讀入端口引腳上的

9、信號。又如,當從內部總線輸出高電平后,鎖存器Q = 1 , Q非=0,場效應管T2截止。如外接引腳信號為低電平,從引腳上讀入的信號就與從鎖存器讀入的信號不同。為此,8031單片機在對端口 P0一 P3的輸入操作上,有如下約定:為此, 8051單片機在對端口 P0一 P3的輸入操作上,有如下約定:凡屬于讀-修改-寫方式的指令,從鎖存器讀入信號,其它指令則從端口引腳線上讀入信號。讀-修改-寫指令的特點是,從端口輸入 (讀信號,在單片機內加以運算 (修改后,再輸出(寫到該端口上。下面是幾條讀-修改-寫指令的例子。這樣安排的原因在于讀-修改-寫指令需要得到端口原輸出的狀態,修改后再輸出,讀鎖存器而不是

10、讀 引腳,可以避免因外部電路的原因而使原端口的狀態被讀錯。P0端口是8031單片機的總線口,分時出現數據D7一 D0、低8位地址A7一 AO,以及三態,用來接口存儲器、外部電路與外部設備。P0端口是使用最廣泛的1/O端口。2、作為地址/數據復用口使用時的工作原理在訪問外部存儲器時 P0 口作為地址/數據復用口使用。這時多路開關 控制信號為1與門解鎖,與門輸出信號電平由 地址/數據”線信號決定;多路開關 與反相器的輸出端相連,地址信號經地址/數據”線t反相器tV2場效應管柵極tV2漏極輸出。例如:控制信號為1,地址信號為0 ”時,與門輸出低電平,V1管截止;反相器輸出高電平,V2管導通,讀屮抑N

11、 http:/www zsUCU. comP0 口作為地址線 控制估號為1, 地址佶號為。時的工作潦程圖V2管反之,控制信號為 1 ”地址信號為1 ” 與門”輸出為高電平,V1管導通;反相器輸出低電平,截止,輸出引腳的地址信號為高電平。請看下圖 蘭色字體為電平):輸入咖ttttt/O城ITzI控制信號0 1)- 1 VI寫鎖備po. m存器1導通輸出為高電半1Y2PO.xJIVS tih卜 http:/www. zsMCU comPO 口件為地址線”控制儲號為1, 地址佶號為1時的工作灤程可見,在輸出 地址/數據”信息時,VI、V2管是交替導通的,負載能力很強,可以直接與外設存儲器相 連,無須

12、增加總線驅動器。P0 口輸出低8位地址信息后,將變為數據總P0 口又作為數據總線使用。在訪問外部程序存儲器時, 線,以便讀指令碼 1rpo*iwm存器VIV2VI截止輸出為高電ih愉入級種器http:/wwwr zsmcu, comPQ 口作為數據蔑線,取指期間工作潦程圉如果該指令是輸出數據,如MOVX DPTR ,A將累加器的內容通過 P0 口數據總線傳送到外部RAM中),則多路開關 控制”信號為1 與門”解鎖,與輸出地址信號的工作流程類似,數據據由地址/數據”線t反相器tV2場效應管柵極tV2漏極輸出。如果該指令是輸入數據 讀外部數據存儲器或程序存儲器),如 MOVX A , DPTR將外

13、部RAM某 一存儲單元內容通過 P0 口數據總線輸入到累加器 A中),則輸入的數據仍通過讀引腳三態緩沖器到內部 總線,其過程類似于上圖中的讀取指令碼流程圖。通過以上的分析可以看出,當P0作為地址/數據總線使用時,在讀指令碼或輸入數據前,CPU自動向P0 口鎖存器寫入OFFH,破壞了 P0 口原來的狀態。因此,不能再作為通用的I/O端口。大家以后在系統設計時務必注意,即程序中不能再含有以P0 口作為操作數 包含源操作數和目的操作數)的指令。、P1端口的結構及工作原理P1 口的結構最簡單,用途也單一,僅作為數據輸入/輸出端口使用。輸出的信息有鎖存,輸入有讀引腳和讀鎖存器之分。P1端口的一位結構見下

14、圖由圖可見,P1端口與P0端口的主要差別在于,P1端口用內部上拉電阻 R代替了 P0端口的場效應管T1,并且輸出的信息僅來自內部總線。由內部總線輸出的數據經鎖存器反相和場效應管反相后,鎖存在 端口線上,所以,P1端口是具有輸出鎖存的靜態口。由上圖可見,要正確地從引腳上讀入外部信息,必須先使場效應管關斷,以便由外部輸入的信息確定引腳的狀態。為此,在作引腳讀入前,必須先對該端口寫入I。具有這種操作特點的輸入 /輸出端口,稱為準雙向I/O 口。8051單片機的P1、P2、P3都是準雙向口。 P0端口因為輸出有三態功能,輸入前,端口 線已處于高阻態,無需先寫入I后再作讀操作。P1 口的結構相對簡單,前

15、面我們已詳細的分析了P0 口,只要大家認真的分析了P0 口的工作原理,P1口我想大家都有能力去分析,這里我就不多論述了。單片機復位后,各個端口已自動地被寫入了 1,此時,可直接作輸入操作。如果在應用端口的過程中, 已向P1 一 P3端口線輸出過0,則再要輸入時,必須先寫 1后再讀引腳,才能得到正確的信息。此外,隨 輸入指令的不同,H端口也有讀鎖存器與讀引腳之分。三、P2端口的結構及工作原理P2端口的一位結構見下圖:讀鎖存器輸入!豪沖器地址/數揭+VCC控制信號(0. 1) I內部總線i蚓腳多路開關ffl1寫鎖存豁http:/www.zsmcu,comP2 口工作原理圖由圖可見,P2端口在片內既

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

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

18、寄存器DPTR讀寫外部數據存儲器),P2 口可以I/O 口使用。這時,控制”信號為0”,多路開關轉向鎖存器同相輸出端Q,輸出信號經內部總線 t鎖存器同相輸出端 Qt反相器t V2管柵極t V2管9漏極輸出。因為V2漏極帶有上拉電阻,可以提供一定的上拉電流,負載能力約為8個TTL與非門;作為輸出口前,同樣需要向鎖存器寫入1 ”,使反相器輸出低電平,V2管截止,即引腳懸空時為高電平,防止引腳被鉗位在低電平。讀引腳有效后,輸入信息經讀引腳三態門電路到內部數據總線。2、作為地址總線使用時的工作過程P2 口作為地址總線時,控制”信號為1多路開關車向地址線 即向上接通),地址信息經反相器tV2管柵極t漏極

19、輸出。因為 P2 口輸出高8位地址,與P0 口不同,無須分時使用,因此P2 口上的地址信息 程序存儲器上的 A15A8 )功數據地址寄存器高 8位DPH保存時間長,無須鎖存。四、P3端口的結構及工作原理P3 口是一個多功能口,它除了可以作為I/O 口外,還具有第二功能,P3端口的一位結構見下圖。第二功能輸出+VCC1上拉電陽巧跆川CLK Q與非門內部總線)輸入緩沖器/第二功能輸入P3 口 工作原理03 http: /www zsMCU. com由上圖可見,P3端口和Pl端口的結構相似,區別僅在于P3端口的各端口線有兩種功能選擇。當處于第一功能時,第二輸出功能線為1,此時,內部總線信號經鎖存器和場效應管輸入/輸出,其作用與P1端口作用相同,也

溫馨提示

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

最新文檔

評論

0/150

提交評論