微机原理笔记(2)------8255A芯片
引脚
双列直插,40根引脚
引脚功能
数据端口
8位数据端口:A口、B口、C口
A口:PA7~PA0
B口:PB7~PB0
C口:PC7~PC0
连接外部设备
A口与B口为一个8位的输入口或输出口
C口单独作为一个8位的输入口或输出口
配合A口和B口使用,作为控制信号和状态信号
A组和B组控制逻辑
A组:A口和C口的高4位;
B组:B口和C口的低4位。
控制寄存器:保存CPU送来的命令字。
决定A组和B组的工作方式
对C口的每一位执行置位/复位操作
根据命令字,向相关端口送出控制信号
数据总线缓冲器
D7~D0:8位三态双向缓冲器
连接系统数据总线
用于传输三类信息
CPU送来的数据和控制信息(命令字)
外设送来的数据和状态信息U
高阻态:隔离芯片与系统总线
读/写控制逻辑
CS:片选信号输入引脚,低电平有效
~RD:读信号输入引脚,低电平有效
~WR:写信号输入引脚,低电平有效
~RESET:复位信号输入引脚,高电平有效。用于将8255A控制字寄存器清“0”,并将A、B、C口置成输入状态
A1、A0:端口选择信号输入引脚
8255A的端口操作
其余引脚
VCC接电源,GND接地
8255A与微机系统的连接
8位数据总线的系统中,A1与A0与地址总线的A1与A0相连。
16位数据总线的系统中,A1与A0与地址总线的A2,A1相连,当数据线D7~D0连接到cpu数据总线的低8位,以偶地址来寻址,连接到cpu数据总线的高8位,以奇地址来寻址。
工作方式
方式0(基本输入/输出方式)
A口、B口和C口:三个独立的8位输入或输出数据口。
C口:可分为两个独立的4位输入或输出数据口。
输出时有锁存能力,输入时无锁存能力。
基本输入方式
外设将数据送到8255A输入缓冲器
CPU给出有效的8255A地址及控制信号
CPU发读命令,将输入缓冲器中的数据读入AL寄存器中
基本输出方式
CPU给出有效的8255A地址及控制信号。
CPU发写命令,将AL寄存器中的数据写入输出锁存器。
适合于无条件输入输出方式。
方式1(选通输入/输出方式)
CPU发写命令,将AL寄存器中的数据写入输出锁存器。
C口分成两部分:其中6位用作A口和B口的选通控制信号(联络信号),剩余2位可工作于方式0。
当A口用于方式1时,C口的PC3,PC4,PC5用于A口的状态和控制线,B口用于方式1时,C口的PC0,PC1,PC2用于B口的状态和控制线。
C口剩余的PC6与PC7由方式选择控制字中的D3位来定义其传送方向,D3=1时,其用于输入,D3=0时,其用于输出。
输入和输出口都有锁存能力。
适合于中断控制方式下的输入和输出。
选通输入方式
选通信号~STB:由外设输入,低电平有效,将外设的数据送入输入缓冲器,对应A口时为PC4,对应B口时为PC2。
输入缓冲器满信号IBF:输出到外设,高电平有效,通知外设暂时不要送新的数据,由~STB的前沿产生,CPU取走数据后被清除,对应A口为PC5,对应B口为PC1。
中断允许信号INTE:无外部引脚,通过软件设置,控制8255A能否向CPU发中断请求信号。1:允许;0:禁止;给8255A控制字寄存器送C口PC4(或PC2)位的置位/复位字实现,对应A口时为PC3,对应B口时为PC0。
选通输出方式
输出缓冲器满信号~OBF:输出到外设,低电平有效,通知外设取走数据。
外设应答信号~ACK:由外设输入,低电平有效,表示外设已从数据端口取走数据。
中断允许信号INTE:无外部引脚,通过软件设置,控制8255A能否向CPU发中断请求信号。1:允许;0:禁止;给8255A控制字寄存器送C口PC6(或PC2)位的置位/复位字实现。
中断请求信号INTR:输出到CPU,高电平有效,~OBF ~ACK和INTE有效时产生,表明外设已收到数据。
方式2(双向选通传送方式)
双向方式:既能用作输入口,同时又能用作输出口。只有A口可工作在方式2下。占用C口的5位作为选通控制信号(联络信号)
适用场合:中断控制方式下的输入和输出,查询方式与CPU联系。
选通信号~STB:由外设输入,低电平有效,将外设的数据送入输入缓冲器
输入缓冲器满信号IBF:输出到外设,高电平有效,通知外设暂时不要送新的数据,由~STB的前沿产生。CPU取走数据后被清除。
输出缓冲器满信号OBF:输出到外设,低电平有效,通知外设取走数据。
外设应答信号ACK:由外设输入,低电平有效,表示外设已从端口取走数据。
中断允许信号INTE:无外部引脚,由软件设置,控制8255A能否向CPU发中断请求信号。1:允许;0:禁止;给8255A控制字寄存器送C口PC4位的置位/复位字实现。
中断请求信号INTR:输出到CPU,高电平有效,输入时由~STB的后沿产生,输出时由 ~ACK上升沿产生
三个数据端口,三种工作方式
A口可工作于方式0、方式1和方式2中的任一种
B口可工作于方式0和方式1,但不能工作于方式2
C口只能工作于方式0
C口状态字
通过IN指令读取C口的状态字,查询A口和B口在方式1和方式2时的状态
C口状态字 ≠ C口作为联络信号时输入的状态
A口和B口均工作在方式1的输入
A口和B口均工作在方式1的输出
A口工作在方式2
控制字
方式选择控制字
定义三个数据端口的工作方式
C口的某些位作为A口和B口选通(联络)信号时,不受方式选择控制字的D0和D3控制
C口置位/复位控制字
对C端口任意一位进行置位或复位操作
使用时与方式选择控制字写入同一控制端口。