第7章 并行接口_第1頁(yè)
第7章 并行接口_第2頁(yè)
第7章 并行接口_第3頁(yè)
第7章 并行接口_第4頁(yè)
第7章 并行接口_第5頁(yè)
已閱讀5頁(yè),還剩63頁(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)介

第7章并行接口

7.1并行接口的特點(diǎn)CPU與外部設(shè)備的信息交換稱為通信,若數(shù)據(jù)的各位是同時(shí)傳送的,則稱為并行通信。為CPU與外設(shè)采用并行通信的示意圖CPU并行接口外設(shè)DBABCBDataCONTROLSTATUS一、并行接口的功能一般而言,一個(gè)并行接口電路應(yīng)具有以下三方面的功能:1.

實(shí)現(xiàn)與系統(tǒng)總線的連接,提供數(shù)據(jù)的輸入與輸出功能,這是并行接口電路最基本的功能。2.實(shí)現(xiàn)與I/O設(shè)備的連接,具有與I/O設(shè)備進(jìn)行應(yīng)答的同步機(jī)構(gòu),保證有效地進(jìn)行數(shù)據(jù)的收發(fā)。3.有中斷請(qǐng)求與處理功能,使得數(shù)據(jù)的輸入輸出可以采用中斷的方法來(lái)實(shí)現(xiàn),這一功能對(duì)于需要采用中斷傳輸?shù)腎/O是必需的。二、并行接口的外部信號(hào)并行接口電路的外部信號(hào)可分成兩部分:與I/O設(shè)備相連的接口信號(hào)以及與CPU相連的接口信號(hào)。1.與I/O設(shè)備的接口信號(hào)(1)數(shù)據(jù)信息,用于實(shí)現(xiàn)接口電路與I/O設(shè)備的數(shù)據(jù)交換;(2)控制信息,用于接口電路向I/O設(shè)備提供控制信號(hào);(3)狀態(tài)信息,用于接口電路接收I/O設(shè)備提供的狀態(tài)信號(hào)。2.與CPU的接口信號(hào)(1)數(shù)據(jù)信號(hào),用于接口電路與CPU進(jìn)行數(shù)據(jù)交換;(2)地址線及地址譯碼信號(hào),用于選擇不同的接口電路以及接口電路內(nèi)部不同的寄存器;(3)讀寫(xiě)控制信號(hào),用于確定CPU當(dāng)前對(duì)接口電路的操作性質(zhì)是讀還是寫(xiě);(4)中斷應(yīng)答信號(hào),用于實(shí)現(xiàn)中斷請(qǐng)求和中斷響應(yīng)操作。三.并行接口的特點(diǎn)(1)在多根數(shù)據(jù)線上以字節(jié)為單位與IO設(shè)備或被控對(duì)象傳送信息(2)在并行接口中,除了少數(shù)場(chǎng)合(如采用245,373等無(wú)條件傳送)之外,一般都要求接口與外設(shè)之間設(shè)置并行數(shù)據(jù)線的同時(shí),至少還要設(shè)置兩根握手聯(lián)絡(luò)信號(hào)線,以便進(jìn)行互鎖異步握手方式(即查詢方式)通信(3)在并行接口中,8位(或16位)是一起傳輸?shù)?因此,并口與外設(shè)交換數(shù)據(jù)時(shí),即使只用到其中的1位,也是一次輸入/輸出8位(或16位)(4)并行傳送的信息,不要求固定的格式,而串行傳送的信息有數(shù)據(jù)格式的要求不同。7.2可編程并行接口8255A一、8255A的內(nèi)部結(jié)構(gòu)和外部特性(一)8255A的外部引腳8255A的引腳432140371825141516171312111034......27D7D0A0A1RESETVCCGND986535368255APPI數(shù)據(jù)總線控制線電源線通道A通道B通道CCPU接口外設(shè)接口...PA7PA0...PB7PB0...PC7PC0A組控制數(shù)據(jù)總線緩沖器讀/寫(xiě)控制邏輯B組控制RESETA0A1A組A口8位A組A口A組C口高位(4位)B組C口低位(4位)8位B組B口PA7~PA0PC7~PC4PC3~PC0PB7~PB0圖7-28255A內(nèi)部結(jié)構(gòu)框圖D7~D0(二)8255A的內(nèi)部結(jié)構(gòu)譯

器PA寄存器(8bit)8個(gè)讀&寫(xiě)&/WR/RDD0-7A0-1/CS8個(gè)同時(shí)控制8個(gè)3態(tài)門(mén)內(nèi)部選中線,用于選中1個(gè)存單元或IO端口外譯

器/XIOW/XIORXA0-1XA5--98255芯片與系統(tǒng)總線連接及PA口讀寫(xiě)控制原理圖XD0-7I讀出I寫(xiě)入/Y0/IOY38個(gè)8個(gè)I輸入I輸出PA0-7外設(shè)數(shù)據(jù)線A組控制寄存器1.三個(gè)8位的I/O端口A,B,C三個(gè)端口都可以作為數(shù)據(jù)I/O口使用。有時(shí),A,B口作為數(shù)據(jù)I/O,而C口作為控制或狀態(tài)端口,分為上、下兩部分,配合A,B口工作。2.A組,B組控制部件A組包括C口的高4位:PC4~PC7A口:PA0~PA7B組包括C口的低4位:PC0~PC3B口:PB0~PB7

A組,B組的控制寄存器,接收CPU寫(xiě)入的控制字,規(guī)定兩組的工作方式。3.數(shù)據(jù)總線緩沖器

三態(tài)雙向8位緩沖器,是8255A與CPU之間的數(shù)據(jù)接口,傳送CPU與8255A之間所有的控制,狀態(tài)和數(shù)據(jù)信息。4.讀/寫(xiě)控制邏輯接受CPU的控制命令,向片內(nèi)各部件發(fā)出操作命令。片選信號(hào),接CPU高位地址的譯碼輸出。讀信號(hào),有效,CPU讀8255A的數(shù)據(jù)或狀態(tài)信息。RESET:復(fù)位信號(hào),有效時(shí),清除8255A中的控制寄存器,置各端口為輸入方式。A1,A0:端口選擇信號(hào)A1A000端口A口01B口10C口11控制字寄存器表7-18255A端口選擇和基本操作A1A0輸入操作(CPU讀)00010數(shù)據(jù)總線通道A01010數(shù)據(jù)總線通道B10010數(shù)據(jù)總線通道C00100數(shù)據(jù)總線通道A01100數(shù)據(jù)總線通道B10100數(shù)據(jù)總線通道C輸出操作(CPU寫(xiě))11100數(shù)據(jù)總線控制字寄存器1數(shù)據(jù)總線三態(tài)11010非法條件斷開(kāi)功能110數(shù)據(jù)總線三態(tài)8255A端口選擇和基本操作如表7-1所示二、8255A的控制字1.工作方式控制字D7D6D5D4D3D2D1D0B組

端口C(下半部)

1=輸入,0=輸出

端口B

1=輸入,0=輸出

方式選擇

0=方式0,1=方式1A組

端口C(上半部)

1=輸入,0=輸出

端口A

1=輸入,0=輸出

方式選擇

00=方式0,01=方式1,1=方式2方式設(shè)置標(biāo)志

1=有效例:MOVAL,10010101BOUTCWR,AL;CWR為控制字寄存器地址則:A口:方式0輸入B口:方式1輸出C口PC4~PC7:方式0輸出C口PC0~PC3:方式1輸入例:若把A口設(shè)定為方式1,輸出,C口上半部定為輸入;B口設(shè)定為方式0,輸入;C口下半部設(shè)定為輸出。則方式選擇控制字應(yīng)為:10101010B=AAH。設(shè)控制口地址為303H,于是初始化的程序段為:MOV DX,303H ;8255A的控制口地址MOV AL,0AAH ;控制字OUT DX,AL ;控制字寫(xiě)入控制端口2.端口C的置位/復(fù)位控制字D7D6D5D4D3D2D1D0位的置位/復(fù)位

1=置位,0=復(fù)位位選擇

D3D2D1通道C位按位置位/復(fù)位控制

標(biāo)志0=有效000位0001位1010位2011位3100位4101位5110位6111位7不使用設(shè)置為000例如,可以用以下指令置位PC3MOVAL,00000111BOUTCWR,AL可以用以下指令復(fù)位PC3MOVAL,00000110BOUTCWR,AL7.38255A的工作方式0及應(yīng)用1.方式0(基本的I/O方式)特點(diǎn)(1)方式0的功能方式0是一種基本的I/O方式(外設(shè)數(shù)據(jù)直通方式)。三個(gè)端口的每一個(gè)都可由指令選擇作為輸入或輸出,沒(méi)有規(guī)定固定的用于應(yīng)答式的聯(lián)絡(luò)信號(hào)。一旦外設(shè)送出數(shù)據(jù)后,(稍經(jīng)過(guò)延遲t1R)就能直接流入8255輸入端口;CPU對(duì)8255輸出端口寫(xiě)入數(shù)據(jù)后,(稍經(jīng)過(guò)延遲tWB)能直接流出到輸出線上。(2)方式控制字100D4D30D1D0

A口、B口、C口上半部分,C口下半部分的輸入、輸出共有16種不同的組合。譯

器PA端口寄存器(8bit)8個(gè)讀&寫(xiě)&/WR/RDD0-7A0-1/CS8個(gè)同時(shí)控制8個(gè)3態(tài)門(mén)內(nèi)部選中線,用于選中1個(gè)存單元或IO端口外譯

器/XIOW/XIORXA0-1XA5--98255芯片PA口方式0輸入XD0-7I讀出I寫(xiě)入/Y0/IOY38個(gè)8個(gè)I流入I流出PA0-7外設(shè)數(shù)據(jù)線A組控制邏輯10(3)方式0的時(shí)序方式0的輸入時(shí)序tRRRD數(shù)據(jù)有效PA7-0D7~D0t1RtHRtRAtARtRDtDF方式0輸入時(shí)序圖CS,A1,A0譯

器PA端口寄存器(8bit)8個(gè)讀&寫(xiě)&/WR/RDD0-7A0-1/CS8個(gè)同時(shí)控制8個(gè)3態(tài)門(mén)內(nèi)部選中線,用于選中1個(gè)存單元或IO端口外譯

器/XIOW/XIORXA0-1XA5--98255芯片PA口方式0輸出XD0-7I讀出I寫(xiě)入/Y0/IOY38個(gè)8個(gè)I流入I流出PA0-7外設(shè)數(shù)據(jù)線A組控制邏輯01方式0的輸出的時(shí)序tWWWR輸出tDWtWDtWAtAWtWB圖9-7方式0輸出時(shí)序圖CS,A1,A0數(shù)據(jù)有效D7~D0數(shù)據(jù)有效tWWWR輸出tDWtWDtWAtAWtWB圖9-7方式0輸出時(shí)序圖CS,A1,A0數(shù)據(jù)有效D7~D0tWWWRPA7-0tDWtWDtWAtAWtWB圖9-7方式0輸出時(shí)序圖CS,A1,A0數(shù)據(jù)有效D7~D0數(shù)據(jù)有效

2.方式0的應(yīng)用例1.設(shè)計(jì)一個(gè)國(guó)際Centronics標(biāo)準(zhǔn)插座的打印機(jī)接口分析:參看課本P188圖8.16和8.17的打印機(jī)Centronics標(biāo)準(zhǔn)插座和并口DB25插座的連接圖。這是國(guó)際定義的標(biāo)準(zhǔn)信號(hào)線(市場(chǎng)上的打印線就是一端連接PC機(jī)并口DB25插座,另一端連接打印Cenreonics標(biāo)準(zhǔn)插座)此處把問(wèn)題最簡(jiǎn)單化,只保留數(shù)據(jù)信號(hào)和/STROBE與BUSY一對(duì)最基本的握手聯(lián)絡(luò)信號(hào)。/STROBE:并口發(fā)給打印機(jī),實(shí)現(xiàn)把數(shù)據(jù)線上的數(shù)據(jù)寫(xiě)入打印機(jī)BUSY:打印機(jī)發(fā)給并口,表示打印機(jī)是否空閑(一)硬件設(shè)計(jì):給出系統(tǒng)總線到并口插座DB25之間的并口電路18~25111PC7PA0-7PC2GND/CSA1A0D1-7/RD/WRXA1XA0XD0-7/XIOR/XIOW譯碼器300H-303HXA9-28255A2~9DATA1-8/STBBUSYGND(二)軟件設(shè)計(jì)8255初始化向PA口送一個(gè)字符發(fā)/STB有效負(fù)脈沖把字符送入打印機(jī)修改打印緩沖區(qū)地址指針修改打印緩沖區(qū)剩余字符個(gè)數(shù)BUSY=0?字符數(shù)=0?NNYYBUFDB100DUP(?);定義打印緩沖取,用來(lái)存放打印字符START:MOVDX,303H;8255初始化MOVAL,10000001B;A口輸出,PC4-7輸出,PC0-3輸入OUTDX,ALMOVAL,00001111B;PC7設(shè)置1,產(chǎn)生/STB無(wú)效信號(hào)OUTDX,ALMOVSI,offsetBUF;設(shè)置打印緩沖區(qū)地址指針SIMOVCX,lengthBUF;設(shè)置打印字符個(gè)數(shù)寄存器CXL:MOVDX,302H;查詢PC2=1?(即BUSY=1?)INAL,DXANDAL,04HJNZL;是,表示忙,回L循環(huán)等待MOVDX,300H;將打印緩沖區(qū)當(dāng)前字符送到PA口輸出MOVAL,[SI]OUTDX,ALMOVDX,303H;在PC7上軟件產(chǎn)生/STB負(fù)脈沖信號(hào)MOVAL,00001110BOUTDX,ALNOPNOPMOVDX,00001111BOUTDX,ALINCSI;修改打印機(jī)緩沖區(qū)地址指針DECCX;字符個(gè)數(shù)寄存器減1JNZL;沒(méi)有減到0,表示還有字符需要打印,繼續(xù)下一個(gè)例2.設(shè)計(jì)一個(gè)3*4矩陣鍵盤(pán)及其接口,使得計(jì)算機(jī)能夠通過(guò)掃描方法判斷是那個(gè)按鍵按下分析:矩陣鍵盤(pán)的按鍵排成n行m列,每個(gè)按鍵占據(jù)行列的一個(gè)交叉點(diǎn),需要的輸入輸出線為n+m,最大按鍵數(shù)為n×m。顯然,在按鍵較多的應(yīng)用場(chǎng)合,矩陣鍵盤(pán)可以減少與微機(jī)系統(tǒng)接口的連線,是一般微機(jī)常用的鍵盤(pán)結(jié)構(gòu)。 在掃描每一行時(shí),讀列線,若讀得的結(jié)果為全“1”,說(shuō)明沒(méi)有鍵按下,即尚未掃描到閉合鍵;若某一列為低電平,說(shuō)明有鍵按下,而且行號(hào)和列號(hào)已經(jīng)確定。然后用同樣的方法,依次向列線掃描輸出,讀行線。如果兩次所得到的行號(hào)和列號(hào)分別相同,則鍵碼確定無(wú)疑,即得到閉合鍵的行列掃描碼。(一)硬件設(shè)計(jì)為一個(gè)3×4矩陣鍵盤(pán)及其接口電路。圖9-213×4矩陣鍵盤(pán)的接口PA0PB0PA1PA2PB1PB2PB3鍵0123567490A0B8行0行1行3+5V列0列1列2列3圖9-213×4矩陣鍵盤(pán)的接口PA0PB0PA1PA2PB1PB2PB3鍵0123567490A0B8圖9-21

3×4矩陣鍵盤(pán)的接口/CSA1A0D1-7/RD/WRXA1XA0XD0-7/XIOR/XIOW譯碼器A0H-A3HXA9-28255A(二)軟件設(shè)計(jì)右圖是實(shí)現(xiàn)鍵處理工作的程序流程。設(shè)中8255A的端口地址為A0H(A口)、A1H(B口)、A2H(C口)和A3H(控制口),鍵處理的程序如下:Y圖

鍵處理程序流程初始化判別按鍵確已按下?確定鍵值等待鍵釋放鍵值處理N鍵處理程序流程判別按鍵確已按下?確定鍵值等待鍵釋放鍵值處理NYMOV AL,82HOUT0A3H,AL ;8255A初始化,選擇方式0,A口為輸出,B口為輸入MOV AL,0OUT 0A0H,AL ;使各行線接地(為0電平)LOP1:IN AL,0A1H ;讀列線狀態(tài)AND AL,0FH ;屏蔽無(wú)用位,保留列線位CMP AL,0FH ;有列線為0電平嗎?JZ LOP1 ;無(wú),則繼續(xù)查列線狀態(tài),等待鍵按下;確定按鍵閉合,等待鍵按下;識(shí)別按下的鍵BEGIN:MOV BL,3 ;行數(shù)送BLMOV BH,4 ;列數(shù)送BHMOVAL,11111110B;起始掃描碼,第一次使行線0接地MOV CH,0FH ;設(shè)置屏蔽碼MOV CL,0FFH ;取鍵號(hào)初值為FFHLOP2:OUT 0A0H,AL ;逐行掃描ROL AL ;修改掃描碼,準(zhǔn)備掃描下一行MOV AH,AL ;掃描碼送AH保存IN AL,0A1H ;讀列線數(shù)據(jù)AND AL,CL ;屏蔽無(wú)用位,保留列線位CMP AL,CL ;有列線接地嗎?JNZ LOP3 ;有,轉(zhuǎn)去找該列線ADD CH,BH ;否,修改鍵號(hào),使適合下一行MOV AL,AH ;掃描碼送ALDEC BL ;行數(shù)減1JNZ LOP2 ;未掃描完,轉(zhuǎn)下一行JMP BEGINLOP3:INC CH ;鍵號(hào)加1RCR AL ;帶進(jìn)位循環(huán)右移一位JCLOP3;C=1,說(shuō)明該列未接地,轉(zhuǎn)去檢查下一列線MOV AL,CH ;是,鍵號(hào)送ALCMP AL,0 ;是0號(hào)鍵嗎?JZ KEY0 ;轉(zhuǎn)0號(hào)鍵處理程序CMP AL,1 ;是1號(hào)鍵嗎?JZ KEY1 ;轉(zhuǎn)1號(hào)鍵處理CMP AL,0BH ;是B號(hào)鍵嗎?JZ KEYB ;轉(zhuǎn)B號(hào)鍵處理(1)方式1的功能7.48255A的工作方式1及應(yīng)用1.方式1(選通的I/O方式)特點(diǎn)A口、B口作為數(shù)據(jù)I/O口,同時(shí)規(guī)定C口的某些位作為控制或狀態(tài)信號(hào)配合A口、B口的I/O。外設(shè)送出數(shù)據(jù)后,還必須對(duì)8255發(fā)送STB選通信號(hào)才能使數(shù)據(jù)流入8255輸入端口;CPU對(duì)8255輸出端口寫(xiě)入數(shù)據(jù)后,雖然能直接流出到輸出線,但必須要外設(shè)發(fā)回一個(gè)ACK才能使8255撤銷/OBF和INTR,以便CPU知道何時(shí)可以寫(xiě)入新的數(shù)據(jù)。(2)方式1輸入方式1的輸入組態(tài)8STBAIBFAINTRAPC3PC5PC4PA7~01011I/O方式1(端口A)方式1端口A輸入PC6,71=輸入0=輸出A組方式控制字PC6,7I/OINTEAD7D6D5D4D3D2D1D02譯

