第20講第7章并行接口及定時(shí)計(jì)數(shù)控制.講述_第1頁(yè)
第20講第7章并行接口及定時(shí)計(jì)數(shù)控制.講述_第2頁(yè)
第20講第7章并行接口及定時(shí)計(jì)數(shù)控制.講述_第3頁(yè)
第20講第7章并行接口及定時(shí)計(jì)數(shù)控制.講述_第4頁(yè)
第20講第7章并行接口及定時(shí)計(jì)數(shù)控制.講述_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章(1) 認(rèn)識(shí)并行接口微機(jī)原理與接口技術(shù)第7章 并行接口及定時(shí)計(jì)數(shù)控制 21 并行接口8255A2 計(jì)數(shù)器/定時(shí)器8253/8254【知識(shí)點(diǎn)】第7章 并行接口及定時(shí)計(jì)數(shù)控制 3回顧一下我們面對(duì)一個(gè)新芯片應(yīng)該有的學(xué)習(xí)過(guò)程理清芯片的結(jié)構(gòu),知道其架構(gòu)的背景查找其對(duì)應(yīng)的學(xué)習(xí)資源了解其對(duì)應(yīng)的編程環(huán)境及開(kāi)發(fā)環(huán)境、調(diào)試方式動(dòng)手實(shí)踐,熟能生巧第7章 并行接口及定時(shí)計(jì)數(shù)控制 4【主要內(nèi)容】8255并行接口電路8253計(jì)數(shù)器/定時(shí)器教學(xué)重點(diǎn):學(xué)習(xí)目標(biāo)熟練掌握8255A/8253A的工作方式和初始化編程 掌握8255A/8253A的應(yīng)用第7章 并行接口及定時(shí)計(jì)數(shù)控制 5可編程接口概述可編程接口:用戶可以通過(guò)指令

2、設(shè)置接口的工作模式,提高計(jì)算機(jī)硬件系統(tǒng)的靈活性。典型電路:簡(jiǎn)單的具有輸入和輸出功能的可編程接口電路配合8086常用的可編程芯片:8255A 并行I/O接口8253 計(jì)數(shù)器/定時(shí)器8251 串行I/O8259A 中斷控制器8237DMA控制器 關(guān)鍵在這里第7章 并行接口及定時(shí)計(jì)數(shù)控制 6什么是并行通信? 把一個(gè)字符的各位用幾條線同時(shí)進(jìn)行傳輸。特點(diǎn):傳輸速度快、信息率高 但成本高(使用電纜多)。應(yīng)用范圍:傳輸距離較短(幾米至幾十米)、數(shù)據(jù)傳輸率較高的場(chǎng)合。 7.1 可編程并行接口芯片8255A并行并行接口CPU接口外設(shè).第7章 并行接口及定時(shí)計(jì)數(shù)控制 7并行數(shù)據(jù)傳輸方式以計(jì)算機(jī)的字長(zhǎng),通常是8位、

3、16位或32位為傳輸單位,一次傳送一個(gè)字長(zhǎng)的數(shù)據(jù)適合于外部設(shè)備與微機(jī)之間進(jìn)行近距離、大量和快速的信息交換例如:微機(jī)與并行接口打印機(jī)、磁盤驅(qū)動(dòng)器微機(jī)系統(tǒng)中最基本的信息交換方法例如:系統(tǒng)板上各部件之間,接口電路板上各部件之間7.1 可編程并行接口芯片8255A第7章 并行接口及定時(shí)計(jì)數(shù)控制 8并行輸入輸出接口的特點(diǎn)并行接口連接CPU與并行外設(shè),實(shí)現(xiàn) 兩者間的并行通信,在信息傳送過(guò)程中,起到輸出鎖存或輸入緩沖的作用。并行接口的典型硬件結(jié)構(gòu)1、一個(gè)或一個(gè)以上具有鎖存或緩沖的數(shù)據(jù)端口2、與CPU進(jìn)行數(shù)據(jù)交換所必須的控制和狀態(tài)信號(hào)3、與外設(shè)進(jìn)行數(shù)據(jù)交換所必須的控制和狀態(tài)信號(hào)4、端口譯碼電路5、控制電路 并

4、行輸入輸出接口為了達(dá)到以上功能第7章 并行接口及定時(shí)計(jì)數(shù)控制 97.1 可編程并行接口芯片8255A?8255A是一個(gè)什么芯片?8255A芯片的內(nèi)部結(jié)構(gòu)是怎樣的?8255A芯片是如何工作的Intel 8255A是一個(gè)通用的可編程的并行接口芯片,它有三個(gè)并行I/O口,又可通過(guò)編程設(shè)置多種工作方式。價(jià)格低廉,使用方便,在中小系統(tǒng)中有著廣泛的應(yīng)用。 第7章 并行接口及定時(shí)計(jì)數(shù)控制 107.1 8255A并行接口電路具有多種功能的可編程并行接口電路芯片最基本的接口電路:三態(tài)緩沖器和鎖存器與CPU間、與外設(shè)間的接口電路:狀態(tài)寄存器和控制寄存器還有端口的譯碼和控制電路、中斷控制電路有3個(gè)數(shù)據(jù)端口,共24個(gè)

5、外設(shè)引腳;還有一個(gè)控制端口共三種輸入輸出工作方式7.1.1 8255的內(nèi)部結(jié)構(gòu)這些功能電路都集成在里面第7章 并行接口及定時(shí)計(jì)數(shù)控制 11 8255A是一個(gè)40引腳的雙列直插式集成電路芯片,其邏輯結(jié)構(gòu)如下所示。按功能可把8255A分為三個(gè)邏輯電路部分,即:端口電路、總線接口電路和控制邏輯電路。(1)端口電路 8255A共有三個(gè)8位端口,其中A口和B口是單純的數(shù)據(jù)口,供數(shù)據(jù)I/O使用。而C口則既可以作數(shù)據(jù)口,又可以作控制口使用,用于實(shí)現(xiàn)A口和B口的控制功能。 數(shù)據(jù)傳送中A口所需的控制信號(hào)由C口高位部分(PC7PC4)提供,因此把A口和C口高位部分合在一起稱之為A組;同樣理由把B口和C口低位部分(

6、PC3PC0)合在一起稱之為B組。7.1 8255并行接口電路第7章 并行接口及定時(shí)計(jì)數(shù)控制 12A組控制B組控制端口C(上半部)端口C下半部端口BOOO數(shù)據(jù)總線緩沖器讀 / 寫控制邏輯端口A數(shù)據(jù)總線RDWRA0A1RESETCSPA0 PA7PC4 PC7PC0 PC3PB0 PB7CPU接口外設(shè)接口內(nèi)部邏輯7.1.1 8255A內(nèi)部結(jié)構(gòu)內(nèi)部數(shù)據(jù)總線D0 D7第7章 并行接口及定時(shí)計(jì)數(shù)控制 13Intel 8255A的功能片內(nèi)譯碼電路A1A0= 00 A口;01=B口; 10 C口;11 控制口5.5 并行輸入輸出接口注意這是8位總線8255的A1A0一定要接地址總線的A1A0嗎?第7章 并

7、行接口及定時(shí)計(jì)數(shù)控制 14外設(shè)數(shù)據(jù)端口端口A:PA0PA7A組,支持工作方式0、1、2端口B:PB0PB7B組,支持工作方式0、1端口C:PC0PC7僅支持工作方式0A組控制高4位PC4PC7B組控制低4位PC0PC3端口A:PA0PA7常作數(shù)據(jù)端口,功能最強(qiáng)大端口B:PB0PB7常作數(shù)據(jù)端口端口C:PC0PC7可作數(shù)據(jù)、狀態(tài)和控制端口分兩個(gè)4位,每位可獨(dú)立操作控制最靈活,最難掌握從某種意義上說(shuō),掌握了C口的使用就掌握了8255的應(yīng)用第7章 并行接口及定時(shí)計(jì)數(shù)控制 15(2)總線接口電路總線接口電路用于實(shí)現(xiàn)8255A和單片微機(jī)的信號(hào)連接。其中包括: (a)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器為8位雙向

8、三態(tài)緩沖器,可直接和CPU的數(shù)據(jù)線相連,與I/O操作有關(guān)的數(shù)據(jù)、控制字和狀態(tài)信息都是通過(guò)該緩沖器進(jìn)行傳送。(b)讀/寫控制邏輯與讀寫有關(guān)的控制信號(hào)有:CS片選信號(hào)(低電平有效)RD讀信號(hào)(低電平有效)WR寫信號(hào)(低電平有效)7.1 8255并行接口電路7.1.1 8255的內(nèi)部結(jié)構(gòu)第7章 并行接口及定時(shí)計(jì)數(shù)控制 16(3)控制邏輯電路 控制邏輯電路包括A組控制和B組控制,合在一起構(gòu)成8位控制寄存器。用于存放各口的工作方式控制字。RESET復(fù)位信號(hào)(高電平有效)。復(fù)位之后,控制寄存器清除,各端口被置為輸入方式。讀寫控制邏輯用于實(shí)現(xiàn)8255A的硬件管理:芯片的選擇,口的尋址以及規(guī)定各端口和單片微機(jī)

9、之間的數(shù)據(jù)傳送方向。詳見(jiàn)表1 8255A接口工作狀態(tài)選擇表. 7.1.1 8255的內(nèi)部結(jié)構(gòu)第7章 并行接口及定時(shí)計(jì)數(shù)控制 17A1、A0端口選擇信號(hào)。8255A共有四個(gè)可尋址的端口(即A口、B口、C口和控制寄存器),用二位地址編碼即可實(shí)現(xiàn)選擇。參見(jiàn)下表。表1 8255A接口工作狀態(tài)選擇表 7.1.1 8255的內(nèi)部結(jié)構(gòu)第7章 并行接口及定時(shí)計(jì)數(shù)控制 18(1)8255A的工作方式 8255A共有三種工作方式,即方式0、方式1、方式2.(a)方式0 基本輸入/輸出方式 方式0下,可供使用的是兩個(gè)8位口(A口和B口)及兩個(gè)4位口(C口高4位部分和低4位部分)。四個(gè)口可以是輸入和輸出的任何組合。

10、方式0適用于無(wú)條件數(shù)據(jù)傳送。(也可以把C口的某一位作為狀態(tài)位,實(shí)現(xiàn)查詢方式的數(shù)據(jù)傳送)7.1.2 8255A工作方式及數(shù)據(jù)I/O操作7.1 8255并行接口電路第7章 并行接口及定時(shí)計(jì)數(shù)控制 19(b)方式1 選通輸入或輸出方式單向 A口和B口分別用于數(shù)據(jù)的輸入或輸出。而C口則作為數(shù)據(jù)傳送的聯(lián)絡(luò)信號(hào)。具體定義見(jiàn)表72??梢?jiàn)A口和B口的聯(lián)絡(luò)信號(hào)都是三個(gè),如果A或B只有一個(gè)口按方式1使用,則剩下的另外13位口線仍然可按方式0使用。如果兩個(gè)口都按方式1使用,則還剩下2位口線,這兩位口線仍然可以進(jìn)行位狀態(tài)的輸入輸出。 方式1適用于查詢或中斷方式的數(shù)據(jù)輸入/輸出。 (c)方式2 雙向數(shù)據(jù)傳送方式只有A口

11、才能選擇這種工作方式,這時(shí)A口既能輸入數(shù)據(jù)又能輸出數(shù)據(jù)。在這種方式下需使用C口的五位線作控制線,信號(hào)定義如表72所示。方式2適用于查詢或中斷方式的雙向數(shù)據(jù)傳送。如果把A口置于方式2下,則B口能工作于方式0或方式1.7.1.2 8255A工作方式及數(shù)據(jù)I/O操作所謂選通方式實(shí)質(zhì)就是查詢跟方式1差不多,由單向雙向第7章 并行接口及定時(shí)計(jì)數(shù)控制 20學(xué)工作方式要特別注意工作過(guò)程的理解:異步通訊要注意CPU和8255如何進(jìn)行Handshaking請(qǐng)大家思考:為什么B口沒(méi)有工作方式2第7章 并行接口及定時(shí)計(jì)數(shù)控制 21*數(shù)據(jù)輸入操作 用于輸入操作的聯(lián)絡(luò)信號(hào)有: STB (Strobe)選通脈沖,輸入,低

12、電平有效。當(dāng)外設(shè)送來(lái)STB信號(hào)時(shí),輸入數(shù)據(jù)裝入8255A的鎖存器。 IBF(Input Buffer Full) 輸入緩沖器滿信號(hào),輸出,高電平有效。 IBF信號(hào)有效,表明數(shù)據(jù)已裝入鎖存器,因此它是一個(gè)狀態(tài)信號(hào),供CPU查詢之用。 INTR(INTerrupt Request)中斷請(qǐng)求信號(hào),高電平有效。當(dāng)IBF為高時(shí),中斷請(qǐng)求信號(hào)有效。向微機(jī)發(fā)出中斷請(qǐng)求。7.1 8255并行接口電路要從8255的角度弄懂這些管腳的信號(hào):從哪里來(lái),到哪里去,起什么作用。上面講了8255工作時(shí)需要那些信號(hào),下面講這些信號(hào)是如何配合工作的第7章 并行接口及定時(shí)計(jì)數(shù)控制 22數(shù)據(jù)輸入過(guò)程:當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)輸入后,發(fā)出

13、STB信號(hào),輸入的數(shù)據(jù)送入緩沖器。然后IBF信號(hào)自動(dòng)有效。如使用查詢方式,則IBF即作為狀態(tài)信號(hào)供CPU查詢使用;如使用中斷方式,當(dāng)信號(hào)由低變高時(shí),產(chǎn)生INTR信號(hào),向微機(jī)發(fā)出中斷請(qǐng)求。微機(jī)在響應(yīng)中斷后執(zhí)行中斷服務(wù)程序時(shí)讀入數(shù)據(jù),并使INTR信號(hào)變低,同時(shí)也使IBF信號(hào)同時(shí)變低。以通知外設(shè)準(zhǔn)備下一次數(shù)據(jù)輸入。7.1 8255并行接口電路這是CPU讀數(shù)后自動(dòng)進(jìn)行的第7章 并行接口及定時(shí)計(jì)數(shù)控制 23*數(shù)據(jù)輸出操作用于數(shù)據(jù)輸出操作的聯(lián)絡(luò)信號(hào)有:ACK (ACKnowledge)外設(shè)響應(yīng)信號(hào)輸入,低電平有效。當(dāng)外設(shè)取走輸出數(shù)據(jù),并處理完畢后向微機(jī)發(fā)回的響應(yīng)信號(hào),表示上一個(gè)數(shù)據(jù)已處理。OBF(Outp

14、ut Buffer Full)輸出緩沖器滿信號(hào),輸出,低電平有效。當(dāng)微機(jī)把輸出數(shù)據(jù)寫入8255A鎖存器后,該信號(hào)有效以通知外設(shè),并送去啟動(dòng)外設(shè)以接收數(shù)據(jù)。INTR中斷請(qǐng)求信號(hào),輸出,高電平有效。這個(gè)信號(hào)表示可以接受新數(shù)據(jù)了第7章 并行接口及定時(shí)計(jì)數(shù)控制 24 數(shù)據(jù)輸出過(guò)程:外設(shè)接收并處理完一組數(shù)據(jù)后,發(fā)回ACK*信號(hào)。該信號(hào)使OBF*變高,表明輸出緩沖器已空。如使用查詢方式,則OBF*可作為CPU狀態(tài)信號(hào)供查詢使用;如使用中斷方式,則當(dāng)ACK*信號(hào)結(jié)束時(shí),INTR有效,向微機(jī)發(fā)出中斷請(qǐng)求。在中斷服務(wù)過(guò)程中,把下一個(gè)輸出數(shù)據(jù)寫入8255A的輸出緩沖器。寫入后OBF*有效,表明輸出數(shù)據(jù)已到,并以此

15、信號(hào)啟動(dòng)外設(shè)工作,取走并處理8255A中的輸出數(shù)據(jù)。7.1 8255并行接口電路7.1.2 8255A工作方式及數(shù)據(jù)I/O操作第7章 并行接口及定時(shí)計(jì)數(shù)控制 25方式0輸入時(shí)序(選讀)datadata輸入端口D0D7RD CS,A1,A0請(qǐng)?bào)w會(huì)這里8255A的數(shù)據(jù)緩沖作用第7章 并行接口及定時(shí)計(jì)數(shù)控制 26方式0輸出時(shí)序(選讀)WRdatadata輸出端口D0D7 CS,A1,A08255A對(duì)CPU通過(guò)它輸出給外設(shè)的數(shù)據(jù)進(jìn)行鎖存第7章 并行接口及定時(shí)計(jì)數(shù)控制 27方式1輸入引腳:A端口數(shù)據(jù)選通信號(hào):表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)方向: 外設(shè)-8255作用:鎖存數(shù)據(jù)到8255,使IBF或INTR有效,通

16、知CPU取數(shù)據(jù)輸入緩沖器滿信號(hào):表示A口已經(jīng)接收數(shù)據(jù).方向:8255-CPU及外設(shè)作用:通知CPU讀數(shù)據(jù),讀完后會(huì)無(wú)效,通知外設(shè)可以送新數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器注意這個(gè)信號(hào)有效的條件第7章 并行接口及定時(shí)計(jì)數(shù)控制 28方式1輸入引腳:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號(hào)表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿信號(hào)表示B口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)中斷允許觸發(fā)器注意這個(gè)信號(hào)有效的條件第7章 并行接口及定時(shí)計(jì)數(shù)控制 29方式1輸入聯(lián)絡(luò)信號(hào)(小結(jié))STB

17、*選通信號(hào),低電平有效由外設(shè)提供的輸入信號(hào),當(dāng)其有效時(shí),將輸入設(shè)備送來(lái)的數(shù)據(jù)鎖存至8255A的輸入鎖存器IBF輸入緩沖器滿信號(hào),高電平有效8255A輸出的聯(lián)絡(luò)信號(hào)。當(dāng)其有效時(shí),表示數(shù)據(jù)已鎖存在輸入鎖存器INTR中斷請(qǐng)求信號(hào),高電平有效8255A輸出的信號(hào),可用于向CPU提出中斷請(qǐng)求,要求CPU讀取外設(shè)數(shù)據(jù)方式1需借用端口C用做聯(lián)絡(luò)信號(hào)同時(shí)還具有中斷請(qǐng)求和屏蔽功能第7章 并行接口及定時(shí)計(jì)數(shù)控制 30方式1輸入時(shí)序(選讀)dataINTRIBF data輸入端口D0D7STBRDSTB*和IBF是外設(shè)和8255A間的一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),為的是可靠地輸入數(shù)據(jù)第7章 并行接口及定時(shí)計(jì)數(shù)控制 31方式1中

18、斷控制8255A的中斷由中斷允許觸發(fā)器INTE控制置位允許中斷,復(fù)位禁止中斷對(duì)INTE的操作通過(guò)寫入端口C的對(duì)應(yīng)位實(shí)現(xiàn),INTE觸發(fā)器對(duì)應(yīng)端口C的位是作應(yīng)答聯(lián)絡(luò)信號(hào)的輸入信號(hào)的那一位,只要對(duì)那一位置位/復(fù)位就可以控制INTE觸發(fā)器選通輸入方式下端口A的INTEA對(duì)應(yīng)PC4端口B的INTEB對(duì)應(yīng)PC2第7章 并行接口及定時(shí)計(jì)數(shù)控制 32方式1輸出引腳:A端口外設(shè)響應(yīng)信號(hào):表示外設(shè)已經(jīng)接收到數(shù)據(jù)方向:外設(shè)-8255作用:通知8255數(shù)據(jù)已處理,使OBF*變高供CPU查詢或使CPU中斷,送新數(shù)據(jù)輸出緩沖器滿信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù):方向:由8255-CPU作用:?jiǎn)?dòng)讀外設(shè)數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CP

19、U再次輸出數(shù)據(jù)PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器第7章 并行接口及定時(shí)計(jì)數(shù)控制 33方式1輸出引腳:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)中斷允許觸發(fā)器第7章 并行接口及定時(shí)計(jì)數(shù)控制 34方式1輸出聯(lián)絡(luò)信號(hào)OBF*輸出緩沖器滿信號(hào),低有效8255A輸出給外設(shè)的一個(gè)控制信號(hào),當(dāng)其有效時(shí),表示CPU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走ACK*響應(yīng)信號(hào),低有效外設(shè)的響應(yīng)信號(hào),指示8255A的端口數(shù)據(jù)已由外設(shè)接受I

20、NTR中斷請(qǐng)求信號(hào),高有效當(dāng)輸出設(shè)備已接受數(shù)據(jù)后,8255A輸出此信號(hào)向CPU提出中斷請(qǐng)求,要求CPU繼續(xù)提供數(shù)據(jù)端口A的INTEA對(duì)應(yīng)PC6端口B的INTEB對(duì)應(yīng)PC2第7章 并行接口及定時(shí)計(jì)數(shù)控制 35方式1輸出時(shí)序(選讀) INTR datadata輸出端口D0D7WROBFACK OBF*和ACK*是外設(shè)和8255A間的一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),為的是可靠地輸出數(shù)據(jù)第7章 并行接口及定時(shí)計(jì)數(shù)控制 36方式2雙向方式方式2將方式1的選通輸入輸出功能組合成一個(gè)雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù)只有端口A可以工作于方式2,需要利用端口C的5個(gè)信號(hào)線,其作用與方式1相同方式2的數(shù)據(jù)輸入過(guò)程與方式1的

21、輸入方式一樣方式2的數(shù)據(jù)輸出過(guò)程與方式1的輸出方式有一點(diǎn)不同:數(shù)據(jù)輸出時(shí)8255A不是在OBF*有效時(shí)向外設(shè)輸出數(shù)據(jù),而是在外設(shè)提供響應(yīng)信號(hào)ACK*時(shí)才送出數(shù)據(jù)第7章 并行接口及定時(shí)計(jì)數(shù)控制 37方式2雙向引腳PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6設(shè)置INTE1(輸出)用PC4設(shè)置INTE2(輸入)輸入和輸出中斷通過(guò)或門輸出INTRA信號(hào)可以看出為什么只能A口工作在雙向方式而B(niǎo)口不能。方式2雙向時(shí)序(選讀)data-out INTR data-outdata-indata-inPA0PA7D0D7IBF WROBFACK

22、STBRD第7章 并行接口及定時(shí)計(jì)數(shù)控制 39(1)8255的方式字(寫入 A1A0 = 11)D0D1D2D3D4D5D6D7PC3 PC01:輸入0:輸出B口 1:輸入 0:輸出B組工作方式 0:方式0 1:方式1PC7 PC4 1:輸入 0:輸出A口 1:輸入 0:輸出A組工作方式00:方式001:方式11:方式2D7 = 1特征位B組A組7.1 8255并行接口電路7.1.3 8255的編程下面的內(nèi)容是告訴大家前面講的功能如何通過(guò)編程實(shí)現(xiàn)第7章 并行接口及定時(shí)計(jì)數(shù)控制 40(2) C口的置位/復(fù)位字 (寫入 A1A0 = 11) D0D1D2D3D4D5D6D71:置位0:復(fù)位C口選擇

23、000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7任選(可1可0)D7 = 0(特征位)方式0:基本 I/O 方式 (查詢時(shí),任選C口做連絡(luò)信號(hào))方式1:選通I/O 方式(可查詢或中斷,固定C口做連絡(luò)信號(hào))方式2:雙向I/O方式(只用于A口,PC3 PC7做連絡(luò)信號(hào))7.1 8255并行接口電路7.1.3 8255的編程第7章 并行接口及定時(shí)計(jì)數(shù)控制 418255A的編程初始化編程:一個(gè)方式控制字采用控制I/O地址:A1A011工作過(guò)程中:通過(guò)數(shù)據(jù)端口對(duì)外設(shè)數(shù)據(jù)進(jìn)行讀寫數(shù)據(jù)讀寫利用端口A、B和C的I/O地址,A1A0依次等于00、0

24、1、10IBM PC/XT機(jī)上:端口A、B、C和控制端口的I/O地址為60H、61H、62H和63H第7章 并行接口及定時(shí)計(jì)數(shù)控制 421. 寫入方式控制字:示例要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001B或B1H初始化的程序段:mov dx,63h;控制端口mov al,0b1h;方式控制字out dx,al;送到控制端口第7章 并行接口及定時(shí)計(jì)數(shù)控制 432. 讀寫數(shù)據(jù)端口初始化編程后:當(dāng)數(shù)據(jù)端口作為輸入接口時(shí),執(zhí)行輸入IN指令將從輸入設(shè)備得到外設(shè)數(shù)據(jù)當(dāng)數(shù)據(jù)端口作為輸出接口時(shí),執(zhí)行輸出OUT指令將把CPU的數(shù)據(jù)送給輸出設(shè)備第7

25、章 并行接口及定時(shí)計(jì)數(shù)控制 442. 讀寫數(shù)據(jù)端口:示例利用8255A的輸出鎖存能力,可實(shí)現(xiàn)按位輸出控制 對(duì)輸出端口B的PB7位,置位的程序段:mov dx,61h ;B端口in al,dx ;讀出B端口原輸出內(nèi)容or al,80h ;使PB71out dx,al ;輸出新的內(nèi)容編程要養(yǎng)成一個(gè)習(xí)慣:當(dāng)改寫某位時(shí),其它的位應(yīng)保持不變。 MOV AL,80HOUT 61H,AL第7章 并行接口及定時(shí)計(jì)數(shù)控制 453. 讀寫端口C:歸納1C端口被分成兩個(gè)4位端口,兩個(gè)端口只能以方式0工作,可分別選擇輸入或輸出在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組第7章 并行接口及定時(shí)計(jì)

26、數(shù)控制 463. 讀寫端口C:歸納2當(dāng)A和B端口工作在方式1或方式2時(shí),C端口的部分或全部引腳將被征用其余引腳仍設(shè)定工作在方式0第7章 并行接口及定時(shí)計(jì)數(shù)控制 473. 讀寫端口C:歸納3對(duì)端口C的數(shù)據(jù)輸出有兩種辦法通過(guò)端口C的I/O地址:向C端口直接寫入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進(jìn)C端口的輸出鎖存器,并從輸出引腳輸出,但對(duì)設(shè)置為輸入的引腳無(wú)效通過(guò)控制端口:向C端口寫入位控字,使C端口的某個(gè)引腳輸出1或0,或置位復(fù)位內(nèi)部的中斷允許觸發(fā)器這才是使用C口位控的目的這比前面的方法簡(jiǎn)單得多。第7章 并行接口及定時(shí)計(jì)數(shù)控制 48端口C的位控制字位控制字寫入控制端口特別便于置位/復(fù)位內(nèi)部中斷允許觸發(fā)器INTE

27、第7章 并行接口及定時(shí)計(jì)數(shù)控制 49例:若A口工作于方式1作輸入,要使用中斷傳送方式,則應(yīng)當(dāng)寫PC4的按位的控制方式置位字: MOVAL,00001001B OUT63H,AL 注意:這樣寫了后,PC4的管腳不受影響雖然是對(duì)C口操作,但這是位控方式,所以要送到控制端口第7章 并行接口及定時(shí)計(jì)數(shù)控制 503. 讀寫端口C:歸納4讀取的C端口數(shù)據(jù)有兩種情況未被A和B端口征用的引腳:將從定義為輸入的端口讀到引腳輸入信息;將從定義為輸出的端口讀到輸出鎖存器中的信息被A和B端口征用作為聯(lián)絡(luò)線的引腳:將讀到反映8255A狀態(tài)的狀態(tài)字告訴我們?cè)贏口或B口工作在方式1或方式2時(shí),如何查詢它的握手信號(hào):讀C口,

28、判斷相應(yīng)的狀態(tài)第7章 并行接口及定時(shí)計(jì)數(shù)控制 51方式1輸入INTRAINTE2IBFAINTE1OBFAINTRBOBFBINTEBINTRAI/OI/OINTEAOBFA方式2雙向方式1輸出INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD0D1D2D3D4D5D6D7端口C的狀態(tài)字A組B組參考圖7-2,便于理解第7章 并行接口及定時(shí)計(jì)數(shù)控制 52C端口未借用位的使用小結(jié)A端口方式 0、B端口方式 0 C端口所有位未被借用,PC0 PC7 可用A端口方式 0、B端口方式 1 PC0 PC2被借用,PC3 PC7可用A端口方式 1輸入、B端口方式 0 PC3、PC4、PC

29、5被借用,PC0 PC2、PC6、PC7 可用A端口方式 1輸出、B端口方式 0 PC3、PC6、PC7 被借用,PC0 PC2、PC4、PC5 可用A端口方式 1輸入、B端口方式 1 PC6、PC7 可用A端口方式 1輸出、B端口方式 1 PC4、PC5 可用A端口方式2、B端口方式1;都不可用第7章 并行接口及定時(shí)計(jì)數(shù)控制 53例1:對(duì)8255A各口作如下設(shè)置:A口方式0,B口方式0,從A口輸入,從B口、C口輸出。(8255A CONTROL口的地址為63H)工作方式控制字10010000,即90H。初始化程序段為:MOV AL,90H;設(shè)B口、 C口輸出, A口輸入 ; A口、B口為方式

30、0OUT63H,ALINAL,60H;從A口輸入 OUT61H,AL;從B口輸出 OUT 62H,AL ;從C口輸出7.1 8255并行接口電路7.1.3 8255的編程第7章 并行接口及定時(shí)計(jì)數(shù)控制 54例2:PC-XT把C口的第六位PC5置為1。MOV AL,00001011;PC5置位OUT 63H,AL;NOTE:This address is 63H, not 62H.7.1 8255并行接口電路7.1.3 8255的編程第7章 并行接口及定時(shí)計(jì)數(shù)控制 55例題(位操作控制字)已知8255A的端口地址為02E0H02E3H,請(qǐng)實(shí)現(xiàn)對(duì)端口C的PC2置位和PC4復(fù)位。解:MOVDX,02

31、E3H;大于8位的端口地址送DXMOVAL,05H;位操作控制字0000 0101OUTDX,AL;置位PC2MOVAL,08H;位操作控制字0000 1000 OUTDX,AL;復(fù)位PC4 第7章 并行接口及定時(shí)計(jì)數(shù)控制 56例題(位操作控制字)(2)請(qǐng)?jiān)?255A的C端口的PC7位輸出一個(gè)正脈沖。解:程序段如下MOV AL, 0FH ;置位PC7,操作控制字00001111OUT CTRL_PORT, AL ;寫入控制端口MOV AL, 0EH ;復(fù)位PC7,操作控制字00001110OUT CTRL_PORT, AL; 寫入控制端口第7章 并行接口及定時(shí)計(jì)數(shù)控制 57例8255A與系統(tǒng)的

32、連線如下, 片選譯碼地址為0F00F3H1) 確定各端口地址?2) 編程設(shè)置8255A : A口方式 0 輸入,PC7PC4輸出 B口方式 0 輸出,PC3PC0輸入resetD7D0A7A2A1A0IORIOW片選譯碼數(shù)據(jù)緩沖器讀寫控制片內(nèi)譯碼RESETA1A0PC7PC0PB7PB0控制口D端口A端口C端口B +5VGNDD7D0外設(shè)RDWRCSPA7PA0F0F3H第7章 并行接口及定時(shí)計(jì)數(shù)控制 58最后得出結(jié)論: A口地址為 F0 H B口地址為 F1 H C口地址為 F2 H D口地址為 F3 H由8255A編程結(jié)構(gòu)知:由8255A的CS與系統(tǒng)總線的連線知, 地址在F0F3H可使CS

