《微型計(jì)算機(jī)技術(shù)》第6章 可編程并行接口芯片和串行接口芯片_第1頁(yè)
《微型計(jì)算機(jī)技術(shù)》第6章 可編程并行接口芯片和串行接口芯片_第2頁(yè)
《微型計(jì)算機(jī)技術(shù)》第6章 可編程并行接口芯片和串行接口芯片_第3頁(yè)
《微型計(jì)算機(jī)技術(shù)》第6章 可編程并行接口芯片和串行接口芯片_第4頁(yè)
《微型計(jì)算機(jī)技術(shù)》第6章 可編程并行接口芯片和串行接口芯片_第5頁(yè)
已閱讀5頁(yè),還剩152頁(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)介

2023/1/301微型計(jì)算機(jī)技術(shù)WeixinɡJisuɑnjiJishu

(第3版)

2023/1/302

第6章

可編程并行接口芯片

和串行接口芯片2023/1/303可編程并行接口芯片和串行接口芯片6.1并行接口與串行接口6.2可編程并行接口芯片8255A(chǔ)6.3可編程串行接口芯片82512023/1/3046.1并行接口與串行接口6.1.1可編程接口芯片概述6.1.2并行接口、串行接口和模擬接口2023/1/3056.1.1可編程接口芯片概述CPU是通過(guò)接口電路與外圍設(shè)備(簡(jiǎn)稱(chēng)外設(shè))實(shí)現(xiàn)信息交換的。在接口電路中,必有輸入輸出數(shù)據(jù)鎖存器和三態(tài)緩沖器組成的數(shù)據(jù)端口,以便實(shí)現(xiàn)CPU與外設(shè)之間的數(shù)據(jù)傳送。在程序查詢(xún)的I/O接口電路中,還應(yīng)有狀態(tài)/命令寄存器,以便CPU與接口電路或外設(shè)之間用應(yīng)答方式來(lái)交換信息;2023/1/306可編程接口芯片概述在中斷控制的I/O接口電路中,還要求有中斷控制邏輯電路(通常由中斷請(qǐng)求觸發(fā)器、中斷屏蔽觸發(fā)器、中斷請(qǐng)求信號(hào)形成邏輯、中斷優(yōu)先鏈電路、中斷優(yōu)先編碼器、中斷優(yōu)先級(jí)比較器和中斷類(lèi)型碼發(fā)生器等部件組成),以便CPU實(shí)現(xiàn)不同的中斷管理方式;在DMA方式的接口電路中,還需要有命令/狀態(tài)寄存器、存儲(chǔ)器地址寄存器和傳送字節(jié)計(jì)數(shù)器等。此外,隨著微型計(jì)算機(jī)的廣泛應(yīng)用,還要求具有定時(shí)和計(jì)數(shù)功能的接口電路、具有串行輸入輸出功能的串行接口電路及具有信號(hào)轉(zhuǎn)換功能的接口電路等。2023/1/307可編程接口芯片概述隨著大規(guī)模集成電路技術(shù)的發(fā)展,針對(duì)接口電路的不同功能,芯片制造商生產(chǎn)出許多通用的可編程I/O接口電路芯片。所謂可編程I/O接口電路芯片是指用戶(hù)可通過(guò)編制相應(yīng)的程序段,使一塊通用的I/O接口電路能按不同的工作方式完成不同功能的接口任務(wù)。也可在工作過(guò)程中,通過(guò)編程手段對(duì)通用的I/O接口電路芯片進(jìn)行動(dòng)態(tài)操作,如改變工作方式、發(fā)送操作命令、讀取接口電路內(nèi)部有關(guān)端口的現(xiàn)狀等。2023/1/308接口電路中多數(shù)具有如下電路單元(1)輸入/輸出數(shù)據(jù)鎖存器和緩沖器,用以解決CPU與外設(shè)之間速度不匹配的矛盾,以及起隔離和緩沖的作用;(2)控制命令和狀態(tài)寄存器,以存放CPU對(duì)外設(shè)的控制命令,以及外設(shè)的狀態(tài)信息;(3)地址譯碼器,用來(lái)選擇接口電路中的不同端口(寄存器);(4)讀寫(xiě)控制邏輯;(5)中斷控制邏輯。 從早期的邏輯電路板到大規(guī)模集成電路芯片為主的接口芯片。2023/1/309幾個(gè)重要概念

1.片選的概念

必須要有一個(gè)地址信號(hào)選中接口芯片后,才能使該接口芯片進(jìn)入電路工作狀態(tài),實(shí)現(xiàn)數(shù)據(jù)的輸入/輸出。 選通端(ChipEnable),又稱(chēng)片選端(ChipSelect)。

()端是控制接口芯片進(jìn)入電路工作狀態(tài)的引腳端。2023/1/3010片選概念

2023/1/30112.讀/寫(xiě)概念

2023/1/3012

3.可編程接口的概念

可編程接口芯片大部分是多通道、多功能的。

多通道是指一個(gè)接口芯片一面與CPU連接,另一面可接幾個(gè)外設(shè);

多功能是指一個(gè)接口芯片能實(shí)現(xiàn)多種接口功能,實(shí)現(xiàn)不同的電路工作狀態(tài)。2023/1/3013可編程接口的概念

2023/1/3014可編程接口的概念

在接口芯片內(nèi),各硬件單元不是固定接死的,可由用戶(hù)在使用中選擇即:

通過(guò)計(jì)算機(jī)的指令來(lái)選擇不同的通道和不同的電路功能,稱(chēng)為“編程控制”。

2023/1/3015可編程接口的概念

接口電路的組態(tài)(即電路工作狀態(tài))可由計(jì)算機(jī)指令來(lái)控制的接口芯片稱(chēng)為“可編程序接口芯片”。 用來(lái)存放控制電路組態(tài)的控制字節(jié)的寄存器,稱(chēng)為“控制寄存器”。2023/1/3016“可編程序接口芯片”的初始化對(duì)可編程序接口芯片中的控制口(控制寄存器)寫(xiě)入控制字(控制內(nèi)容),以設(shè)定接口芯片的接口功能和工作特性。通過(guò)指令MOVAL,CWOUTPORT-CNT,ALCW---ControlWord/CommandWordPORD-CNT為控制口地址2023/1/30174.“聯(lián)絡(luò)”的概念

2023/1/3018“聯(lián)絡(luò)”的概念

接口芯片常常需要和外設(shè)間有一定的“聯(lián)絡(luò)”信號(hào),以保證信息的正常傳送。 通常采用兩個(gè)“聯(lián)絡(luò)”(Handhake)信號(hào):(選通信號(hào),strobe)和RDY(就緒信號(hào),Ready)。2023/1/3019“聯(lián)絡(luò)”信號(hào)

2023/1/3020“聯(lián)絡(luò)”信號(hào)通常輸入接口中,聯(lián)絡(luò)信號(hào)是STB(或)和IBF通常輸出接口中,聯(lián)絡(luò)信號(hào)是(或ACK)和輸入的選通信號(hào)

IBF輸入緩沖器滿(mǎn)信號(hào)輸出緩沖器滿(mǎn)信號(hào)響應(yīng)信號(hào)2023/1/30216.1.2并行接口、串行接口和模擬接口可編程接口芯片一邊通過(guò)CPU的三總線(xiàn)(或系統(tǒng)總線(xiàn))同CPU連接,一邊通過(guò)三種信息即數(shù)據(jù)信息、控制信息和狀態(tài)信息同外設(shè)連接,CPU通過(guò)接口芯片同外設(shè)之間交換的信息就是這三種信息。

2023/1/3022并行接口、串行接口和模擬接口其中,數(shù)據(jù)信息可以有數(shù)字量、模擬量和開(kāi)關(guān)量三種類(lèi)型。根據(jù)接口芯片同外設(shè)之間交換的數(shù)據(jù)信息是數(shù)字量、模擬量還是開(kāi)關(guān)量,I/O接口可分為數(shù)字接口、模擬接口和開(kāi)關(guān)接口。同時(shí)在數(shù)字接口中,按接口芯片同外設(shè)之間傳送的是并行數(shù)據(jù)還是串行數(shù)據(jù),數(shù)字接口又可分為并行接口和串行接口。而一個(gè)開(kāi)關(guān)量只用一位二進(jìn)制碼表示,同數(shù)字接口相仿。因此本書(shū)所討論的可編程接口芯片包括并行接口、串行接口和模擬接口。但不論何種接口芯片,接口芯片同CPU之間傳送的總是并行數(shù)字量。2023/1/3023并行接口、串行接口和模擬接口對(duì)串行接口而言,接口內(nèi)必須有并行—

串行的轉(zhuǎn)換部件(輸出接口)和串行—

并行的轉(zhuǎn)換部件(輸入接口);對(duì)模擬接口而言,接口內(nèi)必須有模數(shù)轉(zhuǎn)換器(輸入接口)和數(shù)模轉(zhuǎn)換器(輸出接口)。2023/1/30246.2可編程并行接口芯片8255A(chǔ)

6.2.18255A(chǔ)的結(jié)構(gòu)和引腳功能6.2.28255A(chǔ)的工作方式6.2.38255A(chǔ)的初始化6.2.48255A(chǔ)的應(yīng)用舉例6.2.516位微型計(jì)算機(jī)系統(tǒng)中的并行接口2023/1/30256.2可編程并行接口芯片8255A8255A的結(jié)構(gòu)和引腳功能8255A的工作方式8255A的初始化8255A的應(yīng)用舉例16位系統(tǒng)中的并行接口2023/1/3026可編程并行接口芯片8255A

Intel8255A是一種通用的可編程序并行I/O接口芯片(ProgrammableParallelInterface)。又稱(chēng)“可編程外設(shè)接口芯片”P(pán)PI(ProgrammablePeripheralInterface)。

2023/1/30276.2.18255A的結(jié)構(gòu)和引腳功能

2023/1/30288255A的結(jié)構(gòu)和引腳功能1.8255A的內(nèi)部結(jié)構(gòu)CPU一側(cè):數(shù)據(jù)總緩沖器、讀寫(xiě)控制邏輯和控制字寄存器2個(gè):1)方式控制寄存器(分A組4位,B組3位,1位特征位)2)C口置位/復(fù)位寄存器(4位控制位,1位特征位,3位無(wú)關(guān)位)2023/1/3029

8255A的內(nèi)部結(jié)構(gòu)同CPU的連接的引腳信號(hào)有:D0~D7同CPU的D0~D7連接A1、A0同CPU的A1、A0連接同CPU的連接同CPU的連接同CPU的髙位地址連接RESET同系統(tǒng)復(fù)位信號(hào)連接2023/1/3030同外設(shè)一側(cè)

有三個(gè)8位端口PA、PB和PC,都可由程序設(shè)定為各種不同的工作方式。 通常PA口與PB口用作輸入/輸出的數(shù)據(jù)端口,

PC口用作控制或狀態(tài)信息的端口,

PC口可以分成兩個(gè)4位的端口。表6-12023/1/30312023/1/3032同外設(shè)一側(cè)PA口的8條引腳PA0~PA7PB口的8條引腳PB0~PB7PC口的8條引腳PC0~PC7PA0~PA7、PB0~PB7、PC0~PC7同所連接的外設(shè)數(shù)據(jù)線(xiàn)連接PC0~PC7中的各條引腳又可作為PA和PB的聯(lián)絡(luò)信號(hào)線(xiàn)2023/1/30336.2.28255A的工作方式1.方式0—基本輸入輸出

8255A在方式0工作時(shí):

CPU可以采用無(wú)條件讀寫(xiě)方式與8255A交換數(shù)據(jù)。 如把C口的兩個(gè)部分用作控制和狀態(tài)口,與外設(shè)的控制和狀態(tài)端相連,CPU也可通過(guò)對(duì)C口的讀寫(xiě),實(shí)現(xiàn)A口與B口的查詢(xún)方式工作。 輸出的數(shù)據(jù)被鎖存,而輸入數(shù)據(jù)是不鎖存的。2023/1/3034無(wú)條件傳送方式1)外設(shè)隨時(shí)準(zhǔn)備好同CPU之間的數(shù)據(jù)傳輸;2)外設(shè)的定時(shí)(外設(shè)處理信息的時(shí)間關(guān)系)是固定的、而且是已知的。2023/1/3035查詢(xún)傳送方式外設(shè)的定時(shí)是不固定的、或者是不知的。則必需由外設(shè)提供反映外設(shè)工作狀態(tài)(是否能傳送數(shù)據(jù))的狀態(tài)信息,由此在I/O接口中必需有存放狀態(tài)信息的寄存器---狀態(tài)端口。為了實(shí)現(xiàn)CPU與外設(shè)之間的同步傳送,I/O接口同外設(shè)之間通常有一對(duì)聯(lián)絡(luò)信號(hào)線(xiàn),一條是接口給外設(shè)的控制信號(hào)線(xiàn),另一條是外設(shè)給接口的狀態(tài)信號(hào)線(xiàn)。2023/1/3036方式0—基本輸入輸出當(dāng)工作于無(wú)條件傳送時(shí),與外設(shè)之間不需要聯(lián)絡(luò)信號(hào)線(xiàn);當(dāng)工作于查詢(xún)傳送時(shí),與外設(shè)之間需要聯(lián)絡(luò)信號(hào)線(xiàn),可由接口電路設(shè)計(jì)者任選PCL和PCH中各1條線(xiàn)作為與外設(shè)之間的聯(lián)絡(luò)信號(hào)線(xiàn)。選定了聯(lián)絡(luò)信號(hào)線(xiàn)后,在初始化時(shí)必須據(jù)此對(duì)PCL和PCH進(jìn)行設(shè)置。2023/1/3037

8255A的工作方式2.方式1—選通輸入輸出(應(yīng)答式輸入輸出)

方式1可工作于查詢(xún)方式和中斷方式

C口可分成兩部分,分別作為A口和B口的聯(lián)絡(luò)信號(hào)。在8255A中規(guī)定PC中的三位作為聯(lián)絡(luò)信號(hào)和中斷請(qǐng)求線(xiàn)。

2023/1/3038方式1—選通輸入輸出1)方式1工作于輸入接口(PA口)(1):輸入的選通信號(hào),(PC4)(2)IBF:輸入緩沖器滿(mǎn)信號(hào),(PC5)(3)INTR:中斷請(qǐng)求信號(hào),(PC3)2023/1/3039方式1—選通輸入輸出

方式1工作于輸入接口(PB口)(1):輸入的選通信號(hào),(PC2)(2)IBF:輸入緩沖器滿(mǎn)信號(hào),(PC1)(3)INTR:中斷請(qǐng)求信號(hào),(PC0)2023/1/3040中斷允許信號(hào)(4)INTE:中斷允許信號(hào)。A端口用PC4位的置/復(fù)位控制,B端口用PC2位的置/復(fù)位控制。只有當(dāng)PC4或PC2置“1”時(shí),才允許對(duì)應(yīng)的端口送出中斷請(qǐng)求。INTE對(duì)應(yīng)于接口中的一個(gè)中斷允許觸發(fā)器,PC4或PC2=1,就是使該觸發(fā)器置1。2023/1/3041聯(lián)絡(luò)信號(hào)線(xiàn)1):輸入選通信號(hào),低電平有效。由外設(shè)提供,為低電平時(shí),就把輸入的數(shù)據(jù)信號(hào)(PA7~PA0或PB7~PB0)送入A端口(或B端口)的數(shù)據(jù)鎖存器。2)IBF:輸入緩沖器滿(mǎn)信號(hào),高電平有效。由8255A輸出,有效時(shí),用以通知外部設(shè)備輸入的數(shù)據(jù)已寫(xiě)入緩沖器。2023/1/3042中斷請(qǐng)求線(xiàn)3)INTR:中斷請(qǐng)求信號(hào),高電平有效。當(dāng)外部設(shè)備要向CPU傳送數(shù)據(jù)或請(qǐng)求服務(wù)時(shí),8255A就用INTR端的高電平向CPU提出中斷請(qǐng)求。當(dāng)、IBF和INTE都為高電平時(shí),表明數(shù)據(jù)鎖存器內(nèi)已寫(xiě)入了數(shù)據(jù),若此時(shí)INTE=1,則使INTR成為高電平,輸出到CPU。CPU響應(yīng)中斷,在控制下從8255A中讀取數(shù)據(jù)時(shí),的下降沿使INTR復(fù)位,它的上升沿又使IBF復(fù)位,使外設(shè)知道可以進(jìn)行下一字節(jié)輸入,見(jiàn)圖6-8(b)。2023/1/3043方式1的輸入

2023/1/30442)方式1工作于輸出接口(PA口)(1):輸出緩沖器滿(mǎn)信號(hào),(PC7)(2):響應(yīng)信號(hào),(PC6)(3)INTR:中斷請(qǐng)求信號(hào),(PC3)(4)INTE:中斷允許信號(hào),(PC6)2023/1/3045方式1工作于輸出接口(PB口)(1):輸出緩沖器滿(mǎn)信號(hào),(PC1)(2):響應(yīng)信號(hào),(PC2)(3)INTR:中斷請(qǐng)求信號(hào),(PC0)(4)INTE:中斷允許信號(hào),(PC2)2023/1/3046聯(lián)絡(luò)信號(hào)線(xiàn)1)輸出緩沖器滿(mǎn)信號(hào);低電平有效。由8255A輸出,當(dāng)其有效時(shí),表示CPU已經(jīng)將數(shù)據(jù)輸出到指定的端口,通知外設(shè)可以將數(shù)據(jù)取走。2)響應(yīng)信號(hào),低電平有效。由外設(shè)送來(lái),有效時(shí)表示8255A數(shù)據(jù)已經(jīng)為外設(shè)所接收。

