微机接口8255
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
端口A的INTEA对应PC4=1,允许中断 端口B的INTEB对应PC2=1,允许中断
输出方式1下
端口A的INTEA对应PC6=1,允许中断 端口B的INTEB对应PC2=1,允许中断
端口C的状态字(与C口的引脚无关),供查询
A组
B组
D7 D6 D5 D4 D3 D2 D1 D0
方式1输入
WR OBF
INTR
ACK
输出端口
data
D0~D7
data
方式1输出过程
(1)WR*
(2)OBF*
CPU
8255A
I/O设备
(4)INTR
(3)ACK*
方式1中断控制
8255A的中断由中断允许触发器INTE控制
置位1允许中断,复位0禁止中断
对INTE的操作通过端口C的对应位实现 输入方式1下
ACKB
OBFB INTRB
输出缓冲器满信号 表示CPU已经输出了数据
中断允许触发器
中断请求信号 请求CPU再次输出数据
方式1输出联络信号
OBF*——输出缓冲器满信号,低电平有效
8255端A输口出A给的外I设N的T一E个A控对制应信号P,C6当其有效时, 表示端CPU口已B把的数据IN输T出E给B指对定的应端P口C,2外设可以取走
;发光管不亮
例题2
已知8255的A口外接8个发光二极管,A,B 组均工作在方式0,试编写一段程序,使8个 二极管循环点亮。
MOV AL,80H;写方式控制字 OUT 63H,AL MOV AL,01H;PA0亮 P: OUT 60H,AL CALL DELAY ROL AL,1; 轮流点亮 JMP P
器和控制寄存器 还有端口的译码和控制电路、中断控制电路
分3个端口,共24个外设引脚 共三种输入输出工作方式
基本特性:
三个独立的8位I/O端口: A口、B口、C口。 A口有输入、输出锁存器及输出缓冲器。 三种工作方式 C口的8条线分为两组,每组4条线,分别作为
A口与B口在方式1、2时的控制信号线。 C口的8条线可独立进行置1/置0的操作。 A口、B口、C口及控制字共占4个端口号。
ACK*——响应信号,低有效
外设的响应信号,指示8255A的端口数据已由外设 接受
INTR——中断请求信号,高有效
当 输 出 设 备 已 接 受 数 据 后 , 8255A 输 出 此 信 号 向 CPU提出中断请求,要求CPU继续提供数据
方式O1B输F的出*和一时A对序CK应*是答外联设络和信8号25,5A间 为的是可靠地输出数据
方式1输出引脚:A端口
PA7~PA0 INTEA PC6
PC7
PC3
外设响应信号 表示外设已经接收到数据
ACKA
OBFA INTRA
输出缓冲器满信号 表示CPU已经输出了数据
中断允许触发器
中断请求信号 请求CPU再次输出数据
方式1输出引脚:B端口
PB7~PB0 INTEB PC2
PC1
PC0
外设响应信号 表示外设已经接收到数据
举例:8255接口应用实验(2)
按图10-6所示接线,编写程序,使8255端 口A工作在方式0并作为输出口,端口B工作 于方式1并作为输入口,则端口C的PC2成 为选通信号输入端STBB ,PC0为中断请求 信号输出端INTRB 。当B口数据就绪后, 通过发STBB 信号来请求CPU读取端口B数 据并送端口A输出显示。
支持工作方式0、1、2 常作数据端口,功能最强大
端口B:PB0~PB7
支持工作方式0、1
常作数据端口
端口C:PC0~PC7
仅支持工作方式0 A组控制高4位PC4~PC7 B组控制低4位PC0~PC3 可作数据、状态和控制端口 分两个4位,每位可独立操作 控制最灵活,最难掌握
mov dx,0ffffh
;假设控制端口为FFFFH
mov al,0b1h
;方式控制字
out dx,al
;送到控制端口
练习题:
设8255A的4个地址号为60H~63H,试编写下列 各种情况下的初始化程序。
(1) 将A组和B组设置成方式0,A口,B口为输入, C口为输出。
(2) 将A组工作方式设置成方式2,B组为方式1, B口作为输出。
NOT AL
;反相
OUT 60H,AL ;显示发光管
JMP AAA
例题4
编写程序,使8255的PC2产生一个方波。
R:MOV AL,05H; PC2置1 OUT 62H,AL CALL DELAY MOV AL,04H; PC2置0 OUT 62H,AL CALL DELAY JMP R
方式1输入引脚:A端口
IBF——输入缓冲器满信号,高电平有效
8255A输出的联络信号。当其有效时,表示数据已 存在输入缓冲器
INTR——中断请求信号,高电平有效
8255A输出的信号,可用于向CPU提出中断请求, 要求CPU读取外设数据
方式1输入过程
(3)INTR
(1)STB*
CPU
8255A
I/O设备
(4)RD*
(2)IBF
方式1需借用端口C用做联络信号 同时还具有中断请求和屏蔽功能
方式1输入时序
STB*和IBF是外设和8255A间 STB的一对应答联络信号,
为的是可靠地输入数据
IBF
INTR
RD
输入端口
data
D0~D7
data
方式1输入引脚:B端口
PB7~PB0
数据选通信号 表示外设已经准备好数据
INTEB
(INTEB=1)允许中断
PUSH DS
MOV AX,0000H
ቤተ መጻሕፍቲ ባይዱ
MOV DS,AX
MOV AX,OFFSET IRQ7
ADD AX,2000H
MOV SI,003CH
MOV [SI],AX
(3) 将A口,B口均设置成方式1输入,PC6和PC1 为输出
(4) A口工作在方式1,输入;B口工作在方式0, 输出;C口高4位配合A口工作,低4位为输入。
(1)
MOV AL,10010010B
OUT 63H,AL
(2)
MOV AL,11000100B
OUT 63H,AL
(3)
MOV AL,10110110B
IBM PC/XT机上,端口A、B、C和控制 端口的I/O地址为60H、61H、62H和63H
1. 工作方式控制字:
写入方式控制字:示例
要求:
A端口:方式1输入
C端口上半部:输出,C口下半部:输入
B端口:方式0输出
方式控制字:10110001B或B1H
初始化的程序段:
OUT 63H,AL
(4)
MOV AL,10110001B
OUT 63H,AL
2.端口C的位控制字
位控制字写入控制端口
特别便于置位/复位8255内部中断允许触发 器INTE
8255A的工作方式
方式0:基本输入输出方式
适用于无条件传送和查询方式的接口电路
方式1:选通输入输出方式
8255A对CPU通过它输出给外设的数据进行锁存
例题1
已知8255的A口外接8个发光二极管,B口的 PB0外接一个按键,A,B组均工作在方式0, 试编写一段程序,循环检测按键是否按下, 若按下(低电平有效),则把8个二极管点亮, 否则全灭。
接口电路如图所示
解: 端口地址分别为60H,61H,62H,63H。 8255方式控制字为10000010B=82H
2. 面向系统总线的接口信号
D0 ~ D7数据线 RD*读信号 CS*片选信号
A0 ~ A1地址线 WR*写信号 RESET复位信号
CS* A1 A0
000 001 010 011
读操作RD*
读端口A 读端口B 读端口C
非法
写操作WR*
写端口A 写端口B 写端口C 写控制字
3. 面向I/O设备的接口信号
由于电气特性的限制,传输距离不能太长。适合 于外部设备与微机之间进行近距离、大量和快速 的信息交换
例如:微机与并行接口打印机、磁盘驱动器
微机系统中最基本的信息交换方法
例如:系统板上各部件之间,接口电路板上各部件之 间
并行接口芯片8255A
具有多种功能的可编程并行接口芯片
最基本的接口电路:三态缓冲器和锁存器 与CPU间、与外设间的接口电路:状态寄存
并行接口
教学重点
8255A的工作方式和编程 8255A的应用 简易键盘的扫描程序 LED数码管的多位显示
并行数据传输方式
以计算机的字长,通常是8位、16位或32位为传 输单位,一次传送一个字长的数据。并行接口电 路中每个信息位有自己的传输线,一个数据各位 可并行传送,速度快,控制简单。
适用于查询和中断方式的接口电路
方式2:双向选通传送方式
适用于与双向传送数据的外设 适用于查询和中断方式的接口电路
方式0输入时序
RD 输入端口 CS,A1,A0
D0~D7
data data
请体会这里8255A的数据缓冲作用
方式0输出时序
WR
输出端口 CS,A1,A0 D0~D7
data data
例题3
已知8255的A口外接8个发光二极管,B口的 PB0外接8个开关,A,B组均工作在方式0, 试编写一段程序,采集开关的状态,通过8个 二极管显示出来。开关合上(=0),发光二 极管亮(=1)。
AAA:
MOV AL,82H
OUT 63H,AL ;写控制字
IN AL,61H ;采集开关状态
8255A的内部结构和引脚
A组 控制
A组 端口A
D0~D7
数据 总线 缓冲器
内部数据线
RD
WR
A0 A1 CS
RESET
读写 控制 逻辑
B组 控制
内部控制线
A组 端口C 上部
B组 端口B
B组 端口C 下部
PA0~PA7 PC4~PC7 PB0~PB7 PC0~PC3
1. 外设数据端口
端口A:PA0~PA7
PC2 PC1
PC0
STBB IBFB
INTRB
输入缓冲器满信号 表示A口已经接收数据
中断允许触发器 PC4=1允许中断
中断请求信号 请求CPU接收数据
举例:
8255的A口工作在方式1,输入,允许中断 请求;B口工作在方式1,输入,不允许中断 请求。写出初始化程序。
MOV AL,10110110B; OUT 63H,AL; MOV AL,00001001B; PC4=1 OUT 63H,AL; MOV AL,00000100B;PC2=0 OUT 63H,AL;
编程:
AAA: BBB:
MOV AL,82H OUT 63H,AL IN AL,61H TEST AL,01H JNZ BBB MOV AL,0FFH OUT 60H,AL JMP AAA MOV AL,00H OUT 60H,AL JMP AAA
;写控制字 ;查询PB0 ;PB0=1则转BBB ;发光管亮
PA0~PA7:端口A的输入输出线 PB0~PB7:端口B的输入输出线 PC0~PA7:端口A的输入输出线
8255A的编程命令
初始化编程:一个方式控制字
I/O地址:A1A0=11
工作过程中:通过数据端口对外设数据 进行读写
数据读写利用端口A、B和C的I/O地址, A1A0依次等于00、01、10
PA7~PA0 INTEA PC4
PC5
PC3
数据选通信号 表示外设已经准备好数据
STBA IBFA
INTRA
输入缓冲器满信号 表示A口已经接收数据
等待CPU取走数据
中断允许触发器 PC4=1允许中断
中断请求信号 请求CPU接收数据
方式1输入联络信号
STB*——选通信号,低电平有效
由外设提供的输入信号,当其有效时,将输入设备送 来的数据锁存至8255A的输入锁存器
I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB
方式1输出
OBFA INTEA OBFA INTE1
I/O IBFA
I/O INTRA INTEB OBFB INTRB
方式2双向
INTE2 INTRA ×
×
×
使用状态字时要注意的几个问题
通过读C端口取得,与C的外部引脚无关 查询输入:IBF 和 INTR 查询输出:OBF 和 INTR 一般查INTR位 INTE位是通过按位置位/复位来设置的
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START:CLI
;初始化8255
MOV AL,86H
OUT 63H,AL
;写工作方式命令字
MOV AL,05H
OUT 63H,AL ;置位/复位命令字,使PC2置1
输出方式1下
端口A的INTEA对应PC6=1,允许中断 端口B的INTEB对应PC2=1,允许中断
端口C的状态字(与C口的引脚无关),供查询
A组
B组
D7 D6 D5 D4 D3 D2 D1 D0
方式1输入
WR OBF
INTR
ACK
输出端口
data
D0~D7
data
方式1输出过程
(1)WR*
(2)OBF*
CPU
8255A
I/O设备
(4)INTR
(3)ACK*
方式1中断控制
8255A的中断由中断允许触发器INTE控制
置位1允许中断,复位0禁止中断
对INTE的操作通过端口C的对应位实现 输入方式1下
ACKB
OBFB INTRB
输出缓冲器满信号 表示CPU已经输出了数据
中断允许触发器
中断请求信号 请求CPU再次输出数据
方式1输出联络信号
OBF*——输出缓冲器满信号,低电平有效
8255端A输口出A给的外I设N的T一E个A控对制应信号P,C6当其有效时, 表示端CPU口已B把的数据IN输T出E给B指对定的应端P口C,2外设可以取走
;发光管不亮
例题2
已知8255的A口外接8个发光二极管,A,B 组均工作在方式0,试编写一段程序,使8个 二极管循环点亮。
MOV AL,80H;写方式控制字 OUT 63H,AL MOV AL,01H;PA0亮 P: OUT 60H,AL CALL DELAY ROL AL,1; 轮流点亮 JMP P
器和控制寄存器 还有端口的译码和控制电路、中断控制电路
分3个端口,共24个外设引脚 共三种输入输出工作方式
基本特性:
三个独立的8位I/O端口: A口、B口、C口。 A口有输入、输出锁存器及输出缓冲器。 三种工作方式 C口的8条线分为两组,每组4条线,分别作为
A口与B口在方式1、2时的控制信号线。 C口的8条线可独立进行置1/置0的操作。 A口、B口、C口及控制字共占4个端口号。
ACK*——响应信号,低有效
外设的响应信号,指示8255A的端口数据已由外设 接受
INTR——中断请求信号,高有效
当 输 出 设 备 已 接 受 数 据 后 , 8255A 输 出 此 信 号 向 CPU提出中断请求,要求CPU继续提供数据
方式O1B输F的出*和一时A对序CK应*是答外联设络和信8号25,5A间 为的是可靠地输出数据
方式1输出引脚:A端口
PA7~PA0 INTEA PC6
PC7
PC3
外设响应信号 表示外设已经接收到数据
ACKA
OBFA INTRA
输出缓冲器满信号 表示CPU已经输出了数据
中断允许触发器
中断请求信号 请求CPU再次输出数据
方式1输出引脚:B端口
PB7~PB0 INTEB PC2
PC1
PC0
外设响应信号 表示外设已经接收到数据
举例:8255接口应用实验(2)
按图10-6所示接线,编写程序,使8255端 口A工作在方式0并作为输出口,端口B工作 于方式1并作为输入口,则端口C的PC2成 为选通信号输入端STBB ,PC0为中断请求 信号输出端INTRB 。当B口数据就绪后, 通过发STBB 信号来请求CPU读取端口B数 据并送端口A输出显示。
支持工作方式0、1、2 常作数据端口,功能最强大
端口B:PB0~PB7
支持工作方式0、1
常作数据端口
端口C:PC0~PC7
仅支持工作方式0 A组控制高4位PC4~PC7 B组控制低4位PC0~PC3 可作数据、状态和控制端口 分两个4位,每位可独立操作 控制最灵活,最难掌握
mov dx,0ffffh
;假设控制端口为FFFFH
mov al,0b1h
;方式控制字
out dx,al
;送到控制端口
练习题:
设8255A的4个地址号为60H~63H,试编写下列 各种情况下的初始化程序。
(1) 将A组和B组设置成方式0,A口,B口为输入, C口为输出。
(2) 将A组工作方式设置成方式2,B组为方式1, B口作为输出。
NOT AL
;反相
OUT 60H,AL ;显示发光管
JMP AAA
例题4
编写程序,使8255的PC2产生一个方波。
R:MOV AL,05H; PC2置1 OUT 62H,AL CALL DELAY MOV AL,04H; PC2置0 OUT 62H,AL CALL DELAY JMP R
方式1输入引脚:A端口
IBF——输入缓冲器满信号,高电平有效
8255A输出的联络信号。当其有效时,表示数据已 存在输入缓冲器
INTR——中断请求信号,高电平有效
8255A输出的信号,可用于向CPU提出中断请求, 要求CPU读取外设数据
方式1输入过程
(3)INTR
(1)STB*
CPU
8255A
I/O设备
(4)RD*
(2)IBF
方式1需借用端口C用做联络信号 同时还具有中断请求和屏蔽功能
方式1输入时序
STB*和IBF是外设和8255A间 STB的一对应答联络信号,
为的是可靠地输入数据
IBF
INTR
RD
输入端口
data
D0~D7
data
方式1输入引脚:B端口
PB7~PB0
数据选通信号 表示外设已经准备好数据
INTEB
(INTEB=1)允许中断
PUSH DS
MOV AX,0000H
ቤተ መጻሕፍቲ ባይዱ
MOV DS,AX
MOV AX,OFFSET IRQ7
ADD AX,2000H
MOV SI,003CH
MOV [SI],AX
(3) 将A口,B口均设置成方式1输入,PC6和PC1 为输出
(4) A口工作在方式1,输入;B口工作在方式0, 输出;C口高4位配合A口工作,低4位为输入。
(1)
MOV AL,10010010B
OUT 63H,AL
(2)
MOV AL,11000100B
OUT 63H,AL
(3)
MOV AL,10110110B
IBM PC/XT机上,端口A、B、C和控制 端口的I/O地址为60H、61H、62H和63H
1. 工作方式控制字:
写入方式控制字:示例
要求:
A端口:方式1输入
C端口上半部:输出,C口下半部:输入
B端口:方式0输出
方式控制字:10110001B或B1H
初始化的程序段:
OUT 63H,AL
(4)
MOV AL,10110001B
OUT 63H,AL
2.端口C的位控制字
位控制字写入控制端口
特别便于置位/复位8255内部中断允许触发 器INTE
8255A的工作方式
方式0:基本输入输出方式
适用于无条件传送和查询方式的接口电路
方式1:选通输入输出方式
8255A对CPU通过它输出给外设的数据进行锁存
例题1
已知8255的A口外接8个发光二极管,B口的 PB0外接一个按键,A,B组均工作在方式0, 试编写一段程序,循环检测按键是否按下, 若按下(低电平有效),则把8个二极管点亮, 否则全灭。
接口电路如图所示
解: 端口地址分别为60H,61H,62H,63H。 8255方式控制字为10000010B=82H
2. 面向系统总线的接口信号
D0 ~ D7数据线 RD*读信号 CS*片选信号
A0 ~ A1地址线 WR*写信号 RESET复位信号
CS* A1 A0
000 001 010 011
读操作RD*
读端口A 读端口B 读端口C
非法
写操作WR*
写端口A 写端口B 写端口C 写控制字
3. 面向I/O设备的接口信号
由于电气特性的限制,传输距离不能太长。适合 于外部设备与微机之间进行近距离、大量和快速 的信息交换
例如:微机与并行接口打印机、磁盘驱动器
微机系统中最基本的信息交换方法
例如:系统板上各部件之间,接口电路板上各部件之 间
并行接口芯片8255A
具有多种功能的可编程并行接口芯片
最基本的接口电路:三态缓冲器和锁存器 与CPU间、与外设间的接口电路:状态寄存
并行接口
教学重点
8255A的工作方式和编程 8255A的应用 简易键盘的扫描程序 LED数码管的多位显示
并行数据传输方式
以计算机的字长,通常是8位、16位或32位为传 输单位,一次传送一个字长的数据。并行接口电 路中每个信息位有自己的传输线,一个数据各位 可并行传送,速度快,控制简单。
适用于查询和中断方式的接口电路
方式2:双向选通传送方式
适用于与双向传送数据的外设 适用于查询和中断方式的接口电路
方式0输入时序
RD 输入端口 CS,A1,A0
D0~D7
data data
请体会这里8255A的数据缓冲作用
方式0输出时序
WR
输出端口 CS,A1,A0 D0~D7
data data
例题3
已知8255的A口外接8个发光二极管,B口的 PB0外接8个开关,A,B组均工作在方式0, 试编写一段程序,采集开关的状态,通过8个 二极管显示出来。开关合上(=0),发光二 极管亮(=1)。
AAA:
MOV AL,82H
OUT 63H,AL ;写控制字
IN AL,61H ;采集开关状态
8255A的内部结构和引脚
A组 控制
A组 端口A
D0~D7
数据 总线 缓冲器
内部数据线
RD
WR
A0 A1 CS
RESET
读写 控制 逻辑
B组 控制
内部控制线
A组 端口C 上部
B组 端口B
B组 端口C 下部
PA0~PA7 PC4~PC7 PB0~PB7 PC0~PC3
1. 外设数据端口
端口A:PA0~PA7
PC2 PC1
PC0
STBB IBFB
INTRB
输入缓冲器满信号 表示A口已经接收数据
中断允许触发器 PC4=1允许中断
中断请求信号 请求CPU接收数据
举例:
8255的A口工作在方式1,输入,允许中断 请求;B口工作在方式1,输入,不允许中断 请求。写出初始化程序。
MOV AL,10110110B; OUT 63H,AL; MOV AL,00001001B; PC4=1 OUT 63H,AL; MOV AL,00000100B;PC2=0 OUT 63H,AL;
编程:
AAA: BBB:
MOV AL,82H OUT 63H,AL IN AL,61H TEST AL,01H JNZ BBB MOV AL,0FFH OUT 60H,AL JMP AAA MOV AL,00H OUT 60H,AL JMP AAA
;写控制字 ;查询PB0 ;PB0=1则转BBB ;发光管亮
PA0~PA7:端口A的输入输出线 PB0~PB7:端口B的输入输出线 PC0~PA7:端口A的输入输出线
8255A的编程命令
初始化编程:一个方式控制字
I/O地址:A1A0=11
工作过程中:通过数据端口对外设数据 进行读写
数据读写利用端口A、B和C的I/O地址, A1A0依次等于00、01、10
PA7~PA0 INTEA PC4
PC5
PC3
数据选通信号 表示外设已经准备好数据
STBA IBFA
INTRA
输入缓冲器满信号 表示A口已经接收数据
等待CPU取走数据
中断允许触发器 PC4=1允许中断
中断请求信号 请求CPU接收数据
方式1输入联络信号
STB*——选通信号,低电平有效
由外设提供的输入信号,当其有效时,将输入设备送 来的数据锁存至8255A的输入锁存器
I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB
方式1输出
OBFA INTEA OBFA INTE1
I/O IBFA
I/O INTRA INTEB OBFB INTRB
方式2双向
INTE2 INTRA ×
×
×
使用状态字时要注意的几个问题
通过读C端口取得,与C的外部引脚无关 查询输入:IBF 和 INTR 查询输出:OBF 和 INTR 一般查INTR位 INTE位是通过按位置位/复位来设置的
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START:CLI
;初始化8255
MOV AL,86H
OUT 63H,AL
;写工作方式命令字
MOV AL,05H
OUT 63H,AL ;置位/复位命令字,使PC2置1