单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第5章 中断系统

上传人:E**** 文档编号:89485664 上传时间:2019-05-25 格式:PPT 页数:54 大小:643.50KB
返回 下载 相关 举报
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第5章 中断系统_第1页
第1页 / 共54页
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第5章 中断系统_第2页
第2页 / 共54页
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第5章 中断系统_第3页
第3页 / 共54页
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第5章 中断系统_第4页
第4页 / 共54页
单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第5章 中断系统_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第5章 中断系统》由会员分享,可在线阅读,更多相关《单片机原理及应用技术 教学课件 ppt 作者 牛月兰 第5章 中断系统(54页珍藏版)》请在金锄头文库上搜索。

1、1,第5章 AT89S51单片机的 中断系统,1,2,2,第5章 目录 5.1 AT89S51中断技术概述 5.2 AT89S51中断系统结构 5.2.1 中断请求源 5.2.2 中断请求标志寄存器 5.3 中断允许与中断优先级的控制 5.3.1 中断允许寄存器IE 5.3.2 中断优先级寄存器IP 5.4 响应中断请求的条件 5.5 外部中断的响应时间,3,5.6 外部中断的触发方式选择 5.6.1 电平触发方式 5.6.2 跳沿触发方式 5.7 中断请求的撤销 5.8 中断服务子程序的设计 5.9 多外部中断源系统设计,4,内容概要 介绍片内功能部件中断系统的硬件结构和工作原理。 掌握与中

2、断系统有关的特殊功能寄存器以及中断系统的应用特性。 应能熟练地进行中断系统的初始化编程以及中断服务子程序的设计。,5,5.1 AT89S51中断技术概述 中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应、及时处理。这是由片内的中断系统来实现的。 当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。 中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。 图5-1为整个中断响应和处理过程。,5,6,6,图5-1 中断响应和处理过程,7,如

3、果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。 采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。 5.2 AT89S51中断系统结构 中断系统结构图如图5-2所示。 中断系统有5个中断请求源(简称中断源),两个中断优先级,可实现两级中断服务程序嵌套。 每一中断源可用软件独立控制为允许中断或关中断状态,中断优先级均可用软件来设置。,7,8,5.2.1 中断请求源 由图5-2可见,AT89S51中断系统共有5个中断请求源: (1) 外部中断请求0,中断请求信号由 引脚输入,中断请求标志为IE0。 (2) 外部中断

4、请求1,中断请求信号由 引脚输入,中断请求标志为IE1。 (3)定时器/计数器T0计数溢出发出的中断请求,中断请求标志为TF0。 (4)定时器/计数器T1计数溢出发出的中断请求,中断请求标志为TF1。 (5)串行口中断请求,中断请求标志为发送中断TI或接收中断RI。,8,9,9,图5-2 AT89S51的中断系统结构示意图,10,5.2.2 中断请求标志寄存器 5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存。 1. TCON寄存器 为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。特殊功能寄存器TCON的格式如图5-3所示。,10,图5-3 特殊功能寄存器TCON的格

5、式,11,TCON各标志位功能如下: (1)TF1定时器/计数器T1的溢出中断请求标志位。 当T1计数产生溢出时,由硬件使TF1置“1”,向CPU申请中断。CPU响应TF1中断时,TF1标志由硬件自动清“0”,TF1也可由软件清“0”。 (2)TF0定时器/计数器T0的溢出中断请求标志位,功能与TF1类似。 (3)IE1外部中断请求1的中断请求标志位。 (4)IE0外部中断请求0中断请求标志位,功能与IE1类似。 (5)IT1选择外部中断请求1为跳沿触发还是电平触发。,11,12,IT1=0,电平触发方式,引脚 上低电平有效,并把IE1置“1”。转向中断服务程序时,由硬件自动把IE1清“0”。

6、 IT1=1,跳沿触发方式,加到引脚 上的外部中断请求输入信号电平从高到低的负跳变有效,并把IE1置“1”。转向中断服务程序时,由硬件自动把IE1清“0”。 (6)IT0选择外部中断请求0为跳沿触发方式还是电平触发方式,其意义与IT1类似。 AT89S51复位后,TCON被清“0”,5个中断源的中断请求标志均为0。 TR1(D6位)、TR0(D4位)这2位与中断系统无关,将在第6章定时器/计数器中介绍。,12,13,2. SCON寄存器 串行口控制寄存器,字节地址为98H,可位寻址。 低二位锁存串行口的发送中断和接收中断的中断请求标志TI和RI,格式如图5-4所示。 图5-4 SCON中的中断

7、请求标志位 各标志位的功能: (1)TI串行口的发送中断请求标志位。每发送完一帧串行数据后,TI自动置“1”。TI标志必须由软件清“0”。,13,14,(2)RI串行口接收中断请求标志位。串行口接收完一个串行数据帧,硬件自动使RI中断请求标志置“1”。必须在中断服务程序中用指令对RI清“0”。 5.3 中断允许与中断优先级的控制 中断允许控制由中断允许寄存器IE控制。 中断优先级控制由中断优先级寄存器IP控制。 5.3.1 中断允许寄存器IE AT89S51的对各中断源的开放或屏蔽,是由中断允许寄存器IE控制的。 IE字节地址为A8H,可位寻址,格式如图5-5所示。,14,15,图5-5 中断

8、允许寄存器IE的格式 IE对中断的开放和关闭实现两级控制。 有一个总的开关中断控制位EA(IE.7位), EA=0时,所有的中断请求被屏蔽; EA=1时,开放中断,但5个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定(图5-5)。,15,16,IE中各位功能如下: (1)EA中断允许总开关控制位。 EA=0,所有的中断请求被屏蔽。 EA=1,所有的中断请求被开放。 (2)ES串行口中断允许位。 ES=0,禁止串行口中断。 ES=1,允许串行口中断。 (3)ET1定时器/计数器T1的溢出中断允许位。 ET1=0,禁止T1溢出中断。 ET1=1,允许T1溢

9、出中断。 (4)EX1外部中断1中断允许位。,16,17,EX1=0,禁止外部中断1中断。 EX1=1,允许外部中断1中断。 (5)ET0定时器/计数器T0的溢出中断允许位。 ET0=0,禁止T0溢出中断。 ET0=1,允许T0溢出中断。 (6)EX0外部中断0中断允许位。 EX0=0,禁止外部中断0中断。 EX0=1,允许外部中断0中断。,18,AT89S51复位以后,IE被清“0”,所有中断请求被禁止。IE中与各个中断源相应的位可用指令置“1”或清“0”。 若使某一个中断源被允许中断,除了IE相应的位被置“1”外,还必须使EA位置“1”。 改变IE的内容,可由位操作指令来实现(即SETB

10、bit;CLR bit),也可用字节操作指令实现。,18,19,【例5-1】 若允许片内2个定时器/计数器中断,并禁止其他中断源的中断请求,请编写设置IE的相应程序段。 (1)用位操作指令 CLR ES ;禁止串行口中断 CLR EX0 ;禁止外部中断0中断 CLR EX1 ;禁止外部中断1中断 SETB ET0 ;允许定时器/计数器T0中断 SETB ET1 ;允许定时器/计数器T1中断 SETB EA ;总中断开关位开放 (2)用字节操作指令 MOV IE,#8AH 上述两段程序对IE的设置是相同的。,19,20,5.3.2 中断优先级寄存器IP AT89S51的中断请求源有两个中断优先级

11、,由软件分别设置为高优先级中断或低优先级中断,可实现: 两级中断嵌套 AT89S51正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。两级中断嵌套的过程如图5-6所示。,20,21,21,图5-6 两级中断嵌套的过程,22,各中断源的中断优先级关系,可归纳为两条基本规则: (1)低优先级可被高优先级中断,高优先级不能低优先级中断。如果某一中断源被设置为高优先级中断,则不能被任何其他的中断源的中断请求所中断。 (2)任何一种中断一旦得到响应,不会再被它的同级中断源所中断。 中断优先级寄存器IP,其字节地址为B8H,可位寻址。只要用