33、有效,故: 4個(gè)端口的地址在0F00F3H中。結(jié)合8255A與系統(tǒng)總線的連線: A7 A6 A5 A4 A3 A2 A1 A0 F0H 1 1 1 1 0 0 0 0 A口F1H 1 1 1 1 0 0 0 1 B口F2H 1 1 1 1 0 0 1 0 C口F3H 1 1 1 1 0 0 1 1 D口 CSA1 A0 8255A總線解:1)端口地址A1A0選中端口00端口A01端口B10端口C11控制端口第7章 并行接口及定時(shí)計(jì)數(shù)控制 591特征位00A口方式 01A口輸入0PC7PC4輸出0B口方式 00B口輸出1PC3PC0輸入所以,方式控制字為 1001 0001B,即91H 要求設(shè)置

34、: A口方式0輸入,PC7PC4輸出 B口方式0輸出,PC3PC0輸入 2)確定方式控制字D7D6D5D4D3D2D1D0第7章 并行接口及定時(shí)計(jì)數(shù)控制 60MOV DX, 0F3H ;控制口地址MOV AL, 91H ;方式控制字OUT DX, AL或 MOV AL, 91H ; 方式控制字OUT 0F3H, AL初始化程序第7章 并行接口及定時(shí)計(jì)數(shù)控制 61問(wèn)題1:8255A哪種工作方式具有中斷請(qǐng)求的功能?該中斷請(qǐng)求能否屏蔽?如何設(shè)置?解:8255A的方式1、方式2具有中斷請(qǐng)求功能,均可屏蔽。 A口:方式1輸入時(shí),PC4置位允許中斷、 PC4復(fù)位禁止中斷; 方式1輸出時(shí),PC6置位允許中斷

35、、 PC6復(fù)位禁止中斷;方式2時(shí),即為方式1輸入、輸出的組合。B口:工作于方式1時(shí),PC2置位允許中斷、 PC2復(fù)位禁止中斷。第7章 并行接口及定時(shí)計(jì)數(shù)控制 62問(wèn)題2設(shè)8255A的端口地址為0260H0263H,試編寫下列各種情況的初始化程序:(1)A口、B口設(shè)置為方式0,端口A和C作為輸入口,端口B作為輸出。解:初始化程序段:MOV AL,99H;方式選擇控制字10011001MOV DX,0263H;端口地址大于8位送DXOUT DX,AL第7章 并行接口及定時(shí)計(jì)數(shù)控制 63問(wèn)題3(2)A口設(shè)置為方式2,禁止中斷,B口設(shè)置為方式1輸出,允許中斷。 8255A的端口地址為0260H0263

36、H解:初始化程序段:MOV AL,0C4H ;方式選擇控制字11xx x10 xMOV DX,0263HOUT DX,AL ;初始化完成MOV AL,0CH ;位操作控制字0000 1100, PC6復(fù)位, A口輸出中斷禁止OUT DX,ALMOV AL,08H ;位操作控制字0000 1000, PC4復(fù)位, A口輸入中斷禁止OUT DX,AL ;A口方式2,禁止中斷MOV AL,05H ;位操作控制字0000 0101, PC2置位,B口中斷允許OUT DX,AL第7章 并行接口及定時(shí)計(jì)數(shù)控制 64問(wèn)題4(3)A口設(shè)置為方式1輸入,PC7和PC6作為輸出,B口方式1輸入,A口和B口允許中斷

37、。解:初始化程序段:MOV AL,0B6H;方式選擇控制字1011 011xMOV DX,0263HOUT DX,AL ;初始化完成MOV AL,09H ;位操作控制字0000 1001, PC4置位OUT DX,AL;A口輸入允許中斷MOV AL,05H;位操作控制字0000 0101, PC2置位 OUT DX,AL;B口允許中斷第7章 并行接口及定時(shí)計(jì)數(shù)控制 65例 試畫出8255A與8086CPU連接圖,并說(shuō)明8255A的A0、A1地址線與8086CPU的A1、A2地址線連接的原因。答: 8086系統(tǒng)有16根數(shù)據(jù)線,而8255只有8根數(shù)據(jù)線,為了軟件讀寫方便,一般將8255的8條數(shù)據(jù)線

38、與8086的低8位數(shù)據(jù)線相連。而8086在進(jìn)行數(shù)據(jù)傳送時(shí)總是將總線低8位對(duì)應(yīng)偶地址端口,因此8086CPU要求8255的4個(gè)端口地址必須為偶地址,即8086在尋址8255時(shí)A0腳必須為低。實(shí)際使用時(shí),我們總是將8255的A0、A1腳分別接8086的A1、A2腳,而將8086的A0腳空出不接,并使8086訪問(wèn)8255時(shí)總是使用偶地址。2接口應(yīng)用舉例8255可以接8086的高8位數(shù)據(jù)總線?第7章 并行接口及定時(shí)計(jì)數(shù)控制 66 例7-18255A的A口和B口工作在方式0,A口為輸入端口,接有四個(gè)開(kāi)關(guān)。B口為輸出端,接有一個(gè)七段發(fā)光二極管,連接電路如圖所示。試編一程序要求七段發(fā)光二班管顯示開(kāi)關(guān)所撥通的

39、數(shù)字。電路A0=0,偶地址8位的8255A與16位的CPU可以通過(guò)數(shù)據(jù)總線D7D0傳送8位信息.其實(shí)A0參加譯碼完全是多此一舉。WHY?注意:8255的A1A0連接的是地址線的A2A1D0D7可參考上一章例題這個(gè)電阻應(yīng)該是多大?第7章 并行接口及定時(shí)計(jì)數(shù)控制 67LED數(shù)碼管段碼表 由圖可知,七段發(fā)光二極管為共陽(yáng)極LED器件。要讓a段點(diǎn)亮,要求從PB0輸出高電平;要讓b段熄滅,要求從PB1輸出低電平。8255A的A口接有開(kāi)關(guān),4位開(kāi)關(guān)的組合可為0FH。為此,可將在LED上顯示0FH各字符的段碼列表。第7章 并行接口及定時(shí)計(jì)數(shù)控制 68微型計(jì)算機(jī)原理與應(yīng)用第7章 輸入輸出方法及常用的接口電路 6

40、8tab1 db 3fh,06h,5bh,4fh,31h mov al,90h;設(shè)置方式字,A輸入,BC輸出mov dx,8026h;控制口out dx , aladd1: mov dx,8020h;A口in al,dx;取開(kāi)關(guān)信息and al,0fh;屏蔽高4位mov bx,offset tab1;取段碼表首地址xlat;查表得段碼mov dx,8022h;輸出顯示,B口out dx,almov cx,0600hadd2: loop add2;循環(huán)延時(shí)顯示jmp add1Note: 各個(gè)地址的表示可以用字符第7章 并行接口及定時(shí)計(jì)數(shù)控制 69例7-28255A的A口和B口分別工作在方式1和方

41、式0,A口為輸入端口,接有8個(gè)開(kāi)關(guān)。B口為輸出端,接有8個(gè)發(fā)光二極管,連接電路如圖所示?,F(xiàn)要求用方式1把改變后的鍵信息輸入到CPU并通過(guò)B口顯示。工作過(guò)程:1、用戶通過(guò)改變K0K7,產(chǎn)生新的鍵信息;2、按下開(kāi)關(guān)K,產(chǎn)生選通信號(hào),數(shù)據(jù)進(jìn)入A口的緩沖器,此步驟實(shí)際上告訴CPU,8255的A口來(lái)了一個(gè)新數(shù)據(jù);3、IBFA有效使LED點(diǎn)亮。這里含有兩個(gè)信息,一個(gè)是8255A通知CPU其A口來(lái)了一個(gè)新數(shù)據(jù),另一個(gè)是告訴用戶CPU尚未取走這個(gè)這個(gè)數(shù)據(jù),用戶不得再送其他數(shù)據(jù);4、CPU取走這個(gè)數(shù)據(jù),LED熄滅;5、轉(zhuǎn)步驟1。 本例要求把改變后的開(kāi)關(guān)值通過(guò)B口的發(fā)光二極管顯示出來(lái)。這和上面的例題不同,無(wú)條件傳

42、輸方式CPU每次 從A口輸入的信息不一定是開(kāi)關(guān)改變后的值。 本例成功傳輸數(shù)據(jù)依賴于2個(gè)條件:1)CPU知道用戶何時(shí)把數(shù)據(jù)送入8255A的A口2)用戶知道CPU何時(shí)把數(shù)據(jù)取走第7章 并行接口及定時(shí)計(jì)數(shù)控制 70例7-28255A的A口和B口分別工作在方式1和方式0,A口為輸入端口,接有8個(gè)開(kāi)關(guān)。B口為輸出端,接有8個(gè)發(fā)光二極管,連接電路如圖所示?,F(xiàn)要求用方式1把改變后的鍵信息輸入到CPU并通過(guò)B口顯示。mov al,10111001b ;設(shè)置工作方式 out 8eh,alloop1: in al,8ch;取C口的狀態(tài)線test al,00100000b;測(cè)試IBFA信息jz loop1 ;等待用戶設(shè)定新的鍵值mov cx,0ffffh;延時(shí),LED燈亮loop2:loop loop2in al,88h;取數(shù)。LED燈滅out 8ah,al;更新B口的顯示jmp loop1;重復(fù)為什么這個(gè)程序中要延時(shí)第7章 并行接口及定時(shí)計(jì)數(shù)控制 71例7-38255A的A口工作在方式1的輸出,接有8個(gè)發(fā)光二極管,現(xiàn)要求把內(nèi)存中的10個(gè)數(shù),通過(guò)A口發(fā)送給發(fā)光二極管以二進(jìn)制的形式供用戶抄錄。工作過(guò)程:1、CPU把內(nèi)存中的一個(gè)數(shù)據(jù)寫入A口;2、LED燈亮,告訴用戶LED顯示的是新數(shù)據(jù);3、用戶抄錄數(shù)據(jù);4、用戶按下開(kāi)關(guān)K,發(fā)ACK信號(hào),告訴CPU數(shù)據(jù)已取走; 5、轉(zhuǎn)步驟1。此系統(tǒng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論