Upload
josh
View
107
Download
8
Embed Size (px)
DESCRIPTION
5. 1 中 断 概 述. 单片机接通电源后将循环执行我们编制好的程序 ( 一般称为主程序 ) ,当有外部设备或内部部件要求 CPU 为其服务时,计算机将被迫 “ 中断 ” 主程序的执行,并记录下暂停处程序地址 ( 断点地址 ) ,然后转去为外部设备服务,即执行中断服务程序;在中断程序执行完毕后自动返回被迫中断主程序的地址,继续执行原主程序。 - PowerPoint PPT Presentation
Citation preview
第 5章 中断系统
5. 1 中 断 概 述 单片机接通电源后将循环执行我们编制好的程序 ( 一般
称为主程序 ) ,当有外部设备或内部部件要求 CPU 为其服务时,计算机将被迫“中断”主程序的执行,并记录下暂停处程序地址 ( 断点地址 ) ,然后转去为外部设备服务,即执行中断服务程序;在中断程序执行完毕后自动返回被迫中断主程序的地址,继续执行原主程序。
一个单片机系统可能有多个中断源,而单片机 CPU 在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向 CPU 发出中断请求时,则必须按照“优先级别”进行排队,CPU 首先选定其中中断级别高的中断源为其服务,然后按排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。
第 5章 中断系统
5.2 AT89C51 中断系统 5.2.1 中断源及中断系统构成 AT89C51 具有五个中断源,分为内部中断源和外部中断
源。外部中断源有两个,通常指由外部设备发出中断请求信号,从 P3.2 和 P3.3 引脚输入单片机,用电平或边沿触发两种方式申请中断。内部中断源有三个,两个定时器 / 计数器 (T0 , T1) 中断源和一个串行口中断源, T0 和 T1 的中断申请是在它们计数从全“ 1” 变为全“ 0” 溢出时自动向中断系统提出的,串行口中断源的中断申请是在串行口每发送或接收完一个 8 位二进制数后自动向中断系统提出的。AT89C51 的中断系统结构如图 5-1 所示。
第 5章 中断系统
¸ßÓÅÏȼ¶
µÍÓÅÏȼ¶
IT0
TCON.0
IE0
EX0PX0
IE.0TCON.1
IP.0
IT1
TCON.2
IE1
EX1PX1
IE.2TCON.3
IP.2
T0Òç³ö TF0
ET0PT0
IE.1TCON.5
IP.1
T1Òç³ö TF1
ET1PT1
IE.3TCON.7
IP.3
ESPS
IE.4IP.4
EA
IE.7
¡Ý1RI
TISCON.0
SCON.1
TX
RX
²éѯ´ÎÐò
0INT2.3P
1INT3.3P
图 5-1 AT89C51 中断系统结构图
第 5章 中断系统
5.2.2 中断标志与中断控制 1 .中断标志 1) 定时器控制寄存器 TCON
图 5-2 给出了定时器控制寄存器 TCON 各位的定义。
TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
图 5-2 定时器控制寄存器 TCON
第 5章 中断系统
各位的作用如下: (1) TF1(TCON.7) :定时器 T1 溢出中断标志位,位
地址为 8FH 。 (2) TR1(TCON.6) :定时器 T1 的启停控制位,位地
址为 8EH , TR1 状态靠软件置位或清除。 (3) TF0(TCON.5) :定时器 T0 溢出中断标志位,位
地址为 8DH 。 (4) TR0(TCON.4) :定时器 T0 的启停控制位,位地
址为 8CH ,其他操作与 TR1 类同。
第 5章 中断系统
(5) IE1(TCON.3) :外部中断 边沿触发中断请求标志位,位地址为 8BH 。
(6) IT1(TCON.2) :外部中断 触发类型选择位,位地址为 8AH 。
(7) IE0(TCON.1) :外部中断 边沿触发中断请求标志位,位地址为 89H 。其功能与 IE1 类同。
(8) IT0(TCON.0) :外部中断 触发类型选择位,位地址为 88H 。其功能与 IT1 类同。
1INT
1INT
0INT
0INT
第 5章 中断系统
2) 串行口控制寄存器 SCON
图 5-3 给出了串行口控制寄存器 SCON 各位的定义。其中只有 TI 和 RI 两位用来表示串行口中断标志位,其余各位用于串行口其他控制 ( 将在第 9 章中详细介绍 ) 。
SCON SM0 SM1 SM2 REN TB8 RB8 TI RI
位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
图 5-3 串行口控制寄存器 SCON
第 5章 中断系统
(1) TI :为串行口发送中断标志位,位地址为 99H 。在串行口发送完一组数据时, TI 由硬件自动置位 (TI=
1) ,请求中断,当 CPU 响应中断进入中断服务程序后,TI 状态不能被硬件自动清除,而必须在中断程序中由软件来清除。
(2) RI :为串行口接收中断标志位,位地址为 98H 。在串行口接收完一组串行数据时, RI 由硬件自动置位(RI=1) ,请求中断,当 CPU 响应中断进入中断服务程序后,也必须由软件来清除 RI 标志。
第 5章 中断系统
2 .中断控制 各中断源的中断标志被置位后, CPU 能否响应还要
受到控制寄存器的控制,这种控制寄存器在 AT89C51
中有两个,即中断允许控制寄存器 IE 和中断优先级控制寄存器 IP 。下面分别详细介绍。
第 5章 中断系统
1) 中断允许控制寄存器 IE
AT89C51 设有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器 IE 各位的状态进行两级控制的。所谓两级控制是指所有中断允许的总控制位和各中断源允许的单独控制位,每位状态靠软件来设定。图 5-4 给出了中断允许控制寄存器 IE 各位的定义。
IE EA — ET2 ES ET1 EX1 ET0 EX0
位地址 AFH — ADH ACH ABH AAH A9H A8H
图 5-4 中断允许控制寄存器 IE
第 5章 中断系统
(1) EA(IE.7) :总允许控制位,位地址为 AFH 。 EA
状态可由软件设定,若 EA=0 ,禁止 AT89C51 所有中断源的中断请求;若 EA=1 ,则总控制被开放,但每个中断源是允许还是被禁止 CPU 响应,还受控于中断源的各自中断允许控制位的状态。
(2) ET2(IE.5) :定时器 T2 溢出中断允许控制位,位地址是 ADH 。
第 5章 中断系统
(3) ES(IE.4) :串行口中断允许控制位,位地址是 AC
H 。 (4) ET1(IE.3) :定时器 T1 的溢出中断允许控制位,
位地址为 ABH 。 (5) EX1(IE.2) :外部中断 的中断请求允许控
制位,位地址是 AAH 。 (6) ET0(IE.1) :定时器 T0 的溢出中断允许控制位,
位地址是 A9H 。 (7) EX0(IE.0) :外部中断 的中断请求允许控
制位,位地址是 A8H 。
1INT
0INT
第 5章 中断系统
IP — — PT2 PS PT1 PX1 PT0 PX0
位地址 — — BDH BCH BBH BAH B9H B8H
图 5-5 中断优先控制寄存器 IP
2) 中断优先级寄存器 IP AT89C51 的中断源优先级是由中断优先级寄存器 IP进行控制的。五个中断源总共可分为二个优先级,每一个中断源都可以通过 IP 寄存器中的相应位设置成高级中断或低级中断,因此, CPU 对所有中断请求只能实现两级中断嵌套。 IP 寄存器各位的定义如图 5-5 所示。
第 5章 中断系统
(1) —(IP.7 , IP.6) :保留位。 (2) PT2(IP.5) :定时器 T2 中断优先级控制位,位地
址是 BDH 。 (3) PS(IP.4) :串行口中断优先级设定位,位地址
是 BCH 。 (4) PT1(IP.3) :定时器 T1 中断优先级控制位,位
地址是 BBH 。 (5) PX1(IP.2) :外中断 优先级控制位,位地
址为 BAH 。 1INT
第 5章 中断系统
(6) PT0(IP.1) :定时器 T0 中断优先级控制位,位地址为 B9H 。
(7) PX0(IP.0) :外部中断 优先级控制位,位地址为 B8H ,其功能与 PX1 类同。
如果同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接受哪一个请求,表 5-1 列出了同一优先级中断源的内部查询次序。
0INT
第 5章 中断系统
表 5-1 中断源的内部查询次序
中断源 中断标志 优先查询次序
外中断 0定时器 T0 中断外中断 1定时器 T1 中断串行口中断
IE0TF0IE1TF1
RI+TI
高↓↓↓
低