什么是8255A的控制字
扫描二维码
随时随地手机看文章
8255A芯片Intel 8086/8088系列的可编程外设接口电路(Programmable Peripheral Interface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。
8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种;一种是各端口的“方式选择控制字”,它可以使8255A的3个端口工作于不同的操作方式。方式选择控制字总是将3个端口分为两组来设定工作方式,即端口A和端口C的高4位作为一组(A组),端口B和端口C的低4位作为另一组(B组)。另一种控制字是“端口C置1/置0控制字”,它可以使端口C中的任何一位置“1”或置“0”。控制字的最高位(D7位)是上述两种控制字的标识位。即若D7位为“1”,则该控制字为“方式选择控制字”;D7位为“0”,则该控制字为“端口C置1/置0控制字”。
8255A有两个8位的控制命令字,即:方式控制字和C口位操作控制字,分别用于控制8255A三个并行I/O端口的工作方式和设置C口单个引脚的状态。区分这两个控制字的方法是:检查控制字的第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口的数据传输方向及工作方式。
图5-20 8255A的控制命令字格式
【例5-7】设置8255A各端口的工作方式。已知:8255A与单片机的电路连接关系如图5-19所示。要求:编写汇编语言程序,将8255A设置为A口方式0、输入,B口方式0、输出,引脚PB7~PB4为高电平,引脚PB3~PB0为低电平,C口上半部分(高4位)为输出,C口下半部分(低4位)为输入。
分析:由图5-20可知,本例所需的8255A控制命令字为10010001B=91H;由表5-11可知,由于单片机地址线中的A14~A2未参与8255A的寻址,所以8255A每个口都有多个不同的地址。在本例中,未参与寻址的地址线被置1,8255A的A口、B口、C口和控制寄存器的地址分别为7FFCH、7FFDH、7FFEH和7FFFH。
解:汇编语言程序如下:
在例5-7中,B口被设置为方式0的输出方式,并且通过B口的地址,可以设置B口引脚的状态。另外,在该例中,若将B口设置为输入方式,则可以通过下面的指令读取B口引脚的状态,并将其存入累加器A中:
2.C口位操作控制字
C口位操作控制字用于将C口的某一位置1或清0,其格式如图5-21所示。C口位操作控制字的D7必须为0,D6、D5和D4位可以为任意状态。
图5-21 8255A的C口位操作控制字格式
【例5-8】设置8255A端口C的状态。要求:编写汇编语言程序,将图5-19中8255A的C口引脚PC2置1和PC7清0。
解:为将C口低半字节的PC2置1和高半字节的PC7清0,需先将C口的高半字节和低半字节设置为输出引脚,对应的方式控制字为10000000B=80H(其中与C口无关的位均设置为0)。将PC2置1和PC7清0的C口位操作控制字分别为00000101B=05H和00001110B=0EH。汇编语言程序如下: