第5章 系統(tǒng)擴(kuò)展接口技術(shù)_第1頁
第5章 系統(tǒng)擴(kuò)展接口技術(shù)_第2頁
第5章 系統(tǒng)擴(kuò)展接口技術(shù)_第3頁
第5章 系統(tǒng)擴(kuò)展接口技術(shù)_第4頁
第5章 系統(tǒng)擴(kuò)展接口技術(shù)_第5頁
已閱讀5頁,還剩84頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五章系統(tǒng)擴(kuò)展接口技術(shù)5.1 51系列單片機(jī)總線結(jié)構(gòu),擴(kuò)展芯片的地址譯碼5.2 存儲器擴(kuò)展5.3 I/O口擴(kuò)展,8255芯片5.4 LED數(shù)碼管5.5 鍵盤接口,例題5.6 A/D接口擴(kuò)展5.7 光耦器件接口5.151系列單片機(jī)總線結(jié)構(gòu),擴(kuò)展芯片的地址譯碼

圖5-1MCS51單片機(jī)系統(tǒng)擴(kuò)展結(jié)構(gòu)圖5.1.1系統(tǒng)擴(kuò)展結(jié)構(gòu)

由圖5-1可以看出,系統(tǒng)擴(kuò)展主要包括存儲器擴(kuò)展和I/O接口部件擴(kuò)展。 外部存儲器擴(kuò)展又包括程序存儲器擴(kuò)展和數(shù)據(jù)存儲器擴(kuò)展。51單片機(jī)采用的是哈佛結(jié)構(gòu)。擴(kuò)展后,系統(tǒng)形成了兩個并行的外部存儲器空間。

51單片機(jī)采用并行總線結(jié)構(gòu),大大增加了系統(tǒng)的靈活性,使擴(kuò)展易于實現(xiàn),各擴(kuò)展部件只要符合總線規(guī)范,就能很方便地接入系統(tǒng)。 由于系統(tǒng)擴(kuò)展是以51單片機(jī)為核心,通過總線把51單片機(jī)與各擴(kuò)展部件連接起來。因此,要進(jìn)行系統(tǒng)擴(kuò)展首先要構(gòu)造系統(tǒng)總線。1系統(tǒng)總線及總線構(gòu)造按功能通常把系統(tǒng)總線分為三組,如圖5-1所示。

1).地址總線(AdressBus,AB)地址總線用于傳送單片機(jī)發(fā)出的地址信號,以便進(jìn)行存儲單元和I/O接口芯片中的寄存器選擇。地址總線是單向傳輸?shù)摹?).?dāng)?shù)據(jù)總線(DataBus,DB)數(shù)據(jù)總線用于在單片機(jī)與存儲器之間或與I/O端口之間傳送數(shù)據(jù)。數(shù)據(jù)總線是雙向的,可以進(jìn)行兩個方向的傳送。3).控制總線(ControlBus,CB)控制總線實際上就是單片機(jī)發(fā)出的各種控制信號線。2.構(gòu)造系統(tǒng)總線

系統(tǒng)擴(kuò)展的首要問題:

構(gòu)造系統(tǒng)總線。系統(tǒng)總線上“掛”存儲器芯片或I/O接口芯片,“掛”存儲器芯片就是存儲器擴(kuò)展,“掛”I/O接口芯片就是I/O擴(kuò)展。1).以P0口作為低8位地址/數(shù)據(jù)總線51單片機(jī)由于受引腳數(shù)目的限制,數(shù)據(jù)線和低8位地址線復(fù)用。為了將它們分離出來,需要外加地址鎖存器,從而構(gòu)成與一般CPU相類似的片外三總線,見圖5-2。

MCS51擴(kuò)展的片外三總線2).以P2口的口線作為高位地址線

P2口的全部8位口線用作高位地址線,再加上P0口經(jīng)地址鎖存器提供的低8位地址,便形成了完整的16位地址總線(見圖5-2),使尋址范圍達(dá)到64KB。3).控制信號線 除了地址線和數(shù)據(jù)線之外,還要有系統(tǒng)的控制總線。這些信號有的就是單片機(jī)引腳的第一功能信號,有的則是P3口第二功能信號。其中包括:(1)PSEN*信號作為外擴(kuò)程序存儲器的讀選通控制信號。(2)RD*和WR*信號作為外擴(kuò)數(shù)據(jù)存儲器和I/O接口的讀、寫選通控制信號。(3)ALE信號作為低8位地址的鎖存控制信號。(4)EA*信號作為內(nèi)、外程序存儲器的選擇控制信號。 可看出,盡管51單片機(jī)有4個并行的I/O口,共32條口線,但由于系統(tǒng)擴(kuò)展的需要,真正作為數(shù)字I/O使用的,就剩下P1口和P3口的部分口線了。

5.1.3地址空間分配和外部地址鎖存器1.存儲器地址空間分配 如何把外部各自的64KB空間分配給各個程序存儲器、數(shù)據(jù)存儲器芯片,并且使程序存儲器的各個芯片之間,數(shù)據(jù)存儲器各芯片之間,為避免發(fā)生數(shù)據(jù)沖突,一個存儲器單元對應(yīng)一個地址,這就是存儲器的地址空間的分配問題。 在外擴(kuò)的多片存儲器芯片中,51單片機(jī)要完成這種功能,必須進(jìn)行兩種選擇: 一是必須選中該存儲器芯片(或I/O接口芯片),這稱為“片選”,只有被“選中”的存儲器芯片才能被51單片機(jī)讀出或?qū)懭霐?shù)據(jù)。 二是在“片選”的基礎(chǔ)上再選擇該芯片的某一單元,稱為“單元選擇”。 常用的存儲器地址空間分配方法有兩種:線性選擇法(簡稱線選法)和地址譯碼法(簡稱譯碼法),下面分別介紹。1).線選法 直接利用系統(tǒng)的高位地址線作為存儲器芯片(或I/O接口芯片)的“片選”控制信號。為此,只需要把用到的高位地址線與存儲器芯片的“片選”端直接連接即可。 線選法的優(yōu)點是電路簡單,不需要另外增加地址譯碼器硬件電路,體積小,成本低。 缺點是可尋址的芯片數(shù)目受到限制。 另外,地址空間不連續(xù),每個存儲單元的地址不唯一,不能充分有效地利用存儲空間。2).譯碼法 使用譯碼器對51單片機(jī)的高位地址進(jìn)行譯碼,將譯碼器的譯碼輸出作為存儲器芯片的片選信號。是最常用的地址空間分配的方法,它能有效地利用存儲器空間,適用于多芯片的存儲器擴(kuò)展。 常用的譯碼器芯片有74LS138(3-8譯碼器)74LS139(雙2-4譯碼器)74LS154(4-16譯碼器)。若全部高位地址線都參加譯碼,稱為全譯碼;若僅部分高位地址線參加譯碼,稱為部分譯碼。部分譯碼存在著部分存儲器地址空間相重疊的情況。兩種常用的譯碼器芯片。(1)74LS138 74LS138是3-8譯碼器,有3個數(shù)據(jù)輸入端,經(jīng)譯碼產(chǎn)生8種狀態(tài)。其引腳如圖5-3所示,真值表如表5-1所示。 由表5-1可見,當(dāng)譯碼器的輸入為某一固定編碼時,其輸出僅有一個固定的引腳輸出為低電平,其余的為高電平。而輸出為低電平的引腳就作為某一存儲器芯片的片選端的控制信號。圖5-3

表5-174LS138譯碼器真值表

輸入輸出

G1G2A*G2B*CBAY7*Y6*Y5*Y4*Y3*Y2*Y1*Y0*

(2)74LS139 74LS139是雙2-4譯碼器。兩個譯碼器完全獨立,分別有各自的數(shù)據(jù)輸入端、譯碼狀態(tài)輸出端以及數(shù)據(jù)輸入允許端。其引腳如圖5-4所示,真值表如表5-2所示(見P138)。圖5-4下面以74LS138為例,介紹如何進(jìn)行地址分配。例要擴(kuò)8片8KB的RAM6264,如何通過74LS138把64KB空間分配給各個芯片?

64KB地址空間的分配如圖4-5所示。圖5-52.外部地址鎖存器地址鎖存器芯片:74LS373、8282、74LS573等。1).鎖存器74LS373帶有三態(tài)門的8D鎖存器,其引腳及內(nèi)部結(jié)構(gòu)如圖5-7和圖5-8。51單片機(jī)與74LS373的連接如圖5-9所示。引腳說明如下:D7~D0:8位數(shù)據(jù)輸入線。Q7~Q0:8位數(shù)據(jù)輸出線。G:數(shù)據(jù)輸入鎖存選通信號。OE*:

數(shù)據(jù)輸出允許信號。圖5-7圖5-8圖5-974LS373功能如表5-3所示。表5-374LS373功能表OE* G D Q

0 1 1 1 0 1 0 0 0 0 × 不變 1 × × 高阻態(tài) 5.2存儲器擴(kuò)展5.2.1程序存儲器的連接1.地址線的連接程序存儲器的高位地址線直接與單片機(jī)的P2口相連;程序存儲器的低8位地址線通過一個鎖存器與單片機(jī)的P0口相連。這是因為P0口分時輸出地址和數(shù)據(jù),所以,為了把地址信息分離保存,使用一個鎖存器將地址信息保存起來。2.數(shù)據(jù)線的連接MCS-51系列單片機(jī)的數(shù)據(jù)線只能是8位,由P0口輸出,直接將P0和外部存儲器的數(shù)據(jù)線相連就可以了。3.控制線的連接程序存儲器擴(kuò)展時,需要用到ALE、PSEN、EA等信號;ALE是地址鎖存允許信號,通常接到地址鎖存器鎖存信號端;PSEN是片外程序存儲器讀選通信號,通常接在程序存儲器的讀允許端(OE);EA是單片機(jī)讀片內(nèi)/片外存儲器的選擇端,使用片外程序存儲器時接地。MCS-51單片機(jī)擴(kuò)展外部程序存儲器的硬件電路4、程序存儲器的擴(kuò)展連線

程序存儲器的擴(kuò)展連線步驟1:

程序存儲器的擴(kuò)展連線步驟2:

程序存儲器的擴(kuò)展連線步驟3:

程序存儲器的擴(kuò)展連線步驟4:

程序存儲器的擴(kuò)展連線步驟5:

5.2.2數(shù)據(jù)存儲器的連接1.地址線的連接數(shù)據(jù)存儲器的高位地址線直接與單片機(jī)的P2口相連;數(shù)據(jù)序存儲器的低8位地址線通過一個鎖存器與單片機(jī)的P0口相連。這是因為P0口分時輸出地址和數(shù)據(jù),所以,為了把地址信息分離保存,使用一個鎖存器將地址信息保存起來。2.數(shù)據(jù)線的連接MCS-51系列單片機(jī)的數(shù)據(jù)線只能是8位,由P0口輸出,直接將P0和外部存儲器的數(shù)據(jù)線相連就可以了。3.控制線的連接數(shù)據(jù)存儲器擴(kuò)展時,需要用到ALE、RD、WR等信號;ALE是地址鎖存允許信號,通常接到地址鎖存器鎖存信號端;RD是片外數(shù)據(jù)存儲器讀選通信號,通常接在數(shù)據(jù)存儲器的輸出允許端(OE);WR是片外數(shù)據(jù)寫選通信號,通常與數(shù)據(jù)存儲器的讀/寫控制端(WE)相連。MCS-51單片機(jī)擴(kuò)展外部數(shù)據(jù)存儲器的硬件電路程序存儲器的擴(kuò)展原理框圖

數(shù)據(jù)存儲器的擴(kuò)展原理框圖

4、數(shù)據(jù)存儲器的擴(kuò)展連線

數(shù)據(jù)存儲器的擴(kuò)展連線步驟1:

數(shù)據(jù)存儲器的擴(kuò)展連線步驟2:

數(shù)據(jù)存儲器的擴(kuò)展連線步驟3:

數(shù)據(jù)存儲器的擴(kuò)展連線步驟4:

數(shù)據(jù)存儲器的擴(kuò)展連線步驟5:

數(shù)據(jù)存儲器的擴(kuò)展連線步驟6:

5.2.3存儲器擴(kuò)展電路原理圖

1.觀察U1、U2、U3的連接原理圖

2.U4的數(shù)據(jù)線D0~D7與U3的數(shù)據(jù)線D0~D7對應(yīng)相連

3.U4的地址線A0~A7與U3的地址線A0~A7對應(yīng)相連

4.U4的地址線A8~A12與U3的地址線A8~A12對應(yīng)相連

5.U4與U1的連接

5.3I/O口擴(kuò)展5.3.1開關(guān)信號的輸入/輸出方式 開關(guān)信號包括脈沖信號和電平信號。在單片機(jī)控制系統(tǒng)中,常采用如下方式實現(xiàn)開關(guān)信號的輸入和輸出。1.直接解碼輸入/輸出方式

在這種方式中,直接利用CPUI/O引腳輸入/輸出開關(guān)信號,如圖6-1(a)所示。 在直接解碼輸入/輸出方式中,每一I/O引腳僅能輸入或輸出一個開關(guān)信號,各引腳相互獨立,沒有編碼關(guān)系。顯然,采用直接解碼輸入/輸出方式時,I/O引腳的利用率較低,因而該方式只適用于僅需要輸入或輸出少量開關(guān)信號的場合。2.矩陣輸入/輸出方式

在這種方式中,將CPUI/O引腳分成兩組,用N條引腳構(gòu)成行線,M條引腳構(gòu)成列線,行、列交叉點就構(gòu)成了所需的N×M個檢測點。顯然,所需的I/O引腳數(shù)目為N+M,而檢測點總數(shù)達(dá)到了N×M個,如圖6-1(b)所示??梢?,采用矩陣輸入/輸出方式時,I/O引腳的利用率較高,而且硬件開銷少,因此得到了廣泛應(yīng)用。

在矩陣輸入/輸出方式中,如果行線和列線均被定義為輸出狀態(tài),則可以輸出N×M個開關(guān)信號;當(dāng)行、列線中有一組為輸出線,另一組為輸入線時,就構(gòu)成了N×M個輸入檢測點,如矩陣鍵盤電路。

3.編碼輸入/輸出方式

在這種方式中,將若干條用途相同(均為輸入或輸出)的I/O引腳組合在一起,按二進(jìn)制編碼后輸入或輸出。例如,對于n條輸出引腳,經(jīng)二進(jìn)制譯碼器譯碼后,可以控制2n個設(shè)備;對于2n個不同時有效的輸入量,經(jīng)過編碼器與CPU連接時,也只需要n個引腳,如圖6-1(c)所示。

顯然,采用編碼輸入/輸出方式時,CPUI/O引腳利用率最高,但硬件開銷大,因此在單片機(jī)控制系統(tǒng)中很少采用。 圖6-1輸入/輸出方式(a)直接解碼輸入/輸出方式;(b)矩陣輸入/輸出方式;(c)編碼輸入/輸出方式5.3.2I/O資源及擴(kuò)展 通過單片機(jī)芯片實現(xiàn)數(shù)字信號的輸入處理和輸出控制時,必須了解以下問題:

(1)準(zhǔn)確理解CPU各引腳的功能,確定可利用的I/O資源,并做出相對合理的使用規(guī)劃。

(2)I/O端口作為輸出控制信號線時,

必須了解CPU復(fù)位期間和復(fù)位后相應(yīng)引腳的狀態(tài)。

(3)了解I/O端口輸出級電路結(jié)構(gòu)和I/O端口的負(fù)載能力。

(4)了解I/O端口輸出電平范圍。

(5)了解I/O端口最大耐壓。5.3.2.1利用鎖存器、觸發(fā)器擴(kuò)展I/O口

當(dāng)僅需要擴(kuò)展少量的I/O引腳時,可利用鎖存器、觸發(fā)器或三態(tài)門電路實現(xiàn)。1.輸出口擴(kuò)展 圖6-2利用74LS273芯片的輸出口擴(kuò)展電路 當(dāng)A15、A14、A13、A12、A11、A10為100110時,U3譯碼輸出端Y6*有效。 擴(kuò)展端口的地址為9800H,執(zhí)行如下指令即可將累加器Acc的內(nèi)容鎖存到74LS273的輸出端。

MOVDPTR,#9800H ;輸出口地址送數(shù)據(jù)指針

MOVX@DPTR,A ;累加器Acc內(nèi)容鎖存到 74LS273的輸出端

擴(kuò)展輸出口的狀態(tài)不能讀出。當(dāng)僅需要修改輸出口中個別位的狀態(tài)時,可使用具有位尋址功能的內(nèi)部RAM單元作為擴(kuò)展輸出口的映像地址,并采用間接方式訪問,即先對映像地址單元進(jìn)行“讀—改—寫”操作,再將映像地址單元內(nèi)容送外部端口。例如,通過如下指令即可將9800H口的b0位取反:

PORTP6DATA28H ;使用28H單元作為9800H ;端口的映像地址

MOVA,PORTP6 ;Acc←9800H端口映像地 ;址

CPLAcc.0 ;對b0位取反

MOVPORTP6,A ;回寫映像地址單元

MOVDPTR,#0B000H ;DPTR←端口地址

MOVX@DPTR,A ;端口映像內(nèi)容b0位取反后 ;送74LS273輸出端2.輸入口擴(kuò)展 對輸入口來說,一般無需鎖存,原則上三態(tài)門電路、具有三態(tài)輸出的總線緩沖器、驅(qū)動器、D型觸發(fā)器(如74LS374)以及電平觸發(fā)的鎖存器(如74LS373)等均可以作為輸入口擴(kuò)展芯片,如圖6-3所示。 在圖6-3中分別使用了兩片74LS373、一片74LS125構(gòu)成了三個數(shù)據(jù)輸入口,共擴(kuò)展了20條輸入線 圖6-3輸入口擴(kuò)展電路 圖6-4一個實用的輸入/輸出口擴(kuò)展電路5.3.2.2利用“串入并出”及“并入串出”芯片擴(kuò)展I/O口

在速度要求不高的情況下,可利用74LS164、74HC594、74HC595等“串入并出”芯片擴(kuò)展輸出口,利用74LS165、74HC597等“并入串出”芯片擴(kuò)展輸入口,這也是一種簡單、實用的I/O口擴(kuò)展方式。 當(dāng)串行口未用時,可通過串行口方式0完成串行數(shù)據(jù)的輸入/輸出;而當(dāng)串行口已作它用時,可根據(jù)串行芯片的操作時序,使用I/O引腳模擬串行移位脈沖完成數(shù)據(jù)的輸入/輸出。 在圖6-5中,借助兩片74HC595“串入并出”芯片即可將8XC5X芯片的3根I/O引腳通過串行方式擴(kuò)展為16根輸出引腳。圖6-5通過“串入并出”芯片擴(kuò)展輸出引腳 假設(shè)擴(kuò)展的輸出引腳ED7~ED0輸出的信息在內(nèi)存中的映像地址為EDATA1,ED15~ED8輸出的信息在內(nèi)存中的映像地址為EDATA1+1,則可通過如下程序段將數(shù)據(jù)串行輸出到ED15~ED0引腳。

EDATA1DATA38H ;假設(shè)輸出數(shù)據(jù)存放在 ;38H、39H 單元中

SDI BITP1.0 ;串行數(shù)據(jù)輸入接P1.0引腳

SRCLK BIT P1.1 ;串行移位脈沖接P1.1引腳

RCLK BIT P1.2 ;并行輸出鎖存脈沖接P1.2 ;引腳

;----------串行數(shù)據(jù)輸出程序段---------

CLRRCLK ;并行鎖存脈沖置為低電平

MOVR0,#EDATA1

MOVR2,#2 ;共需要串行輸出兩個字節(jié)

LOOP1:

MOVA,@R0 ;取輸出數(shù)據(jù)

MOVR3,#8 ;右移8次

LOOP2:

CLRSRCLK ;串行移位脈沖置為低電平

RRCA ;帶進(jìn)位Cy循環(huán)右移

MOVSDI,C ;串行數(shù)據(jù)送SDI

NOP ;插入NOP指令適當(dāng)延遲(是否延 ;遲由CPU指令周期決定)

