最新单片机原理及应用(陈燕第5章 中断系统幻灯片.ppt
《最新单片机原理及应用(陈燕第5章 中断系统幻灯片.ppt》由会员分享,可在线阅读,更多相关《最新单片机原理及应用(陈燕第5章 中断系统幻灯片.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2内容概要内容概要n介绍片内功能部件中断系统的介绍片内功能部件中断系统的硬件结构硬件结构和和工作原理工作原理。n掌握与中断系统掌握与中断系统有关的特殊功能寄存器有关的特殊功能寄存器以及中断系统的以及中断系统的应用特性。应用特性。n应能熟练地进行中断系统的应能熟练地进行中断系统的初始化编程初始化编程以及以及中断服务子中断服务子程序的设计程序的设计。9TCON各标志位功能如下:各标志位功能如下:(1)TF1定时器定时器/计数器计数器T1的溢出中断请求标志位。的溢出中断请求标志位。当当T1计数产生溢出时,由硬件使计数产生溢出时,由硬件使TF1置置“1”,向,向CPU申请申请中断。中断。CPU响应响应
2、TF1中断时,中断时,TF1标志标志由硬件自动清由硬件自动清“0”,TF1也可由软件清也可由软件清“0”。(2)TF0定时器定时器/计数器计数器T0的溢出中断请求标志位,功能的溢出中断请求标志位,功能与与TF1类似。类似。(3)IE1外部中断请求外部中断请求1的中断请求标志位。的中断请求标志位。(4)IE0外部中断请求外部中断请求0中断请求标志位,功能与中断请求标志位,功能与IE1类似。类似。10(5)IT1选择外部中断请求选择外部中断请求1为跳沿触发还是电平触发。为跳沿触发还是电平触发。 IT1=0,电平触发,电平触发方式,引脚上低电平有效,并把方式,引脚上低电平有效,并把IE1置置“1”。
3、转向中断服务程序时,由硬件。转向中断服务程序时,由硬件自动自动把把IE1清清“0”。IT1=1,跳沿触发跳沿触发方式,加到引脚上的外部中断请求输方式,加到引脚上的外部中断请求输入信号电平从高到低的入信号电平从高到低的负跳变有效负跳变有效,并把,并把IE1置置“1”。转。转向中断服务程序时,由硬件向中断服务程序时,由硬件自动自动把把IE1清清“0”。(6)IT0选择外部中断请求选择外部中断请求0为跳沿触发方式还是电平触为跳沿触发方式还是电平触发方式,其意义与发方式,其意义与IT1类似。类似。AT89S51复位复位后,后,TCON被清被清“0”,5个中断源的中个中断源的中断请求标志均为断请求标志均
4、为0。TR1(D6位)、位)、TR0(D4位)位)这这2位位与中断系统无关与中断系统无关,将在第将在第6章定时器章定时器/计数器中介绍。计数器中介绍。112. SCON寄存器寄存器串行口控制寄存器,字节地址为串行口控制寄存器,字节地址为98H,可位寻址可位寻址。低二位锁存串行口的发送中断和接收中断的中断请求标低二位锁存串行口的发送中断和接收中断的中断请求标志志TI和和RI,格式如,格式如图图5-4所示所示。 图图5-4 SCON中的中断请求标志位中的中断请求标志位各标志位的功能:各标志位的功能: (1)TI串行口发送中断请求标志位。每发送完一帧串行口发送中断请求标志位。每发送完一帧串行数据后,
5、串行数据后,TI自动置自动置“1”。TI标志标志必须由软件清必须由软件清“0”。(2)RI串行口接收中断请求标志位。串行口接收完串行口接收中断请求标志位。串行口接收完一个串行数据帧,硬件自动使一个串行数据帧,硬件自动使RI中断请求标志置中断请求标志置“1”。必须在中断服务程序中用指令对必须在中断服务程序中用指令对RI清清“0”。 125.3 中断允许与中断优先级的控制中断允许与中断优先级的控制中断允许中断允许控制由中断允许寄存器控制由中断允许寄存器IE控制。控制。中断优先级中断优先级控制由中断优先级寄存器控制由中断优先级寄存器IP控制。控制。5.3.1 中断允许寄存器中断允许寄存器IEAT89
6、S51的的CPU对各中断源的开放或屏蔽,是由中断允许对各中断源的开放或屏蔽,是由中断允许寄存器寄存器IE控制的。控制的。IE字节地址为字节地址为A8H,可位寻址可位寻址,格式如图,格式如图5-5所示所示。13 图图5-5 中断允许寄存器中断允许寄存器IE的格式的格式IE对中断的开放和关闭实现对中断的开放和关闭实现两级控制两级控制。有一个总的开关中断控制位有一个总的开关中断控制位EA(IE.7位),位),EA=0时,所有的中断请求被屏蔽;时,所有的中断请求被屏蔽;EA=1时,开放中断,但时,开放中断,但5个中断源的中断请求是否允个中断源的中断请求是否允许,还要由许,还要由IE中的低中的低5位位所
7、所对应的对应的5个中断请求允许控制位个中断请求允许控制位的状态来决定(图的状态来决定(图5-5)。)。14IE中各位功能如下:中各位功能如下:(1)EA中断允许总开关控制位。中断允许总开关控制位。EA=0,所有的中断请求被屏蔽。,所有的中断请求被屏蔽。EA=1,所有的中断请求被开放。,所有的中断请求被开放。(2)ES串行口中断允许位。串行口中断允许位。ES=0,禁止串行口中断。,禁止串行口中断。ES=1,允许串行口中断。,允许串行口中断。(3)ET1定时器定时器/计数器计数器T1的溢出中断允许位。的溢出中断允许位。ET1=0,禁止,禁止T1溢出中断。溢出中断。ET1=1,允许,允许T1溢出中断
8、。溢出中断。15(4)EX1外部中断外部中断1中断允许位。中断允许位。 EX1=0,禁止外部中断,禁止外部中断1中断。中断。EX1=1,允许外部中断,允许外部中断1中断。中断。(5)ET0定时器定时器/计数器计数器T0的溢出中断允许位。的溢出中断允许位。ET0=0,禁止,禁止T0溢出中断。溢出中断。ET0=1,允许,允许T0溢出中断。溢出中断。(6)EX0外部中断外部中断0中断允许位。中断允许位。EX0=0,禁止外部中断,禁止外部中断0中断。中断。EX0=1,允许外部中断,允许外部中断0中断。中断。16AT89S51复位以后,复位以后,IE被清被清“0”,所有中断请求被禁止。,所有中断请求被禁
9、止。IE中与各个中断源相应的位可用指令置中与各个中断源相应的位可用指令置“1”或清或清“0”。若使某一个中断源被允许中断若使某一个中断源被允许中断,除了,除了IE相应的位被置相应的位被置“1”外,还必须使外,还必须使EA位置位置“1”。改变改变IE的内容的内容,可由,可由位操作指令位操作指令来实现(即来实现(即SETB bit;CLR bit),也可用),也可用字节操作指令字节操作指令实现。实现。17【例例5-1】 若允许片内若允许片内2个定时器个定时器/计数器中断,并禁止计数器中断,并禁止其他中断源的中断请求,请编写设置其他中断源的中断请求,请编写设置IE的相应程序段。的相应程序段。(1)用
10、位操作指令)用位操作指令CLRES;禁止串行口中断;禁止串行口中断 CLREX0;禁止外部中断;禁止外部中断0中断中断CLREX1;禁止外部中断;禁止外部中断1中断中断SETBET0;允许定时器;允许定时器/计数器计数器T0中断中断SETBET1;允许定时器;允许定时器/计数器计数器T1中断中断SETBEA ;总中断开关位开放;总中断开关位开放(2)用字节操作指令)用字节操作指令MOV IE,#8AH上述两段程序对上述两段程序对IE的设置是相同的。的设置是相同的。185.3.2 中断优先级寄存器中断优先级寄存器IPAT89S51的中断请求源有的中断请求源有两个中断优先级两个中断优先级,由软件分
11、别设,由软件分别设置为置为高高优先级中断优先级中断或或低低优先级中断优先级中断,可实现:,可实现:两级中断嵌套两级中断嵌套AT89S51正在执行低优先级中断的服务程序时,可被高优正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。低优先级中断服务程序。两级中断嵌套两级中断嵌套的的过程过程如如图图5-6所示。所示。19图图5-6 两级中断嵌套的过程两级中断嵌套的过程20各中断源的中断优先级关系,可归纳为各中断源的中断优先级关系,可归纳为两条基本规则两条基本规则:(1)低优先级可被高
12、优先级中断,高优先级不能低优)低优先级可被高优先级中断,高优先级不能低优先级中断。先级中断。如果某一中断源被设置为高优先级中断,则不如果某一中断源被设置为高优先级中断,则不能被任何其他的中断源的中断请求所中断。能被任何其他的中断源的中断请求所中断。(2)任何一种任何一种中断中断一旦得到响应,一旦得到响应,不会再被它的同级不会再被它的同级中断源所中断中断源所中断。中断优先级寄存器中断优先级寄存器IP,其,其字节地址为字节地址为B8H,可位寻址。,可位寻址。只要用程序改变其内容,可进行各中断源只要用程序改变其内容,可进行各中断源中断优先级的设中断优先级的设置置,IP寄存器的格式如图寄存器的格式如图
13、5-7所示。所示。21 图图5-7 IP寄存器的格式寄存器的格式中断优先级寄存器中断优先级寄存器IP各位的含义各位的含义如下:如下:(1)PS串行口中断优先级控制位串行口中断优先级控制位 1:高优先级:高优先级0:低优先级:低优先级(2)PT1定时器定时器T1中断优先级控制位中断优先级控制位 1:高优先级:高优先级0:低优先级:低优先级22(3)PX1外部中断外部中断1中断优先级控制位中断优先级控制位1:高优先级:高优先级0:低优先级:低优先级(4)PT0定时器定时器T0中断优先级控制位中断优先级控制位1:高优先级:高优先级0:低优先级:低优先级(5)PX0外部中断外部中断0中断优先级控制位中
14、断优先级控制位1:高优先级:高优先级0:低优先级:低优先级中断优先级控制寄存器中断优先级控制寄存器IP用位操作指令或字节操作指令用位操作指令或字节操作指令可更新可更新IP的内容,以改变中断优先级。的内容,以改变中断优先级。AT89S51复位复位以后,以后,IP的内容为的内容为0,各个中断源,各个中断源均为低均为低优先级优先级中断。中断。23AT89S51的中断系统有的中断系统有两个不可寻址的两个不可寻址的“优先级激活优先级激活触发器触发器”。一个指示某高优先级一个指示某高优先级的中断正在执行,所有后来的中断的中断正在执行,所有后来的中断均被阻止;均被阻止;另一个触发器指示某低优先级另一个触发器
15、指示某低优先级的中断正在执行,的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请求。所有同级的中断都被阻止,但不阻断高优先级的中断请求。在同时收到在同时收到几个同优先级的中断请求几个同优先级的中断请求时,哪一个中断请时,哪一个中断请求能优先得到响应,求能优先得到响应,取决于内部的查询顺序。取决于内部的查询顺序。这相当于在这相当于在同一个优先级内,还同时存在另一个辅助优先级结构,其同一个优先级内,还同时存在另一个辅助优先级结构,其查询顺序见表查询顺序见表5-1。24表表5-1 同级中断的查询次序同级中断的查询次序由此可见,各中断源在同一个优先级的条件下,由此可见,各中断源在同一个优
16、先级的条件下,外部中外部中断断0的中断优先权的中断优先权最高最高,串行口中断串行口中断优先权优先权最低最低。25【例例5-25-2】 IP寄存器初始化,寄存器初始化,AT89S51的的两个外中断两个外中断请求请求为为高优先级高优先级,其他中断请求为低优先级其他中断请求为低优先级。(1)用位操作指令)用位操作指令SETB PX0SETB PX0;外中断;外中断0 0设置为高优先级设置为高优先级SETB PX1SETB PX1;外中断;外中断1 1设置为高优先级设置为高优先级CLR PSCLR PS;串行口设置为低优先级;串行口设置为低优先级CLR PT0CLR PT0;定时器;定时器/ /计数器
17、计数器T0T0为低优先级为低优先级CLR PT1CLR PT1;定时器;定时器/ /计数器计数器T1T1为低优先级为低优先级 (2)用字节操作指令)用字节操作指令MOV IPMOV IP,#05H#05H265.4 响应中断请求的条件响应中断请求的条件中断请求被响应,中断请求被响应,必须满足以下必要条件:必须满足以下必要条件:(1)总中断允许总中断允许开关接通,即开关接通,即IE寄存器中的中断总允许寄存器中的中断总允许位位EA=1。(2)该中断源)该中断源发出中断请求发出中断请求,即,即对应的中断请求标志为对应的中断请求标志为“1”。(3)该中断源的)该中断源的中断允许位中断允许位=1,即该中
18、断被允许。,即该中断被允许。(4)无同级无同级或或更高级中断更高级中断正在被服务。正在被服务。当当CPU查询到有效的中断请求时,在满足上述条件时,查询到有效的中断请求时,在满足上述条件时,紧接着就进行中断响应。紧接着就进行中断响应。27中断响应的过程:中断响应的过程:首先由硬件首先由硬件自动生成一条长调用指令自动生成一条长调用指令“LCALL addr16”。就是程序存储区中就是程序存储区中相应的中断入口地址相应的中断入口地址。例如,例如,对于外部中断对于外部中断1的响应,硬件自动生成的长调用的响应,硬件自动生成的长调用指令为指令为LCALL 0013H首先将程序计数器首先将程序计数器PC的内
19、容的内容压入堆栈压入堆栈以保护断点,再以保护断点,再将将中断入口地址装入中断入口地址装入PC,使程序转向响应中断请求的中,使程序转向响应中断请求的中断入口地址。断入口地址。各中断源服务程序的各中断源服务程序的入口地址入口地址,如表,如表5-2所示。所示。28 表表5-2 5-2 中断入口地址表中断入口地址表 两个中断入口间只相隔两个中断入口间只相隔8字节字节,难以安放一个完整的中,难以安放一个完整的中断服务程序。因此,断服务程序。因此,通常在中断入口地址处放置一条无条通常在中断入口地址处放置一条无条件转移指令件转移指令,使程序执行转向中断服务程序入口。,使程序执行转向中断服务程序入口。29中断
20、响应是有条件的,当遇到下列中断响应是有条件的,当遇到下列三种情况三种情况之一时,中之一时,中断响应被封锁:断响应被封锁:(1)CPU正在处理同级或更高优先级正在处理同级或更高优先级的中断。的中断。(2)所查询的机器周期)所查询的机器周期不是当前正在执行指令的最后不是当前正在执行指令的最后一个机器周期一个机器周期。只有在当前指令执行完毕后,才能进行中。只有在当前指令执行完毕后,才能进行中断响应,以确保当前断响应,以确保当前指令执行的完整性指令执行的完整性。(3)正在执行的指令是)正在执行的指令是RETI或是访问或是访问IE或或IP的指令。的指令。因为按照因为按照AT89S51中断系统的规定,在执
21、行完这些指令后,中断系统的规定,在执行完这些指令后,需要再执行完一条指令,才能响应新的中断请求。需要再执行完一条指令,才能响应新的中断请求。如果存在上述三种情况之一,如果存在上述三种情况之一,CPU将丢弃中断查询结将丢弃中断查询结果,不能对中断进行响应。果,不能对中断进行响应。305.5 外部中断的响应时间外部中断的响应时间 使用使用外部中断外部中断时,需考虑从时,需考虑从外部中断请求到转向中断入外部中断请求到转向中断入口地址所需的时间口地址所需的时间。 外部中断的外部中断的最短最短响应时间为响应时间为3个机器周期个机器周期。其中中断请。其中中断请求求标志位查询占标志位查询占1个机器周期个机器
22、周期,而这个机器周期,而这个机器周期恰好处于指恰好处于指令的最后一个机器周期。令的最后一个机器周期。在这个机器周期结束后,中断即在这个机器周期结束后,中断即被响应,被响应,CPU接着执行一条接着执行一条硬件子程序调用指令硬件子程序调用指令LCALL到到相中断服务程序入口,相中断服务程序入口,需要需要2个机器周期个机器周期。 外部中断响应的外部中断响应的最长最长时间为时间为8个机器周期。个机器周期。在在CPU进行进行中断标志查询时,刚好才开始执行中断标志查询时,刚好才开始执行RETI或访问或访问IE或或IP的指的指令,需执行完指令再继续执行一条指令后,才响应中断。令,需执行完指令再继续执行一条指
23、令后,才响应中断。31执行执行RETI或访问或访问IE或或IP的指令,最长需要的指令,最长需要2个机器周期个机器周期。接着再执行一条指令,最长指令(乘法指令接着再执行一条指令,最长指令(乘法指令MUL和除和除法指令法指令DIV)来算,也只有)来算,也只有4个个机器周期机器周期。再加上硬件子。再加上硬件子程序调用指令程序调用指令LCALL的执行,需要的执行,需要2个个机器周期机器周期,所以,所以,外部中断响应的最长时间为外部中断响应的最长时间为8个机器周期。个机器周期。如果已经在如果已经在处理同级或更高级中断处理同级或更高级中断,外部中断请求的响,外部中断请求的响应时间取决于正在执行的中断服务程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新单片机原理及应用陈燕第5章 中断系统幻灯片 最新 单片机 原理 应用 陈燕第 中断 系统 幻灯片
限制150内