第六章mcs-51單片機IO端口(1)_第1頁
第六章mcs-51單片機IO端口(1)_第2頁
第六章mcs-51單片機IO端口(1)_第3頁
第六章mcs-51單片機IO端口(1)_第4頁
第六章mcs-51單片機IO端口(1)_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第六章mcs-51單片機IO端口(1) 第六章第六章 MCS-51MCS-51的的I/0I/0 第六章mcs-51單片機IO端口(1) 單片機單片機I/O口的使用口的使用 n對單片機的控制,其實就是對對單片機的控制,其實就是對I/O口的控制,無論單片機口的控制,無論單片機 對外界進行何種控制,或接受外部的控制,都是通過對外界進行何種控制,或接受外部的控制,都是通過I/O 口進行的。口進行的。51單片機總共有單片機總共有P0、P1、P2、P3四個四個8位雙位雙 向輸入輸出端口,每個端口都有鎖存器、輸出驅動器和輸向輸入輸出端口,每個端口都有鎖存器、輸出驅動器和輸 入緩沖器。入緩沖器。4個個I/O端

2、口都能作輸入輸出口用,其中端口都能作輸入輸出口用,其中P0和和 P2通常用于對外部存儲器的訪問。通常用于對外部存儲器的訪問。 第六章mcs-51單片機IO端口(1) 5151系列單片機有系列單片機有4 4個個I/OI/O端口,每個端口都是端口,每個端口都是8 8位準雙向位準雙向 口,共占口,共占3232根引腳。每個端口都包括一個鎖存器根引腳。每個端口都包括一個鎖存器( (即專用寄即專用寄 存器存器P0P0P3)P3)、一個輸出驅動器和輸入緩沖器。通常把、一個輸出驅動器和輸入緩沖器。通常把4 4個端個端 口籠統地表示為口籠統地表示為P0P0P3P3。 在無片外擴展存儲器的系統中,這在無片外擴展存

3、儲器的系統中,這4個端口的每一位都個端口的每一位都 可以作為準雙向通用可以作為準雙向通用I/O端口使用。在具有片外擴展存儲器的端口使用。在具有片外擴展存儲器的 系統中,系統中,P2口作為高口作為高8位地址線,位地址線,P0口分時作為低口分時作為低8位地址位地址 線和雙向數據總線。線和雙向數據總線。 51單片機單片機4個個I/O端口線路設計的非常巧妙,學習端口線路設計的非常巧妙,學習I/O端口端口 邏輯電路,不但有利于正確合理地使用端口,而且會給設計邏輯電路,不但有利于正確合理地使用端口,而且會給設計 單片機外圍邏輯電路有所啟發。單片機外圍邏輯電路有所啟發。 第六章mcs-51單片機IO端口(1

4、) 下面簡單介紹一下輸入下面簡單介紹一下輸入/ /輸出端口結構。輸出端口結構。 6.1 P06.1 P0口和口和P2P2的結構的結構 第六章mcs-51單片機IO端口(1) 下圖為下圖為P0P0口的某位口的某位P0.n(n=0P0.n(n=07)7)結構圖,它由一個輸出鎖結構圖,它由一個輸出鎖 存器、兩個三態輸入緩沖器、一個輸出驅動電路和一個輸出控存器、兩個三態輸入緩沖器、一個輸出驅動電路和一個輸出控 制電路組成。輸出驅動電路由一對制電路組成。輸出驅動電路由一對FETFET(場效應管)組成,其(場效應管)組成,其 工作狀態受輸出控制電路的控制,后者包括:工作狀態受輸出控制電路的控制,后者包括:

5、1 1個與門、個與門、1 1個反個反 相器和相器和1 1個模擬轉換開關(個模擬轉換開關(MUXMUX)。)。 D Q CLK QMUX P0.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址/ /數據數據 控制控制 VCC T1 T2 P0P0口口 引腳引腳 一、一、P0P0口的結構口的結構 第六章mcs-51單片機IO端口(1) 1 1、P0P0口作為普通口作為普通I/OI/O口口 輸出時輸出時 模擬轉換開關的位置由來自模擬轉換開關的位置由來自CPU的控制信號決定,當的控制信號決定,當 控制信號為控制信號為0(低電平)時,開關處于圖示位置,它把輸出(低電平)時

