单片机原理与应用课件第5章80c51单片机的中断系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(3) 相同优先级中断请求同时发生时 CPU 响应 的优先顺序
中断源 外部中断0 定时器T0中断 外部中断1 定时器T1中断 串行口中断
同优先级时的优先级顺序 最高级

最低级
5.3 中断响应与中断返回
• 5.3.1 中断响应
• MCS-51 单片机响应中断有 4 个条件:
• 一是中断源有请求;
• 二是寄存器 IE 的总允许位EA=1,且 IE 相应的中断允许位为 1;
• INT0: • INT1:
• SJMP $ CLR P1.0
• RETI CLR P1.1
• RETI • END
•{ • 中断处理程序内容 •}
• 【例5-1】编写中断初始化程序,设置外部中断0和串行口中断为 高级中断,其它中断源为低级中断,外部中断采用边沿触发方式, 禁止外部中断1中断,允许其它中断源中断,开总中断。
• 汇编语言的中断初始化程序如下:
• SETB PX0 • SETB PS • SETB IT0 • MOV IE,#9BH • C51语言的中断初始化程序如下: • .PX0=1; • PS=1; • IT0=1;
• ET1: T1 溢出中断允许位。 ET1=1,允许 T1 中断; ET1=0,禁止 T1 中断。
• EX1:外部中断 1 允许位。 EX1=1,允许外部中断 1 中断; EX1=0,禁止 外部中断 1 中断。
• ET0: T0 溢出中断允许位。 ET0=1,允许 T0 中断; ET0=0,禁止 T0 中断。
• IE=0x9b;
【例5-2】设外部中断0采用边沿触发方式,写出外部中断0的C51初始化程 序段及中断服务函数。 主函数外部中断0初始化程序段: EA=1; //打开总中断开关 EX0=1; //开外部中断0 IT0=1; //设置外部中断的触发方式 中断服务函数
Void int0( ) interrupt 0 using 1 {
• MCS-51 单片机在执行中断程序时,高优先级中断源可中断正在执 行的低优先级中断服务程序,除非正在执行的低优先级中断服务 程序设置了 CPU 关中断或禁止某些高优先级中断;而同级或低优 先级的中断源不能中断正在执行的中断服务程序。
• 如果几个同优先级的中断源同时向 CPU 申请中断,谁先得到服务, 取决于它们在 CPU内部的优先级顺序。
• 当 IT0=0 时,外部中断 INT 0 为电平触发,即外部中断 INT0 出现 低电平时,触发 IE0,使其为“1”。
• IE1:为外部中断 INT1 的请求标志位。功能与 IE0 相同。
• IT1:外部中断 INT1 触发方式控制位。功能与 IT0 相同。
• 内部中断源有定时器 T0 和 T1 溢出中断源,以及串行口发送/接 收中断源。 MCS-51 内部有两个定时器/计数器,分别为定时器 T0 和定时器 T1,它们内部都有各自的计数器。当计数器计满溢 出时,分别产生溢出中断,使各自的中断标志位 TF0 和 TF1 置 “ 1”,产生中断请求标志。 TF0 和 TF1 占用 TCON 寄存器中的 2 位。
• TF0:定时器 T0 的溢出中断标志位。 • TF1:定时器 T1 的溢出中断标志位。
TI:串行口内部发送中断请求标志位。当串行口发送完一个字符后, 由内部硬件使发送中断标志 TI 置位,产生中断请求标志。 RI:串行口内部接收中断请求标志位。当串行口接收到一个字符后, 由内部硬件使接收中断请求标志位 RI 置位,产生中断请求标志。 串行口的发送中断 TI 和接收中断 RI,共用一个内部中断源。它们 逻辑“或”后,作为一个内部的串行口中断源。
• EX0:外部中断 0 允许位。 EX0=1,允许外部中断 0 中断; EX0=0,禁止 外部中断 0 中断。
• MCS-51 单片机复位后, IE 中的每一位均被清零,即禁止所有的中断。要 使用哪些中断,就要开放 IE 中对应的中断允许位以及总允许位断优先级控制位。 PS=1,设定串行口为高优先级中 断; PS=0,设定串行口为低优先级中断。
• 三是无同级或高级中断正在服务;
• 四是现行指令执行完最后一个机器周期。
• 一般情况下,这 4 个条件得到满足,单片机就响应中断。但是, 若现行指令是 RETI,或需要访问寄存器 IE 或寄存器 IP 的指令,则 执行完现行指令,还要执行完紧跟其后的一条指令,单片机才会 响应中断。
5.3.2中断返回
5.1 中断系统的基本概念
• 5.1.1 中断的定义
• 中断是指 CPU 正在处理某些事务时,发生了某一事件,请求 CPU 及时处理。于是, CPU 暂停中断当前的工作,转而处理所发生的
事件。处理完毕,再回到原来被暂停工作中断的地方,继续原来 的工作。这样的过程称为中断。
• 实现中断功能的部件,称为
• 学习目标 • (1)熟悉单片机中断的基本原理与基本概念。 • (2)掌握单片机中断的执行过程。 • (3)掌握单片机中断相关的特殊功能寄存器。 • (4)掌握单片机中断初始化及中断服务程序。 • 学习重点和难点 • (1)单片机的中断的寄存器的功能。 • (2)单片机中断初始化程序设计。 • (3)单片机中断系统应用程序设计。
中断嵌套
5.2 中断系统的内部结构
• 5.2.1 80C51单片机中断系统内部结构
5.2.2 80C51单片机中断系统的寄存器
• 5个中断源中断标志的 TCON 寄存器和 SCON 寄存器; 中断允许寄存器 IE、中断优先级寄存器 IP;
1. TCON和SCON中的相关标志位 80C51 有 5 个中断源,包括 2 个外部中断源 INT 0 和 INT1 ,以及 3 个内部中断源 T0、T1 和串 行口中断源。这 5 个中断源的中断标志位占用 了 TCON 寄存器中的 6 位,以及 SCON寄存器中 的 2 位。两个外部中断源的触发方式由 TCON 寄存器中的 2 个控制位来决定。
• • ①CPU的开、关中断(即全局中断允许控制位的打开与关闭,
EA=1或EA=0); • ②具体中断源中断请求的允许和禁止(屏蔽); • ③各中断源优先级别的控制; • ④外部中断请求触发方式的设定。
• C51中断服务程序(函数)的格式如下:
• void 中断处理程序函数名( ) interrupt 中断序号 using 工作寄存 器组编号
• (1)保存断点 • (2) 取中断向量 • (3)执行中断服务程序及中断返回 • (4)响应中断后各中断标志位的清除
• CPU 在响应中断后,能自动清除定时器溢出标志位 TF0和 TF1, 以及边沿触发下的外部中断标志 IE0 和 IE1。
• 串行口的发送、接收中断标志 TI 和RI,在中断响应后不会自动清 除,只能由用户用软件清除。

• 产生中断的请求源,称为

响应中断请求过程
5.1.2 中断的优点
• 提高了 CPU 的工作效率 • 进行实时处理
5.1.3 中断嵌套
• 当 CPU 正在处理一个中断, 又发生了另一个更紧迫事件(即优先 级更高) 的中断请求时,CPU 暂时终止对前一个中断的处理,转 而响应优先级更高的中断请求,处理完优先级更高的中断请求后, 再继续执行原来的中断处理程序。这样的过程,称为中断嵌套。 这样的中断系统,称为多级中断系统。
• PX0 :外部中断 0 优先级控制位。 PX0=1,设定外部中断 0 为高 优先级中断; PX0=0,设定外部中断 0 为低优先级中断。
• MCS-51 单片机复位后, IP 寄存器低 5 位全部被清零,将所有中 断源设置为低优先级中断。
• (2) 不同优先级中断请求同时发生时 CPU 响应的优先顺序
• PT1: T1 中断优先级控制位。 PT1=1,设定定时器 T1 为高优先级 中断; PT1=0,设定定时器 T1 为低优先级中断。
• PX1:外部中断 1 优先级控制位。 PX1=1,设定外部中断 1 为高优 先级中断; PX1=0,设定外部中断 1 为低优先级中断。
• PT0: T0 中断优先级控制位。 PT0=1,设定定时器 T0 为高优先级 中断; PT0=0,设定定时器 T0 为低优先级中断。
• 对于电平触发方式下的外部中断标志位 IE0 和 IE1, CPU 无法直接 干预,需要在引脚处外加硬件电路(如 D 触发器),使其撤消外 部中断请求。
5.4中断初始化及中断服务程序结构
• 中断初始化实质上就是对4个与中断有关的特殊功能寄存器 TCON、SCON、IE和IP进行管理和控制,具体实施如下:
//用户代码 }
• 【例5-3】89S51
K0
单片机系统接
口电路如图所
示,编写程序
K1
实现下列要求:
• 按下K0时,L0 熄灭,按下K1 时,L1熄灭。
L0 P3.2 P1.0
L1 P3.3 P1.1
89S51
• ORG 0000H • SJMP MAIN • ORG 0003H ;外部中断0入口地址 • SJMP INT0 • ORG 0013H ;外部中断1入口地址 • SJMP INT1 • MAIN: • CLR IT0 ;设外部中断0为电平触发方式 • SETB EX0 ;开外部中断0中断允许位 • CLR IT1 ;设外部中断1为电平触发方式 • SETB EX1 ;开外部中断1中断允许位 • SETB EA ;开CPU总中断允许位
当CPU响应TI或RI中断时,标志位TI或RI不能由CPU自动清除,必须 设置相应的指令,由软件清除。
中断允许寄存器 IE
• EA:中断总允许位。 EA=1, CPU 开放中断; EA=0, CPU 禁止所有的中 断请求。
• ES:串行中断允许位。 ES=1,允许串行口中断; ES=0,禁止串行口中断。
• IE0:外部中断 INT 0 的请求标志位。当 INT 0 引脚上出现中断请 求信号(低电平或脉冲下降沿)时,硬件自动将 IE0 置“ 1”, 产生中断请求标志。
• IT0:外部中断 INT 0 触发方式控制位。由软件来置“ 1”或清零, 以控制外部中断 INT 0的触发方式。
• 当 IT0=1 时, 外部中断 INT0 为下降沿触发, 即外部中断 INT 0 出 现下降沿时, 触发 IE0,使其为“ 1”;为使下降沿信号被可靠 地采样,其负脉冲宽度至少应保持一个机器周期。
相关文档
最新文档