常用接口芯片及應(yīng)用_第1頁(yè)
常用接口芯片及應(yīng)用_第2頁(yè)
常用接口芯片及應(yīng)用_第3頁(yè)
常用接口芯片及應(yīng)用_第4頁(yè)
常用接口芯片及應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩252頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1常用接口芯片及應(yīng)用18一月202322第6章常用接口芯片及應(yīng)用

希望硬件接口電路最好具有一定的可變性,即希望存在這么一種芯片,當(dāng)這個(gè)芯片與CPU相連后,盡管電路不能改變,但其功能可通過程序改變。(如設(shè)計(jì)某具有O/I功能的端口,可根據(jù)需要通過指令來選擇輸入接口或輸出接口),大大提高計(jì)算機(jī)系統(tǒng)靈活性。第1頁(yè)/共257頁(yè)18一月20233第6章常用接口芯片及應(yīng)用

這種可被用戶通過程序來改變功能的電路芯片,稱為可編程芯片,而用程序改變芯片工作方式的過程稱為芯片編程或芯片初始化。第2頁(yè)/共257頁(yè)18一月20234第6章常用接口芯片及應(yīng)用

如圖是一個(gè)簡(jiǎn)單的具有輸入功能和輸出功能的可編程接口電路,它包括一個(gè)輸入接口,其組成主要是八位的三態(tài)門;一個(gè)輸出接口,其組成主要是八位的鎖存器;另外還有八位的多路轉(zhuǎn)換開關(guān)及控制這個(gè)開關(guān)的寄存器FF。第3頁(yè)/共257頁(yè)18一月20235第6章常用接口芯片及應(yīng)用

FF=0,開關(guān)接位置“0”I/O線接鎖存器,電路作為輸出接口。FF=1,開關(guān)接位置“1”I/O線接三態(tài)門,電路作為輸入接口。用戶通過指令把寄存器FF寫入0或1,就可選取所需接口工作狀態(tài)。第4頁(yè)/共257頁(yè)18一月20236第6章常用接口芯片及應(yīng)用

上述方案就是可編程芯片設(shè)計(jì)的主要思想。用戶對(duì)寄存器FF寫入的內(nèi)容稱為命令字或方式控制字,而寄存器FF稱為命令寄存器相應(yīng)的端口稱為命令端口或控制端口,對(duì)可編程芯片初始化過程實(shí)際上就是對(duì)芯片的控制端口寫入各種命令字的操作過程。

第5頁(yè)/共257頁(yè)18一月202377第6章常用接口芯片及應(yīng)用

接口電路已由早期的邏輯電路板(由中、小規(guī)模集成電路芯片組成)發(fā)展到以大規(guī)模集成電路芯片為主的接口芯片,用于微機(jī)輸入/輸出的接口芯片種類極多,功能各異。按功能選擇的靈活性來分,可分為可編程接口芯片(8259、8255、8253、8251等)和不可編程接口芯片(如三態(tài)門、CMOS鎖存器、緩沖器電路等);按接口的通用性來分,可分為通用接口芯片(8255、8251等)和專用接口芯片(鍵盤接口,顯示器接口等)。第6頁(yè)/共257頁(yè)18一月202388第6章常用接口芯片及應(yīng)用

本章將對(duì)一些常用的接口芯片8255A(并行I/O接口)、8253(計(jì)數(shù)/定時(shí)器)、8251A(串行I/O接口)、9259A(中斷控制器)進(jìn)行介紹。從接口芯片的外特性著手,介紹接口芯片的應(yīng)用。第7頁(yè)/共257頁(yè)18一月202399第6章常用接口芯片及應(yīng)用§2可編程并行接口芯片8255A(P289)8255A是一種通用的可編程并行I/O接口芯片,廣泛用于幾乎所有系列的微型機(jī)系統(tǒng)中,具有3個(gè)帶鎖存或緩沖的數(shù)據(jù)端口,用戶可用程序來選擇多種操作方式,各端口內(nèi)具有中斷控制邏輯,在外設(shè)與CPU之間可用中斷方式進(jìn)行信息交換,使用條件傳輸方式時(shí)可用“聯(lián)絡(luò)”線進(jìn)行控制。第8頁(yè)/共257頁(yè)18一月20231010第6章常用接口芯片及應(yīng)用

一、8255A的內(nèi)部結(jié)構(gòu)8255A的內(nèi)部結(jié)構(gòu)如圖6.1(P291,圖6.5)所示。二、8255A的引腳功能8255A芯片采用NMOS工藝制造,40個(gè)引腳的雙列直插封裝如圖6.4所示。40條引腳可分為與CPU連接和與外設(shè)連接的引腳。第9頁(yè)/共257頁(yè)18一月20231111第6章常用接口芯片及應(yīng)用

三、8255A的工作方式及編程1.8255A的工作方式8255A各端口共有3種基本工作方式:方式0——基本輸入/輸出方式;方式1——選通輸入/輸出方式;方式2——雙向傳送方式。第10頁(yè)/共257頁(yè)18一月20231212第6章常用接口芯片及應(yīng)用

方式0主要工作在無條件的輸入/輸出方式下,不需要“聯(lián)絡(luò)”信號(hào)。A口、B口和C口均可工作在此方式下。在方式0下,C口的輸出位可由用戶直接獨(dú)立設(shè)置為“0”或“1”。第11頁(yè)/共257頁(yè)18一月202313第6章常用接口芯片及應(yīng)用

方式1主要工作在異步或條件傳輸方式(必須先檢查狀態(tài),然后才能傳輸數(shù)據(jù))下,此時(shí),僅有A口和B口可工作于方式1。由于條件傳輸需要聯(lián)絡(luò)線,所以在方式1下C口的某些位分別為A口和B口提供3根聯(lián)絡(luò)線。第12頁(yè)/共257頁(yè)18一月202314第6章常用接口芯片及應(yīng)用

方式2的雙向傳送方式是指在同一端口內(nèi)分時(shí)進(jìn)行輸入/輸出的操作。8255A中只有A口可工作在這種方式下,此時(shí)需要5個(gè)控制信號(hào)進(jìn)行“聯(lián)絡(luò)”,這5個(gè)信號(hào)由C口提供。故此時(shí)B口只能工作在方式0或方式1下,當(dāng)B口工作在方式1時(shí),又需要3根聯(lián)絡(luò)線。第13頁(yè)/共257頁(yè)18一月202315第6章常用接口芯片及應(yīng)用

所以當(dāng)A口工作在方式2下,同時(shí)B口又工作在方式1下時(shí),8255A的C口8根線將全部作為聯(lián)絡(luò)線使用,C口也就因沒有I/O功能而“消失”了。關(guān)于C口“聯(lián)絡(luò)”信號(hào)的定義后面討論。第14頁(yè)/共257頁(yè)18一月202316第6章常用接口芯片及應(yīng)用

2.8255A編程所謂8255A編程,就是用戶在使用8255前,用戶可用軟件來定義端口的工作方式,選擇所需要的功能。掌握8255A的編程時(shí)正確使用該芯片的前提。

8255A復(fù)位時(shí),A、B、C三端口工作在方式0的輸入狀態(tài)。第15頁(yè)/共257頁(yè)18一月20231717第6章常用接口芯片及應(yīng)用

3.方式選擇控制字格式如圖所示(P296,圖6.12)。通過定義工作方式控制字可將3個(gè)端口定義為各種不同方式的組合

第16頁(yè)/共257頁(yè)18一月20231818【例1】

設(shè)端口A工作在方式1輸出,端口C上半部為輸出,下半部為輸入,端口B工作在方式0輸入,則這時(shí)的方式選擇控制字應(yīng)為10100011B或A3H。第6章常用接口芯片及應(yīng)用如果把這個(gè)方式選擇控制字通過輸出指令寫入到8255A的控制寄存器中,便完成了對(duì)8255A的初始化。顯然,對(duì)8255A初始化后,8255A就會(huì)按照初始化時(shí)所設(shè)定的方式選擇控制字指定的工作方式來完成工作。第17頁(yè)/共257頁(yè)18一月20231919第6章常用接口芯片及應(yīng)用設(shè)8255A的控制端口地址為FFF6H,那么對(duì)8255A的初始化程序?yàn)?/p>

MOVDX,0FFF6H;控制端口地址

MOVAL,0A3H;寫入控制字

OUT DX,AL第18頁(yè)/共257頁(yè)18一月20232020第6章常用接口芯片及應(yīng)用

【例2】按下述要求對(duì)8255A進(jìn)行初始化:要求A口設(shè)為輸入數(shù)據(jù),工作于方式1;B口設(shè)為輸出數(shù)據(jù),工作于方式0;C口高四位輸出,低四位輸入數(shù)據(jù)。8255A的端口地址為04A0H~04A6H。第19頁(yè)/共257頁(yè)18一月20232121第6章常用接口芯片及應(yīng)用解:初始化程序段如下:

MOVDX,04A6H;送控制口地址

MOVAL,10110001H;設(shè)置方式選擇控制字

OUTDX,AL第20頁(yè)/共257頁(yè)18一月20232222第6章常用接口芯片及應(yīng)用

4.C口按位置位/復(fù)位控制字格式如圖所示(P296)

D7位為置位/復(fù)位控制字標(biāo)志位,必須使D7=0;D3~Dl位用于選擇對(duì)端口C中某一位進(jìn)行操作;D0位指出對(duì)選中位是置1還是清0。D0=1時(shí),使選中位置1;D0=0時(shí),使選中位清0。第21頁(yè)/共257頁(yè)18一月20232323若D0=0,D3D2D1=101,則C端口的第5位PC5置“0”;若D0=1,D3D2D1=001,則C端口的第1位PC1置“1”。第6章常用接口芯片及應(yīng)用第22頁(yè)/共257頁(yè)18一月20232424第6章常用接口芯片及應(yīng)用【例1】

設(shè)一片8255A的端口地址為60H~63H,PC5平時(shí)為低電平,要求從PC5的引腳輸出一個(gè)正脈沖??梢杂贸绦蛳葘C5置1,輸出一個(gè)高電平,再把PC5清0,輸出一個(gè)低電平,結(jié)果PC5引腳上便輸出一個(gè)正脈沖。實(shí)現(xiàn)這個(gè)功能的程序段如下:

MOVAL,000010l1B

OUT63H,AL ;置PC5為高電平

MOVAL,00001010B

OUT63H,AL ;置PC5為低電平第23頁(yè)/共257頁(yè)18一月20232525第6章常用接口芯片及應(yīng)用

【例2】要使端口C的bit3置位的控制字為:00000111B;

MOVAL,00000111BOUT0FBH,AL

而使端口C的bit3復(fù)位的控制字為:00000110B;

MOVAL,00000110BOUT0FBH,AL第24頁(yè)/共257頁(yè)18一月20232626第6章常用接口芯片及應(yīng)用

【例3】試編程使8255A的C口PC3位產(chǎn)生一個(gè)方波信號(hào)。8255A的端口地址為04A0H~04A6H。解:可利用C口置/復(fù)位控制字,交替使PC3位輸出“1”和“0”。程序段如下:第25頁(yè)/共257頁(yè)18一月20232727第6章常用接口芯片及應(yīng)用

MOVDX,04A6H;送控制口地址

LL:MOVAL,00000111B;對(duì)PC3位置1OUTDX,ALCALLDELAY;延時(shí)

MOVAL,00000110B;對(duì)PC3位置0OUTDX,ALJMPLL;循環(huán),產(chǎn)生周期信號(hào)第26頁(yè)/共257頁(yè)18一月20232828第6章常用接口芯片及應(yīng)用【例4】

要把端口C的PC7置成1。則控制字應(yīng)為00001111B或0FH。把該控制字的內(nèi)容寫入8255A的控制寄存器中,就實(shí)現(xiàn)了對(duì)端口C的PC7位置1的操作。其程序如下:

MOVDX,0FFF6H ;8255A控制端口地址

MOVAL,0FH ;PC7置1的控制字

OUTDX,AL

;寫入控制端口

若要使端口C的PC3置0,則控制字應(yīng)為00000110B或06H。第27頁(yè)/共257頁(yè)18一月20232929其程序段如下:

MOV DX,0FFF6H ;控制端口地址

MOV AL,06H ;PC3置0的控制字

OUT DX,AL

;寫入控制端口

端口C置1/置0控制字雖然是對(duì)端口C進(jìn)行操作,但它是一種控制字,因此,必須寫入控制端口而不能寫入端口C的地址中。第6章常用接口芯片及應(yīng)用第28頁(yè)/共257頁(yè)18一月20233030第6章常用接口芯片及應(yīng)用5.讀入C端口狀態(tài)字

前面指出,當(dāng)8255A工作于方式1和方式2時(shí),C端口產(chǎn)生或接收與外設(shè)間的聯(lián)絡(luò)信號(hào),這時(shí),讀取C端口的內(nèi)容可使編程人員測(cè)試或檢查外設(shè)的狀態(tài),用輸入指令對(duì)C端口進(jìn)行讀操作就可讀取C端口的狀態(tài)。C端口的狀態(tài)字有以下幾種格式。第29頁(yè)/共257頁(yè)18一月20233131第6章常用接口芯片及應(yīng)用①.方式1狀態(tài)字

輸入狀態(tài)字的格式如下:各位含義見P297其中,D7~D3位為A組狀態(tài)字,D2~D0位為B組狀態(tài)字。

輸出狀態(tài)字的格式如下:各位含義見P297其中,D7~D3位為A組狀態(tài)字,D2~D0位為B組狀態(tài)字。第30頁(yè)/共257頁(yè)18一月20233232第6章常用接口芯片及應(yīng)用②.方式2狀態(tài)字

方式2狀態(tài)字的格式如下:其中,D7~D3位為A組狀態(tài)字,D2~D0位為B組所用,當(dāng)B口工作于方式1時(shí),這幾位作B口的狀態(tài)字,當(dāng)B口工作于方式0時(shí),這幾位不是狀態(tài)位,而是用做輸入/輸出。第31頁(yè)/共257頁(yè)18一月20233333第6章常用接口芯片及應(yīng)用四.

8255A的工作方式的功能及應(yīng)用

8255A共有三種工作方式可選擇,每個(gè)端口可選擇的工作方式都有所差別。8255A端口A可以在方式0、方式1和方式2三種方式下工作,而端口B只能在方式0和方式1兩種方式下工作。8255A工作在什么方式下是由控制寄存器的內(nèi)容決定的。8255A的各個(gè)I/O端口在不同工作方式下的功能如表6-3所示。下面介紹這三種工作方式的特點(diǎn)、功能、時(shí)序及使用場(chǎng)合等。第32頁(yè)/共257頁(yè)18一月20233434第6章常用接口芯片及應(yīng)用

①、方式0-基本輸入輸出方式(P291)

8255A的3個(gè)端口均可工作在這種方式下,特別是C口只能工作在方式0。在這種方式下,CPU與端口之間交換數(shù)據(jù)可以執(zhí)行IN或OUT指令完成,不需檢測(cè)狀態(tài)線,8255A的3個(gè)端口可分別定義為輸入或輸出端口,因此3個(gè)端口可有表2所示的16種輸入/輸出組合。第33頁(yè)/共257頁(yè)18一月20233535第6章常用接口芯片及應(yīng)用

由控制字中D4D3D1D0等4位的不同取值可定義方式0的16種工作方式的組合,如表2所示。第34頁(yè)/共257頁(yè)18一月20233636第6章常用接口芯片及應(yīng)用

這意味著當(dāng)8255A與CPU相連后,該接口部件可以提供用戶16種不同功能的輸入/輸出端口。采用可編程芯片作為接口電路可以大大提高計(jì)算機(jī)硬件系統(tǒng)靈活性。方式0中,數(shù)據(jù)輸出有鎖存,輸入無鎖存。方式0的輸入/輸出時(shí)序如圖6.6所示。

第35頁(yè)/共257頁(yè)18一月20233737第6章常用接口芯片及應(yīng)用第36頁(yè)/共257頁(yè)18一月20233838第6章常用接口芯片及應(yīng)用

例1:要求8255A的A口和B口均工作于方式0,A口和下C口作輸入口,B口和上C口作輸出口,設(shè)8255A各端口地址為40H~43H,可用下列指令來設(shè)置這種工作方式:

MOVAL,91H;方式控制字0010001B→AL

OUT43H,AL;方式控制字送控制寄存器第37頁(yè)/共257頁(yè)18一月202339第6章常用接口芯片及應(yīng)用

例2.8255A的A口和B口工作在方式0,A口為輸入端口,接有四個(gè)開關(guān)。B口為輸出端,接有一個(gè)七段發(fā)光二極管,連接電路如圖所示。試編一程序要求七段發(fā)光二班管顯示開關(guān)所撥通的數(shù)字。

第38頁(yè)/共257頁(yè)18一月202340第6章常用接口芯片及應(yīng)用第39頁(yè)/共257頁(yè)18一月202341第6章常用接口芯片及應(yīng)用

例中,8255的端口地址由兩部分組成,由CPUA15—A3通過74LS138產(chǎn)生CS,A2—A1組合成4個(gè)端口地址,A0與譯碼器Y4通過邏輯組合,保證8255的4個(gè)端口地址為偶地址。8020H、8022H、8024H、8026H。七段發(fā)光二極管為共陽極LED器件。a段亮從PB0輸出1,熄滅輸出0。第40頁(yè)/共257頁(yè)18一月202342第6章常用接口芯片及應(yīng)用

8255A的口接有開關(guān),4位開關(guān)的組合可為0H—FH。為此,可將在LED上顯示0H—FH各字符的斷碼列于圖表中。方式控制字:10010000B(90H或99H)參考程序如下:第41頁(yè)/共257頁(yè)18一月202343第6章常用接口芯片及應(yīng)用A_PORTEQU8020HB_PORTEQU8022H;定義端口的符號(hào)地址C_PORTEQU8024HCTRL_PORTEQU8026HDATASEGMENTTAB1DB3FH,06H,…,31HDATAENDS第42頁(yè)/共257頁(yè)18一月202344第6章常用接口芯片及應(yīng)用CODESEGMENTASSUMEDS:DATA,CS:CODEMOVAX,DATAMOVDS,AXMOVAL,90HMOVDX,CTRL_PORTOUTDX,AL;設(shè)置8255方式字ADD1:MOVDX,A_PORT第43頁(yè)/共257頁(yè)18一月202345第6章常用接口芯片及應(yīng)用

INAL,DX;取鍵盤信息

ANDAL,0FH;屏蔽高4位

MOVBX,OFFSETTAB1XLATMOVDX,B_PORTOUTDX,AL;輸出顯示

MOVCX,0600HADD2:LOOPADD2JMPADD1CODEENDSEND第44頁(yè)/共257頁(yè)18一月202346第6章常用接口芯片及應(yīng)用

②方式1—選通輸入/輸出方式P292在這種方式下,數(shù)據(jù)輸入/輸出操作要在選通信號(hào)控制下完成,因此適合條件傳送,A口和B口可工作在此方式下,這時(shí)C口的某些位就用來作“聯(lián)絡(luò)線”。A口和B口可以作為輸入接口,也可作為輸出接口,由于輸入和輸出接口所需的選通控制不同,相應(yīng)“聯(lián)絡(luò)線”的定義功能也就不同。第45頁(yè)/共257頁(yè)18一月20234747第6章常用接口芯片及應(yīng)用

當(dāng)8255A的端口A和端口B都工作在方式1時(shí),任何一個(gè)端口都可作為輸入端口或輸出端口,這時(shí)端口C中有6位將被規(guī)定為配合方式1的聯(lián)絡(luò)信號(hào),其中3位作為端口A的聯(lián)絡(luò)信號(hào),另外3位作為端口B的聯(lián)絡(luò)信號(hào)。端口C剩下的2位可由程序設(shè)定為輸入或輸出,也具有置位/復(fù)位功能。第46頁(yè)/共257頁(yè)18一月20234848

如果8255A的端口A和端口B中只有一個(gè)工作在方式1,則此時(shí)端口C中的3位被規(guī)定為配合工作在方式1的聯(lián)絡(luò)信號(hào)。另外一個(gè)端口(端口A或端口B)可以工作在方式0,端口C中的其他位也可以工作在方式0,作為輸入或輸出。第6章常用接口芯片及應(yīng)用第47頁(yè)/共257頁(yè)18一月20234949第6章常用接口芯片及應(yīng)用

方式1輸入情況下有關(guān)信號(hào)的規(guī)定當(dāng)A口作為方式1輸入時(shí),C口的PC3、PC4、PC5作為控制信號(hào),PC6、PC7則可作為I/O口利用。當(dāng)B口作為方式1輸入時(shí),C口的PC0、PC1、PC2作為控制信號(hào)。如圖6.7所示(P293,圖6.8)。

第48頁(yè)/共257頁(yè)18一月20235050第6章常用接口芯片及應(yīng)用

8255A中的端口A和端口B均工作于方式1輸入模式,其工作方式控制字格式如圖6.8-1所示方式1的輸入時(shí)序如圖6.9所示(P294,T6.9)。常見的8255A的輸入接口(中斷I/O)的連接圖如圖6-7所示第49頁(yè)/共257頁(yè)18一月202351第6章常用接口芯片及應(yīng)用

例:8255的A口和B口分別工作在方式1和方式0,A口為輸入端口,接有8個(gè)開關(guān)。B口為輸出端,接有8個(gè)發(fā)光二極管,連接電路如圖所示?,F(xiàn)要求用方式1把改變后的鍵信息輸入到CPU并通過B口顯示。

第50頁(yè)/共257頁(yè)18一月202352第6章常用接口芯片及應(yīng)用

這個(gè)系統(tǒng)的工作過程如下:

1、用戶通過改變K0~K7,產(chǎn)生新的鍵信息;

2、按下開關(guān)K,產(chǎn)生選通信號(hào),數(shù)據(jù)進(jìn)入A口的緩沖器,

此步驟實(shí)際上告訴CPU,8255的A口來了一個(gè)新數(shù)據(jù);第51頁(yè)/共257頁(yè)18一月202353第6章常用接口芯片及應(yīng)用3、IBFA有效使LED點(diǎn)亮。這里含有兩個(gè)信息,一個(gè)是8255A通知CPU其A口來了一個(gè)新數(shù)據(jù),另一個(gè)是告訴用戶CPU尚未取走這個(gè)這個(gè)數(shù)據(jù),用戶不得再送其他數(shù)據(jù);

4、CPU取走這個(gè)數(shù)據(jù),LED熄滅;

5、轉(zhuǎn)步驟1。

第52頁(yè)/共257頁(yè)18一月202354第6章常用接口芯片及應(yīng)用

設(shè)8255的I/O地址分布為88H—8EH,相應(yīng)的程序段如下

moval,10111001b ;設(shè)置A口為方式1的輸入,loop1:inal,8ch ;取C口的狀態(tài)線

testal,00100000b ;測(cè)試IBFA信息

jzloop1 ;等待用戶設(shè)定新的鍵值

inal,80h ;取數(shù)。LED燈滅(相對(duì)于步驟4)

out82h,al ;更新B口的顯示

jmploop1 ;重復(fù)

第53頁(yè)/共257頁(yè)18一月20235555第6章常用接口芯片及應(yīng)用

方式1輸出有關(guān)信號(hào)的規(guī)定當(dāng)A口作為方式1輸出時(shí),C口的PC7、PC6、PC3作為控制信號(hào),PC4、PC5則作為I/O口使用。當(dāng)B口作為方式1輸出時(shí),C口的PC0、PC1、PC2作為控制信號(hào),PC4、PC5則作為I/O口使用。如圖6.10所示(P292,圖6.6)。第54頁(yè)/共257頁(yè)18一月20235656第6章常用接口芯片及應(yīng)用