6、,開關處于圖示位置,它把輸出 級與鎖存器的級與鎖存器的Q端接通。同時,因為與門輸出為端接通。同時,因為與門輸出為0,輸出,輸出 級中的上拉級中的上拉FET處于截止狀態,因此輸出級是漏極開路的處于截止狀態,因此輸出級是漏極開路的 開漏電路。這時開漏電路。這時P0口可作一般的口可作一般的I/O口用。口用。 D Q CLK QMUX P0.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址/ /數據數據 控制控制 VCC T1 T2 P0P0口口 引腳引腳 第六章mcs-51單片機IO端口(1) nCPU向端口輸出數據時,寫脈沖加在觸發器時鐘端向端口輸出數據時,寫脈沖加

7、在觸發器時鐘端CLK上,這上,這 樣與內部總線相連的樣與內部總線相連的D端的數據取反后就出現在端的數據取反后就出現在Q端上,又經輸端上,又經輸 出出FET反相,在反相,在P0引腳上出現的數據正好是內部總線的數據。引腳上出現的數據正好是內部總線的數據。P0 口的輸出級可以驅動口的輸出級可以驅動8個個LS TTL輸入,但在開漏狀態下,為了驅輸入,但在開漏狀態下,為了驅 動動NMOS或其它拉流負載,需要外接上拉電阻。或其它拉流負載,需要外接上拉電阻。 D Q CLK QMUX P0.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址/ /數據數據 控制控制 VCC T1

8、 T2 P0P0口口 引腳引腳 第六章mcs-51單片機IO端口(1) 輸入時輸入時-分讀引腳或讀鎖存器分讀引腳或讀鎖存器 讀引腳:讀引腳:由傳送指令由傳送指令(MOVMOV)實現;實現; n端口中的端口中的2個三態緩沖器用于讀操作。一個緩沖器用于直接讀個三態緩沖器用于讀操作。一個緩沖器用于直接讀 端口引腳處的數據,當執行一般由端口輸入的指令時,讀脈沖端口引腳處的數據,當執行一般由端口輸入的指令時,讀脈沖 把圖中下面一個三態緩沖器打開,這樣端口上的數據將經過緩把圖中下面一個三態緩沖器打開,這樣端口上的數據將經過緩 沖器送至內部總線。沖器送至內部總線。 D Q CLK QMUX P0.n 讀鎖存

9、器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址/ /數據數據 控制控制 VCC T1 T2 P0P0口口 引腳引腳 第六章mcs-51單片機IO端口(1) D Q CLK QMUX P0.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址/ /數據數據 控制控制 VCC T1 T2 P0P0口口 引腳引腳 輸入時輸入時-分讀引腳或讀鎖存器分讀引腳或讀鎖存器 圖中上面一個緩沖器并不直接讀取端口引腳上的數據,而圖中上面一個緩沖器并不直接讀取端口引腳上的數據,而 是讀取鎖存器是讀取鎖存器Q端的數據。端的數據。Q端與引腳處的數據是一致的。結構端與引

10、腳處的數據是一致的。結構 上這樣安排是為了適應所謂上這樣安排是為了適應所謂“讀讀-修改修改-寫寫”類指令的需要。這類類指令的需要。這類 指令的特點是:先讀口,隨之可能對讀入的數據進行修改,然指令的特點是:先讀口,隨之可能對讀入的數據進行修改,然 后再寫到端口上。后再寫到端口上。 第六章mcs-51單片機IO端口(1) n例如邏輯與指令:例如邏輯與指令:ANL P0,A就屬于這類指令。此指令先把就屬于這類指令。此指令先把 P0上的數據讀入上的數據讀入CPU,隨之與累加器,隨之與累加器A內的數據按位進行邏輯內的數據按位進行邏輯 與操作,最后再把與的結果送回與操作,最后再把與的結果送回P0口。這類指

11、令同樣適用于口。這類指令同樣適用于 P1P3口。口。 n對于對于“讀讀-修改修改-寫寫”指令,不直接讀引腳上的數據而讀鎖存器指令,不直接讀引腳上的數據而讀鎖存器 上的數據,是為了避免錯讀引腳上電平的可能性。例如,若用上的數據,是為了避免錯讀引腳上電平的可能性。例如,若用 一根口線去驅動一個晶體管的基極,當向此口線寫一根口線去驅動一個晶體管的基極,當向此口線寫1時,晶體管時,晶體管 導通,并把引腳上的電平拉低。這時若從引腳上讀取數據,會導通,并把引腳上的電平拉低。這時若從引腳上讀取數據,會 把此數據(應為把此數據(應為1)錯讀為)錯讀為0,若從鎖存器,若從鎖存器Q端讀取,則可以得端讀取,則可以得

12、 到正確的數據。到正確的數據。 第六章mcs-51單片機IO端口(1) D Q CLK QMUX P0.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址/ /數據數據 控制控制 VCC T1 T2 P0P0口口 引腳引腳 n準雙向口:從圖中結構看,引腳上的外部信號既加在三態緩準雙向口:從圖中結構看,引腳上的外部信號既加在三態緩 沖器的輸入端上,又加在輸出級沖器的輸入端上,又加在輸出級FET2的漏極上,若此的漏極上,若此FET2 是導通的(相當于曾輸出鎖存過數據是導通的(相當于曾輸出鎖存過數據0),則引腳上的電位始),則引腳上的電位始 終被鉗位在終被鉗位在0電平上

13、(除非外部信號源有極大的負載能力),電平上(除非外部信號源有極大的負載能力), 輸入數據不可能正確地讀入。因此輸入數據不可能正確地讀入。因此P0口是一個準雙向口,即口是一個準雙向口,即 在輸入數據時,應先把口置在輸入數據時,應先把口置1,也就是鎖存器的,也就是鎖存器的Q為為0,這樣,這樣 使輸出級的使輸出級的2個個FET都截止,引腳處于懸浮狀態,可作高阻抗都截止,引腳處于懸浮狀態,可作高阻抗 輸入。這就是所謂的準雙向口。輸入。這就是所謂的準雙向口。 第六章mcs-51單片機IO端口(1) n當當P0口作為地址口作為地址/數據總線使用時,可以分為兩種情況。一種情況數據總線使用時,可以分為兩種情況

14、。一種情況 是從是從P0輸出地址或數據,這時輸出地址或數據,這時CPU發出的控制信號應為高電平發出的控制信號應為高電平1, 轉換開關把反相器輸出端與下拉轉換開關把反相器輸出端與下拉FET接通,同時與門開鎖。輸出的接通,同時與門開鎖。輸出的 地址或數據信號即通過與門去驅動上拉地址或數據信號即通過與門去驅動上拉FET,又通過反相器去驅動,又通過反相器去驅動 下拉下拉FET。另一種情況是從。另一種情況是從P0輸入數據,這時信號仍應從輸入緩沖輸入數據,這時信號仍應從輸入緩沖 器進入內部總線。器進入內部總線。 D Q CLK QMUX P0.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引

15、腳讀引腳 地址地址/ /數據數據 控制控制 VCC T1 T2 P0P0口口 引腳引腳 2 2、P0P0作為地址作為地址/ /數據總線數據總線 第六章mcs-51單片機IO端口(1) P0P0引腳輸出地址引腳輸出地址/ /輸入數據輸入數據 輸入信號是從引腳通過輸入緩沖器進入內部總線。輸入信號是從引腳通過輸入緩沖器進入內部總線。 此時,此時,CPUCPU自動使自動使MUXMUX向下,并向向下,并向P0P0口寫口寫“1 1”,“讀引腳讀引腳”控制控制 信信 號有效,下面的緩沖器打開,外部數據讀入內部總線。號有效,下面的緩沖器打開,外部數據讀入內部總線。 2 2、P0P0作為地址作為地址/ /數據總

16、線數據總線 D Q CLK QMUX P0.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址/ /數據數據 控制控制 VCC T1 T2 P0P0口口 引腳引腳 第六章mcs-51單片機IO端口(1) n綜上所述,綜上所述,P0口既可以作為地址口既可以作為地址/數據總線使用,又可以數據總線使用,又可以 作為通用作為通用I/O口用;用作輸出口時,輸出級屬于漏極開路,口用;用作輸出口時,輸出級屬于漏極開路, 在驅動在驅動nmos電路時應外接上拉電阻;用作輸入口時,應電路時應外接上拉電阻;用作輸入口時,應 先向鎖存器寫先向鎖存器寫1,這時輸出級的,這時輸出級的2個個F

17、ET都截止,可作高阻都截止,可作高阻 抗輸入。當抗輸入。當P0口作地址口作地址/數據總線使用時,就不能再把它數據總線使用時,就不能再把它 當通用當通用I/O口使用。口使用。 第六章mcs-51單片機IO端口(1) 二、二、P2P2的內部結構的內部結構 1.P21.P2口作為普通口作為普通I/OI/O口口 D Q CLK QMUX P2.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址控制控制 VCC R T P2口引 腳 nP2口的位結構如圖,它內部有上拉電阻。在結構上,口的位結構如圖,它內部有上拉電阻。在結構上,P2口比口比 P1口多了一個輸出轉換控制部分。當

18、轉換開關(口多了一個輸出轉換控制部分。當轉換開關(MUX)與鎖存)與鎖存 器的器的Q端接通時,端接通時,P2口作通用的口作通用的I/O口用,是一個準雙向口。口用,是一個準雙向口。 第六章mcs-51單片機IO端口(1) 2.P22.P2口作為地址總線口作為地址總線 n當系統中接有外部存儲器時,當系統中接有外部存儲器時,P2口可用于輸出高口可用于輸出高8位地址,這位地址,這 時在時在CPU控制下,轉換開關與地址線接通。在外接程序存儲器的控制下,轉換開關與地址線接通。在外接程序存儲器的 系統中,由于訪問外部存儲器的操作連續不斷,系統中,由于訪問外部存儲器的操作連續不斷,P2口不斷送出口不斷送出 高

19、高8位地址,故這時位地址,故這時P2口不可能再作通用口不可能再作通用I/O口使用。口使用。 D Q CLK QMUX P2.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 地址地址控制控制 VCC R T P2口引 腳 第六章mcs-51單片機IO端口(1) n在不接外部程序存儲器而接有外部數據存儲器的系統中,情況有所不在不接外部程序存儲器而接有外部數據存儲器的系統中,情況有所不 同。若外接數據存儲器的容量為同。若外接數據存儲器的容量為256B,則可以使用,則可以使用MOVXRi類指類指 令由令由P0口送出口送出8位地址,位地址,P2口引腳上的內容,在整個訪外期間,不會

20、口引腳上的內容,在整個訪外期間,不會 改變,故改變,故P2口仍可作通用口仍可作通用I/O口。若外接存儲器容量較大,需用口。若外接存儲器容量較大,需用 MOVXDPTR類指令由類指令由P0和和P2口送出口送出16位地址,在讀寫周期內,位地址,在讀寫周期內, P2口引腳上將保持地址信息,但是從圖示的結構可知,輸出地址時,口引腳上將保持地址信息,但是從圖示的結構可知,輸出地址時, 并不要求并不要求P2鎖存器鎖存鎖存器鎖存1,鎖存器的內容也不會在送地址的過程中改,鎖存器的內容也不會在送地址的過程中改 變,故訪問外部數據存儲器周期結束后,變,故訪問外部數據存儲器周期結束后,P2鎖存器的內容又會重現在鎖存

21、器的內容又會重現在 引腳上。這樣根據訪問外部數據存儲器的頻繁程度,引腳上。這樣根據訪問外部數據存儲器的頻繁程度,P2口仍可在一定口仍可在一定 限度內作一般限度內作一般I/O口使用。在外部數據存儲器容量不太大的情況下,口使用。在外部數據存儲器容量不太大的情況下, 也可以從軟件上設法,只利用也可以從軟件上設法,只利用P1P3口中的某幾根口線送高口中的某幾根口線送高8位地址,位地址, 而保留而保留P2中的部分或全部口線作通用中的部分或全部口線作通用I/O口用口用 第六章mcs-51單片機IO端口(1) 6.2 P16.2 P1口、口、P3P3口的內部結構口的內部結構 P1P1口的一位的結構口的一位的

22、結構 nP1口也是一個準雙向口,用作輸入時,口鎖存器必須為口也是一個準雙向口,用作輸入時,口鎖存器必須為 “1”。它的。它的8位引出線位引出線P1.7P1.0能獨立地用作輸入線或輸出能獨立地用作輸入線或輸出 線。線。P1口的每一位均由鎖存器、輸出驅動器和三態緩沖器組口的每一位均由鎖存器、輸出驅動器和三態緩沖器組 成,其結構如圖所示。成,其結構如圖所示。 D QD Q CLK QCLK Q P1.nP1.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 VCC R T T P1口引 腳 第六章mcs-51單片機IO端口(1) nP1口的位鎖存器由口的位鎖存器由D觸發器組成。

23、在觸發器組成。在CPU的的“寫鎖存器寫鎖存器”信號驅動下,信號驅動下, 將內部總線上的一位數據寫入鎖存器中,經輸出驅動器出現在輸出線將內部總線上的一位數據寫入鎖存器中,經輸出驅動器出現在輸出線 上。鎖存器的上。鎖存器的Q端反饋到通往內部總線的三態輸入緩沖器的輸入端,端反饋到通往內部總線的三態輸入緩沖器的輸入端, 以響應以響應CPU的的“讀鎖存器讀鎖存器”信號,把鎖存器的內容讀入內部總線上。信號,把鎖存器的內容讀入內部總線上。 在響應在響應CPU“讀引腳讀引腳”信號時,則將引腳上的信息讀至內部總線。但信號時,則將引腳上的信息讀至內部總線。但 是在是在“讀引腳讀引腳”即輸入之前,應先將即輸入之前,

24、應先將“1”寫入鎖存器,使輸出驅動器寫入鎖存器,使輸出驅動器 的場效應管的場效應管T截止,引腳由內部上拉電阻拉成了高電平(輸出截止,引腳由內部上拉電阻拉成了高電平(輸出1)。當)。當 外部輸入外部輸入1時,該引腳為高電平,輸入時,該引腳為高電平,輸入0時,該引腳為低電平。時,該引腳為低電平。 n結構上這樣安排是為了結構上這樣安排是為了“讀讀修改修改寫寫”類指令的需要,這類指令是類指令的需要,這類指令是 從鎖存器讀取數據,進行處理,并把處理后的數據重新寫入鎖存器。從鎖存器讀取數據,進行處理,并把處理后的數據重新寫入鎖存器。 在在ANL、ORL、XRL、JBC、CPL、INC、DEC、DJNZ、M

25、OV等指等指 令中,當目的操作數為某令中,當目的操作數為某I/O口或口或I/O口的某一位時,就是口的某一位時,就是“讀讀修修 改改寫寫”。例如:。例如:ANL P1,A指令,先把指令,先把P1口上的數據讀入口上的數據讀入CPU, 隨之與累加器隨之與累加器A按位進行與操作,最后再把結果送按位進行與操作,最后再把結果送P1口。又如:口。又如:MOV P1.0,C指令,是先把指令,是先把P1口的口的8位讀入,再修改位讀入,再修改P1.0位即進位標志位即進位標志C 送送P1.0,最后再把新字節寫回到,最后再把新字節寫回到P1口。口。 n讀引腳指令一般都是以讀引腳指令一般都是以I/O口為源操作數的指令,

26、執行讀引腳指令時,口為源操作數的指令,執行讀引腳指令時, 打開三態緩沖器,輸入接口的狀態。例如,讀打開三態緩沖器,輸入接口的狀態。例如,讀P1口的輸入狀態時,讀口的輸入狀態時,讀 引腳指令為引腳指令為MOV A,P1 第六章mcs-51單片機IO端口(1) P3P3的內部結構的內部結構 D QD Q CLK QCLK Q P3.nP3.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 VCC R T T P3口引 腳 第二輸入功能第二輸入功能 第二輸出功能第二輸出功能 一、作為通用一、作為通用I/OI/O口與口與P1P1口類似口類似-準雙向口準雙向口(W=1)(W=1)

27、nP3口也是準雙向口,與口也是準雙向口,與P1不同的是不同的是P3口是雙功能口。口是雙功能口。P3 口作為第一功能使用時,同口作為第一功能使用時,同P1口。作為第二功能使用時,口。作為第二功能使用時, 它的引腳見后面列表。它的引腳見后面列表。 W 第六章mcs-51單片機IO端口(1) nP3口的位結構如圖所示。比口的位結構如圖所示。比P1口多了一個與非門。與非門口多了一個與非門。與非門 的兩個輸入端是鎖存器的的兩個輸入端是鎖存器的Q端和第二輸出功能端。當第二端和第二輸出功能端。當第二 輸出功能為高電平時,與非門的輸出就是輸出功能為高電平時,與非門的輸出就是Q,與,與P1口的結口的結 構相同。

28、當鎖存器的構相同。當鎖存器的Q端為高電平時,第二功能的輸出信端為高電平時,第二功能的輸出信 號從第二輸出功能線經過與非門反相再通過輸出驅動器反號從第二輸出功能線經過與非門反相再通過輸出驅動器反 相后輸出。當與非門的兩個輸入端都為高電平時,輸出驅相后輸出。當與非門的兩個輸入端都為高電平時,輸出驅 動器的場效應管動器的場效應管T截止,輸入的第二功能信號經緩沖器,從截止,輸入的第二功能信號經緩沖器,從 第二輸入功能線進入。輸入的第一功能信號經緩沖器后仍第二輸入功能線進入。輸入的第一功能信號經緩沖器后仍 由讀引腳信號讀入內部總線。由讀引腳信號讀入內部總線。 第六章mcs-51單片機IO端口(1) P3

29、P3的內部結構的內部結構 D QD Q CLK QCLK Q P3.nP3.n 讀鎖存器讀鎖存器 內部總線內部總線 寫鎖存器寫鎖存器 讀引腳讀引腳 VCC R T T P3口引 腳 第二輸入功能第二輸入功能 第二輸出功能第二輸出功能 二、第二功能(Q=1) 此時引腳部分輸入(Q=1、W=1) ,部分輸出(Q=1、W輸出) 。 W 第六章mcs-51單片機IO端口(1) 第二功能各引腳功能定義: 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

30、外部寫控制 P3.7:RD外部讀控制 第六章mcs-51單片機IO端口(1) n綜上所述:當綜上所述:當P0作為作為I/O口使用時,特別是作為輸出時,輸口使用時,特別是作為輸出時,輸 出級屬于開漏電路,必須外接上拉電阻才會有高電平輸出;出級屬于開漏電路,必須外接上拉電阻才會有高電平輸出; 如果作為輸入,必須先向相應的鎖存器寫如果作為輸入,必須先向相應的鎖存器寫“1”,才不會影響,才不會影響 輸入電平。輸入電平。 n當當CPU內部控制信號為內部控制信號為“1”時,時,P0口作為地址口作為地址/數據總線使數據總線使 用,這時,用,這時,P0口就無法再作為口就無法再作為I/O口使用了。口使用了。 第

31、六章mcs-51單片機IO端口(1) nP1、P2 和和P3 口為準雙向口口為準雙向口, 在內部差別不大在內部差別不大, 但使用功能但使用功能 有所不同。有所不同。 nP1口是用戶專用口是用戶專用 8 位準雙向位準雙向I/O口口, 具有通用輸入具有通用輸入/輸出功能輸出功能, 每一位都能獨立地設定為輸入或輸出。當有輸出方式變為輸每一位都能獨立地設定為輸入或輸出。當有輸出方式變為輸 入方式時入方式時, 該位的鎖存器必須寫入該位的鎖存器必須寫入“1”, 然后才能進入輸入操然后才能進入輸入操 作。作。 nP2口是口是 8 位準雙向位準雙向I/O口。外接口。外接I/O設備時設備時, 可作為擴展系統可作

32、為擴展系統 的地址總線的地址總線, 輸出高輸出高8位地址位地址, 與與P0 口一起組成口一起組成 16 位地址總位地址總 線。線。 對于對于 8031 而言而言, P2 口一般只作為地址總線使用口一般只作為地址總線使用, 而不而不 作為作為I/O線直接與外部設備相連。線直接與外部設備相連。 第六章mcs-51單片機IO端口(1) 例例1 閃爍燈閃爍燈 1實驗任務實驗任務 如圖所示:在如圖所示:在P1.0端口上接一個發光二極管端口上接一個發光二極管L1,使,使L1在不停地一亮一滅,在不停地一亮一滅, 一亮一滅的時間間隔為一亮一滅的時間間隔為0.2秒。秒。 2電路原理圖電路原理圖 第六章mcs-5

33、1單片機IO端口(1) 3系統板上硬件連線系統板上硬件連線 把把“單片機系統單片機系統”區域中的區域中的P1.0端口用導線連接到端口用導線連接到“八路發光二極管指示模八路發光二極管指示模 塊塊”區域中的區域中的L1端口上。端口上。 4程序設計內容程序設計內容 (1) 延時程序的設計方法延時程序的設計方法 作為單片機的指令的執行的時間是很短,數量大微秒級,因此,我們要求的閃爍作為單片機的指令的執行的時間是很短,數量大微秒級,因此,我們要求的閃爍 時間間隔為時間間隔為0.2秒,相對于微秒來說,相差太大,所以我們在執行某一指令時,秒,相對于微秒來說,相差太大,所以我們在執行某一指令時, 插入延時程序

34、,來達到我們的要求,但這樣的延時程序是如何設計呢?下面具體插入延時程序,來達到我們的要求,但這樣的延時程序是如何設計呢?下面具體 介紹其原理:介紹其原理: 如果使用的石英晶體為如果使用的石英晶體為12MHz,則,則1個機器周期為個機器周期為1微秒微秒 MOV R6,#20 2個機器周期 D1: MOV R7,#248 2個機器周期 DJNZ R7,$ 2個機器周期 DJNZ R6,D1 2個機器周期 因此,上面的延時程序時間為因此,上面的延時程序時間為2+20(2+2+2248)=10.002ms 延時程序的思路:延時程序的思路: 第六章mcs-51單片機IO端口(1) 由以上可知,當由以上可

35、知,當R610、R7248時,延時時,延時5ms,R620、R7248時,延時,延 時時10ms,以此為基本的計時單位。如本實驗要求以此為基本的計時單位。如本實驗要求0.2秒秒200ms,10msR5 200ms,則,則R520,延時子程序如下:,延時子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2) 輸出控制輸出控制 如圖如圖1所示,當所示,當P1.0端口輸出高電平,即端口輸出高電平,即P1.01時,根據發光二極管的單向導時,根據發光二極管的單向導 電性

36、可知,這時發光二極管電性可知,這時發光二極管L1熄滅;當熄滅;當P1.0端口輸出低電平,即端口輸出低電平,即P1.00時,時, 發光二極管發光二極管L1亮;我們可以使用亮;我們可以使用SETBP1.0指令使指令使P1.0端口輸出高電平,使端口輸出高電平,使 用用CLRP1.0指令使指令使P1.0端口輸出低電平。端口輸出低電平。 第六章mcs-51單片機IO端口(1) 5 程序框圖程序框圖 如圖所示如圖所示 6 匯編源程序匯編源程序 ORG 0 START: CLR P1.0 LCALL DELAY SETB P1.0 LCALL DELAY LJMP START DELAY: MOV R5,#

37、20 ;延時子程序,延時延時子程序,延時0.2秒秒 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END 第六章mcs-51單片機IO端口(1) 例例2、多路開關狀態指示、多路開關狀態指示 如圖如圖 所示,所示,AT89S51 單片機單片機 的的 P1.0P1.3 接四個發光二極管接四個發光二極管 L1L4,P1.4P1.7 接了四個開接了四個開 關關 K1K4,編程將開關的狀態,編程將開關的狀態 反映到發光二極管上。(開關閉反映到發光二極管上。(開關閉 合,對應的燈亮,開關斷開,對合,對應的燈亮,開關斷開

38、,對 應的燈滅)。應的燈滅)。 對于開關狀態檢測,相對單對于開關狀態檢測,相對單 片機來說,是輸入關系,我們可片機來說,是輸入關系,我們可 輪流檢測每個開關狀態,根據每輪流檢測每個開關狀態,根據每 個開關的狀態讓相應的發光二極個開關的狀態讓相應的發光二極 管指示,可以采用管指示,可以采用 JB P1.X, REL 或或 JNB P1.X,REL 指令來完成;指令來完成; 也可以一次性檢測四路開關狀態,也可以一次性檢測四路開關狀態, 然后讓其指示,可以采用然后讓其指示,可以采用 MOV A, P1 指令一次把指令一次把 P1 端口的狀態全端口的狀態全 部讀入,然后取高部讀入,然后取高 4 位的狀態來位的狀態來 指示。指示。 第六章mcs

溫馨提示

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

評論

0/150

提交評論