概要:
并行接口芯片8255A
定时/计数器8253
模拟接口 AD DA转换芯片
8.1 并行接口芯片8255A
1.外部引脚
2.工作方式
1. 方式0——基本输入输出方式
特点:适用于PA口、PB口和PC口作输入/输出端口;
同时:彼此独立的8位A口、B口及4位上C口、下C口四个并行口(16种不同的使用组态)
2. 方式1——选通输入/输出方式(应答式输入/输出)
特点:适用于PA口和PB口作输入/输出端口,PC口主要作为联络线;
(1)方式1的输出方式
说明:
OBF#-输出缓冲器满信号,输出,低电平有效。
表示CPU已输出数据到指定端口。
ACK#-外设的回答信号,低电平有效,由外设送给8255A。表示CPU送到指定端口的数据已被外设接受。
INTE-中断允许信号。 INTEA是由用户对PC6按位置位实现的。
INTR-中断请求信号,高电平有效。
(2)方式1的输入方式
特点:PA口使用PC5、PC4、PC3作为联络信号线;
PB口使用PC2、PC1、PC0作为联络信号线;
说明:
STB#-选通输入,低电平有效,外设数据输入送输入缓冲器;
IBF-输入缓冲器满信号,高电平有效。由8255A输出的状态信号,
表示输入锁存器已满,向外设指明不能再送入数据。
INTE -中断允许信号。是控制8255A能否向CPU发中断请求信号,
它没有外部引脚,INTEA、INTEB是由用户对PC4、PC2按位置位实现的。
INTR-中断请求信号,高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当 IBF =1、STB# =1且 INTE =1时,INTR =1。
3. 方式2——双向选通输入输出方式
特点:仅适用于PA口作双向端口(可输入也可输出),
PC口主要作为联络线;B口只能工作在方式0或方式1,
C口剩下的3条线可作为输入输出线使用或用作B口方式1之下的联络线。
说明:
INTE-中断允许信号。
输出时, INTEA是由用户对PC6按位置位实现的。
输入时,对PC4按位置位实现的。
3. 8255A的控制字
1.方式选择控制字
【例】 8255A的地址为60H~63H。若规定端口A工作于方式1输入,端口B工作于方式1输出,余下的PC7、PC6规定为输出,则方式选择控制字为:10110100(即 0B4H)。
初始化段指令为:
MOV AL, 0B4H
OUT 63H, AL ;写命令口,即写控制寄存器。
【例】假设用8255A开发的并行接口的开始端口地址为300H,
已知参与译码的地址线为10位(A9--A0),其中A1A0用于8255端口寻址,现要求:
(1)设计其I/O地址译码电路,并画出其逻辑电路示意图;
(2)编写8255初始化程序,A组为方式1,输出;B组为方式0,输出。
【解】 (1)地址线的状态为:
(2)8255A的地址为300H~303H。端口A为方式1,输出,端口B为方式0,输出,则方式选择控制字为:10100000(即 0A0H)。
初始化段指令为:
MOV AL, 0A0H ;命令内容送AL
MOV DX, 303H ; 命令(控制字)端口送DX
OUT DX, AL ; 写命令口,即写控制寄存器。
2.C口位操作控制字
用于设置C口某一位的复位/置位操作。
【例】已知8255A的控制寄存器地址为63H,现要使用端口C的PC5端输出方波,设系统已提供延时子程序DELAY供调用。
【分析】可以通过对PC5这一位进行置位和复位来实现,
PC5置位控制字: 0 0 0 0, 1 0 1 1 =0BH
PC5复位控制字: 0 0 0 0, 1 0 1 0 =0AH
参考程序如下:
L: MOV AL,0AH
OUT 63H,AL ;PC5端输出低电平
CALL DELAY ;调用延时子程序
MOV AL,0BH
OUT 63H,AL ;PC5端输出高电平
CALL DELAY
JMP L
【例】已知8255A端口地址为300H--303H,工作在方式1,
若允许PA口输出时,产生中断请求,则必须设置INTEA=1,即置PC6=1;
若禁止它产生中断请求,则置INTEA=0,即置PC6=0,
其程序段为:
MOV DX,303H ;8255A命令口
MOV AL,00001101B ;置PC6=1,允许中断请求
OUT DX,AL
MOV AL,00001100B ;置PC6a=0,禁止中断请求
OUT DX,AL