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

下載本文檔

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

文檔簡(jiǎn)介

第五章系統(tǒng)擴(kuò)展接口技術(shù)5.1 51系列單片機(jī)總線(xiàn)結(jié)構(gòu),擴(kuò)展芯片的地址譯碼5.2 存儲(chǔ)器擴(kuò)展5.3 I/O口擴(kuò)展,8255芯片5.4 LED數(shù)碼管5.5 鍵盤(pán)接口,例題5.6 A/D接口擴(kuò)展5.7 光耦器件接口5.151系列單片機(jī)總線(xiàn)結(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ò)展主要包括存儲(chǔ)器擴(kuò)展和I/O接口部件擴(kuò)展。 外部存儲(chǔ)器擴(kuò)展又包括程序存儲(chǔ)器擴(kuò)展和數(shù)據(jù)存儲(chǔ)器擴(kuò)展。51單片機(jī)采用的是哈佛結(jié)構(gòu)。擴(kuò)展后,系統(tǒng)形成了兩個(gè)并行的外部存儲(chǔ)器空間。

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

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

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

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

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

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

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

表5-174LS138譯碼器真值表

輸入輸出

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

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

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

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

程序存儲(chǔ)器的擴(kuò)展連線(xiàn)步驟1:

程序存儲(chǔ)器的擴(kuò)展連線(xiàn)步驟2:

程序存儲(chǔ)器的擴(kuò)展連線(xiàn)步驟3:

程序存儲(chǔ)器的擴(kuò)展連線(xiàn)步驟4:

程序存儲(chǔ)器的擴(kuò)展連線(xiàn)步驟5:

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

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

4、數(shù)據(jù)存儲(chǔ)器的擴(kuò)展連線(xiàn)

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

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

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

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

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

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

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

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

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

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

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

5.U4與U1的連接

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

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

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

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

3.編碼輸入/輸出方式

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

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

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

(2)I/O端口作為輸出控制信號(hào)線(xiàn)時(shí),

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

(3)了解I/O端口輸出級(jí)電路結(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引腳時(shí),可利用鎖存器、觸發(fā)器或三態(tài)門(mén)電路實(shí)現(xiàn)。1.輸出口擴(kuò)展 圖6-2利用74LS273芯片的輸出口擴(kuò)展電路 當(dāng)A15、A14、A13、A12、A11、A10為100110時(shí),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)僅需要修改輸出口中個(gè)別位的狀態(tài)時(shí),可使用具有位尋址功能的內(nèi)部RAM單元作為擴(kuò)展輸出口的映像地址,并采用間接方式訪問(wèn),即先對(duì)映像地址單元進(jìn)行“讀—改—寫(xiě)”操作,再將映像地址單元內(nèi)容送外部端口。例如,通過(guò)如下指令即可將9800H口的b0位取反:

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

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

CPLAcc.0 ;對(duì)b0位取反

MOVPORTP6,A ;回寫(xiě)映像地址單元

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

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

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

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

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

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

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

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

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

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

CS*——片選信號(hào),輸入,低電平有效。

WR*——寫(xiě)選通信號(hào),輸入,低電平有效。

RD*——讀選通信號(hào),輸入,低電平有效。

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口可在軟件的控制下,分為兩個(gè)4位端口,作為PA口、PB口選通方式操作時(shí)的狀態(tài)控制信號(hào)。(2)A組和B組控制電路

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

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

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

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

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

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

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

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

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

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

寫(xiě)入工作方式控制字95H:10010101

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

控制字07H寫(xiě)入控制口,置“1”P(pán)C3;控制字08H寫(xiě)入控制口,清“0”P(pán)C4。4.8255的三種工作方式

1)方式0

基本的輸入/輸出方式。

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

2)方式1

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論