8255A芯片作為并行接口在計(jì)算機(jī)通信和控制中被廣泛應(yīng)用,其技術(shù)難點(diǎn)在于PC口的雙重身份,既能當(dāng)基本的輸入輸出方式的數(shù)據(jù)口,也能為“選通型”輸入輸出方式提供聯(lián)絡(luò)信號(hào),
8255A是Intel公司開發(fā)的通用可編程通信I/O接口芯片,片內(nèi)部有A、B、C三個(gè)8位并行端口,A口和B口為兩個(gè)數(shù)據(jù)端口;C口既可以作為數(shù)據(jù)端口,又可以作為控制端口。
8255A的A、B、C三個(gè)端口的工作方式是在初始化編程時(shí),通過向8255A的命令端口寫入控制字來設(shè)定的,控制字有兩個(gè):方式控制字和置位/復(fù)位控制字。方式控制字用于設(shè)定A、B、C口的工作方式和數(shù)據(jù)傳送方向;置位/復(fù)位控制字用于設(shè)置C口的PC0~PC7種某一條口線PCi的電平,兩個(gè)控制字共用一個(gè)端口地址,由控制字的最高位作為區(qū)分這兩個(gè)字的標(biāo)志位[1]。
圖1 方式控制字
圖2 置位/復(fù)位控制字
8255A方式控制字的格式如圖1所示。
8255A置位/復(fù)位控制字的格式如圖2所示。
需要說明的是置位/復(fù)位控制字的寫入只對(duì)C口指定位輸出狀態(tài)起作用,對(duì)個(gè)端口的工作方式?jīng)]有影響,因此只有需要在初始化時(shí)制定C口某一位的輸出電平時(shí),才寫入置位/復(fù)位控制字。
方式0是8255A的基本輸入輸出方式,特點(diǎn)是與外設(shè)傳送數(shù)據(jù)時(shí),不需要設(shè)置任何聯(lián)絡(luò)(應(yīng)答)信號(hào),即無(wú)條件傳送方式。A、B、C口均可以在該方式下工作,A、B只能以8位傳送,而C口可以以4位進(jìn)行數(shù)據(jù)傳送,在方式控制字中由D4、D3、D1、D0可以設(shè)置A、B口,C口高4位、C口低4位的16中組合工作方式[2]。
8255A作為開關(guān)與LED顯示器接口的實(shí)際例子中,假設(shè)A口作為輸入端,B口作為輸出端,初始化編程即為:
方式1是帶選通信號(hào)的數(shù)據(jù)傳送方式,特點(diǎn)是與外設(shè)傳送數(shù)據(jù)時(shí),需要聯(lián)絡(luò)信號(hào)進(jìn)行協(xié)調(diào),即查詢和中斷的數(shù)據(jù)傳送。并且只有A口、B口能工作在該方式下,原因是聯(lián)絡(luò)線由PC口提供,此時(shí)PC口按位工作。為了滿足查詢和中斷的數(shù)據(jù)傳送方式,輸入輸出需要設(shè)置選通信號(hào)、輸入緩沖器滿信號(hào)、輸出緩沖器滿信號(hào)、應(yīng)答信號(hào)及中斷請(qǐng)求信號(hào)。A口方式1下的輸入由PC3、PC4、PC5提供聯(lián)絡(luò)信號(hào),輸出由PC3、PC6、PC7提供,B口方式1下的輸入由PC0、PC1、PC2提供。如此設(shè)計(jì)的原因還有一個(gè),PA口還要應(yīng)付雙向選通的輸入輸出方式,即A口使用PC口的五位做信號(hào)線,這也解釋了為什么只有A口一個(gè)并行口可以工作在方式2下。
8255A作為并行接口打印機(jī)的接口,我們暫且不考慮具體的傳送過程,能實(shí)現(xiàn)查詢方式,使用PC7做OBF#,PC6做ACK#與打印機(jī)的數(shù)據(jù)選通信號(hào)DSTB#和應(yīng)答信號(hào)ACK#對(duì)應(yīng),PC4用來查詢打印機(jī)的忙信號(hào)BUSY狀態(tài),程序設(shè)計(jì)過程如下:
……
MOV AL,0A8H ;A口方式1輸出,PC4輸入
8255A作為雙向并行通信接口,設(shè)置兩片8255A,其中一片工作在方式2下(稱為“主機(jī)”),一片工作在方式0下(稱為“從機(jī)”),主機(jī)向從機(jī)發(fā)送數(shù)據(jù),將8255A的A口與從機(jī)的8255A的A口,B口連接,實(shí)現(xiàn)雙向數(shù)據(jù)傳送,輸入輸出聯(lián)絡(luò)信號(hào)PC4~PC7接到從機(jī)的C口,程序設(shè)計(jì)如下:
8255A作為并行接口,被廣泛的應(yīng)用數(shù)據(jù)傳送的各種場(chǎng)合,通過以上分析,以C口在各種工作方式下的使用情況為脈絡(luò),梳理了8255A的程序設(shè)計(jì)思路,隨著應(yīng)用的深入,PC口的按位操作思想給我們并行數(shù)據(jù)傳送帶來的極大的便利,值得我們深入研究。
[1]張凡.微機(jī)原理與接口技術(shù)(第2版)[M].清華大學(xué)出版社.2010.9.
[2]王根義.8255A的開發(fā)利用[J].電子設(shè)計(jì)工程.2012.Vol.20 No.11,39-40.