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