2023/1/3047中斷請(qǐng)求線(xiàn)

3)INTR:中斷請(qǐng)求信號(hào),高電平有效。當(dāng)外設(shè)接收了由CPU送給8255A的數(shù)據(jù)后,8255A就用INTR端向CPU發(fā)出中斷請(qǐng)求,請(qǐng)求CPU再輸出后面的數(shù)據(jù)。INTR是在INTE=1的條件下,當(dāng),和INTE都為高電平時(shí),才能被置成高電平。由的上升沿清除(見(jiàn)圖6-9(b))。2023/1/3048中斷允許信號(hào)(4)INTE:中斷允許信號(hào)。A端口用PC6位的置/復(fù)位控制,B端口用PC2位的置/復(fù)位控制。只有當(dāng)PC4或PC2置“1”時(shí),才允許對(duì)應(yīng)的端口送出中斷請(qǐng)求。INTE對(duì)應(yīng)于接口中的一個(gè)中斷允許觸發(fā)器,PC6或PC2=1,就是使該觸發(fā)器置1。2023/1/3049方式1的輸出

2023/1/30503.方式2—雙向選通輸入輸出

可工作于中斷方式,也可工作于查詢(xún)方式 方式2只限于A口使用。(1):輸入的選通信號(hào),(PC4)(2)IBF:輸入緩沖器滿(mǎn)信號(hào),(PC5)(3)INTR:中斷請(qǐng)求信號(hào),(PC3)(4):輸出緩沖器滿(mǎn)信號(hào),(PC7)(5):響應(yīng)信號(hào),(PC6)2023/1/3051方式2—雙向選通輸入輸出

2023/1/3052方式2當(dāng)A組在方式2下工作時(shí),B組可以在方式1或方式0(此時(shí)只能采用無(wú)條件傳輸)工作2023/1/30536.2.38255A的初始化

首先要由CPU對(duì)8255A

寫(xiě)入控制命令字,有2種控制命令字:一個(gè)是方式選擇控制字,另一個(gè)是C口按位置位/復(fù)位控制字。2023/1/30541.方式選擇控制字(D7=1)

2023/1/30552.C口按位置位/復(fù)位控制字(D7=0)

2023/1/3056

狀態(tài)字

PC7PC6PC5PC4PC3PC2PC1PC0

方式1輸入

方式1輸出AINTE1IBFAINTE2INTRAXXX

方式2 B組,由方式0或方式1定義I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB

INTE1IBFAINTE2INTRAXXXINTEAI/OI/OINTRAINTEBINTRB2023/1/30576.2.48255A的應(yīng)用舉例

開(kāi)關(guān)接口

LED接口打印機(jī)接口(1)

打印機(jī)接口(2)

鍵盤(pán)接口七段LED顯示器接口打印機(jī)接口(3)LED/開(kāi)關(guān)接口2023/1/3058例6-2開(kāi)關(guān)接口該程序的功能是每隔5分鐘從PA口讀入8個(gè)開(kāi)關(guān)的狀態(tài)存入2000H:3000H開(kāi)始的數(shù)據(jù)區(qū),工作10小時(shí)結(jié)束。

MOVAX,3000HMOVDS,AXMOVBX,2000HMOVCX,120MOVAL,10010000B(90H);8255初始化

OUT63H,AL2023/1/3059開(kāi)關(guān)接口LOP:INAL,60H MOV[BX],AL INCBX CALLDELAY5M;延時(shí)5分鐘的子程序

DECCX JNZLOP MOVAH,4CH INT21H2023/1/3060例6-3LED接口

2023/1/3061LED接口

MOVAL,10000000B(80H);8255初始化

OUT 63H,AL MOVCX,7200 MOV AL,7FHLOP:OUT 60H,AL ROR AL,01H CALL DELAY5S;延時(shí)5秒子程序

LOOP LOP MOV AH,4CH INT 21H 2023/1/3062LED接口該控制程序的功能是:開(kāi)始時(shí)LED7點(diǎn)亮(發(fā)光),每隔5秒鐘,發(fā)光燈移向上一個(gè)LED,依次點(diǎn)亮LED6,LED5,…LED0。然后再點(diǎn)亮LED7…周而復(fù)始,共工作10小時(shí)結(jié)束。2023/1/3063例6-4打印機(jī)接口(1~3)

2023/1/3064打印機(jī)接口(1)

2023/1/3065打印機(jī)接口(1)圖6.16為采用8255作為打印機(jī)接口的例子,圖中,PA口作為向打印機(jī)輸出的數(shù)據(jù)口,工作于方式0,采用程序查詢(xún)的控制方式。由PC0產(chǎn)生控制信號(hào),PC7讀取外設(shè)狀態(tài)BUSY,8255的端口地址為90H~93H。則要求從內(nèi)存2000H:3000H開(kāi)始取出100個(gè)數(shù)據(jù)送打印機(jī)打印的控制程序?yàn)椋?023/1/3066打印機(jī)接口(1)MOV AX,2000H MOV DS,AX MOV BX,3000H MOV CX,100 MOV AL,10001000B(88H) ;8255初始化

OUT 93H,ALLOP:IN AL,92H TEST AL,80H JNZ LOP2023/1/3067打印機(jī)接口(1)

MOV AL,[BX] ;A口輸出

OUT 90H,AL MOV AL,01H ;產(chǎn)生

