第六章 输入 /输出及中断系统
6-1 I/O信号及寻址方式
6-2 I/O控制方式
6-3 中断技术
6-4 MCS-51中断系统第六章 输入 /输出及中断系统
I/O设备必须通过 I/O接口与计算机连接。
I/O接口的功能,
1.速度匹配:
锁存数据、传送联络信号。
2.数据格式转换:
并 -串转换,A/D,D/A转换 。
3.电平转换:
电平幅值或正 /负逻辑转换 。
4.隔离:
多个设备信号通过接口三态门隔离干扰信号 。
微型机
I/O
接口
I/O
接口
I/O
设备
I/O
设备
5.缓冲驱动:驱动多个逻辑部件或大功率执行部件 。
6-1 I/O接口信号及寻址方式每个 I/O接口分配有对应的 I/O地址。
6-1-1 CPU与 I/O之间接口信号
1.数据信息微型机与外设交换的数据,
经接口数据缓冲器传送 。
2.状态信息反映外设工作状态的信号 。
3.控制信息设定 I/O电路工作方式的信号 。
数据总线传递三种信号,用不同 I/O地址区别:
输入 /输出数据缓冲器共用一个 I/O地址:数据端口 。
状态 /控制寄存器共用一个 I/O地址:控制 /状态端口 。
DB
AB
RD
WR
INT
微型机
D IOD
A IOS
RD IOC
WR
INT
I/O接口
D
Ready
STB
I/O设备
6-1-2 I/O寻址方式一,存储器地址方式
I/O接口共用存储器的地址空间,每个 I/O端口视为一个存储单元。
二,专用 I/O地址方式有专用 I/O控制信号和 I/O指令。 I/O接口独立编址,不占用存储器的地址空间。
MCS-51,96为存储器地址方式。
MCS-51单片机有片内 I/O接口和扩展 I/O接口。
片内 I/O接口寄存器在 SFR中,使用片内数据存储器空间,扩展 I/O接口使用片外数据存储器地址空间:
输出指令,输入指令:
片内寻址,MOV P1,A MOV A,P1
片外寻址,MOVX @DPTR,A MOVX A,@DPTR
MOVX @R0,A MOVX A,@R0
6-2 I/O控制方式一,无条件传送方式已知 I/O设备准备就绪,可直接进行数据传送。
二,查询式传送先查询 I/O设备当前状态,若准备就绪,则交换数据,否则循环查询状态。
1.硬件查询电路设置状态锁存和数据锁存电路。
查询状态输入 /输出数据准备就绪?
Y
NINPUT,MOV DPTR,#SATUS; 状态口地址WAIT,MOVX A,@DPTR
JB ACC.6,WAIT
MOV DPTR,#DATA ; 数据口地址
MOVX A,@DPTR
DB
AB
微型机
AB
数据端口状态端口外部设备
I/O接口
D6
2.软件查询程序先输入状态,决定是否进行数据传送。
三,中断传送大多数时间计算机与外设并行工作,计算机不必因等待而浪费资源。当外设准备就绪,向 CPU发出中断请求信号。 CPU暂停当前程序,执行 I/O操作。 当 I/O操作结束,
CPU仍继续被中断的工作。
四,直接存储器存取方式传送
(DMA— Direct Memory Access)
用于计算机与高速外设进行大批量数据交换,由
DMA控制器接管总线控制权,RAM与外设之间直接数据传输,不需 CPU的介入。
中断系统是计算机的重要指标之一 。
6-3-1 中断概念某人看书 执行主程序 日常事务电话铃响 中断信号 INT=0 中断请求暂停看书 暂停执行主程序 中断响应书中作记号 当前 PC入栈 保护断点电话谈话 执行 I/O程序 中断服务继续看书 返回主程序 中断返回日常事务程序中断服务程序
6-3 中断技术一.两种中断
1,可屏蔽中断可程控,开中断 /关中断,。 软件设置允许 /禁止 CPU响应中断 。
2.非屏蔽中断不可程控“关中断”。有中断请求信号,CPU必须响应。
二,中断优先权
1.当同时有多个中断请求信号,
先响应优先级别高的中断请求 。
2.高优先级中断请求信号可中断低优先级中断服务 。
三,中断源能发出中断请求信号的各种事件 。 如 I/O设备,定时时钟,
系统故障,软件设定等 。
INT
NMI
微型机日常事务程序中断服务程序 1
中断服务程序 2
6-3-2 中断处理过程一,中断响应条件
1,有中断请求信号
2,系统处于开中断状态二.中断响应过程
1,关中断:屏蔽其它中断请求信号。
2,保护断点:将断点地址压入堆栈保存,即当前 PC值入栈。
3,寻找中断源:中断服务程序入口?PC,转入中断服务。
4,保护现场:将中断服务程序使用的所有寄存器内容入栈。
5,中断处理:执行中断源所要求的程序段。
6,恢复现场:恢复被使用寄存器的原有内容。
7,开中断:允许接受其它中断请求信号。
8,中断返回:执行 RETI指令,栈顶内容?PC,程序跳转回断点处。
6-3-3 寻找中断源与确定优先级寻找中断源:每个中断源对应一个中断服务程序。
多个中断源按优先级别排队。硬件上排队顺序:
DMA,NMI,INT。
一,软件查询方式
1.中断源查询电路:
中断源寄存器
≥1 INT
单片机
P1
中断请求 1
中断请求 2
中断请求 72.软件查询程序
INTS,MOV A,P1; 读中断源寄存器
JB ACC.0,SV1 ; 查询高级中断请求
JB ACC.1,SV2 ; 查询低级中断请求

SV1,… ; 中断服务程序 1

SV2,… ; 中断服务程序 2
二,硬件查询方式硬件优先级排队和中断向量锁存电路。
INT
DB
微型机
≥1
中断源 1
中断源 2
中断源 3
中断向量 1
中断向量 2
中断向量 3
中断向量:提供中断服务程序入口地址信息的地址。
6-4 MCS-51中断系统
6-4-1 中断系统内部结构一,中断源信号二,中断允许控制2个外部中断源信号,INT0,INT1
2个定时器 T0,T1溢出中断请求,TF0,TF1
1个串行口数据发送、接收结束中断请求,TI,RI。
三,2级中断优先级控制优先级选择开关,PS,PT1,PX1,PT0,PX0
总允许开关,EA
源允许开关,ES,ET1,EX1,ET0,EX0
6-4-2 中断系统控制一,中断控制寄存器
1.中断标志位,TF1,TF0,IE1,IE0,RI,TI
登记各中断源请求信号,=1,有中断请求; = 0,无中断请求 。
CPU响应中断后,该中断标志自动清零 。 TI,RI标志必须软件清零 。
寄存器名称 D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
T C O N ( 8 8 H ) T F 1 T F 0 I E 1 I T 1 I E 0 I T 0定时器控制寄存器 位地址 8 F H 8 E H 8 D H 8 C H 8 B H 8 A H 8 9 H 8 8 H
S C O N ( 9 8 H ) TI RI串行口控制寄存器 位地址 9 F H 9 E H 9 D H 9 C H 9 B H 9 A H 9 9 H 9 8 H
IE ( A 8 H ) EA ES ET1 E X 1 ET0 E X 0中断允许寄存器 位地址 A F H A C H A B H A A H A 9 H A 8 H
IP ( B 8 H ) PS P T 1 P X 1 P T 0 P X 0中断优先级寄存器 位地址 B C H B B H B A H B 9 H B 8 H
2 外部中断 触发方式选择位,IT0,IT1
=1:负边沿触发中断请求; = 0:低电平触发中断请求 。
3 中断允许控制位,EA,ES,ET1,EX1,ET0,EX0
开中断; = 0关中断 。
例:允许 CPU响应 INT0的中断请求
SETB EX0
SETB EA
4,中断优先级控制位,PS,PT,PX1,PT0,PX0
2级优先级,=1为高优先级,= 0为低优先级 。
同一优先级别按内部查询顺序排列优先级:
高 INT0,T0,INT1,T1,SIO 低 。
6-4-3 中断响应和中断返回一,中断响应周期时序每个机器周期采样中断标志位,若有中断请求,将在下一个机器周期按优先级顺序进行中断查询 。 中断源 中断入口地址
I N T 0 0003H
T0 0 0 0 B H
I N T 1 0013H
T1 0 0 1 B H
S I O 0023H
二,各中断源中断服务程序的入口地址三,中断响应阻断,
1,当 CPU未执行完一条指令 。
2,当有同级或高级中断服务 。
3,执行 RETI指令或访问 IE,IP的指令后,不能立即响应中断 。
四,中断返回中断返回指令,RETI= RET指令 + 通知 CPU中断服务已结束 。
6-4-4 中断响应时间正常中断响应时间至少为 3~ 8个机器周期,如果有同级或高级中断服务,将延长中断响应时间 。
6-4-6 多中断源系统当外部中断源多于中断输入引脚时,可采取以下措施:
1.用定时器计数输入信号端 T0,T1作外部中断入口引脚
2.用串行口接收端 RXD作外部中断入口引脚
3.用一个中断入口接受多个外部中断源,并加入中断查询电路。
6-4-7 处理外部中断举例要求每次按动按键,使外接发光二极管 LED改变一次亮灭状态。
解,INT0输入按键信号,P1.0输出改变 LED状态。
1,跳变触发,每次跳变引起一次中断请求。
ORG 0000H; 复位入口
AJMP MAIN
ORG 0003H ; 中断入口
AJMP PINT0
ORG 0100H ; 主程序
MAIN,MOV SP,#40H; 设栈底
SETB EA ; 开总允许开关
SETB EX0 ; 开 INT0中断
SETB IT0 ; 负跳变触发中断
H,SJMP H ; 执行其它任务
ORG 0200H ; 中断服务程序
PINT0,CPL P1.0 ; 改变 LED
RETI ; 返回主程序单片机
INT0
P1.0 1
+5V
1.软件等待按键释放。
2.硬件清除中断信号。
2,电平触发,避免一次按键引起多次中断响应 。
单片机
INT0
P1.0 1
+5V
ORG 0000H; 复位入口
AJMP MAIN
ORG 0003H ; 中断入口
AJMP PINT0
ORG 0100H ; 主程序
MAIN,MOV SP,#40H; 设栈底
SETB EA ; 开总允许开关
SETB EX0 ; 开 INT0中断
CLR IT0 ; 低电平触发中断
H,SJMP H ; 执行其它任务
ORG 0200H ; 中断服务程序
PINT0,CPL P1.0 ; 改变 LED
WAIT,JNB P3.2,WAIT; 等按键释放
RETI ; 返回主程序