第4章并行I_第1頁
第4章并行I_第2頁
第4章并行I_第3頁
第4章并行I_第4頁
第4章并行I_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第4章 并行I/O端口v 單片機內(nèi)部集成了并行I/O接口電路,用于與外界設(shè)備交換信息。單片機的控制,其實就是對I/O口的控制,無論單片機對外界進行何種控制,或接受外部的何種控制,都是通過I/O口進行的。本章首先介紹I/O端口P0P3的結(jié)構(gòu)、其次介紹P0P3端口常用方式,然后介紹I/O直接輸入輸出實例、并行I/O口擴展和簡單I/O口擴展實例,最后介紹常用的輸入輸出電路。4.1 并行I/O端口的基本概念v 51系列單片機的每個端口都是8位準(zhǔn)雙向口,共占32根引腳。每個端口都包括一個鎖存器(即專用寄存器P0P3)、一個輸出驅(qū)動器和輸入緩沖器。通常把4個端口籠統(tǒng)地表示為P0P3。在無片外擴展存儲器的系

2、統(tǒng)中,這4個端口的每一位都可以作為準(zhǔn)雙向通用I/O端口使用。在具有片外擴展存儲器的系統(tǒng)中,P2口作為高8位地址線,P0口分時作為低8位地址線和雙向數(shù)據(jù)總線。v1、I/O端口的作用端口的作用v(1)實現(xiàn)與不同外設(shè)的速度匹配。v(2)改變數(shù)據(jù)傳輸方式。v(3)改變信號的性質(zhì)和電平。v2、外部設(shè)備的編址、外部設(shè)備的編址v(1)外設(shè)端口的單獨編址)外設(shè)端口的單獨編址v(2)外設(shè)端口和存儲器統(tǒng)一編址)外設(shè)端口和存儲器統(tǒng)一編址v(3)I/O口數(shù)據(jù)的口數(shù)據(jù)的4種傳送方式種傳送方式v同步傳送同步傳送v異步傳送異步傳送v中斷傳送中斷傳送vDMA傳送傳送4.1.1 P0口結(jié)構(gòu)vP0口是由8個相同結(jié)構(gòu)的引腳組成的,

3、對于P0口的某一個P0.n(n=07)引腳結(jié)構(gòu)如圖5.1.1所示。P0口內(nèi)部包含一個輸出鎖存器、一個輸出驅(qū)動電路、一個輸出控制電路、多路開關(guān)和兩個三態(tài)緩沖器,其中輸出驅(qū)動電路由一對場效應(yīng)管(FET)組成,整個端口的工作狀態(tài)受控于輸出控制電路。圖圖4.1.1 P0.n (n=07)內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖v1、輸入緩沖器、輸入緩沖器v在P0口中,有兩個三態(tài)的緩沖器,三態(tài)門有三個狀態(tài),即在其輸出端可以是高電平、低電平,同時還有一種就是高阻狀態(tài)。 v2、D鎖存器鎖存器v一個D觸發(fā)器可以保存一位的二進制數(shù)(即具有保持功能),在51單片機的32根I/O口線中都是用一個D觸發(fā)器來構(gòu)成鎖存器的。v 3、多路開關(guān)

4、、多路開關(guān)v4、輸出驅(qū)動部份、輸出驅(qū)動部份vP0口的輸出是由兩個MOS管組成的推拉式結(jié)構(gòu),也就是說,這兩個MOS管一次只能導(dǎo)通一個,當(dāng)T1導(dǎo)通時,T2就截止;當(dāng)T2導(dǎo)通時,T1截止。vP0口既可以作為I/O用,也可以作為8位地址/數(shù)據(jù)線用。4.1.2 P1口結(jié)構(gòu)圖圖4.1.2 P1.n內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖4.1.3 P2口結(jié)構(gòu)圖圖4.1.3 P2.n內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖4.1.4 P3口結(jié)構(gòu)圖圖4.1.4 P3.n內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖vP3口的特殊功能口的特殊功能表表4.1.1 P3口的特殊功能(即第二功能)口的特殊功能(即第二功能) 4.2 并行I/O口的應(yīng)用v51單片機的P0,P1,P2,

5、P3口均可以進行字節(jié)操作和位操作,既可以8位一組進行輸入、輸出操作,也可以逐位分別定義各口線為輸入線或輸出線。每個并行I/O口均有兩種“讀”方式:讀鎖存器和讀引腳。P0端口除了作為8位I/O口外,在擴展外部程序存儲器和數(shù)據(jù)存儲器時,P0口要作為低8位地址總線和8位數(shù)據(jù)總線用,在這種情況下,P0口不能做I/O口用,要先作為地址總線對外傳送低8位地址,然后作為數(shù)據(jù)總線對外交換數(shù)據(jù)。P1口只能作為I/O口(除了P1.0 、P1.1以外),沒有其他的功能。P2口除了作為普通I/O口之外,在擴展外圍設(shè)備時,要作為高8位地址線用。P3口除了作為普通I/O口之外,由于其每個引腳都有第二功能,所以其還可以作為

6、第二功能用,而此時它就不能作為8位I/O口用。 4.3 I/O口直接輸入輸出實例4.3.1 設(shè)計要求vP2口既作為輸入口也作為輸出口,通過四個開關(guān),分別控制四個LED的亮與滅。4.3.2 硬件設(shè)計圖圖4.3.1 I/O口連接電路圖口連接電路圖v4.3.3 軟件設(shè)計v4.3.4 聯(lián)合調(diào)試與運行v聯(lián)合調(diào)試與運行過程可參見附錄1。v4.3.5 程序分析v由于電路中用P2口既做輸入也做輸出使用,P2.0P2.3做輸入,P2.4P2.7輸出。所以程序:P2=0 xff,將P2口置高電平,做輸入準(zhǔn)備。當(dāng)I/O做輸入時常常將其置高電平,防止其輸入出錯。v當(dāng)P2.0P2.3讀入開關(guān)狀態(tài)時,要將其電平輸出到P2

7、.4P2.7口,所以對其進行移位:P2=P24,將P2.0P2.3的值對應(yīng)移到了P2.4P2.7中。4.4 并行I/O口的擴展實例v51系列的單片機雖然提供了4個8位并行的I/O口用于和外部設(shè)備進行數(shù)據(jù)通信及控制,但這些I/O口一般不能完全用于輸入輸出操作,例如當(dāng)我們需要擴展外部存儲器時,P0,P2口便用做地址總線和數(shù)據(jù)總線,此時能用的I/O口就只有P1、P3口。如果再使用串行通信時,I/O就有點顯得不夠用了,因此,在單片機系統(tǒng)中常常需要擴展I/O口。v并行I/O口擴展方式有兩種:v采用普通的鎖存器、三態(tài)門等芯片如:74LS373、74LS244來進行簡單的I/O口擴展。本例采用74LS373

8、與74LS244進行I/O擴展。v采用可編程的I/O芯片來擴展,例如8255、8155等,后面的章節(jié)將會給大家介紹8255A的用法。4.4.1 設(shè)計要求v用四個開關(guān)分別控制四個LED的亮滅,其中采用74LS244控制開關(guān)的輸入,采用74LS373控制LED輸出。4.4.2 硬件設(shè)計圖圖4.4.1 I/O口擴展連接電路圖口擴展連接電路圖v4.4.3 軟件設(shè)計v4.4.4 聯(lián)合調(diào)試與運行v4.4.5 電路圖功能分析v74LS244實現(xiàn)了輸入數(shù)據(jù)的緩沖,實現(xiàn)了輸入數(shù)據(jù)的緩沖,74LS373實現(xiàn)了實現(xiàn)了輸出數(shù)據(jù)的鎖存。輸出數(shù)據(jù)的鎖存。P3.0和和WR接接“或門或門”后控制后控制74LS373的的LE端

9、,端,P3.0和和RD接接“或門或門”后控制后控制74LS244輸入。輸入。v74LS244:4緩沖驅(qū)動器緩沖驅(qū)動器(三態(tài)輸出三態(tài)輸出),為使能端,為使能端,低電平有效的,高電平時,輸出為三態(tài)。低電平有效的,高電平時,輸出為三態(tài)。v74LS373:當(dāng):當(dāng)74LS373用作地址鎖存器時,應(yīng)使為用作地址鎖存器時,應(yīng)使為低電平,此時鎖存使能端低電平,此時鎖存使能端LE為高電平時,輸出為高電平時,輸出Q0Q7 狀態(tài)與輸入端狀態(tài)與輸入端D1D7狀態(tài)相同;當(dāng)狀態(tài)相同;當(dāng)LE發(fā)生發(fā)生負(fù)的跳變時,輸入端負(fù)的跳變時,輸入端D0D7 數(shù)據(jù)鎖入數(shù)據(jù)鎖入Q0Q7。v由于由于P0口作口作I/O使用時,是漏極開路電路,無

10、法輸使用時,是漏極開路電路,無法輸出高電平,所以在設(shè)計時要給其接上拉電阻。出高電平,所以在設(shè)計時要給其接上拉電阻。4.4.6 程序分析vP0口讀入鍵盤狀態(tài):首先將P0口置高電平,做輸入準(zhǔn)備。程序“com=0; rd=0;”使“或門”A輸出一個低電平,即打開74LS244,使開關(guān)的電平能通過74LS244傳到P0口,接著“temp=P0”讀入開關(guān)電平狀態(tài)。讀入完成后“rd=1;”關(guān)閉74LS244,禁止數(shù)據(jù)通過74LS244?!皐r=1”打開74LS373,Q0Q7的狀態(tài)與D0D7相同,“P0=temp”將開關(guān)的狀態(tài)輸出給74LS373,“wr=0”產(chǎn)生一個負(fù)跳變,將D0D7的數(shù)據(jù)鎖存到Q0D7

11、。5.5 輸入輸出電路設(shè)計v單片機要求輸入的是TTL電平(低電平為00.8V,高電平為1.45V),然而在實際的單片機應(yīng)用系統(tǒng)中,真正符合輸入條件的信號很少,因此對輸入電路進行設(shè)計。由于單片機驅(qū)動能力小,一般只能驅(qū)動發(fā)光二極管、數(shù)碼管等,對于電磁鐵、繼電器等功率器件,需要設(shè)計輸出驅(qū)動電路。4.5.1 弱開關(guān)信號輸入電路設(shè)計圖圖4.5.1 弱信號輸入電路弱信號輸入電路4.5.2 強開關(guān)信號輸入電路設(shè)計圖圖4.5.2 強信號光電隔離電路強信號光電隔離電路4.5.3 直接驅(qū)動電路設(shè)計v單片機P0口具有帶動8個TTL門電路的能力,其余端口線據(jù)具有帶動4個TTL門電路的能力,因此,數(shù)碼管、發(fā)光二極管等可

12、以直接用單片機口線進行驅(qū)動。4.5.4 晶體管驅(qū)動電路設(shè)計晶體管驅(qū)動電路設(shè)計 v1、采用三極管直接耦合、采用三極管直接耦合圖圖4.5.3 三極管直接耦合輸出電路三極管直接耦合輸出電路v采用采用TTL(或(或CMOS)器件耦合輸出)器件耦合輸出圖圖4.5.4 單片機端口直接輸出單片機端口直接輸出圖圖4.5.5 快速開通輸出快速開通輸出圖圖4.5.6 采用快速開通和關(guān)斷的推挽式輸出采用快速開通和關(guān)斷的推挽式輸出5.5.5 繼電器驅(qū)動電路設(shè)計v圖5.5.7為繼電器輸出控制電路,其中,圖5.5.7(a)具有電源變換作用,圖5.5.7(b)具有隔離作用。采用繼電器驅(qū)動的電路,繼電器的線圈電壓宜高不宜低,這是從提高可靠性的要求來說的。如果繼電器線圈電壓低,由于三極管本身具有一定壓降,當(dāng)三級管導(dǎo)通時,加在線圈兩端的電壓要減去三極管的壓降,這樣就難以

溫馨提示

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

評論

0/150

提交評論