OUT 93H,AL MOV AL,00H OUT 93H,AL MOV AL,01H OUT 93H,AL INC BX LOOP LOP MOV AH,4CH INT 21H2023/1/3068打印機(jī)接口(2)2023/1/3069打印機(jī)接口(2)采用中斷控制方式的打印機(jī)接口,圖中PB口作為向打印機(jī)輸出的數(shù)據(jù)口,工作于方式1采用程序中斷的控制方式。8255工作于方式1輸出時(shí),規(guī)定8255PB口同外設(shè)之間的聯(lián)絡(luò)信號(hào)為由PC1輸出,由PC2輸入,中斷請(qǐng)求INTR由PC0輸出送IR2,本接口電路中未用而是選用PC7產(chǎn)生打印機(jī)所要求的

2023/1/3070打印機(jī)接口(2)設(shè)8255的口地址同圖6.14,則該接口的初始化程序段為:MOVAL,10000100B(84H);PB口方式1輸

出PCH輸出OUT93H,ALMOVAL,00000101B(05H);INTEB=PC2

置INTEB=1,(開(kāi)中)OUT93H,AL2023/1/3071打印機(jī)接口(3)

2023/1/3072例6-5鍵盤(pán)接口

兩類(lèi)鍵盤(pán):編碼鍵盤(pán)和非編碼鍵盤(pán)。 編碼鍵盤(pán)能自動(dòng)提供對(duì)應(yīng)于被按鍵的編碼信息,如ASCII碼,并能同時(shí)產(chǎn)生一個(gè)選通脈沖通知微處理器。 非編碼鍵盤(pán)由一組開(kāi)關(guān)組成,提供行和列的鍵盤(pán)矩陣。其全部工作,包括按鍵的識(shí)別、按鍵代碼的產(chǎn)生、防止串鍵和消去抖動(dòng)等問(wèn)題,都靠程序來(lái)實(shí)現(xiàn)。

2023/1/3073鍵盤(pán)接口鍵盤(pán)輸入信息的過(guò)程:(1)檢測(cè)是否有鍵按下;(2)查出按下的是哪一個(gè)鍵;(3)將該鍵所代表的信息翻譯成計(jì)算機(jī)能識(shí)別的內(nèi)部代碼。如ASCII碼或其他預(yù)先約定的編碼。2023/1/3074鍵盤(pán)接口2023/1/3075鍵盤(pán)接口使用行掃描方式尋找按下鍵的編號(hào)(鍵號(hào))的程序如下:

…PORTA EQU 0FFF8HPORTB EQU 0FFFAHPORTC EQU 0FFFCHPORTCN EQU 0FFFEH MOV DX,PORTCN ;置8255A端口A,B工作在方式0;

MOV AL,10000011B;端口A為輸出口,端口B為輸入口

OUT DX,ALWAITK: MOV DX,PORTA;等待鍵閉合

MOV AL,0 ;行碼送全“0”

OUT DX,AL

2023/1/3076鍵盤(pán)接口

MOVDX,PORTB ;讀列碼

IN AL,DX CMP AL,0FFHJZWAITK ;無(wú)鍵按下,繼續(xù)等待

MOV BL,0 ;掃描鍵盤(pán)矩陣,送鍵號(hào)初值

MOV BH,11111110B;置初始掃描模式——行碼送FEH

MOV CX,8FNDROW: MOV AL,BH ;送行碼

MOV DX,PORTA OUT DX,AL ROL BH,1 ;修改行碼

MOV DX,PORTB;讀列碼

IN AL,DX 2023/1/3077鍵盤(pán)接口

CMP AL,0FFH JNZ FNDCOL;有鍵按下,查列號(hào)

ADD BL,8 ;無(wú)鍵按下,指向下一行鍵號(hào)初值

LOOP FNDROW;

8行掃描未完,送下一行掃描碼

JMP DONE ;8行掃描完,無(wú)鍵按下

FNDCOL:ROR AL,1 ;查哪一列有鍵按下

JNC RIGHT ;查到按下鍵的鍵號(hào)

INC BL ;鍵號(hào)加1,查下一列

JMP FNDCOLRIGHT: ;按下鍵的編號(hào)在BL中

… …DONE:

;無(wú)鍵閉合

…2023/1/3078例6-6七段LED顯示器接口

發(fā)光二極管是一種當(dāng)外加電壓(陽(yáng)極電壓接高電位)超過(guò)額定電壓時(shí)發(fā)生擊穿,并因此產(chǎn)生可見(jiàn)光的器件。這種數(shù)碼顯示管通常由多個(gè)發(fā)光二極管來(lái)組成7段或8段筆劃顯示器。當(dāng)段組合發(fā)亮?xí)r,便可顯示某一數(shù)碼或字符。

8個(gè)7段LED顯示器上顯示8位16進(jìn)制數(shù),每個(gè)顯示器顯示其中一位數(shù)。2023/1/3079七段LED顯示器接口

2023/1/3080七段LED顯示器接口

2023/1/3081七段LED顯示器接口SSEGCODE DB0C0H;定義16進(jìn)制數(shù)字符的七段代碼表

DB0F9H DB0A4H DB0B0H DB99H DB92H DB82H DB0F8H DB80H DB98H DB88H DB83H DB0C6H2023/1/3082七段LED顯示器接口

DB0AlH DB86H DB8EHFOURBYTE EQUTHISBYTEDBLWORD DD12345678H … MOVAL,10000000B ;設(shè)置工作方式

MOVDX,0FFFEH OUTDX,AL … CLDAGAIN: MOVCX,4 MOVSI,OFFSETFOURBYTE2023/1/3083七段LED顯示器接口

MOVAH,11111110BLOOPDISP:LODSB MOVDI,AX AND AL,0FH MOVBX,OFFSETSSEGCODE XLATSSEGCODE;送段選碼

MOVDX,0FFFAH OUTDX,AL MOVAL,AH ;送位選碼

MOVDX,OFFF8H OUTDX,AL PUSHCX MOVCX,NDELAY;延時(shí)2ms,NDELAY—延時(shí)常數(shù)2023/1/3084七段LED顯示器接口

IDLE: NOP NOP LOOPIDLE … MOVAL,0FFH;禁止顯示