8255A中的端口A和端口B為工作方式1輸出模式,那么工作方式控制字的具體格式如圖6.11所示,方式1的輸出時(shí)序如圖6.12所示(P293,T6.7),輸出接口(中斷I/O),其一般連接如圖6-10-1所示第55頁(yè)/共257頁(yè)18一月202357第6章常用接口芯片及應(yīng)用

例:8255A的A口工作在方式1的輸出,接有8個(gè)發(fā)光二極管,現(xiàn)要求把內(nèi)存中的10個(gè)數(shù),通過A口發(fā)送給發(fā)光二極管以二進(jìn)制的形式供用戶抄錄。第56頁(yè)/共257頁(yè)18一月202358第6章常用接口芯片及應(yīng)用

這個(gè)系統(tǒng)的工作過程如下:CPU把內(nèi)存中的一個(gè)數(shù)據(jù)寫入A口;LED燈亮,告訴用戶LED顯示的是新數(shù)據(jù).用戶抄錄數(shù)據(jù);用戶按下開關(guān)K,發(fā)ACK信號(hào),告訴CPU數(shù)據(jù)已取走;轉(zhuǎn)第一步。第57頁(yè)/共257頁(yè)18一月202359第6章常用接口芯片及應(yīng)用DATASEGMENTXXDBX0,X1,…,X9DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODEMOVAX,DATAMOVDS,AX第58頁(yè)/共257頁(yè)18一月202360第6章常用接口芯片及應(yīng)用

movcx,10 ;送10個(gè)數(shù)

movbx,offsetxx ;數(shù)組指針?biāo)蚥x loop1: moval,[bx] ;取數(shù)

out88h,al ;送數(shù)到A口

loop2: inal,8ch ;取C口狀態(tài)線

anlal,80h ;測(cè)試IBOA jnzloop2

;用戶尚未抄錄數(shù)據(jù),檢測(cè);等待, ;此時(shí);LED燈亮(對(duì)應(yīng)步驟2)

calldelay

;用戶已抄錄數(shù)據(jù),LED燈滅(對(duì) ;應(yīng)步驟4)

incbx ;準(zhǔn)備送下一個(gè)數(shù)

looploop1 ;循環(huán)10次

……;返回系統(tǒng)第59頁(yè)/共257頁(yè)18一月20236161第6章常用接口芯片及應(yīng)用

③、方式2-雙向總線方式(僅適用于A口)P294工作特點(diǎn):該方式只適用于A口(因其有輸入、輸出兩個(gè)鎖存器)。在該方式下,可使外設(shè)利用A口的8位數(shù)據(jù)線與CPU之間分時(shí)進(jìn)行雙向數(shù)據(jù)傳送,即在單一的8位數(shù)據(jù)線PA7-PA0上,既可輸出數(shù)據(jù)給外設(shè),也可以從外設(shè)輸入數(shù)據(jù)(當(dāng)然不能同時(shí)進(jìn)行)。輸入或輸出數(shù)據(jù)均鎖存。第60頁(yè)/共257頁(yè)18一月20236262第6章常用接口芯片及應(yīng)用

A口工作在方式2時(shí),C口的PC7~PC3被規(guī)定為控制信號(hào),配合A口使用。如圖6.13所示(P294,T6.10)。圖中控制信號(hào)的含義與方式1中完全相同。第61頁(yè)/共257頁(yè)18一月20236363第6章常用接口芯片及應(yīng)用

當(dāng)A口工作在方式2時(shí),B口可工作在方式0或方式1。在方式1情況下,可用PC2~PC0作為控制信號(hào)。方式控制字格式如圖6.14-1所示。系統(tǒng)連接圖如圖6-13-1所示。第62頁(yè)/共257頁(yè)18一月20236464通過以上對(duì)8255A的三種基本工作方式的分析可以得出這樣的結(jié)論:端口A可以工作在這三種工作方式中的任何一種,端口B只能工作在方式0或方式1,端口C則通常配合端口A和端口B工作,為端口A和端口B提供其輸入/輸出過程中所需的聯(lián)絡(luò)信號(hào),方式2只有端口A使用。同一組的兩個(gè)端口(A組或B組)可以分別工作在輸出方式或輸入方式,并不要求一定要同為輸入方式或同為輸出方式,各端口具體工作在什么工作方式下,作為輸入端口還是輸出端口,這些都是通過寫入方式選擇控制字來決定的。第6章常用接口芯片及應(yīng)用第63頁(yè)/共257頁(yè)18一月20236565第6章常用接口芯片及應(yīng)用

四、8255A與CPU的連接使用8255A占外設(shè)的4個(gè)地址,即A口、B口、C口和控制寄存器各占一個(gè)外設(shè)接口地址。對(duì)同一個(gè)地址分別進(jìn)行讀寫工作。例如:讀A口可將A口的數(shù)據(jù)讀出;寫A口可將CPU的數(shù)據(jù)寫入A口并輸出。利用8255A的片選信號(hào)、A0、A1,以及讀寫信號(hào),既可方便的對(duì)8255A進(jìn)行尋址。這些信號(hào)的功能如表所示。(P298,表6.1)第64頁(yè)/共257頁(yè)18一月20236666第6章常用接口芯片及應(yīng)用第65頁(yè)/共257頁(yè)18一月20236767第6章常用接口芯片及應(yīng)用

圖6.17(P298)為8255A與8086總線連接,8255A右邊的信號(hào)線與系統(tǒng)總線連接,左邊的3個(gè)口分別與外設(shè)的數(shù)據(jù)輸入輸出線、狀態(tài)信息連接。第66頁(yè)/共257頁(yè)18一月20236868第6章常用接口芯片及應(yīng)用

五、8255A初始化8255A初始化編程可以分兩步進(jìn)行:首先把方式選擇控制字寫入控制口,確定所用端口的工作方式,如果端口選擇為工作方式1或方式2,還要確定CPU和8255A之間是用查詢方式還是用中斷方式交換信息,并以此來組織C口置位/復(fù)位控制字,寫入8255A控制口,使相應(yīng)的中斷允許標(biāo)志(INTE)置0或置1,從而達(dá)到禁止或開放中斷的目的。完成了初始化編程之后,CPU就可以用IN和OUT指令通過8255A與外設(shè)交換數(shù)據(jù)了。第67頁(yè)/共257頁(yè)18一月20236969第6章常用接口芯片及應(yīng)用

§3、8255A的應(yīng)用一、簡(jiǎn)單開關(guān)接口電路例1:在工業(yè)控制等實(shí)際應(yīng)用中,經(jīng)常需要檢測(cè)某些開關(guān)量的狀態(tài)。如圖所示,在某系統(tǒng)中,采用8255A不斷檢測(cè)8個(gè)開關(guān)K7~K0的通斷狀態(tài),并隨時(shí)在8個(gè)發(fā)光二極管LED7~LED0上顯示出來。要求開關(guān)閉合時(shí),相應(yīng)的LED亮;開關(guān)斷開時(shí),相應(yīng)的LED滅。8255A的端口地址為60H~63H。

第68頁(yè)/共257頁(yè)18一月20237070第6章常用接口芯片及應(yīng)用第69頁(yè)/共257頁(yè)18一月20237171第6章常用接口芯片及應(yīng)用

解:由電路原理可知,A口為方式0輸入,B口為方式0輸出,則8255A的方式選擇控制字為10010000B,即90H。且開關(guān)閉合,則A口輸入低電平;當(dāng)B口輸出低電平時(shí),相應(yīng)的LED點(diǎn)亮。程序段如下:第70頁(yè)/共257頁(yè)18一月20237272第6章常用接口芯片及應(yīng)用

MOVDX,63HMOVAL,90H;設(shè)置方式選擇控制字OUTDX,ALTES:MOVDX,60H;讀A口(開關(guān)狀態(tài))

INAL,DXMOVDX,61H;送B口顯示

OUT61H,ALJMPTES;循環(huán)檢測(cè)第71頁(yè)/共257頁(yè)18一月20237373第6章常用接口芯片及應(yīng)用