SETBSRCLK ;串行移位脈沖置為高電平,形成 ;上升沿

DJNZR3,LOOP2

INCR0 ;R0加1,指向高8位

DJNZR2,LOOP1 ;循環(huán),輸出高8位

SETBRCLK ;并行輸出鎖存脈沖置為高電平, ;形成上升沿5.3.2.3利用8255可編程I/O芯片擴(kuò)展MCS-51并行I/O口

常用的外圍I/O接口芯片有:

(1)8255:可編程的通用并行接口電路(3個8位I/O口) (2)8155:可編程的IO/RAM擴(kuò)展接口電路(2個8位I/O

口,1個6位I/O口,256個RAM字節(jié)單元,1個14位的減法 定時器/計數(shù)器)。

8255是可編程并行I/O接口芯片,具有3個8位的并行I/O口,3種工作方式,可通過編程改變其功 能,因而使用靈活方便,通用性強(qiáng)。1.引腳說明

8255采用DIP40、PLCC44或QFP44封裝形式,引腳功能及排列如圖6-6所示。

圖6-68255的引腳功能及排列

(a)引腳功能; (b)引腳排列引腳功能:

D7~D0——數(shù)據(jù)總線,雙向,三態(tài),可直接與CPU數(shù)據(jù)總線相連。

A1、A0——地址線,輸入。8255由A、B、C三個8位輸入/輸出口和一個控制/狀態(tài)寄存器組成,含有四個可尋址的I/O端口。A1、A0地址線狀態(tài)編碼與這四個I/O端口的對應(yīng)關(guān)系如表6-1所示。 表6-1地址線狀態(tài)編碼與I/O端口的對應(yīng)關(guān)系

CS*——片選信號,輸入,低電平有效。

WR*——寫選通信號,輸入,低電平有效。

RD*——讀選通信號,輸入,低電平有效。

PA7~PA0——A口數(shù)據(jù)輸入/輸出引腳。

PB7~PB0——B口數(shù)據(jù)輸入/輸出引腳。

PC7~PC0——C口數(shù)據(jù)輸入/輸出引腳。

Vcc——+5V電源。

RESET——復(fù)位引腳,高電平有效。(1)端口PA、PB、PC

功能和結(jié)構(gòu)上有些差異

PA口:輸出鎖存和緩沖;輸入鎖存

PB口:輸出鎖存和緩沖;輸入緩沖

PC口:輸出鎖存;數(shù)據(jù)輸入緩沖

PC口可在軟件的控制下,分為兩個4位端口,作為PA口、PB口選通方式操作時的狀態(tài)控制信號。(2)A組和B組控制電路

A組:PA口和PC口的上半部(PC7~PC4);

B組:PB口和PC口的下半部(PC3~PC0),可根據(jù)“命令字”對PC口按位“置1”或“清0”。(3)數(shù)據(jù)總線緩沖器 三態(tài)雙向,作為8255A與單片機(jī)數(shù)據(jù)線之間接口,傳送數(shù)據(jù)、指令、控制命令及外部狀態(tài)信息。(4)讀/寫控制邏輯電路線 該電路接收CPU發(fā)來的控制信號,RESET,地址信號A1、A0等。對端口進(jìn)行讀寫。

8255中的控制寄存器主要用于選擇A、B、C三個并行口的工作狀態(tài)。作輸出口時,A、B、C口均為一個8位的數(shù)據(jù)輸出鎖存和緩沖器;作輸入口時,A口為一個8位數(shù)據(jù)輸入鎖存器,而B、C口均為一個8位的數(shù)據(jù)輸入緩沖器(即B、C口對輸入數(shù)據(jù)不具備鎖存功能)。

表6-28255的工作狀態(tài)

3.工作方式選擇控制字及C口置位/復(fù)位控制字

8255I/O口有三種工作方式:

方式0,即基本輸入/輸出方式。

方式1,即選通輸入/輸出方式。 方式2,即雙向傳輸方式(僅A口有)。(1)工作方式選擇控制字 三種工作方式由方式控制字來決定。 控制字格式如下。

C口上半部分(PC7~PC4)隨A口稱為A組,

C口下半部分(PC3~PC0)隨B口稱為B組。 其中A口可工作于方式0、1、和2,而B口只能工作在方式0和方式1。 例

寫入工作方式控制字95H:10010101

可將8255A編程為:A口方式0輸入,B口方式1輸出,C口的上半部分(PC7~PC4)輸出,C口的下半部分(PC3~PC0)輸入。(2)C口按位置位/復(fù)位控制字 可對C口8位中的任一位置“1”或清“0”。用于位控。例

控制字07H寫入控制口,置“1”PC3;控制字08H寫入控制口,清“0”PC4。4.8255的三種工作方式

1)方式0

基本的輸入/輸出方式。

MCS-51可對8255進(jìn)行數(shù)據(jù)的無條件傳送 基本功能為:(1)具有兩個8位端口(A、B)和兩個4位端口(C的上半部分和下半部分)。(2)任一個端口都可以設(shè)定為輸入或輸出,各端口的輸入、輸出可構(gòu)成16種組合。(3)數(shù)據(jù)輸出鎖存,輸入不鎖存。

2)方式1

選通輸入/輸出工作方式。A口和B口通常用于I/O數(shù)據(jù)傳送,C口用作A口和B口的聯(lián)絡(luò)線,以中斷方式傳送數(shù)據(jù)。(1)方式1輸入 控制聯(lián)絡(luò)信號如圖6-7所示,STB*與IBF構(gòu)成了一對應(yīng)答聯(lián)絡(luò)信號,聯(lián)絡(luò)信號的功能如下:STB*:選通輸入,是由輸入外設(shè)送來的輸入信號。IBF:輸入緩沖器滿,高電平有效。該信號有效時,表示輸入到A口或B口輸入緩沖器內(nèi)的數(shù)據(jù)未被CPU讀走,外設(shè)不能再把數(shù)據(jù)輸入緩沖器內(nèi)。

INTR:中斷請求信號,高電平有效。由8255A輸出,向單片機(jī) 發(fā)中斷請求。

下面以A口為例,說明選通輸入方式下的數(shù)據(jù)傳輸過程,其硬件連接如圖6-7(a)所示。

圖6-7選通輸入/輸出連接示意圖(a)A口工作在選通輸入方式下信號連接方式及時序;(b)A口工作在選通輸出方式下信號連接方式及時序 ①當(dāng)外設(shè)需要將數(shù)據(jù)輸入到8255A口時,先檢查IBFA(即PC5引腳)的狀態(tài)。

②當(dāng)IBFA無效(即低電平)時,把數(shù)據(jù)送到A口。

③外設(shè)輸出STB*信號到8255的PC4引腳,將輸入數(shù)據(jù)鎖存到A口的輸入緩沖器中。

④8255接收到STB*信號后,一方面,在STB*信號的下降沿(即前沿)觸發(fā)IBFA,使PC5引腳為高電平,

通知外設(shè)不能再發(fā)送數(shù)據(jù);另一方面,在STB*信號的上升沿(即后沿)將INTRA(即PC3引腳)置為有效狀態(tài),向CPU發(fā)出中斷請求,告知CPU可以讀取A口的輸入數(shù)據(jù)。 ⑤CPU響應(yīng)INTRA請求后,向8255發(fā)出RD*信號,讀A口數(shù)據(jù)。8255接收RD*信號后,在脈沖下降沿使INTRA無效(自動清除INTRA標(biāo)志),在上升沿使IBF無效,為接收下一外設(shè)數(shù)據(jù)做準(zhǔn)備。

以上為完成一字節(jié)數(shù)據(jù)的接收過程。(2)方式1輸出 如圖6-7所示。OBF*與ACK*構(gòu)成了一對應(yīng)答聯(lián)絡(luò)信號,各信號的功能如下:

OBF*:輸出緩沖器滿信號,82C55給外設(shè)的聯(lián)絡(luò)信號,外 設(shè)可以將數(shù)據(jù)取走。

ACK*:外設(shè)的響應(yīng)信號,外設(shè)已將數(shù)據(jù)取走。

INTR*:中斷請求信號。表示該數(shù)據(jù)已被外設(shè)取走,請求單 片機(jī)繼續(xù)輸出下一個

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論