第 5章 MCS-51中断系统
5.1 中断的概念
5.4 中断的处理过程
5.2 中断的控制
5.3 中断的响应和返回
5.5 多中断源系统
5.6 外部中断应用举例中断系统是计算机的重要指标之一 。
某人看书 执行主程序 日常事务电话铃响 中断信号 INT=0 中断请求暂停看书 暂停执行主程序 中断响应书中作记号 当前 PC入栈 保护断点电话谈话 执行 I/O程序 中断服务继续看书 返回主程序 中断返回日常事务程序中断服务程序
5.1 中断概念所谓“中断,,是指 CPU执行正常程序时,
系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件,处理完毕后,CPU返回原程序的过程。
中断与子程序的区别:
子程序是预先安排好的;
中断是随机发生的;
中断的定义,与子程序的区别
MCS-51中断系统内部结构
5.2 中断系统控制
5.2.1 中断控制寄存器
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 CO N (88H
)
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 CO 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 E T 1 E X 1 E T 0 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:低电平触发中断请求 。
5.2 中断系统控制
5.2.2 中断允许寄存器寄存器名称 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
中断允许控制位,EA,ES,ET1,EX1,ET0,EX0
=1开中断; = 0关中断 。
例:允许 CPU响应 INT0的中断请求
SETB EX0
SETB EA
5.2 中断系统控制
5.2.3 中断优先寄存器寄存器名称 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
中断优先级控制位,PS,PT1,PX1,PT0,PX0
2级优先级,=1为高优先级,= 0为低优先级 。
同一优先级别按内部查询顺序排列优先级:
高 INT0,T0,INT1,T1,SIO 低 。
5.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中断服务已结束 。
中断响应时间正常中断响应时间至少为 3~ 8个机器周期,如果有同级或高级中断服务,将延长中断响应时间 。
5.4 中断处理过程一,中断响应条件
1,有中断请求信号
2,系统处于开中断状态二.中断响应过程
1,保护断点:将断点地址压入堆栈保存,即当前 PC值入栈。
2,寻找中断源:中断服务程序入口?PC,转入中断服务。
3,中断处理:执行中断源所要求的程序段。
4,中断返回:执行 RETI指令,栈顶内容?PC,程序跳转回断点处。
5.5 多中断源系统当外部中断源多于中断输入引脚时,可采取以下措施:
1.用定时器计数输入信号端 T0,T1作外部中断入口引脚
2.用串行口接收端 RXD作外部中断入口引脚
3.用一个中断入口接受多个外部中断源,并加入中断查询电路。
5.6 处理外部中断举例要求每次按动按键,使外接发光二极管 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 ; 返回主程序
5.1 中断的概念
5.4 中断的处理过程
5.2 中断的控制
5.3 中断的响应和返回
5.5 多中断源系统
5.6 外部中断应用举例中断系统是计算机的重要指标之一 。
某人看书 执行主程序 日常事务电话铃响 中断信号 INT=0 中断请求暂停看书 暂停执行主程序 中断响应书中作记号 当前 PC入栈 保护断点电话谈话 执行 I/O程序 中断服务继续看书 返回主程序 中断返回日常事务程序中断服务程序
5.1 中断概念所谓“中断,,是指 CPU执行正常程序时,
系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件,处理完毕后,CPU返回原程序的过程。
中断与子程序的区别:
子程序是预先安排好的;
中断是随机发生的;
中断的定义,与子程序的区别
MCS-51中断系统内部结构
5.2 中断系统控制
5.2.1 中断控制寄存器
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 CO N (88H
)
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 CO 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 E T 1 E X 1 E T 0 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:低电平触发中断请求 。
5.2 中断系统控制
5.2.2 中断允许寄存器寄存器名称 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
中断允许控制位,EA,ES,ET1,EX1,ET0,EX0
=1开中断; = 0关中断 。
例:允许 CPU响应 INT0的中断请求
SETB EX0
SETB EA
5.2 中断系统控制
5.2.3 中断优先寄存器寄存器名称 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
中断优先级控制位,PS,PT1,PX1,PT0,PX0
2级优先级,=1为高优先级,= 0为低优先级 。
同一优先级别按内部查询顺序排列优先级:
高 INT0,T0,INT1,T1,SIO 低 。
5.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中断服务已结束 。
中断响应时间正常中断响应时间至少为 3~ 8个机器周期,如果有同级或高级中断服务,将延长中断响应时间 。
5.4 中断处理过程一,中断响应条件
1,有中断请求信号
2,系统处于开中断状态二.中断响应过程
1,保护断点:将断点地址压入堆栈保存,即当前 PC值入栈。
2,寻找中断源:中断服务程序入口?PC,转入中断服务。
3,中断处理:执行中断源所要求的程序段。
4,中断返回:执行 RETI指令,栈顶内容?PC,程序跳转回断点处。
5.5 多中断源系统当外部中断源多于中断输入引脚时,可采取以下措施:
1.用定时器计数输入信号端 T0,T1作外部中断入口引脚
2.用串行口接收端 RXD作外部中断入口引脚
3.用一个中断入口接受多个外部中断源,并加入中断查询电路。
5.6 处理外部中断举例要求每次按动按键,使外接发光二极管 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 ; 返回主程序