二、8255A與LED數(shù)碼管接口(P335)1.七段數(shù)碼顯示器一般7段LED顯示器的內(nèi)部結(jié)構(gòu)和外部引腳如圖6.46(a)所示。其內(nèi)部各發(fā)光二極管之間的連接方法有共陰極和共陽極兩種,如圖6.46(b)和6.46(c)所示。第72頁(yè)/共257頁(yè)18一月20237474第6章常用接口芯片及應(yīng)用

LED數(shù)碼管的主要部分是七段發(fā)光二極管,如圖6.46(a)所示。這七段發(fā)光二極管分別稱為a、b、c、d、e、f、g,有的產(chǎn)品還附帶有一個(gè)小數(shù)點(diǎn)h,通過7個(gè)發(fā)光段的不同組合,可以顯示0~9和A~F共16個(gè)字母數(shù)字或其它異形字符。

第73頁(yè)/共257頁(yè)18一月20237575第6章常用接口芯片及應(yīng)用

LED數(shù)碼管有共陽極、共陰極兩種結(jié)構(gòu),如圖6.46(b)和(c)所示。如為共陽極結(jié)構(gòu),則共用的陽極應(yīng)接高電平,各段則輸入低電平,方為有效。如為共陰極結(jié)構(gòu),共用的陰極必須接低電平,而各段處于高電平時(shí)便發(fā)光。表6.2表示了共陰極與共陽極結(jié)構(gòu)字符0~F的編碼表。編碼的低位為a,高位為g。第74頁(yè)/共257頁(yè)18一月20237676

由此可見,無論是共陰極還是共陽極,要使LED按照要求顯示數(shù)字或字母,必須輸入各段發(fā)光的代碼,該代碼稱為七段碼。顯示代碼之間的對(duì)應(yīng)關(guān)系如表6.2所示。例如,要顯示數(shù)字5,只要將a、f、g、c、d段接低電平,其余段接高電平即可。對(duì)于共陰極結(jié)構(gòu)的LED顯示器,陰極連在一起后接地,各陽極段接到器件的引腳上,要想點(diǎn)亮某一段,只要將相應(yīng)引腳接高電平即可。第6章常用接口芯片及應(yīng)用第75頁(yè)/共257頁(yè)18一月20237777第6章常用接口芯片及應(yīng)用

由于發(fā)光二極管發(fā)光時(shí),通過的平均電流為10mA~20mA,而通常的輸出鎖存器不能提供這么大的電流,所以LED各段必須接驅(qū)動(dòng)電路,如圖所示。第76頁(yè)/共257頁(yè)18一月20237878第6章常用接口芯片及應(yīng)用

例1:8255A作為開關(guān)K0~K3及七段LED顯示器接口。要求開關(guān)設(shè)置的二進(jìn)制信息,由PC0~PC3輸入,經(jīng)程序轉(zhuǎn)換為對(duì)應(yīng)的七段LED顯示器的字形代碼后,由PA口輸出顯示。第77頁(yè)/共257頁(yè)18一月20237979第6章常用接口芯片及應(yīng)用第78頁(yè)/共257頁(yè)18一月20238080第6章常用接口芯片及應(yīng)用解:8255A各端口地址確定:各端口地址為:E8H~EEH第79頁(yè)/共257頁(yè)18一月20238181第6章常用接口芯片及應(yīng)用

LED顯示器的字形代碼表存放在TABLE單元開始的內(nèi)存中.

TABLEDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,98H,88H,83H,0C6H,0A1H,86H,8EH第80頁(yè)/共257頁(yè)18一月20238282第6章常用接口芯片及應(yīng)用實(shí)現(xiàn)操作的具體程序如下:MOV DX,0EEH;設(shè)置8255A工作方式 MOV AL,81H OUT DX,ALMOV DX,0ECH;指向端口C,讀開關(guān)狀態(tài) IN AL,DX AND AL,0FHLEA BX,TABLE;顯示代碼表首地址送BX XLAT ;查表,取出相應(yīng)的字形碼送ALMOV DX,0E8H ;指向端口A OUT DX,AL ;輸出字形碼顯示

HLT第81頁(yè)/共257頁(yè)18一月20238383第6章常用接口芯片及應(yīng)用

三、8255與并行打印機(jī)接口(P332)例1:并行打印機(jī)接口電路P332利用8255A的A口方式0與微型打印機(jī)相連,將內(nèi)存緩沖區(qū)BUFF中的字符打印輸出。試完成相應(yīng)的軟硬件設(shè)計(jì)。(CPU為8088)首先分析打印機(jī)。微型打印機(jī)和主機(jī)之間的接口采用并行接口。第82頁(yè)/共257頁(yè)18一月20238484第6章常用接口芯片及應(yīng)用1.打印機(jī)接口信號(hào)(如表)P332BUSY:輸出,表示打印機(jī)是否可接受數(shù)據(jù)的信號(hào)。忙信號(hào),有效時(shí)不能接受數(shù)據(jù)。:輸出,向主機(jī)發(fā)出的傳送數(shù)據(jù)的請(qǐng)求脈沖。響應(yīng)信號(hào),有效時(shí)接收數(shù)據(jù)。:輸入,主機(jī)向打印機(jī)輸入數(shù)據(jù)的選通脈沖。數(shù)據(jù)選通,有效時(shí)接收數(shù)據(jù)。第83頁(yè)/共257頁(yè)18一月20238585第6章常用接口芯片及應(yīng)用

2.工作流程工作流程是:數(shù)據(jù)傳輸時(shí)序如圖所示主機(jī)將要打印的數(shù)據(jù)送上數(shù)據(jù)線,然后發(fā)選通信號(hào)。打印機(jī)將數(shù)據(jù)讀入,同時(shí)使BUSY線為高,通知主機(jī)停止送數(shù)。這時(shí),打印機(jī)內(nèi)部對(duì)讀入的數(shù)據(jù)進(jìn)行處理。處理完以后使ACK有效,同時(shí)使BUSY失效,通知主機(jī)可以發(fā)下一個(gè)數(shù)據(jù)第84頁(yè)/共257頁(yè)18一月20238686第6章常用接口芯片及應(yīng)用

3.硬件連線PC0充當(dāng)打印機(jī)的選通信號(hào),通過對(duì)PC0的置位/復(fù)位產(chǎn)生選通。PC7接收打印機(jī)發(fā)出的“BUSY”信號(hào)。8255A的控制字為:10001000即88HA口方式0,輸出;C口高位方式0輸入,低位方式0輸出PC0置位:00000001即01HPC0復(fù)位:00000000即00H8255A的4個(gè)口地址為:00H,01H,02H,03H。第85頁(yè)/共257頁(yè)18一月20238787第6章常用接口芯片及應(yīng)用第86頁(yè)/共257頁(yè)18一月20238888第6章常用接口芯片及應(yīng)用4.編制程序DADASEGMENTBUFFDB'Thisisaprintprogram!','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA第87頁(yè)/共257頁(yè)18一月20238989第6章常用接口芯片及應(yīng)用START:MOVAX,DATAMOVDS,AXMOVSI,OFFSETBUFFMOVAL,88H;8255A初始化,A口方式0,輸出

OUT03H,AL;C口高位方式0輸入,低位方式0輸出

MOVAL,01H;

OUT03H,AL;使PC0置位,即使選通無效第88頁(yè)/共257頁(yè)18一月20239090第6章常用接口芯片及應(yīng)用WAIT:INAL,02HTESTAL,80H;檢測(cè)PC7是否為1即是否忙

JNZWAIT;為忙則等待

MOVAL,[SI]

CMPAL,'$';是否結(jié)束符

JZDONE;是則輸出回車

OUT00H,AL;不是結(jié)束符,則從A口輸出

MOVAL,00HOUT03H,AL;產(chǎn)生選通信號(hào)

INCSI;修改指針,指向下一個(gè)字符

JMPWAIT第89頁(yè)/共257頁(yè)18一月20239191第6章常用接口芯片及應(yīng)用DONE:MOVAL,0DHOUT00H,AL;輸出回車符

MOVAL,00HOUT03H,AL;產(chǎn)生選通MOVAH,4CHINT

21HCODEENDSENDSTART第90頁(yè)/共257頁(yè)18一月20239292第6章常用接口芯片及應(yīng)用

§4可編程定時(shí)/計(jì)數(shù)器8253及其應(yīng)用在微機(jī)應(yīng)用系統(tǒng)中,經(jīng)常會(huì)提出這樣的要求:一種是要求一些外部實(shí)時(shí)時(shí)鐘,以實(shí)現(xiàn)延時(shí)控制或定時(shí);另一種是要求能對(duì)外部事件計(jì)數(shù)的計(jì)數(shù)器。實(shí)現(xiàn)上述要求可采用三種方法。第91頁(yè)/共257頁(yè)18一月20239393第6章常用接口芯片及應(yīng)用(1)設(shè)計(jì)數(shù)字邏輯電路來實(shí)現(xiàn)計(jì)數(shù)或定時(shí)要求。即由硬件電路實(shí)現(xiàn)的計(jì)數(shù)器/定時(shí)器,這種電路,若要改變計(jì)數(shù)/定時(shí)的要求,必須改變電路參數(shù)。通用性、靈活性差;第92頁(yè)/共257頁(yè)18一月20239494第6章常用接口芯片及應(yīng)用(2)編制一段程序,用軟件來實(shí)現(xiàn)計(jì)數(shù)和定時(shí)的要求。這種方法通用性和靈活性都好,但是要占用CPU的時(shí)間;(3)采用可編程定時(shí)器/計(jì)數(shù)器,其定時(shí)與計(jì)數(shù)功能可由程序靈活地設(shè)定,設(shè)定后與CPU并行工作,不占用CPU的時(shí)間。

第93頁(yè)/共257頁(yè)18一月20239595第6章常用接口芯片及應(yīng)用本節(jié)介紹的8253就是一種可編程定時(shí)器/計(jì)數(shù)器芯片,又稱為“可編程間隔定時(shí)器”。一、8253的引線功能及內(nèi)部結(jié)構(gòu)1.8253的內(nèi)部結(jié)構(gòu)(P301,T6.20)如圖所示第94頁(yè)/共257頁(yè)18一月20239696第6章常用接口芯片及應(yīng)用

2.8253的引線①.與CPU的接口信號(hào)數(shù)據(jù)線(D7~D0):三態(tài)雙向數(shù)據(jù)線。與CPU數(shù)據(jù)總線相連,用于傳遞CPU與8253之間的數(shù)據(jù)信息、控制信息和狀態(tài)信息。計(jì)數(shù)器的計(jì)數(shù)值亦通過此數(shù)據(jù)總線進(jìn)行讀寫。第95頁(yè)/共257頁(yè)18一月20239797第6章常用接口芯片及應(yīng)用

控制線(CS,RD,WR):完成片選和讀寫操作。8253的讀/寫操作邏輯如表所示。片選及地址線CS,A1,A0——用于芯片及內(nèi)部寄存器、計(jì)數(shù)器的尋址。即3個(gè)計(jì)數(shù)器和一個(gè)控制字寄存器。一般與CPU低位的地址線相連。第96頁(yè)/共257頁(yè)18一月20239898第6章常用接口芯片及應(yīng)用A9A8A7A6A5=00010選中(CS=0),A4A3A2未用,A1A0接8253的A1A0。第97頁(yè)/共257頁(yè)18一月20239999第6章常用接口芯片及應(yīng)用②.與外部設(shè)備的接口信號(hào)CLK0(CLK1,CLK2)——時(shí)鐘脈沖輸入端,用于輸入定時(shí)脈沖或計(jì)數(shù)脈沖信號(hào)。CLK可以是系統(tǒng)時(shí)鐘脈沖,也可以是由其他脈沖源提供。如果輸入是周期精確的時(shí)鐘,則8253一般工作在定時(shí)方式,如果輸入是周期不定的脈沖,或關(guān)心的只是脈沖的數(shù)量而不是脈沖的時(shí)間間隔,則此時(shí)8253一般作為計(jì)數(shù)器使用。8253規(guī)定加在CLK引腳的輸入時(shí)鐘周期不得小于380ns。8253:0~2.6MHz;8254-2:0~10MHz。第98頁(yè)/共257頁(yè)18一月2023100100第6章常用接口芯片及應(yīng)用GATE0(GATE1,GATE2)——門控輸入端,用于外部控制計(jì)數(shù)器的啟動(dòng)或停止計(jì)數(shù)的操作。當(dāng)GATE為高電平時(shí),允許計(jì)數(shù)器工作,當(dāng)GATE為低電平時(shí),禁止計(jì)數(shù)器工作。兩個(gè)或兩個(gè)以上計(jì)數(shù)器連用時(shí),可用此信號(hào)來同步,也可用于與外部信號(hào)的同步。OUT0(OUT1,OUT2-)-——計(jì)數(shù)輸出端。在不同工作方式中,當(dāng)計(jì)數(shù)器計(jì)數(shù)到0時(shí),OUT引腳上必輸出相應(yīng)的信號(hào)。第99頁(yè)/共257頁(yè)18一月2023101101第6章常用接口芯片及應(yīng)用

二、8253的工作方式8253內(nèi)部3個(gè)相同16位計(jì)數(shù)器都能夠以6種方式工作。第100頁(yè)/共257頁(yè)18一月2023102第6章常用接口芯片及應(yīng)用

從上述工作方式看出,8253的6種工作方式可以歸為兩類,一類是充當(dāng)頻率發(fā)生器(方式2、方式3),一類是主要作為計(jì)數(shù)器(方式0、方式1、方式4、方式5)來使用。第101頁(yè)/共257頁(yè)18一月2023103103第6章常用接口芯片及應(yīng)用三、8253的控制字與初始化編程1.控制字格式P2008253的控制字有4個(gè)主要功能*選擇計(jì)數(shù)器;*確定計(jì)數(shù)器數(shù)據(jù)的讀寫格式;*確定計(jì)數(shù)器的工作方式;*確定計(jì)數(shù)器計(jì)數(shù)的數(shù)制。第102頁(yè)/共257頁(yè)18一月2023104104第6章常用接口芯片及應(yīng)用最大0FFFFH最大9999第103頁(yè)/共257頁(yè)18一月2023105105第6章常用接口芯片及應(yīng)用

2.8253的初始化編程剛接通電源時(shí),諸如8253之類的可編程外圍接口芯片通道都處于未定義狀態(tài),在使用之前,必須用程序把它們初始化為所需的特定模式,這個(gè)過程稱為初始化編程。對(duì)8253芯片進(jìn)行初始化編程時(shí),需按下列步驟進(jìn)行:第104頁(yè)/共257頁(yè)18一月2023106106第6章常用接口芯片及應(yīng)用

(1)寫入控制字用輸出指令向控制字寄存器寫入一個(gè)控制字,以選定計(jì)數(shù)器通道,規(guī)定該計(jì)數(shù)器的工作方式和計(jì)數(shù)格式。寫入控制字還起到復(fù)位作用,使輸出端OUT變?yōu)橐?guī)定的初始狀態(tài),并使計(jì)數(shù)器清0。第105頁(yè)/共257頁(yè)18一月2023107107第6章常用接口芯片及應(yīng)用

(2)寫入計(jì)數(shù)初值用輸出指令向選中的計(jì)數(shù)器端口地址中寫入一個(gè)計(jì)數(shù)初值,初值設(shè)置時(shí)要符合控制字中有關(guān)格式的規(guī)定。初值可以是8位數(shù)據(jù),也可以是16位數(shù)據(jù)。若是8位數(shù),只要用一條輸出指令就可完成初值的設(shè)置。如果是16位數(shù),則必須用兩條輸出指令來完成,而且規(guī)定先送低8位數(shù)據(jù),后送高8位數(shù)據(jù)。注意,計(jì)數(shù)初值為0時(shí),若為16位計(jì)數(shù),也要分成兩次寫入。第106頁(yè)/共257頁(yè)18一月2023108108計(jì)數(shù)初值的計(jì)算

假設(shè)已知8253相應(yīng)通道的CLK端接入的時(shí)鐘頻率為fCLK,周期記為TCLK=1/fCLK,要求產(chǎn)生的周期性信號(hào)頻率為f(周期為T)或定時(shí)時(shí)間為T(f=1/T),則所需計(jì)數(shù)初值n為在計(jì)算時(shí)應(yīng)注意時(shí)間和頻率的單位要一致。第6章常用接口芯片及應(yīng)用第107頁(yè)/共257頁(yè)18一月2023109109第6章常用接口芯片及應(yīng)用

8253工作過程中,CPU可用輸入指令讀取任一通道的計(jì)數(shù)值。CPU讀到的是執(zhí)行輸入指令瞬間計(jì)數(shù)器的當(dāng)前值。但8253的計(jì)數(shù)器是16位,所以要分2次讀至CPU。因此,若不鎖存的話,在前后兩次執(zhí)行輸入指令的過程中,計(jì)數(shù)值可能已經(jīng)變化了。鎖存當(dāng)前計(jì)數(shù)值的方法:第108頁(yè)/共257頁(yè)18一月2023110110第6章常用接口芯片及應(yīng)用向8253寫入一個(gè)方式控制字,令8253通道的鎖存器鎖存。8253的每個(gè)通道都有一個(gè)16位鎖存器,平時(shí)它的值隨著通道計(jì)數(shù)器的值變化。當(dāng)向通道寫入鎖存的控制字時(shí),它把計(jì)數(shù)器的當(dāng)前值鎖存(計(jì)數(shù)器可繼續(xù)計(jì)數(shù)),于是CPU讀取的就是鎖存器的值。當(dāng)對(duì)計(jì)數(shù)器重新編程,或讀取計(jì)數(shù)值后,自動(dòng)解除鎖存狀態(tài),它的值又隨計(jì)數(shù)器變化。第109頁(yè)/共257頁(yè)18一月2023111111第6章常用接口芯片及應(yīng)用

例1:在某微機(jī)系統(tǒng)中,8253的3個(gè)計(jì)數(shù)器的端口地址分別為3F0H、3F2H和3F4H,控制字寄存器的端口地址為3F6H,要求8253的通道0工作于方式3,BCD計(jì)數(shù),并已知對(duì)它寫入的計(jì)數(shù)初值n=1234(十進(jìn)制數(shù)),則初始化程序?yàn)椋旱?10頁(yè)/共257頁(yè)18一月2023112112MOVAL,00110111;控制字:選擇通道0,先讀/寫低字節(jié),后高字節(jié),方式3,BCD計(jì)數(shù)MOVDX,3F6H;指向控制口OUTDX,AL;送控制字MOVAL,34H;計(jì)數(shù)值低字節(jié),代表00110100BCDMOVDX,3F0H;指向計(jì)數(shù)器0端口OUTDX,AL;先寫入低字節(jié)MOVAL,12H;計(jì)數(shù)值高字節(jié),代表00010010BCDOUTDX,AL;后寫入高字節(jié)第111頁(yè)/共257頁(yè)18一月2023113113第6章常用接口芯片及應(yīng)用

四、8253應(yīng)用舉例1.8253定時(shí)功能的應(yīng)用在計(jì)算機(jī)應(yīng)用中,經(jīng)常會(huì)遇到隔一定時(shí)間重復(fù)某一個(gè)動(dòng)作的應(yīng)用。

【例1】設(shè)某應(yīng)用系統(tǒng)中,系統(tǒng)提供一個(gè)頻率為10kHz的時(shí)鐘信號(hào),要求每隔100ms采集一次數(shù)據(jù)。第112頁(yè)/共257頁(yè)18一月2023114114第6章常用接口芯片及應(yīng)用

解:在系統(tǒng)中,采用8253定時(shí)器的通道0來實(shí)現(xiàn)這一要求。將8253芯片的CLK0接到系統(tǒng)的10kHz時(shí)鐘上,OUT0輸出接到CPU的中斷請(qǐng)求線上,8253的端口地址為10H~13H,如圖所示。第113頁(yè)/共257頁(yè)18一月2023115115第6章常用接口芯片及應(yīng)用

(1)選擇工作方式由于系統(tǒng)每隔100ms定時(shí)中斷一次,則采樣頻率為10Hz,可選用方式2來實(shí)現(xiàn)。當(dāng)8253定時(shí)器工作在方式2時(shí),在寫入控制字與計(jì)數(shù)初值后,定時(shí)器就啟動(dòng)工作,每到100ms時(shí)間,即計(jì)數(shù)器減到1時(shí),輸出端OUT0輸出一個(gè)CLK周期的低電平,向CPU申請(qǐng)中斷,CPU在中斷服務(wù)程序中完成數(shù)據(jù)采集,同時(shí)按原設(shè)定值重新開始計(jì)數(shù),實(shí)現(xiàn)了計(jì)數(shù)值的自動(dòng)重裝。第114頁(yè)/共257頁(yè)18一月2023116116第6章常用接口芯片及應(yīng)用(2)確定計(jì)數(shù)初值已知fCLK0=10kHz,則TCLK0=0.1ms,所以,計(jì)數(shù)初值N=TOUT0/TCLK0=100ms/0.1ms=1000=03E8H(3)初始化編程根據(jù)以上要求,可確定8253通道0的方式控制字為00110100B,即34H。初始化程序段如下:第115頁(yè)/共257頁(yè)18一月2023117117第6章常用接口芯片及應(yīng)用MOVAL,34H;通道0,16位計(jì)數(shù),方式2,二進(jìn)制計(jì)數(shù)OUT13H,AL;寫入方式控制字到控制字寄存器MOVAL,0E8H;計(jì)數(shù)初值低8位OUT10H,AL;寫入計(jì)數(shù)初值低8位到通道0MOVAL,03H;計(jì)數(shù)初值高8位OUT10H,AL;寫入計(jì)數(shù)初值高8位到通道0第116頁(yè)/共257頁(yè)18一月2023118118第6章常用接口芯片及應(yīng)用

2.8253計(jì)數(shù)功能的應(yīng)用

【例2】通過PC機(jī)系統(tǒng)總線在外部擴(kuò)展一個(gè)8253,利用其通道0記錄外部事件的發(fā)生次數(shù),每輸入一個(gè)高脈沖表示事件發(fā)生1次。當(dāng)事件發(fā)生100次后就向CPU提出中斷請(qǐng)求(邊沿觸發(fā)),假設(shè)8253片選信號(hào)的I/O地址范圍為200H~203H,如圖所示。第117頁(yè)/共257頁(yè)18一月2023119119第6章常用接口芯片及應(yīng)用

根據(jù)要求,可以選擇方式0來實(shí)現(xiàn),計(jì)數(shù)初值N=100。8253初始化程序段如下:MOVDX,203H;設(shè)置方式控制字地址MOVAL,10H;設(shè)定通道0為工作方式0,二進(jìn)制計(jì)數(shù),只寫入低字節(jié)計(jì)數(shù)值OUTDX,ALMOVDX,200H;設(shè)置計(jì)數(shù)器通道0的地址MOVAL,64H;計(jì)數(shù)初值為100OUTDX,AL

第118頁(yè)/共257頁(yè)18一月2023120120第6章常用接口芯片及應(yīng)用

3.8253計(jì)數(shù)通道的級(jí)聯(lián)使用

【例3】已知某8253占用I/O空間地址為320H~323H,如圖所示,輸入其CKL1端的脈沖頻率為1MHz,要求用8253連續(xù)產(chǎn)生10秒的定時(shí)信號(hào)。第119頁(yè)/共257頁(yè)18一月2023121121第6章常用接口芯片及應(yīng)用

解:分析:8253的一個(gè)通道的最大計(jì)數(shù)范圍為65536,本例中要求輸出10秒定時(shí)信號(hào),則計(jì)數(shù)初值N=10/10-6=107,超過了8253一個(gè)通道的最大計(jì)數(shù)值,此時(shí)可以使用2個(gè)8253通道級(jí)連方式來實(shí)現(xiàn)。

第120頁(yè)/共257頁(yè)18一月2023122122第6章常用接口芯片及應(yīng)用

若級(jí)連前2個(gè)通道的初值為N1和N2,則級(jí)連后作為一個(gè)整體的計(jì)數(shù)值為N=N1×N2。設(shè)計(jì)數(shù)器初值N1=500=1F4H,N2=20000=4E20H,使用方式2,二進(jìn)制計(jì)數(shù),則通道1、2的初始化程序如下:第121頁(yè)/共257頁(yè)18一月2023123123第6章常用接口芯片及應(yīng)用MOVDX,323HMOVAL,74H;01110100B,通道1,寫入16位初值,方式2,二進(jìn)制計(jì)數(shù)OUTDX,AL;寫入通道1方式字MOVDX,321HMOVAL,0F4HOUTDX,AL;寫入初值500的低8位入通道1MOVAL,01HOUTDX,AL;寫入初值500的高8位入通道1第122頁(yè)/共257頁(yè)18一月2023124124第6章常用接口芯片及應(yīng)用MOVDX,323HMOVAL,0B4H;10110100B,通道2,寫入16位初值,方式2,二進(jìn)制計(jì)數(shù)OUTDX,AL;寫入通道2方式字MOVDX,322HMOVAL,20HOUTDX,AL;寫入通道2初值20000的低8位MOVAL,4EHOUTDX,AL;寫入通道2初值20000的高8位第123頁(yè)/共257頁(yè)18一月2023125125第6章常用接口芯片及應(yīng)用

4.綜合舉例

【例4】如圖是用8253監(jiān)視一個(gè)生產(chǎn)流水線示意圖,每通過50個(gè)工件揚(yáng)聲器響5秒鐘,頻率為2000Hz。第124頁(yè)/共257頁(yè)18一月2023126126第6章常用接口芯片及應(yīng)用

電路工作過程說明:圖中工件從光源與光敏電阻之間通過時(shí),在晶體管的發(fā)射極上產(chǎn)生一個(gè)脈沖,此脈沖作為8253通道0計(jì)數(shù)器的計(jì)數(shù)輸入CLK0,當(dāng)通道0計(jì)數(shù)滿50后,有OUT0輸出負(fù)脈沖,經(jīng)反相后作為8259的一個(gè)中斷請(qǐng)求信號(hào),在中斷服務(wù)程序中,啟動(dòng)8253通道1計(jì)數(shù)器工作,由OUT1連續(xù)2000Hz的方波。持續(xù)5秒后停止輸出。試編程。第125頁(yè)/共257頁(yè)18一月2023127127第6章常用接口芯片及應(yīng)用

解:分析

1.通道0計(jì)數(shù)器工作于方式2,通道1計(jì)數(shù)器工作于方式3,通道1的門控信號(hào)GATE1由8255A的PC0控制,輸出方波信號(hào)經(jīng)驅(qū)動(dòng)、濾波后送揚(yáng)聲器。

第126頁(yè)/共257頁(yè)18一月2023128128第6章常用接口芯片及應(yīng)用

2.控制字設(shè)計(jì):通道0計(jì)數(shù)器工作于方式2,采用BCD計(jì)數(shù),因計(jì)數(shù)初值為50,采用RL0、RL1=01(讀/寫計(jì)數(shù)器低8位),則工作方式擴(kuò)展字為:00010101B(15H);通道1計(jì)數(shù)器工作于工作于方式3,CLK1接2.5MHz時(shí)鐘,要求產(chǎn)生2000Hz的方波,則計(jì)數(shù)初值為:2.5*106/2000=1250,采用RL1、RL2=11(先讀/寫低8位,后讀/寫高8位),BCD計(jì)數(shù),則工作方式字為:01110111(77H)H。第127頁(yè)/共257頁(yè)18一月2023129129第6章常用接口芯片及應(yīng)用

3.設(shè)通道0的地址為40H,通道1的地址為41H,控制口地址為43H,8255的口地址為80H。第128頁(yè)/共257頁(yè)18一月2023130130第6章常用接口芯片及應(yīng)用

主程序:

MOVAL,15H;通道初始化

OUT43H,ALMOVAL,50H;計(jì)數(shù)初值

OUT40H,ALSTI;開中斷

LOP:HLT;等待中斷

JMPLOP第129頁(yè)/共257頁(yè)18一月2023131131第6章常用接口芯片及應(yīng)用中斷服務(wù)程序:

MOVAL,01H;通道1的GATE1置1,啟動(dòng)計(jì)數(shù)

OUT80H,ALMOVAL,77H;通道1初始化

OUT43H,ALMOVAL,50H;計(jì)數(shù)初值

OUT41H,ALMOVAL,12HOUT41H,ALCALLDLY5S;延時(shí)5秒

MOVAL,00H;通道1的GATE1置0,停止計(jì)數(shù)

OUT80H,ALIRET第130頁(yè)/共257頁(yè)18一月2023132132【例5】設(shè)端口地址為F8H~FEH,使計(jì)數(shù)器0工作在方式1,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)值為3025H。進(jìn)行初始化編成。其初始化程序?yàn)?/p>

MOV AL,00110010B

OUT 0FEH,AL;寫方式控制字

MOV AL,25H

OUT 0F8H,AL;向計(jì)數(shù)器0寫入低8位計(jì)數(shù)值

MOV AL,30H

OUT 0F8H,AL;向計(jì)數(shù)器0再寫入高8位計(jì)數(shù)值第6章常用接口芯片及應(yīng)用第131頁(yè)/共257頁(yè)18一月2023133133第6章常用接口芯片及應(yīng)用若要讀出當(dāng)前計(jì)數(shù)值,可利用鎖存命令和讀出命令來實(shí)現(xiàn)

MOVAL,00H

OUT0FEH,AL;計(jì)數(shù)器0的鎖存命令寫入控制口,鎖存當(dāng)前計(jì)數(shù)值

INAL,0FEH

MOVAH,AL;讀計(jì)數(shù)器0的低8位計(jì)數(shù)值,暫存于AH

INAL,0FEH;讀計(jì)數(shù)器0的高8位計(jì)數(shù)值

XCHGAL,AH;AX中為計(jì)數(shù)器0的當(dāng)前計(jì)數(shù)值。第132頁(yè)/共257頁(yè)18一月2023134結(jié)束第133頁(yè)/共257頁(yè)18一月2023135135§5數(shù)/模(D/A)和模/數(shù)(A/D)變換接口第6章常用接口芯片及應(yīng)用教學(xué)重點(diǎn)

DAC0832及其與主機(jī)的連接

ADC0809及其與主機(jī)的連接第134頁(yè)/共257頁(yè)18一月2023136136問題的提出:當(dāng)計(jì)算機(jī)用于數(shù)據(jù)采集和過程控制的時(shí)候,采集對(duì)象往往是連續(xù)變化的物理量(如溫度、壓力、聲波等),但計(jì)算機(jī)處理的是離散的數(shù)字量,因此需要對(duì)連接變化的物理量(模擬量)進(jìn)行采樣、保持,再把模擬量轉(zhuǎn)換為數(shù)字量交給計(jì)算機(jī)處理、保存等。計(jì)算機(jī)輸出的數(shù)字量有時(shí)需要轉(zhuǎn)換為模擬量去控制某些執(zhí)行元件(如聲卡播放音樂等)。A/D轉(zhuǎn)換器完成模擬量→數(shù)定量的轉(zhuǎn)換,D/A轉(zhuǎn)換器完成數(shù)字量→模擬量的轉(zhuǎn)換。

第135頁(yè)/共257頁(yè)18一月202313718一月2023137

D/A和A/D在控制系統(tǒng)中的地位數(shù)字信號(hào)模擬信號(hào)現(xiàn)場(chǎng)信號(hào)1現(xiàn)場(chǎng)信號(hào)2現(xiàn)場(chǎng)信號(hào)n微型計(jì)算機(jī)放大器放大器放大器多路開關(guān)低通濾波傳感器低通濾波傳感器低通濾波傳感器A/D轉(zhuǎn)換器采樣保持器數(shù)字信號(hào)受控對(duì)象控制信號(hào)模擬信號(hào)D/A轉(zhuǎn)換器放大驅(qū)動(dòng)電路…傳感器將各種現(xiàn)場(chǎng)的物理量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論