




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、17.2 可編程并行接口8255A一、8255A的外部特性和內(nèi)部結(jié)構(gòu)18255A的基本特性(1)具有兩個(gè)8位口(A和B)和兩個(gè)4位口(C口高低四位)。 為Intel系列CPU與外設(shè)之間提供TTL電平兼容的接口。 PC口還具有按位置位復(fù)位功能,為按位控制提供了強(qiáng)大的支持。(2)設(shè)置有3種工作方式:0方式、1方式和2方式(雙向傳送)。 能適應(yīng)CPU與IO接口之間的多種數(shù)據(jù)傳送方式的要求。如無(wú)條件傳送,應(yīng)答方式(查詢(xún))傳送,中斷方式傳送。2 (3)提供兩條編程命令(方式字和控制字)。 用戶(hù)可根據(jù)外界條件(I/O設(shè)備需要哪些信號(hào)線(xiàn)以及它能提供哪些狀態(tài)線(xiàn))來(lái)使用8255A構(gòu)成多種接口電路、組建微機(jī)應(yīng)用系
2、統(tǒng)。 (4)具有可供查詢(xún)的狀態(tài)字。 可保留8255A執(zhí)行命令過(guò)程中和執(zhí)行命令完畢后,所產(chǎn)生的狀態(tài)。3(5)8255A的 PC口的使用比較特殊。可作數(shù)據(jù)口; 工作在1方式和2方式時(shí),部分信號(hào)線(xiàn)被分配作專(zhuān)用聯(lián)絡(luò)信號(hào);可以進(jìn)行按位控制; 在CPU讀取8255A狀態(tài)時(shí),PC口又作1、2方式的狀態(tài)口用。 這是使用8255的難點(diǎn)所在,學(xué)習(xí)時(shí)要特別予以注意。(6)8255A芯片內(nèi)部主要由控制寄存器、狀態(tài)寄存器和數(shù)據(jù)寄存器組成。428255A的外部引線(xiàn)與內(nèi)部結(jié)構(gòu)(1)外部引腳面向系統(tǒng)總線(xiàn)的信號(hào)線(xiàn)D0D7: 雙向數(shù)據(jù)線(xiàn)。CS : 片選信號(hào)。 A1、A0:片內(nèi)端口尋址。 直接與系統(tǒng)地址線(xiàn)相連。RD : 讀信號(hào)。W
3、R : 寫(xiě)信號(hào)。 RESET: 復(fù)位信號(hào)線(xiàn),高電平有效。 它清除控制寄存器并將8255A的A、B、C三個(gè)端口均置為輸入方式;輸出寄存器和狀態(tài)寄存器被復(fù)位,并屏蔽中斷請(qǐng)求;24條面問(wèn)外設(shè)的信號(hào)線(xiàn)呈現(xiàn)高阻懸浮狀態(tài)。直到用方式命令才能改變,使其進(jìn)入用戶(hù)所需的工作方式。 5面向IO設(shè)備的信號(hào)線(xiàn)有:PA0一PA7:端口A的輸入/輸出線(xiàn)PB0一PB7:端口B的輸入/輸出線(xiàn)PC0一PC7:端口C的輸入/輸出線(xiàn)注: . A、B口只作輸入/輸出的數(shù)據(jù)口,有時(shí)也可用于讀取外設(shè)的狀態(tài)信號(hào)(如打印機(jī)的“忙”狀態(tài)),但它們都不是專(zhuān)門(mén)的狀態(tài)口。 . A、B口作為數(shù)據(jù)口輸入/輸出時(shí),是8位同時(shí)行動(dòng),即便只用其中的一位,也要
4、同時(shí)輸入/出8位。 6. C口作用與8255A的工作方式有關(guān): a. 作數(shù)據(jù)口:PC47位與A口組成A組;PC03位與B口組成B組。而且是4位一起行動(dòng)。 b. 作狀態(tài)口:在方式1和2時(shí),C口是8255A的狀態(tài)口。且其狀態(tài)字內(nèi)容與該口的外部引腳連線(xiàn)無(wú)關(guān)。 c. 作專(zhuān)用(固定)聯(lián)絡(luò)(握手)信號(hào)。 d. 作按位控制用。C口的任何一個(gè)引腳都可以輸出作為控制信號(hào)的高/低電平。 7數(shù)據(jù)總線(xiàn)緩沖器:三態(tài)雙向8位緩沖器。它是8255A與CPU系統(tǒng)數(shù)據(jù)總線(xiàn)的接口。所有數(shù)據(jù)的收/發(fā), CPU發(fā)出的控制字和從8255A來(lái)的狀態(tài)信息都通過(guò)該緩沖器傳送。 8讀寫(xiě)控制邏輯:由RD,WR,CS以及端口選擇信號(hào)A1A0等組成
5、。 讀寫(xiě)控制邏輯控制了總線(xiàn)的開(kāi)放與關(guān)閉和信息傳送的方向。以便把CPU的控制命令或輸出數(shù)據(jù)送到相應(yīng)的端口;或把外設(shè)的信息或輸入數(shù)據(jù)從相應(yīng)的端口送到CPU。 98255A的基本操作及在TP86A、PCXT和實(shí)驗(yàn)平臺(tái)上的端口地址如下表所示。 10數(shù)據(jù)端口A、B、C:8255A包括三個(gè)8位輸入輸出端口(PORT)。每個(gè)端口都有一個(gè)數(shù)據(jù)輸入寄存器和一個(gè)數(shù)據(jù)輸出寄存器。 A口和B口各具有一個(gè)8位輸出鎖存器緩沖器和一個(gè)8位輸入鎖存器; C口具有一個(gè)8位輸出鎖存器緩沖器和一個(gè)8位輸入緩沖器。 C口與A口和B口配合,可輸出控制信號(hào)和從外部輸入狀態(tài)信號(hào)。 在實(shí)際應(yīng)用中,PC口的8位可分為兩個(gè)4位端口(0方式下),
6、也可以分成一個(gè)5位端口和一個(gè)3位端口(2方式下)來(lái)使用。11A組和B組控制電路:控制A、B和C三個(gè)端口的工作方式。 A組控制A口和C口的上半部(PC7-PC4)的工作方式和輸入輸出。 B組控制B口和C口的下半部(PC3-PC0)的工作方式和輸入輸出。 A組、B組的控制寄存器還接收按位控制命令,以實(shí)現(xiàn)對(duì)PC口的按位置位/復(fù)位操作。12二、8255A的編程命令 2個(gè)編程命令: 工作方式命令 PC口的按位操作命令。這2個(gè)編程命令都是控制字,初始化時(shí)將被送入同一個(gè)命令端口。8255A通過(guò)特征位來(lái)區(qū)別它們。131. 方式命令 用于指定并行端口PA、PB、PC用作輸入或輸出端口;選擇8255的工作方式。本
7、方式字實(shí)現(xiàn)對(duì)8255A的初始化。可見(jiàn):A組有三種方式(方式0、l、2)、而B(niǎo)組只有二種工作方式(方式0、1)。端口PC分成兩部分,上半部歸A組,下半部歸B組。 端口的工作方式是:置1指定為輸入;置0指定為輸出。利用方式字的不同代碼組合,可以分別選擇A組和B組的工作方式和各端口的輸入輸出。 1415值得注意的是: PC口的PC0PC7被分配給指定為方式1的A口和B口作為專(zhuān)用的聯(lián)絡(luò)信號(hào)線(xiàn)。 1方式下專(zhuān)用聯(lián)絡(luò)線(xiàn)的分配如下:A口:輸入時(shí):PC3、PC4、PC5 輸出時(shí):PC3、PC6、PC7B口:PC0、PC1、PC2 一旦A口或B口被指定為1方式,就獲得了相應(yīng)的專(zhuān)用聯(lián)絡(luò)線(xiàn),此時(shí)它們各有固定的輸入或輸
8、出方向。并且,在方式字中對(duì)PC口指定的輸入/輸出方向?qū)λ鼈儫o(wú)效,僅對(duì)非專(zhuān)用聯(lián)絡(luò)線(xiàn)有效。16 PC口的PC3PC7被分配給指定為方式2的A口作為專(zhuān)用的聯(lián)絡(luò)信號(hào)線(xiàn)。 同理,只要A口被指定為方式2,聯(lián)絡(luò)信號(hào)線(xiàn)的輸入或輸出方向是固定的。方式字中對(duì)PC口指定的輸入/輸出方向?qū)λ鼈儫o(wú)效,僅對(duì)非專(zhuān)用聯(lián)絡(luò)線(xiàn)PC0 PC2有效。17例:把A口設(shè)置為方式0輸入,B口設(shè)成方式l輸出,PC3設(shè)成輸入,C上半口(PC7PC4)設(shè)為方式0輸出。試給出8255A的初始化程序段。MOV AL,95H ;方式控制字為10010101OUT 63H,AL ;寫(xiě)入控制寄存器 注:由于B口設(shè)成方式l,所以PC0PC2為固定聯(lián)絡(luò)線(xiàn)。此
9、時(shí)方式字中的D0=1只能指定PC3為輸入方式,對(duì)PC0PC2則無(wú)效。A口被設(shè)置成方式0,沒(méi)有固定的聯(lián)絡(luò)線(xiàn),故方式字中的D3=0對(duì)PC7PC4有效,都被設(shè)置為輸出方式。 182. 按位置位/復(fù)位命令字 用于指定PC口的某一位輸出高電平或低電平。利用按位置值復(fù)位控制字可以使PC口的8根線(xiàn)中的任意一根置成高電平輸出或低電平輸出。例:將PC口的PC2引腳置位的程序段: MOV DX,303H ;8255A控制口地址 MOV AL,05H ;使PC21的控制字 OUT DX,AL ;送到控制口 如果要使該引腳復(fù)位,則用下列程序段實(shí)現(xiàn): MOV DX,303H ;8255A控制口地址 MOV AL,04H
10、 ;使PC20的控制字 OUT DX,AL ;送到控制口 19 注:按位置位復(fù)位命令可以放在8255A初始化以后的程序中的任何位置。產(chǎn)生的輸出信號(hào),可作為控制開(kāi)關(guān)的通斷,繼電器的吸臺(tái)釋放,馬達(dá)的啟停等操作的選通信號(hào)。 另外,在后面將要討論的8255A的狀態(tài)字中的中斷允許位INTE的置位和復(fù)位,即允許8255A提出中斷與禁止8255A提出中斷,也是采用這個(gè)按位控制的命令字來(lái)實(shí)現(xiàn)的。 20例:利用8255A的PC7產(chǎn)生負(fù)脈沖,作為打印機(jī)接口電路的數(shù)據(jù)選通信號(hào),程序段為:MOV DX,303H ;命令口MOV AL,0EH ;PC7=0OUT DX,ALNOP ;延時(shí)以增加脈沖寬度NOP MOV A
11、L,0FH ;PC7=1OUT DX,AL21 另外,需要指出的是:按位輸出控制的功能不僅C口具有,A口、B口也有按位的輸出控制,只不過(guò)實(shí)現(xiàn)的方法不同。 C口按位輸出控制是以命令的形式送到命令口去執(zhí)行的。而A口、B口的按位輸出控制是以送數(shù)據(jù)到A口、B口來(lái)實(shí)現(xiàn)的。 當(dāng)然,能夠這樣做的條件是8255A的輸出有鎖存能力。當(dāng)定義數(shù)據(jù)口為輸出而對(duì)其執(zhí)行IN指令時(shí),所讀到的內(nèi)容就是上次輸出時(shí)鎖存的數(shù)據(jù),而不是讀入外設(shè)送來(lái)的數(shù)據(jù)。 其具體作法是:先對(duì)端口進(jìn)行讀操作,將讀入的原輸出值“或”上一個(gè)字節(jié)(該位為1,其他位為0),或者“與”上一個(gè)字節(jié)(該位為0,其他位為1),然后再送到同一端口即可實(shí)現(xiàn)對(duì)該位的置位,
12、復(fù)位控制而不影響其他位的狀況。22例如,使B口的PB6和PB4同時(shí)置位復(fù)位,其程序如下:MOV DX,301H ;PB數(shù)據(jù)口地址IN AL,DX ;讀入原輸出值MOV AH,AL ;保存原輸出值OR AL,50H ;使PB6PB411OUT DX,AL ;同時(shí)輸出PB6PB4.AND AL,0AFH ;使PB6PB400OUT DX,AL ;同時(shí)輸出PB6PB4237.3 8255A的0方式及其應(yīng)用一、特點(diǎn) (1)0方式是基本輸入/輸出工作方式。 本方式下24條IO線(xiàn)全部由用戶(hù)分配功能,無(wú)專(zhuān)用聯(lián)絡(luò)信號(hào)。 這種方式不能采用中斷方式與CPU交換數(shù)據(jù),只能用于簡(jiǎn)單(無(wú)條件)傳送,或應(yīng)答(查詢(xún))傳送。
13、 方式0使8255或作為緩沖輸入設(shè)備,或作為鎖存輸出設(shè)備。 (即:輸出鎖存,輸入只有緩沖能力而無(wú)鎖存功能。)24采用應(yīng)答式傳送時(shí),用A口和B口傳送數(shù)據(jù),而把C口的上、下半部作應(yīng)答用的控制與狀態(tài)信號(hào)線(xiàn)。但是這種情況與1、2方式中固定的專(zhuān)用聯(lián)絡(luò)信號(hào)線(xiàn)不同、C口中的哪根線(xiàn)充當(dāng)何種應(yīng)答功能是不固定的,由用戶(hù)任意指定。25 在方式0中,C口雖可對(duì)上下兩部分獨(dú)立地定義為輸入或者輸出,但是CPU對(duì)其操作時(shí)是以字節(jié)為單位,而不是單獨(dú)讀寫(xiě)某一個(gè)4位端口。若這兩個(gè)端口一個(gè)定義為輸入,另一個(gè)定義為輸出,CPU讀C口時(shí),定義為輸出的4位無(wú)效(指從它們讀入的數(shù)據(jù)無(wú)效,因?yàn)樗鼈儾皇峭庠O(shè)的輸入信號(hào),而是它們最近一次輸出時(shí)鎖
14、存的信號(hào));CPU向C口寫(xiě)入時(shí),定義為輸入的4位不受影響(此時(shí)它們不接受CPU寫(xiě)入數(shù)據(jù),只接收外設(shè)的輸入信號(hào))。26 (2)0方式下,只能把C口的高4位為一組或低4位為一組同時(shí)輸入或輸出,不能再把4位中一部分作輸入另一部分作輸出。 (3)端口信號(hào)線(xiàn)之間無(wú)固定的時(shí)序關(guān)系,由用戶(hù)根據(jù)數(shù)據(jù)傳送的要求決定輸入輸出的操作過(guò)程。0方式?jīng)]有設(shè)置固定的狀態(tài)字。 (4)是單向I0,一次初始化只能指定端口作輸入或作輸出,不能指定端口同時(shí)既作輸入又作輸出。27 例:為某微機(jī)系統(tǒng)設(shè)計(jì)一個(gè)打印機(jī)接口,并且,通過(guò)該接口,CPU采用查詢(xún)方式把存放在BUF緩沖區(qū)的256個(gè)字符(ASCII碼)送去打印。 分析:打印接口直接面向
15、的對(duì)象是打印機(jī)接口標(biāo)準(zhǔn),而不是打印機(jī)本身。所以,打印機(jī)接口的設(shè)計(jì)要按照接口標(biāo)準(zhǔn)的要求來(lái)進(jìn)行。并行打印機(jī)接口標(biāo)準(zhǔn)Centronics定義了36芯插頭座,這里只簡(jiǎn)單介紹其中主要的幾個(gè)信號(hào)線(xiàn)定義和工作時(shí)序。DATA18:數(shù)據(jù)輸入信號(hào)。STROBE: 數(shù)據(jù)選通。用于將DB上的數(shù)據(jù)打入打印機(jī)內(nèi)部的數(shù)據(jù)輸入寄存器。BUSY: 打印機(jī)忙ASK: 打印機(jī)準(zhǔn)備接收數(shù)據(jù)28 由并行打印機(jī)接口數(shù)據(jù)傳送時(shí)序可知,在=1時(shí)打印機(jī)“忙”,不能接收CPU的新數(shù)據(jù),只有在=0時(shí)才能接收新數(shù)據(jù)。因此可以描述數(shù)據(jù)打印過(guò)程如下: 29 當(dāng)CPU通過(guò)接口要求打印機(jī)打印數(shù)據(jù)時(shí),首先查看BUSY信號(hào),若BUSY=0,則將數(shù)據(jù)通過(guò)DB送往
16、接口。 等數(shù)據(jù)在與打印機(jī)連接的數(shù)據(jù)引腳上穩(wěn)定后,CPU再發(fā)一個(gè)選通信號(hào)STROBE,將該數(shù)據(jù)存入打印機(jī)內(nèi)部的數(shù)據(jù)輸入寄存器。并由STROBE的上升沿使打印機(jī)的信號(hào)BUSY=1,即“忙”。(注意:可見(jiàn)打印機(jī)的BUSY信號(hào)的置1不是打印機(jī)完成的,而是由STROBE信號(hào)引起的)。 待打印機(jī)處理完該數(shù)據(jù)后,它產(chǎn)生信號(hào)ACK=0,表示打印機(jī)準(zhǔn)備就緒。同時(shí)ACK的前沿或后沿(可任選)使BUSY=1,即“閑”。此時(shí)一個(gè)數(shù)據(jù)的傳送過(guò)程結(jié)束。可進(jìn)行下一個(gè)數(shù)據(jù)的傳送。 30設(shè)計(jì): 接口電路: 采用8255A芯片,用A口作數(shù)據(jù)口向打印機(jī)傳送數(shù)據(jù),用PC7發(fā)送選通信號(hào),用PC2接收BUSY信號(hào)。 8255A數(shù)據(jù)線(xiàn)與系
17、統(tǒng)總線(xiàn)的低8位相連,讀寫(xiě)引腳分別接8288總線(xiàn)控制器的輸出信號(hào)和。 設(shè)8255A的A、B、C及控制口地址分別為300H303H。 故可用A1、A0作片內(nèi)端口尋址。用A9A2配合AEN實(shí)現(xiàn)對(duì)8255A的片選。 3132接口驅(qū)動(dòng)程序 33347.4 8255A的1方式及其應(yīng)用一、特點(diǎn)(1)1方式是選通輸入/輸出方式(應(yīng)答方式),需設(shè)置專(zhuān)用的聯(lián)絡(luò)信號(hào)線(xiàn)及中斷請(qǐng)求線(xiàn)。因此,這種方式通常用于查詢(xún)(條件)傳送或中斷傳送,本方式下,數(shù)據(jù)的輸入輸出(即:A、B口)都有鎖存能力。(2)PA和PB為數(shù)據(jù)口,而PC口分配作聯(lián)絡(luò)信號(hào)用的引腳,用戶(hù)不能再指定作其他用途。(3)各聯(lián)絡(luò)信號(hào)線(xiàn)之間有固定的時(shí)序關(guān)系,傳送數(shù)據(jù)時(shí)
18、,要嚴(yán)格按照時(shí)序進(jìn)行。(4)輸入輸出操作產(chǎn)生固定的狀態(tài)字,這些狀態(tài)信息可作為查詢(xún)或中斷請(qǐng)求之用,可從PC口讀取。35 (5)單向傳送。一次初始化只能設(shè)置在一個(gè)方向上傳送。不能同時(shí)作兩個(gè)方向的傳送。 (6)在1方式下,PC口用于聯(lián)絡(luò)的各線(xiàn)的傳輸方向固定,與方式字中D3或D0位的設(shè)置無(wú)關(guān),通常在8255A初始化時(shí)使之為0即可。 36二、1方式下聯(lián)絡(luò)信號(hào)線(xiàn)的定義及其時(shí)序1. 方式1下輸入聯(lián)絡(luò)信號(hào)線(xiàn)的定義及其時(shí)序 聯(lián)絡(luò)信號(hào)的定義 當(dāng)A口和B口為輸入時(shí),各指定了C口的3根線(xiàn)作為8255A與外設(shè)及CPU之間的應(yīng)答信號(hào),如圖所示。 37STB:外設(shè)送到8255A的“輸入選通”信號(hào),低電平有效。 當(dāng)它變?yōu)榈碗?/p>
19、平時(shí),將數(shù)據(jù)鎖存到8255A端口的輸入數(shù)據(jù)寄存器。 IBF:8255A給外設(shè)的應(yīng)答信號(hào),高電平有效。 當(dāng)IBF=1,說(shuō)明8255A的“輸入緩沖器滿(mǎn)”,數(shù)據(jù)尚未被CPU取走,通知外設(shè)不能送新數(shù)據(jù); 當(dāng)IBF=0時(shí),說(shuō)明輸入緩沖器已空,允許外設(shè)送新數(shù)據(jù)。 38INTR:8255A送到CPU的“中斷請(qǐng)求”信號(hào),高電平有效。 當(dāng)INTR=1時(shí),請(qǐng)求CPU從8255A讀數(shù)。使INTR變?yōu)楦唠娖降臈l件是: STB1(即數(shù)據(jù)已打入8255A輸入鎖存器),IBF1(輸入緩沖器滿(mǎn)), INTE1(中斷請(qǐng)求被允許),三個(gè)條件都具備時(shí),才使INTR變高,向CPU發(fā)出中斷請(qǐng)求。 “中斷允許”信號(hào)INTE是8255A為
20、控制中斷而設(shè)置的內(nèi)部控制信號(hào)。當(dāng)INTE1時(shí),允許中斷,當(dāng)INTE0時(shí),禁止中斷。這要通過(guò)向C口寫(xiě)入按位置位復(fù)位命令來(lái)設(shè)置,內(nèi)部不能自動(dòng)產(chǎn)生該控制信號(hào)。 39 1方式輸入的工作時(shí)序 40 (1)數(shù)據(jù)輸入時(shí),外設(shè)處于主動(dòng)地位,當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)并放到數(shù)據(jù)線(xiàn)上時(shí),首先發(fā)STB信號(hào)。由它把數(shù)據(jù)輸入到8255A。 (2) STB的下降沿約300NS,在數(shù)據(jù)已鎖存到8255A的鎖存器后,引起IBF=1。禁止輸入新的數(shù)據(jù)。 (3)在STB的上升沿約300NS后,在中斷允許(INTE1)的情況下IBF的高電平產(chǎn)生中斷請(qǐng)求,使INTR=1,通知CPU現(xiàn)接口中已有數(shù)據(jù),請(qǐng)求CPU讀取。CPU接受中斷請(qǐng)求后,轉(zhuǎn)到相
21、應(yīng)的中斷子程序。在子程序中執(zhí)行IN指令,將鎖存器中的數(shù)據(jù)取走。 若CPU采用查詢(xún)方式,則通過(guò)查詢(xún)狀態(tài)字中的INTR位或IBF位是否置位來(lái)判斷有無(wú)數(shù)據(jù)可讀。41 (4)CPU執(zhí)行讀操作時(shí),的下降沿使INTR復(fù)位,撤銷(xiāo)中斷請(qǐng)求,為下一次中斷請(qǐng)求作好準(zhǔn)備。信號(hào)的上升沿延時(shí)一段時(shí)間后清除IBF使其變低,表示接口的輸入緩沖器變空,允許外設(shè)輸入新數(shù)據(jù)。如此反復(fù),直至完成全部數(shù)據(jù)的輸入。 422方式1下輸出聯(lián)絡(luò)信號(hào)線(xiàn)的定義及其時(shí)序 聯(lián)絡(luò)信號(hào)的定義 OBF:8255A送到外設(shè)的“輸出緩沖器滿(mǎn)”信號(hào),低電平有效。當(dāng)它為低電平時(shí),通知外設(shè)來(lái)取數(shù)。 ACK:外設(shè)的“回答”信號(hào),低電平有效。當(dāng)它為低電平時(shí),表示外設(shè)已
22、經(jīng)從8255A的端口接收到了數(shù)據(jù),它是對(duì)OBF的回答。ACK信號(hào)的下降沿延時(shí)一段時(shí)間后,清除OBF,使其變成高電平,為下一次輸出作好準(zhǔn)備。 43INTR:8255A送到CPU的“中斷請(qǐng)求”信號(hào),高電平有效。 當(dāng)它為高電平時(shí),請(qǐng)求CPU向8255A寫(xiě)數(shù)。INTR變成高電平的條件是WR、OBF、ACK和INTE都為高電平,表示CPU已寫(xiě)完一個(gè)數(shù)據(jù)(WR=1),輸出緩沖器已空(OBF1),回答信號(hào)已結(jié)束(ACK1),外設(shè)已收到數(shù)據(jù),并且允許中斷(INTE1)。只有這4個(gè)條件同時(shí)滿(mǎn)足才能產(chǎn)生中斷請(qǐng)求。 44 1方式輸出的工作時(shí)序 (1)數(shù)據(jù)輸出時(shí),CPU處于主動(dòng)地位,當(dāng)CPU向8255A寫(xiě)一個(gè)數(shù)據(jù)時(shí),
23、WR的上升沿使OBF有效,表示輸出緩沖器已滿(mǎn),通知外設(shè)讀取數(shù)據(jù)。WR還使中斷請(qǐng)求INTR變低,封鎖中斷請(qǐng)求。 45 (2)外設(shè)讀取數(shù)據(jù)后,用ACK回答8255A,表示數(shù)據(jù)已收到。 (3)ACK的下降沿將OBF置為高電平,使OBF無(wú)效,為下一次輸出作準(zhǔn)備。在中斷允許(INTE1)的情況下ACK的上升沿使INTR變?yōu)楦唠娖?,產(chǎn)生中斷請(qǐng)求。CPU響應(yīng)中斷后在中斷服務(wù)程序中,執(zhí)行OUT指令,向8255A寫(xiě)下一個(gè)數(shù)據(jù)。46三、1方式的狀態(tài)字 8255A在1方式下有固定的狀態(tài)字,它為查詢(xún)方式提供狀態(tài)標(biāo)志位。 8255A不能直接提供中斷向量,因此當(dāng)8255A采用中斷方式時(shí),CPU也要通過(guò)讀狀態(tài)字來(lái)確定中斷源
24、,實(shí)現(xiàn)查詢(xún)中斷。如INTRA=1和INTRB=1分別表示A口和B口有中斷請(qǐng)求。 47注: 狀態(tài)字是通過(guò)讀C口獲得的,但從C口讀出的狀態(tài)字與C口的外部引腳所連接的外部輸入信號(hào)無(wú)關(guān)。例如,在輸入時(shí),狀態(tài)位PC4表示的是INTEA的狀態(tài),而不是外部引腳PC4輸入的聯(lián)絡(luò)信號(hào)STB的狀態(tài)。 輸入和輸出操作的狀態(tài)字是不同的,使用時(shí)應(yīng)“對(duì)號(hào)入座”,查相應(yīng)的狀態(tài)位。若采用查詢(xún)方式、則般是查INTR是否置位,此信號(hào)的可靠性最高。當(dāng)然亦可查IBF或OBF位。 狀態(tài)字中設(shè)置了INTR位,說(shuō)明8255A只能提供查詢(xún)中斷,而不能提供向量中斷。若需要采用向量中斷,則需借助中斷控制器來(lái)提供中斷向量。 48狀態(tài)字中INTE位
25、是控制標(biāo)志位,控制8255A能否提出中斷請(qǐng)求,因此它不是IO操作過(guò)程中自動(dòng)產(chǎn)生的狀態(tài)。而是由程序通過(guò)按位置位復(fù)位命令來(lái)設(shè)置或清除的。 例:若允許PA口輸入時(shí),產(chǎn)生中斷請(qǐng)求,則必須設(shè)置INTEA1即置PC41;若禁止它中斷請(qǐng)求,則置INTEA0,即置PC40。其程序段為: MOV DX,303H ;8255A命令口 MOV AL,00001001B ;置PC4=1,允許中斷請(qǐng)求 OUT DX,AL MOV AL,00001000B ;置PC4=0,禁止中斷請(qǐng)求 OUT DX,AL49四、1方式的接口方法 在1方式下,首先根據(jù)要求確定A口和B口是作輸入還是輸出,然后把C口的專(zhuān)用應(yīng)答線(xiàn)與外設(shè)相應(yīng)的控
26、制或狀態(tài)線(xiàn)相連。如果是采用中斷方式則還要把中斷請(qǐng)求線(xiàn)接到微處理器或中斷控制器;若采用查詢(xún)方式,則中斷請(qǐng)求線(xiàn)可以空著不接。 1方式的中斷處理,由于8255A不能直接提供中斷向量,所以一般都通過(guò)系統(tǒng)中的中斷控制器來(lái)提供尋找中斷服務(wù)程序入口地址的中斷類(lèi)型號(hào)。對(duì)于不采用向量中斷的微處理器,可以將INTR線(xiàn)直接連到CPU的中斷線(xiàn)(例如在單片機(jī)系統(tǒng)中)。50 1方式下CPU采用查詢(xún)方式時(shí):對(duì)輸入,通過(guò)C口查IBF位或INTR位的狀態(tài)。對(duì)輸出,查OBF位或INTR位的狀態(tài)。 INTR位的可靠性高,通常對(duì)它進(jìn)行查詢(xún),但前提一定是要使INTE=1。否則,8255A根本不能產(chǎn)生中斷請(qǐng)求,因而狀態(tài)字中的INTR位也
27、就不能置位。 51五、舉例兩種方式并行傳送接口設(shè)計(jì)例:在甲乙兩臺(tái)微機(jī)之間并行傳送1K字節(jié)數(shù)據(jù)。甲機(jī)發(fā),乙機(jī)接收。甲機(jī)一側(cè)8255A采用1方式。乙機(jī)一側(cè)8255A采用0方式。兩機(jī)的CPU與接口之間都采用查詢(xún)方式交換數(shù)據(jù)。分析與設(shè)計(jì):硬件連接 根據(jù)題目要求,甲機(jī)8255A是1方式發(fā)送,因此,可把PA口指定為數(shù)據(jù)輸出,則必然可用PC7和PC6引腳分別作聯(lián)絡(luò)線(xiàn)OBF和ACK。 乙機(jī)8255A是0方式接收,可把PA口定義為數(shù)據(jù)輸入,因0方式無(wú)固定的聯(lián)絡(luò)線(xiàn),故現(xiàn)選用引腳PC4和PC3作聯(lián)絡(luò)線(xiàn)。 符合題意的接口電路圖如下: 5253編程甲機(jī)發(fā)送程序段:MOV DX,303H ;8255A命令口MOV AL,
28、10100000B ;初始化方式字OUT DX,ALMOV AL,0DH ;置發(fā)送中斷允許INTEA=1OUT DX,AL ;PC6=1MOV SI,OFFSET BUFSMOV CX,3FFH ;發(fā)送字節(jié)數(shù)MOV DX,300H ;向A口寫(xiě)第1個(gè)數(shù),產(chǎn)生第一個(gè)MOV AL,SI ;信號(hào)給乙方,以獲取乙方的信號(hào)OUT DX,ALINC SIDEC CX(接下頁(yè))54L:MOV DX,302H ;8255A狀態(tài)口 IN AL,DX ;查發(fā)送中斷請(qǐng)求INTRA=1? AND AL,08H ;PC3=1? JZ L ;無(wú)中斷請(qǐng)求,則等待,有,則向A口寫(xiě)數(shù) MOV DX,300H ;8255A的PA口
29、地址 MOV AL,SI OUT DX,AL ;通過(guò)A口向乙機(jī)發(fā)送第二個(gè)數(shù) INC SI DEC CX JNZ L 55乙機(jī)接收程序: MOV DX,303H ;8255A命令口 MOV AL,10011000B ;初始化方式字 OUT DX,AL MOV AL,00000111B ;置ACK=1(PC3=1) OUT DX,AL ;將應(yīng)答信號(hào)初始化為無(wú)效狀態(tài)。 MOV DI,OFFSET BUFR MOV CX,3FFHL1:MOV DX,302H ;8255A的PC口 IN AL,DX ;查甲機(jī)的OBF=0?(乙機(jī)PC4=0?) AND AL,10H ;即查甲機(jī)是否有數(shù)據(jù)發(fā)來(lái) JNZ L1
30、 ;無(wú),則等。有,則從A口讀之。 MOV DX,300H ;8255A的PA口地址 IN AL,DX ;從A口讀入數(shù)據(jù) (接下頁(yè))56MOV DI,AL MOV DX,303H ;產(chǎn)生ACK信號(hào),并發(fā)回給甲機(jī) MOV AL,00000110B ;PC3置0 OUT DX,AL NOP NOP MOV AL,00000111B ;PC3置1,使ACK =1 OUT DX,AL INC DI DEC CX JNZ L1 57主從結(jié)構(gòu)兩級(jí)微機(jī)并行傳送接口設(shè)計(jì) 例:設(shè)某測(cè)量與控制系統(tǒng)由兩級(jí)微機(jī)組成:以8031為前級(jí)機(jī),完成設(shè)備的運(yùn)動(dòng)控制和數(shù)據(jù)采集任務(wù);上位機(jī)80286作為主控,發(fā)布各種命令,進(jìn)行數(shù)據(jù)處
31、理和存盤(pán)、打印及顯示任務(wù)。兩者之間,采用并行口進(jìn)行連接和通信,以便80286把命令送到803l,并及時(shí)從8031取得各種操作的狀態(tài)與數(shù)據(jù)。分析:題目要求使用并行口連接兩級(jí)微機(jī),實(shí)現(xiàn)通信。由于主從兩級(jí)微機(jī)都需要通過(guò)接口進(jìn)行數(shù)據(jù)輸入和輸出兩種操作,即雙向傳送。因此,我們可以選8255A作雙向接口的主芯片。此時(shí),數(shù)據(jù)信號(hào)輸入、輸出可分別用A或B口擔(dān)任,C口用于控制信號(hào)的傳遞。 58設(shè)計(jì):硬件設(shè)計(jì): 設(shè)PC機(jī)提供給8255A的口地址為300H303H,8031提供的口地址為4000H4003H。 可考慮對(duì)主從兩側(cè)的8255A都采用A口為1方式輸入、 B口為0方式輸出。A口1方式輸入具有固定的聯(lián)絡(luò)信號(hào)線(xiàn)
32、,而對(duì)B口的0方式輸出,我們選PC6作為數(shù)據(jù)選通信號(hào)STB輸出端,以實(shí)現(xiàn)把數(shù)據(jù)線(xiàn)上的數(shù)據(jù)打入對(duì)方8255的A口輸入緩沖器。并選PC1為狀態(tài)信號(hào)輸入線(xiàn),以接收對(duì)方8255發(fā)出的IBF(輸入緩沖器滿(mǎn))信號(hào)。 電路圖如下: 5960軟件設(shè)計(jì) 可以采用在上位機(jī)以菜單形式向8031提供測(cè)控命令。用戶(hù)選定一個(gè)命令,則上位機(jī)就執(zhí)行一個(gè)子程序,從而實(shí)現(xiàn)上位機(jī)通過(guò)8255A端口發(fā)送命令代碼到前端機(jī)8031的8255A。8031通過(guò)8255A端口以中斷方式接受命令代碼。然后對(duì)命令代碼進(jìn)行解釋并轉(zhuǎn)相應(yīng)子程序去執(zhí)行,產(chǎn)生相應(yīng)操作。示例子程序如下: 615.2 8255A控制字及狀態(tài)字控制字及狀態(tài)字5.2.1項(xiàng)目項(xiàng)目2
33、:8255A控制控制LED燈左循環(huán)亮燈左循環(huán)亮 1. 項(xiàng)目要求與目的(1)項(xiàng)目要求:根據(jù)開(kāi)關(guān)的狀態(tài),用8255的PA端口控制8只LED發(fā)光二極管,PB口接1只開(kāi)關(guān),編寫(xiě)程序?qū)崿F(xiàn)K0閉合,LED燈左循環(huán)亮。(2)項(xiàng)目目的:了解8255控制方式的設(shè)置。掌握8255的初始化及編程方法。2項(xiàng)目電路連接與說(shuō)明 (1)項(xiàng)目電路連接:8255A的片選CS孔用導(dǎo)線(xiàn)接至譯碼處200H207H插孔,8255A的PA0-PA7用導(dǎo)線(xiàn)接至LED0-LED7,PB0用導(dǎo)線(xiàn)接至開(kāi)關(guān)K0。(2)項(xiàng)目說(shuō)明: Intel 8255A是常用的并行可編程接口芯片,它有3個(gè)8位并行輸入/輸出端口,可利用編程方法設(shè)置3個(gè)端口是作為輸入
34、端口還是作為輸出端口,在使用時(shí),要對(duì)8255進(jìn)行初始化。本項(xiàng)目PA口作為輸出口,PB口作為輸入口,工作于方式0。當(dāng)開(kāi)關(guān)K0閉合,LED燈左循環(huán)亮。3項(xiàng)目電路原理框圖 用8255A控制LED燈左循環(huán)亮電路框圖如圖5-4所示。電路由8086CPU芯片、8255A芯片、8只LED發(fā)光二極管和1只開(kāi)關(guān)K0等組成。圖5-4 8255A控制LED燈左循環(huán)亮電路原理框圖 4項(xiàng)目程序設(shè)計(jì)(1)程序流程圖用8255A控制LED燈左循環(huán)亮程序流程圖如圖5-5所示。圖5-5 8255A控制LED燈左循環(huán)亮程序流程圖(2)程序清單用8255A控制LED燈左循環(huán)亮程序清單如下所示。CODE SEGMENTASSUME
35、CS:CODE START: MOV DX,203H ;8255控制端口 MOV AL,82H;PA輸出,PB輸入 OUT DX,AL MOV DX,200H ;PA端口地址 MOV AH,0FEH; ;置LED0亮初始值 BG: MOV AL,AH OUT DX,AL ; 點(diǎn)亮LED燈 CALL DELAY;調(diào)延時(shí)子程序 MOV DX,201H;PB端口地址 IN AL,DX ;讀開(kāi)關(guān)的狀態(tài) TEST AL,01H;PB0=0嗎?(K0閉合嗎) JNZ BG ;PB00,轉(zhuǎn)移 ROL AH,1 ; PB0=0,左移 MOV DX,200H JMP BGDELAY PROC NEAR ;延時(shí)子程序MOV BL,100DELAY2: MOV CX,374DELAY1: NOP NOP LOOP DELAY1 DEC BL JNZ DELAY2 RETDELAY ENDPCODE ENDS END START5.3.1項(xiàng)目項(xiàng)目
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專(zhuān)項(xiàng)10 文學(xué)常識(shí)(試卷版)
- 2025屆江蘇省鹽城市射陽(yáng)中學(xué)高三上學(xué)期一模物理試題(解析版)
- 2025屆四川省資陽(yáng)市安岳中學(xué)高三二模語(yǔ)文試題(原卷版+解析版)
- 人教版九年級(jí)下冊(cè)化學(xué)教學(xué)工作計(jì)劃(含進(jìn)度表)
- 《跨境電子商務(wù)法律法規(guī) 》全套教學(xué)課件
- 廣東省廣州市華南師范附屬中學(xué)2024-2025學(xué)年高二下學(xué)期3月月考物理試卷(原卷版+解析版)
- 教育咨詢(xún)居間協(xié)議樣本
- 汽車(chē)車(chē)身電子控制技術(shù)指南
- 中醫(yī)護(hù)理學(xué)(第5版)課件 第三節(jié) 中藥煎服法與護(hù)理
- 雨水收集再利用系統(tǒng)
- 2023年 新版評(píng)審準(zhǔn)則質(zhì)量記錄手冊(cè)表格匯編
- 2024年全國(guó)版圖知識(shí)競(jìng)賽(小學(xué)組)考試題庫(kù)大全(含答案)
- 博物館保安服務(wù)投標(biāo)方案(技術(shù)方案)
- (高清版)TDT 1047-2016 土地整治重大項(xiàng)目實(shí)施方案編制規(guī)程
- 2024年新疆維吾爾自治區(qū)中考一模綜合道德與法治試題
- 醫(yī)藥代表專(zhuān)業(yè)化拜訪(fǎng)技巧培訓(xùn)
- 今年夏天二部合唱譜
- 現(xiàn)代制造技術(shù)課件
- 小米公司招聘測(cè)試題目
- 2024年北京控股集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 人教版二年級(jí)數(shù)學(xué)下冊(cè) 3 圖形的運(yùn)動(dòng)(一)1.軸對(duì)稱(chēng)圖形(教學(xué)課件)
評(píng)論
0/150
提交評(píng)論