8255A 的工作方式是什么
扫描二维码
随时随地手机看文章
8255A有三种基本工作方式,即方式0、方式1和方式2。
1.方式0
方式0是8255A的基本输入/输出方式,其时序如图5-22所示。在该方式下:
1)C口的高4位和低4位相互独立,均可被设置为输入口或输出口。2)数据单向传输,即被设置为输出的引脚只能输出数据,反之亦然。3)输入和输出操作均不需要选通(即应答)信号。4)输出具有锁存功能,而输入不锁存。
图5-22 8255A方式0的时序
a)输入时序b)输出时序
2.方式1
方式1是A口和B口的选通工作方式,C口没有方式1。在方式1下,A口和B口单向传输数据,可以作为输入引脚或输出引脚,并且输入和输出均锁存数据。另外,见表5-12,在方式1下,A口和B口均需要C口的某些引脚作为联络控制信号,C口未用于联络控制信号的其他引脚依然可以作为普通的输入和输出引脚使用。图5-23和图5-24分别给出了8255A工作方式1的工作示意图和时序。
图5-23 8255A工作方式1工作示意图
a)A口方式1(左图输入,右图输出)b)B口方式1(左图输入,右图输出)
图5-24 8255A工作方式1的时序
a)输入时序b)输出时序
在工作方式1下,若A口和B口为输入引脚,则C口的引脚功能为:
(1)STB(Strobe)
STB(STBA对应于A口,STBB对应于B口)是输入选通信号,低电平有效。当外STB引脚为低电平时,A口或B口的数据被装入8255A的输入锁存器。
(2)IBF(Input Buffer Full)
IBF(IBFA对应于A口,IBFB对应于B口)是输入缓冲器满信号,高电平有效。IBF输出高电平表示外设送给8255A的数据已经被锁存在A口或B口的输入锁存器中,但是并未被单片机读取,因此外设不能再向A口或B口送新数据。
(3)INTR(Interrupt Request)
INTR(INTRA对应于A口,INTRB对应于B口)是8255A输出的中断请求信号,高电平有效。当外设发给8255A的数据被A口或B口输入锁存,并允许中断请求发生时,将产生中断请求信号。该信号用于请求单片机读取8255A的数据,而该数据实际来自于外设。
(4)INTE(Interrupt Enable)
INTE是8255A的中断允许信号,通过C口位操作控制字对PC4(对应于A口)或PC2(对应于B口)进行设置。PC4或PC2被置1,则允许对应中断;被清0,则禁止对应中断。
若A口和B口为输出引脚,则C口的引脚功能为:
(1)ACK(Acknowledge)
ACK(ACKA对应于A口,ACKB对应于B口)是外设响应信号,低电平有效。该引脚为低电平表示外设已经取走8255A输出的数据,此时8255A可以输出新的数据。
(2)OFB(Out buffer full)
OFB(OFBA对应于A口,OFBB对应于B口)是输出缓冲器满信号,低电平有效。该引用脚为低电平表示数据已经出现在8255A的输出引脚上,可以被外设取走。
(3)INTR(Interrupt Request)
INTR(INTRA对应于A口,INTRB对应于B口)是8255A输出的中断请求信号,高电平有效。该引脚连接到单片机的中断输入引脚,用于请求单片机向8255A发送新数据。单片机发送给8255A的数据最终被传送给外设。
(4)INTE(Interrupt Enable)
INTE是中断允许信号,通过C口位操作控制字对PC6(对应于A口)或PC2(对应于B口)进行设置。PC4或PC2被置1,则允许相应中断;被清0,则禁止相应中断。
3.方式2
方式2是A口的双向(输入和输出)工作方式,B口和C口没有该方式。A口在方式2下,需要C口的5个引脚作为联络控制信号;此时,B口只能在工作方式0或方式1;而C口的PC2、PC1和PC0若不用于配合B口工作,则还可以作为普通的I/O口使用。
方式2的工作示意图和时序分别如图5-25和图5-26所示。在该方式下,C口引脚主要作联络控制信号,其作用分别如下:
(1)STBA
STBA是输入选通信号,低电平有效。STBA引脚为低电平时,A口的数据被装入8255A的输入锁存器。
(2)IBFA
IBFA是输入缓冲器满信号,高电平有效。IBFA输出高电平表示外设送给8255A的数据已经被锁存在A口输入锁存器中,但是并未被单片机读取,因此外设不能再向A口送新数据。
图5-25 8255A的方式2工作示意图
图5-26 8255A方式2的时序
(3)INTRA
INTRA是中断请求信号,高电平有效。当外设发给A口的数据被输入锁存,并允许中断请求发生时,8255A将产生该中断请求信号。
(4)INTE1和INTE2
INTE1和INTE2分别是方式2的输出中断请求和输入中断请求,分别对应于PC6和PC4。与方式1相似,PC6和PC4被置1,则允许相应中断;被清0,则禁止相应中断。