OUTDX,AL MOVAX,DI MOVCL,4 SHRAL,CL MOVBX,OFFSETSSEGCODE XLATSSEGCODE MOVDX,0FFFAH OUTDX,AL ROLAH,1 2023/1/3085七段LED顯示器接口

MOVAL,AH MOVDX,0FFF8H OUTDX,AL MOVCX,NDELAY;延時(shí)2ms

IDLE2: NOP NOP LOOPIDIE2 ROLAH,1 MOVAL,0FFH OUTDX,AL POPCX LOOPLOOPDISP JMPAGAIN … 2023/1/3086例6-7打印機(jī)接口(4)

1)并行接口標(biāo)準(zhǔn)(Centronice) 該標(biāo)準(zhǔn)規(guī)定了一個(gè)36芯的連接口。 :數(shù)據(jù)選通接口;

DATA:數(shù)據(jù)信號(hào); :響應(yīng)信號(hào);

BUSY:忙信號(hào)。

表6-42023/1/3087表6-42023/1/30882023/1/3089打印機(jī)接口(4)2)打印機(jī)的工作過(guò)程及接口電路 打印機(jī)接口電路也稱(chēng)打印機(jī)適配器,可以用鎖存器、三態(tài)緩沖器等器件實(shí)現(xiàn),也可用通用的可編程并行接口芯片實(shí)現(xiàn)。2023/1/3090打印機(jī)接口(4)

2023/1/3091打印機(jī)接口(4)(1)8255A的初始化程序段(設(shè)8255A的I/O端口地址為2C0H-2C3H):

… MOV DX,02C3H MOV AL,1010l00lB OUT DX,AL MOV AL,0000l101B OUT DX,AL MOV DX,02ClH MOV AL,00001100B OUT DX,AL …2023/1/3092(2)打印機(jī)中斷服務(wù)程序PRINT PROC NEAR PUSH AX PUSH DX MOVDX02C0H MOV AL,[BX] OUT DX,AL MOVDX,02C1H2023/1/3093

打印機(jī)中斷服務(wù)程序

IN AL,DX OR AL,01H OUT DX,AL AND AL,0FEH OUT DX,AL INC BX POP DX POP AX IRETPRINT ENDP2023/1/3094例6-8

LED/開(kāi)關(guān)接口

8086CPU通過(guò)8255A同開(kāi)關(guān)與7段LED顯示器的接口:2023/1/3095LED/開(kāi)關(guān)接口8086CPU通過(guò)8255A同開(kāi)關(guān)與7段LED顯示器的接口如圖8.23所示;開(kāi)關(guān)設(shè)置的二進(jìn)制信息由8255A的PB口輸入,經(jīng)程序轉(zhuǎn)換為對(duì)應(yīng)的7段LED的段選碼(字形碼)后,通過(guò)PA口輸出,由7段LED顯示開(kāi)關(guān)二進(jìn)制狀態(tài)值,試編制其控制程序(8255A的端口地址為0FFF8H,0FFFAH,0FFFCH和0FFFEH)。2023/1/3096LED/開(kāi)關(guān)接口控制程序如下:

ORG 2000H MOV AL,82H MOV DX,0FFFEH OUT DX,AL RDPORTB:MOV DL,0FAH IN AL,DX AND AL,0FH MOV BX,OFFSETSSEGCODE XLAT MOV DL,0F8H OUT DX,AL MOV AX,56CH2023/1/3097LED/開(kāi)關(guān)接口DELAY: DEC AX JNZ DELAY JMP RDPORTB HLT ORG 2500HSSEGCODEDB0C0H,0F9H,0A4H,0B0H,99H,92HDB82H,0F8H80H,98H,88H,83H,0C6H,DB0A1H,86H,8EH

2023/1/3098LED/開(kāi)關(guān)接口ORG 2000HMOV AL,82H (1)MOV DX,0FFFEH (2)OUT DX,AL (3)RDPORTB: MOV DL,0FAH (4)IN AL,DX (5)AND AL,0FH (6)MOV BX,OFFSETSSEGCODE (7)XLAT (8)MOV DL,0F8H (9)OUT DX,AL (10)2023/1/3099LED/開(kāi)關(guān)接口MOV AX,56CH (11)DELAY:DEC AX (12)JNZ DELAY (13)JMP RDPORTB (14)HLT (15)ORG2500HSSEGCODE DB0C0H,0F9H,0A4H,0B0H99H,92H,82H,0F8HDB80H,98H,88H,83H,

0C6H,0A1H,86H,8EH2023/1/30100LED/開(kāi)關(guān)接口指令⑴~⑶設(shè)置8255A工作方式,方式選擇字為82H=10000010,工作于方式0,PA口輸出、PB口輸入,控制口地址為0FFFEH;指令⑷⑸讀入PB口信息—即4位開(kāi)關(guān)提供的狀態(tài)信息,這里PB口的地址為0FFFAH,修改地址寄存器DX時(shí),只修改DL為FAH,因高8位FF與控制口0FFFEH相同;2023/1/30101LED/開(kāi)關(guān)接口指令⑹屏蔽掉寄存器AL的高4位,因?yàn)閺腜B口讀入的信息中只有低4位有效,高4位為隨機(jī)值必須去除。指令⑺將地址指針BX指向段選碼(字形碼)表的首地址;指令⑻查表,取出對(duì)應(yīng)的段選碼,XLAT的功能是[BX+AL]→AL,執(zhí)行XLAT指令后,AL中的內(nèi)容為指令⑹執(zhí)行后PB口讀入的4位二進(jìn)制狀態(tài)值對(duì)應(yīng)的段選碼值;2023/1/30102LED/開(kāi)關(guān)接口指令⑼⑽將查表所得之段選碼送PA口由7段LED顯示器顯示。指令⑾~⒀為延時(shí)程序段,使一次讀入的信息,保持顯示一段時(shí)間;指令⒁轉(zhuǎn)到指令⑷讀入4位開(kāi)關(guān)的新?tīng)顟B(tài),進(jìn)入新一輪的顯示操作;從ORG2500H開(kāi)始為段選碼表。2023/1/30103LED/開(kāi)關(guān)接口--2如果PA口與7段LED顯示器之間的驅(qū)動(dòng)器改為反相器,則程序中的段選碼表必須修改為SSEGCODE DB3FH,06H,5BH,4FHDB66H,6DH,7DH,07HDB7FH,67H,77H,7CHDB39H,5EH,79H,71H而控制程序可以不變。2023/1/30104LED/開(kāi)關(guān)接口--3如果要求7段LED顯示器循環(huán)顯示0-F十六個(gè)數(shù)字,每個(gè)數(shù)字顯示5秒鐘,顯示20遍。則控制程序?yàn)椋?/p>

ORG 2000HMOV AL,80H ;設(shè)置8255A方式選擇字

MOV DX,0FFFEHOUT DX,ALMOV BX,20 ;循環(huán)20次DISPLOP: LEA DI,SSEGCODE ;指向段選碼表

MOV CX,16 ;顯示字符個(gè)數(shù)LOP: MOV AL,[DI] ;取顯示字符送PA口

MOV DL,0F8H2023/1/30105LED/開(kāi)關(guān)接口--3

OUT DX,ALINC DI ;修改顯示指針

CALL DELAY5S ;延時(shí)5秒子程序

LOOP LOP ;每遍循環(huán)16次

DEC BX ;修改大循環(huán)指針,大循環(huán)20次

JNZ DISPLOPHLTORG 2500HSSEGCODE:DB0C0H,0F9H,0A4H,0B0HDB99H,92H,82H,0F8HDB80H,98H,88H,83HDB0C6H,0A1H,86H,8EH2023/1/301066.2.516位系統(tǒng)中的并行接口

2023/1/301076.3可編程串行接口芯片82516.3.1串行通信概述6.3.2串行接口原理6.3.3可編程通信接口8251AUSART6.3.4RS‐232C串行通信總線(xiàn)2023/1/301086.3.1串行通信概述并行通信和串行通信同步通信與異步通信串行通信的傳送方向信號(hào)的調(diào)制與解調(diào)異步通信規(guī)程2023/1/301091.并行通信和串行通信

串行通信能降低通信線(xiàn)路的價(jià)格和簡(jiǎn)化通信設(shè)備,可以利用現(xiàn)有的通信線(xiàn)路。

1.并行傳送

2.串行傳送

3.并行傳送與串行傳送的比較 (1)從距離上看:近距離和遠(yuǎn)距離; (2)從速度上看: (3)從設(shè)備、費(fèi)用上看:2023/1/30110并行通信和串行通信2023/1/301112.同步通信與異步通信

兩種基本的通信方式: 異步通信ASYNC(AsynchronousDataCommunication)同步通信SYNC(SynchronousDataCommunication)

2023/1/301121)異步通信(1)字符格式 ①1位起始位,低電平; ②5-8個(gè)數(shù)據(jù)位,(如標(biāo)準(zhǔn)ASCII碼。則為7位); ③1個(gè)奇偶校驗(yàn)位(作為檢錯(cuò)用); ④1,1.5或2個(gè)終止位(停止位),高電平。 。2023/1/30113異步通信兩項(xiàng)約定

起始位后面緊跟的是要傳送字符的最低位,每個(gè)字符的結(jié)束是一個(gè)高電平的終止位,起始位至終止位構(gòu)成一幀。相連兩個(gè)字符之間的間隔可以是任意長(zhǎng)度的,兩個(gè)相鄰字符之間叫空閑位,為高電平。2023/1/30114異步通信兩項(xiàng)約定(2)波特率(BaudRate) 波特率是指單位時(shí)間內(nèi)傳送二進(jìn)制數(shù)據(jù)的位數(shù),以位/秒為單位。每個(gè)數(shù)據(jù)位的傳送時(shí)間Td即為波特率的倒數(shù)。2023/1/30115異步通信2023/1/301162)同步通信

在數(shù)據(jù)塊開(kāi)始處要用同步字符來(lái)指明, 同步傳送速度高于異步傳送速度, 要求有時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端及接收端之間的同步, 硬件電路比較復(fù)雜。2023/1/30117同步通信

2023/1/301183.串行通信的傳送方向單工、半雙工、全雙工三種:1)單工(Simplex) 僅能進(jìn)行一個(gè)方向的傳送。2)半雙工(Half-Duplex) 能交替地進(jìn)行雙向數(shù)據(jù)傳送,但兩設(shè)備之間只用一根傳輸線(xiàn),兩個(gè)方向的數(shù)據(jù)傳送不能同時(shí)進(jìn)行。3)全雙工(Full-Duplex)

A、B之間有兩條傳輸線(xiàn),能在兩個(gè)方向上同時(shí)進(jìn)行數(shù)據(jù)傳送。2023/1/30119串行通信的傳送方向2023/1/301204.信號(hào)的調(diào)制與解調(diào)

計(jì)算機(jī)通信傳送的是數(shù)字信號(hào),數(shù)字信號(hào)直接進(jìn)行通信,經(jīng)過(guò)傳輸線(xiàn)后必然會(huì)產(chǎn)生畸變。 在發(fā)送端必需采用調(diào)制器把數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),在接收端又必需用解調(diào)器檢出發(fā)送來(lái)的模擬信號(hào),恢復(fù)為原來(lái)的數(shù)字信號(hào)。

2023/1/30121信號(hào)的調(diào)制與解調(diào)2023/1/30122信號(hào)的調(diào)制與解調(diào)2023/1/30123信號(hào)的調(diào)制與解調(diào)2023/1/30124PSK調(diào)制法原理圖2023/1/301255.異步通信規(guī)程