12、程序改变其内容,可进行各中断源中断优先级的设置,IP寄存器的格式如图5-7所示。,22,23,图5-7 IP寄存器的格式 中断优先级寄存器IP各位的含义如下: (1)PS串行口中断优先级控制位 1:高优先级 0:低优先级 (2)PT1定时器T1中断优先级控制位 1:高优先级 0:低优先级,23,24,(3)PX1外部中断1中断优先级控制位 1:高优先级 0:低优先级 (4)PT0定时器T0中断优先级控制位 1:高优先级 0:低优先级 (5)PX0外部中断0中断优先级控制位 1:高优先级 0:低优先级 中断优先级控制寄存器IP用位操作指令或字节操作指令可更新IP的内容,以改变中断优先级。 AT8

13、9S51复位以后,IP的内容为0,各个中断源均为低优先级中断。,24,25,AT89S51的中断系统有两个不可寻址的“优先级激活触发器。 一个指示某高优先级的中断正在执行,所有后来的中断均被阻止;另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请求。 在同时收到几个同优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。这相当于在同一个优先级内,还同时存在另一个辅助优先级结构,其查询顺序见表5-1。,25,26,表5-1 同级中断的查询次序 由此可见,各中断源在同一个优先级的条件下,外部中断0的中断优先权最高,串行口中断优先权最低。,2

14、6,27,【例5-2】 IP寄存器初始化,AT89S51的两个外中断请求为高优先级,其他中断请求为低优先级。 (1)用位操作指令 SETB PX0 ;外中断0设置为高优先级 SETB PX1 ;外中断1设置为高优先级 CLR PS ;串行口设置为低优先级 CLR PT0 ;定时器/计数器T0为低优先级 CLR PT1 ;定时器/计数器T1为低优先级 (2)用字节操作指令 MOV IP,#05H,27,28,5.4 响应中断请求的条件 中断请求被响应,必须满足以下必要条件: (1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。 (2)该中断源发出中断请求,即对应的中断请求标志为“1”

15、。 (3)该中断源的中断允许位EA=1,即该中断被允许。 (4)无同级或更高级中断正在被服务。 当CPU查询到有效的中断请求时,在满足上述条件时,紧接着就进行中断响应。,28,29,中断响应的过程: 首先由硬件自动生成一条长调用指令“LCALL addr16”。就是程序存储区中相应的中断入口地址。 例如,对于外部中断1的响应,硬件自动生成的长调用指令为 LCALL 0013H 首先将程序计数器PC的内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转向响应中断请求的中断入口地址。 各中断源服务程序的入口地址,如表5-2所示。,29,30,表5-2 中断入口地址表 两个中断入口间只相隔8字

16、节,难以安放一个完整的中断服务程序。因此,通常在中断入口地址处放置一条无条件转移指令,使程序执行转向中断服务程序入口。,30,31,中断响应是有条件的,当遇到下列三种情况之一时,中断响应被封锁: (1)CPU正在处理同级或更高优先级的中断。 (2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应,以确保当前指令执行的完整性。 (3)正在执行的指令是RETI或是访问IE或IP的指令。因为按照AT89S51中断系统的规定,在执行完这些指令后,需要再执行完一条指令,才能响应新的中断请求。 如果存在上述三种情况之一,CPU将丢弃中断查询结果,不能对中断进行响应。,31,32,5.5 外部中断的响应时间 使用外部中断时,需考虑从外部中断请求到转向中断入口地址所需的时间。 外部中断的最短响应时间为3个机器周期。其中中断请求标志位查询占1个机器周期,而这个机器周期恰好处于指令的最后一个机器周期。在这个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号