8255A 的工作方式是什么
8255A有三種基本工作方式,即方式0、方式1和方式2。
1.方式0
方式0是8255A的基本輸入/輸出方式,其時(shí)序如圖5-22所示。在該方式下:
1)C口的高4位和低4位相互獨(dú)立,均可被設(shè)置為輸入口或輸出口。2)數(shù)據(jù)單向傳輸,即被設(shè)置為輸出的引腳只能輸出數(shù)據(jù),反之亦然。3)輸入和輸出操作均不需要選通(即應(yīng)答)信號(hào)。4)輸出具有鎖存功能,而輸入不鎖存。
圖5-22 8255A方式0的時(shí)序
a)輸入時(shí)序b)輸出時(shí)序
2.方式1
方式1是A口和B口的選通工作方式,C口沒有方式1。在方式1下,A口和B口單向傳輸數(shù)據(jù),可以作為輸入引腳或輸出引腳,并且輸入和輸出均鎖存數(shù)據(jù)。另外,見表5-12,在方式1下,A口和B口均需要C口的某些引腳作為聯(lián)絡(luò)控制信號(hào),C口未用于聯(lián)絡(luò)控制信號(hào)的其他引腳依然可以作為普通的輸入和輸出引腳使用。圖5-23和圖5-24分別給出了8255A工作方式1的工作示意圖和時(shí)序。
圖5-23 8255A工作方式1工作示意圖
a)A口方式1(左圖輸入,右圖輸出)b)B口方式1(左圖輸入,右圖輸出)
圖5-24 8255A工作方式1的時(shí)序
a)輸入時(shí)序b)輸出時(shí)序
在工作方式1下,若A口和B口為輸入引腳,則C口的引腳功能為:
(1)STB(Strobe)
STB(STBA對(duì)應(yīng)于A口,STBB對(duì)應(yīng)于B口)是輸入選通信號(hào),低電平有效。當(dāng)外STB引腳為低電平時(shí),A口或B口的數(shù)據(jù)被裝入8255A的輸入鎖存器。
(2)IBF(Input Buffer Full)
IBF(IBFA對(duì)應(yīng)于A口,IBFB對(duì)應(yīng)于B口)是輸入緩沖器滿信號(hào),高電平有效。IBF輸出高電平表示外設(shè)送給8255A的數(shù)據(jù)已經(jīng)被鎖存在A口或B口的輸入鎖存器中,但是并未被單片機(jī)讀取,因此外設(shè)不能再向A口或B口送新數(shù)據(jù)。
(3)INTR(Interrupt Request)
INTR(INTRA對(duì)應(yīng)于A口,INTRB對(duì)應(yīng)于B口)是8255A輸出的中斷請(qǐng)求信號(hào),高電平有效。當(dāng)外設(shè)發(fā)給8255A的數(shù)據(jù)被A口或B口輸入鎖存,并允許中斷請(qǐng)求發(fā)生時(shí),將產(chǎn)生中斷請(qǐng)求信號(hào)。該信號(hào)用于請(qǐng)求單片機(jī)讀取8255A的數(shù)據(jù),而該數(shù)據(jù)實(shí)際來自于外設(shè)。
(4)INTE(Interrupt Enable)
INTE是8255A的中斷允許信號(hào),通過C口位操作控制字對(duì)PC4(對(duì)應(yīng)于A口)或PC2(對(duì)應(yīng)于B口)進(jìn)行設(shè)置。PC4或PC2被置1,則允許對(duì)應(yīng)中斷;被清0,則禁止對(duì)應(yīng)中斷。
若A口和B口為輸出引腳,則C口的引腳功能為:
(1)ACK(Acknowledge)
ACK(ACKA對(duì)應(yīng)于A口,ACKB對(duì)應(yīng)于B口)是外設(shè)響應(yīng)信號(hào),低電平有效。該引腳為低電平表示外設(shè)已經(jīng)取走8255A輸出的數(shù)據(jù),此時(shí)8255A可以輸出新的數(shù)據(jù)。
(2)OFB(Out buffer full)
OFB(OFBA對(duì)應(yīng)于A口,OFBB對(duì)應(yīng)于B口)是輸出緩沖器滿信號(hào),低電平有效。該引用腳為低電平表示數(shù)據(jù)已經(jīng)出現(xiàn)在8255A的輸出引腳上,可以被外設(shè)取走。
(3)INTR(Interrupt Request)
INTR(INTRA對(duì)應(yīng)于A口,INTRB對(duì)應(yīng)于B口)是8255A輸出的中斷請(qǐng)求信號(hào),高電平有效。該引腳連接到單片機(jī)的中斷輸入引腳,用于請(qǐng)求單片機(jī)向8255A發(fā)送新數(shù)據(jù)。單片機(jī)發(fā)送給8255A的數(shù)據(jù)最終被傳送給外設(shè)。
(4)INTE(Interrupt Enable)
INTE是中斷允許信號(hào),通過C口位操作控制字對(duì)PC6(對(duì)應(yīng)于A口)或PC2(對(duì)應(yīng)于B口)進(jìn)行設(shè)置。PC4或PC2被置1,則允許相應(yīng)中斷;被清0,則禁止相應(yīng)中斷。
3.方式2
方式2是A口的雙向(輸入和輸出)工作方式,B口和C口沒有該方式。A口在方式2下,需要C口的5個(gè)引腳作為聯(lián)絡(luò)控制信號(hào);此時(shí),B口只能在工作方式0或方式1;而C口的PC2、PC1和PC0若不用于配合B口工作,則還可以作為普通的I/O口使用。
方式2的工作示意圖和時(shí)序分別如圖5-25和圖5-26所示。在該方式下,C口引腳主要作聯(lián)絡(luò)控制信號(hào),其作用分別如下:
(1)STBA
STBA是輸入選通信號(hào),低電平有效。STBA引腳為低電平時(shí),A口的數(shù)據(jù)被裝入8255A的輸入鎖存器。
(2)IBFA
IBFA是輸入緩沖器滿信號(hào),高電平有效。IBFA輸出高電平表示外設(shè)送給8255A的數(shù)據(jù)已經(jīng)被鎖存在A口輸入鎖存器中,但是并未被單片機(jī)讀取,因此外設(shè)不能再向A口送新數(shù)據(jù)。
圖5-25 8255A的方式2工作示意圖
圖5-26 8255A方式2的時(shí)序
(3)INTRA
INTRA是中斷請(qǐng)求信號(hào),高電平有效。當(dāng)外設(shè)發(fā)給A口的數(shù)據(jù)被輸入鎖存,并允許中斷請(qǐng)求發(fā)生時(shí),8255A將產(chǎn)生該中斷請(qǐng)求信號(hào)。
(4)INTE1和INTE2
INTE1和INTE2分別是方式2的輸出中斷請(qǐng)求和輸入中斷請(qǐng)求,分別對(duì)應(yīng)于PC6和PC4。與方式1相似,PC6和PC4被置1,則允許相應(yīng)中斷;被清0,則禁止相應(yīng)中斷。