器PA端口寄存器(8bit)8個(gè)讀&寫(xiě)&/WR/RDD0-7A0-1/CS8個(gè)同時(shí)控制8個(gè)3態(tài)門(mén)內(nèi)部選中線,用于選中1個(gè)存單元或IO端口外譯

器/XIOW/XIORXA0-1XA5--98255芯片PA口方式1輸入XD0-7I讀出I寫(xiě)入/Y0/IOY38個(gè)8個(gè)I流入I流出PA0-7接外設(shè)數(shù)據(jù)線A組控制邏輯/STBA(PC4)IBFA(PC5)INTRA(PC3)接8259外設(shè)中斷請(qǐng)求線IRi0

表示控制生效或失效方式1(端口B)IBFBINTRBPC0PC1PB7~0INTEB端口B輸入端口B方式1B組方式控制字1

11PC2聯(lián)絡(luò)信號(hào)的定義/STB(Strobe):選通輸入IBF(InputBufferFull):輸入緩沖器滿INTR(InterruptRequest):中斷請(qǐng)求信號(hào)INTEA(InterruptEnableA):A口中斷允許信號(hào),通過(guò)對(duì)PC4的按位置位/復(fù)位來(lái)控制(PC4=1,中斷允許)。INTEB(InterruptEnableB):由PC2的置位/復(fù)位控制。方式1的輸入時(shí)序tSTtSTBtSITtRIBtRITtPStPHSTBIBFRD來(lái)自外設(shè)的輸入數(shù)據(jù)INTRtSTtSTBtSITtRIBtRITtPStPHSTBIBFRD來(lái)自外設(shè)的輸入數(shù)據(jù)INTR方式1輸入時(shí)序圖(3)方式1輸出方式1的輸出組態(tài)INTRAPC3PC6PC7PA7~01010I/O方式1輸出端口A端口A方式1PC4,51=輸入0=輸出A組方式1控制字PC4,5I/OINTEA2端口A輸出譯

器PA端口寄存器(8bit)8個(gè)讀&寫(xiě)&/WR/RDD0-7A0-1/CS8個(gè)同時(shí)控制8個(gè)3態(tài)門(mén)內(nèi)部選中線,用于選中1個(gè)存單元或IO端口外譯

器/XIOW/XIORXA0-1XA5--98255芯片PA口方式1輸出XD0-7I讀出I寫(xiě)入/Y0/IOY38個(gè)8個(gè)I流入I流出PA0-7接外設(shè)數(shù)據(jù)線A組控制邏輯/ACKA(PC6)/OBFA(PC7)INTRA(PC3)接8259外設(shè)中斷請(qǐng)求線IRi0

表示控制生效或失效方式1輸出端口BINTRBPC0PC2PC1INTEB端口B輸入端口B方式1B組方式1控制字1

10PB7~0聯(lián)絡(luò)信號(hào)的定義OBF(OutputBufferFull):輸出緩中器滿信號(hào)ACK(Acknowledge):外設(shè)應(yīng)答信號(hào)INTR(InterruptRequest):中斷請(qǐng)求信號(hào)INTEA(InterruptEnableA):由PC6置位/復(fù)位控制INTEB(InterruptEnableB):由PC2置位/復(fù)位控制方式1的輸出時(shí)序tAOBtWOBtWITtAKtAITtWB輸出WROBFACKINTR圖9-11方式1輸出時(shí)序圖tAOBtWOBtWITtAKtAITtWB輸出WROBFACKINTR圖9-11方式1輸出時(shí)序圖2.方式1的應(yīng)用例3.查詢方式的雙機(jī)并行通信甲乙兩臺(tái)微機(jī)之間并行傳送1K字節(jié)數(shù)據(jù)。甲機(jī)發(fā)送,乙機(jī)接收。甲機(jī)一側(cè)的8255A采用方式1工作,乙機(jī)一側(cè)的8255A采用方式0工作。兩機(jī)的CPU與接口之間都采用查詢方式交換數(shù)據(jù)。甲機(jī)8255A是方式1發(fā)送,因此,把PA口指定為輸出,發(fā)送數(shù)據(jù),而PC7和PC6引腳分別固定作聯(lián)絡(luò)線。乙機(jī)8255A是方式0接收數(shù)據(jù),故把PA口定義為輸入,另外,選用引腳PC7和PC3作聯(lián)絡(luò)線。雖然,兩側(cè)的8255A都設(shè)置了聯(lián)絡(luò)線,但有本質(zhì)的差別:甲機(jī)8255A是方式1,其聯(lián)絡(luò)線是固定的,不可替換的;乙機(jī)的8255A是方式0,其聯(lián)絡(luò)線是不固定的,可以選擇,比如可選擇PC4和PC1、或PC5、PC2等任意組合。(1)硬件接口電路設(shè)計(jì)接口電路的連接如圖所示。2.2.PA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC8PC0~5PB0~78255A8255A方式0方式1未用

查詢方式的雙機(jī)地通信OBFACKPA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC8PC0~5PB0~78255A8255A方式0方式1未用PA0~7PC7PC3PC4~6PC0~2PB0~7PA0~7PC7PC6PC8PC0~5PB0~78255A8255A方式0方式1乙(接收)甲(發(fā)送)未用OBFACK/CSA1A0D1-7/RD/WR/CSA1A0D0-7/RD/WRXA1XA0XD0-7/XIOR/XIOWXA1XA0XD0-7/XIOR/XIOW譯碼器300H-303HXA9-2譯碼器300H-303HXA9-2(2)接口軟件編程接口驅(qū)動(dòng)程序包含發(fā)送程序和接收程序。①甲機(jī)發(fā)送程序段:MOV DX,303H ;8255A命令口

MOV AL,10100000B ;初始化工作方式字

OUT DX,AL

MOV AL,0DH ;置發(fā)送中斷允許INTEA=1

OUT DX,AL ;PC6=1

MOV SI,OFFSETBUFS ;設(shè)置發(fā)送數(shù)據(jù)區(qū)的指針

MOV CX,3FFH ;發(fā)送字節(jié)數(shù)

MOV DX,300H ;向A口寫(xiě)第一個(gè)數(shù),產(chǎn)生第 ;一個(gè)OBF信號(hào)

MOV AL,[SI] ;送給乙方,以便獲取乙方的 ;ACK信號(hào)

OUT DX,AL

INC SI ;內(nèi)存地址加1

DEC CX ;傳送字節(jié)數(shù)減1MOV DX,302H ;8255A狀態(tài)口

IN AL,DX ;查發(fā)送中斷請(qǐng)求INTRA=1?

AND AL,08H ;PC3=1?

JZ L ;若無(wú)中斷請(qǐng)求,則等待;

;若有中斷請(qǐng)求,則向A口寫(xiě)數(shù)

MOV DX,300H ;8255APA口地址

MOV AL,[SI] ;從內(nèi)存取數(shù)

OUT DX,AL ;通過(guò)A口向乙機(jī)發(fā)送第二個(gè)數(shù)據(jù)

INC SI ;內(nèi)存地址加1

DEC CX ;字節(jié)數(shù)減1

JNZ L ;字節(jié)未完,繼續(xù)

MOV AH,4C00H ;已完,退出

INT 21H ;返回DOS

BUFS DB1024個(gè)數(shù)據(jù)L:②乙機(jī)接收程序段:MOV DX,303H ;8255A命令口

MOV AL,10011000B ;初始化工作方式字

OUT DX,AL

MOV AL,00000111B ;置ACK=1(PC3=1)

OUT DX,AL

MOV D

溫馨提示

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