微型計(jì)算機(jī)中主要使用三種通信控制規(guī)程:異步控制規(guī)程(ASYNC),同步控制規(guī)程(BISYNC)和高級(jí)數(shù)據(jù)鏈路控制規(guī)程(HDLC)。 對(duì)每一種通信控制規(guī)程,都有相應(yīng)的大規(guī)模集成電路的接口芯片去實(shí)現(xiàn)。2023/1/301266.3.2串行接口原理組成與功能波特率因子差錯(cuò)檢測(cè)2023/1/301271.組成與功能1)組成 由三部分組成:

“接收器”—用來(lái)把串行碼轉(zhuǎn)換為并行碼;

“發(fā)送器”—用來(lái)把并行碼轉(zhuǎn)換為串行碼;

“控制器”—用來(lái)接收CPU的控制信號(hào),執(zhí)行CPU所要求的操作,并輸出狀態(tài)信息和控制信息。2)功能

UART的功能是接收異步串行輸入碼并將其轉(zhuǎn)換為CPU所需要的并行碼,并將CPU內(nèi)部的并行碼轉(zhuǎn)換為串行碼輸出。UART(UniversalAsynchronousReceiver/Transmitter,異步收發(fā)器)2023/1/30128UART中發(fā)送和接收部分2023/1/301292.波特率因子

UART是用外部時(shí)鐘來(lái)和接收的數(shù)據(jù)進(jìn)行同步的。外部時(shí)鐘的周期Tc和每個(gè)數(shù)據(jù)位的周期Td有以下關(guān)系:

Tc=Td/K K=16或64(K為波特率因子) 外部時(shí)鐘和接收數(shù)據(jù)的同步如圖所示:2023/1/30130波特率因子2023/1/30131奇偶校驗(yàn)位的產(chǎn)生

為了檢測(cè)長(zhǎng)距離傳送中可能發(fā)生的錯(cuò)誤,通常增加一個(gè)奇偶校驗(yàn)位。 發(fā)送時(shí),自動(dòng)在奇偶校驗(yàn)位上添上“1”或“0”; 接收時(shí),UART檢查字符的每一位以及奇偶校驗(yàn)位的“1”的個(gè)數(shù),以確定是否發(fā)生傳送錯(cuò)誤。2023/1/30132奇偶校驗(yàn)位的產(chǎn)生

2023/1/30133奇偶校驗(yàn)位的檢測(cè)2023/1/301343.三種出錯(cuò)標(biāo)志UART中還設(shè)立了各種出錯(cuò)標(biāo)志:1.奇偶錯(cuò)誤(Parityerror):在接收時(shí)。UART檢查接受到的每一個(gè)字符的“1”的個(gè)數(shù),若不符合要求,則置這個(gè)標(biāo)志,發(fā)出奇偶校驗(yàn)出錯(cuò)信息。2.幀錯(cuò)誤(Frameerror):若接受的字格式不符合規(guī)定(例如缺少停止位等),則置位幀出錯(cuò)標(biāo)志,發(fā)出幀錯(cuò)誤信息。2023/1/30135三種出錯(cuò)標(biāo)志3.溢出(丟失)錯(cuò)誤(Overrunerror)上述的UART是一種雙緩沖器結(jié)構(gòu)。例如在接收時(shí),接收的數(shù)據(jù)先由移位寄存器移位,把串行的變?yōu)椴⑿械?,然后送到接收?shù)據(jù)寄存器,由CPU的輸入指令傳輸?shù)紺PU中。若數(shù)據(jù)已變?yōu)椴⑿星乙阉椭两邮諗?shù)據(jù)寄存器中時(shí),UART就可以接收另一個(gè)新的字符。但是,當(dāng)接收到第二個(gè)字符的終止位,且要把第二個(gè)字符傳送到接收數(shù)據(jù)寄存器中,而CPU還未取走上一個(gè)數(shù)據(jù)時(shí),于是就會(huì)出現(xiàn)數(shù)據(jù)丟失,則置位溢出錯(cuò)誤標(biāo)志。由此可見(jiàn),若數(shù)據(jù)緩沖器的級(jí)數(shù)越多,則溢出錯(cuò)誤的幾率就越少。2023/1/301366.3.3可編程通信接口8251A(USART)

8251A的基本性能

8251A的結(jié)構(gòu)與引腳功能初始化

8251A應(yīng)用舉例2023/1/301371.8251A的基本性能

Intel8251AUSART是通用同步/異步接收發(fā)送器。

USART即UniversalSynchronous/AsynchronousReceiver/Transmitter。

8251A的基本性能(1)可用于同步和異步傳送。(2)波特率:DC-19.2K(異步);DC-64K(同步)。(3)完全雙工、雙緩沖器發(fā)送器接收器。(4)誤差檢測(cè)。2023/1/301382.8251A的結(jié)構(gòu)與引腳功能2023/1/301398251A的結(jié)構(gòu)與引腳功能

包括8251A同CPU的接口部分—數(shù)據(jù)總線(xiàn)緩沖器和讀寫(xiě)控制邏輯;發(fā)送器和接收器及其控制電路。 產(chǎn)生RS-232C有關(guān)信號(hào)的MODEM控制電路。

1)同CPU的連接信號(hào) (1)RESET (2)CLK (3), (4)C/

(5) (6)D0

D7C/2023/1/301402)MODEM控制信號(hào)

與MODEM相連的控制信號(hào):(1)(DataTerminalReady)—

數(shù)據(jù)終端準(zhǔn)備好(輸出,低電平有效)(2)(DataSetReady)—

數(shù)據(jù)裝置準(zhǔn)備好(輸入,低電平有效)(3)(RequestToSend)—

請(qǐng)求發(fā)送(輸出,低電平有效)(4)(ClearToSend)—

清除發(fā)送信號(hào)(輸入,低電平有效) 2023/1/301413)發(fā)送器有關(guān)信號(hào)(

1)TXD:發(fā)送數(shù)據(jù)(2)TXRDY:發(fā)送器準(zhǔn)備好信號(hào)(3)TXE:發(fā)送緩沖器空標(biāo)志(4)

溫馨提示

  • 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)論