8255A芯片Intel 8086/8088系列的可編程外設(shè)接口電路(Programmable Peripheral Interface)簡稱PPI,型號(hào)為8255(改進(jìn)型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。
8255A的通用性強(qiáng),使用靈活,通過它CPU可直接與外設(shè)相連接。8255A在使用前要寫入一個(gè)方式控制字,選擇A、B、C三個(gè)端口各自的工作方式,共有三種;一種是各端口的“方式選擇控制字”,它可以使8255A的3個(gè)端口工作于不同的操作方式。方式選擇控制字總是將3個(gè)端口分為兩組來設(shè)定工作方式,即端口A和端口C的高4位作為一組(A組),端口B和端口C的低4位作為另一組(B組)。另一種控制字是“端口C置1/置0控制字”,它可以使端口C中的任何一位置“1”或置“0”??刂谱值淖罡呶?D7位)是上述兩種控制字的標(biāo)識(shí)位。即若D7位為“1”,則該控制字為“方式選擇控制字”;D7位為“0”,則該控制字為“端口C置1/置0控制字”。
8255A有兩個(gè)8位的控制命令字,即:方式控制字和C口位操作控制字,分別用于控制8255A三個(gè)并行I/O端口的工作方式和設(shè)置C口單個(gè)引腳的狀態(tài)。區(qū)分這兩個(gè)控制字的方法是:檢查控制字的第7位(即最高位)的值,若為1,則是8255A的方式控制字,若為0,則是8255A的C口位操作控制字。
1.方式控制字
8255A的并行端口既可以作輸入引腳也可以做輸出引腳。另外,8255A的A口有三種工作方式(即方式0、1和2),B口有兩種工作方式(即方式0和1),而C口除了可以作輸入或輸出引腳外,主要用于輔助A口(在方式1和方式2)和B口(在方式1)工作。方式控制字的格式如圖5-20所示,其作用是控制A口、B口和C口的數(shù)據(jù)傳輸方向及工作方式。
圖5-20 8255A的控制命令字格式
【例5-7】設(shè)置8255A各端口的工作方式。已知:8255A與單片機(jī)的電路連接關(guān)系如圖5-19所示。要求:編寫匯編語言程序,將8255A設(shè)置為A口方式0、輸入,B口方式0、輸出,引腳PB7~PB4為高電平,引腳PB3~PB0為低電平,C口上半部分(高4位)為輸出,C口下半部分(低4位)為輸入。
分析:由圖5-20可知,本例所需的8255A控制命令字為10010001B=91H;由表5-11可知,由于單片機(jī)地址線中的A14~A2未參與8255A的尋址,所以8255A每個(gè)口都有多個(gè)不同的地址。在本例中,未參與尋址的地址線被置1,8255A的A口、B口、C口和控制寄存器的地址分別為7FFCH、7FFDH、7FFEH和7FFFH。
解:匯編語言程序如下:
在例5-7中,B口被設(shè)置為方式0的輸出方式,并且通過B口的地址,可以設(shè)置B口引腳的狀態(tài)。另外,在該例中,若將B口設(shè)置為輸入方式,則可以通過下面的指令讀取B口引腳的狀態(tài),并將其存入累加器A中:
2.C口位操作控制字
C口位操作控制字用于將C口的某一位置1或清0,其格式如圖5-21所示。C口位操作控制字的D7必須為0,D6、D5和D4位可以為任意狀態(tài)。
圖5-21 8255A的C口位操作控制字格式
【例5-8】設(shè)置8255A端口C的狀態(tài)。要求:編寫匯編語言程序,將圖5-19中8255A的C口引腳PC2置1和PC7清0。
解:為將C口低半字節(jié)的PC2置1和高半字節(jié)的PC7清0,需先將C口的高半字節(jié)和低半字節(jié)設(shè)置為輸出引腳,對(duì)應(yīng)的方式控制字為10000000B=80H(其中與C口無關(guān)的位均設(shè)置為0)。將PC2置1和PC7清0的C口位操作控制字分別為00000101B=05H和00001110B=0EH。匯編語言程序如下: