《单片机c51的中断系统.ppt》由会员分享,可在线阅读,更多相关《单片机c51的中断系统.ppt(63页珍藏版)》请在优知文库上搜索。
1、1第第5 5章章 单片机的单片机的 中断系统中断系统12 2第第5章章 目录目录5.1 AT89S51中断技术概述中断技术概述5.2 AT89S51中断系统结构中断系统结构 5.2.1 中断请求源 5.2.2 中断请求标志寄存器5.3 中断允许与中断优先级的控制中断允许与中断优先级的控制 5.3.1 中断允许寄存器IE 5.3.2 中断优先级寄存器IP5.4 响应中断请求的条件响应中断请求的条件5.5 外部中断的响应时间外部中断的响应时间35.6 外部中断的触发方式选择外部中断的触发方式选择 5.6.1 电平触发方式 5.6.2 跳沿触发方式5.7 中断请求的撤销中断请求的撤销5.8 中断服务
2、子程序的设计中断服务子程序的设计5.9 多外部中断源系统设计多外部中断源系统设计4内容概要内容概要n介绍片内功能部件中断系统的介绍片内功能部件中断系统的硬件结构硬件结构和和工作原理工作原理。n掌握与中断系统掌握与中断系统有关的特殊功能寄存器有关的特殊功能寄存器以及中断系统的以及中断系统的应用特性。应用特性。n应能熟练地进行中断系统的应能熟练地进行中断系统的初始化编程初始化编程以及以及中断服务子中断服务子程序的设计程序的设计。55.1 AT89S515.1 AT89S51中断技术概述中断技术概述 中断技术主要用于中断技术主要用于实时监测与控制实时监测与控制,要求单片机,要求单片机能及能及时地响应
3、中断请求源提出的服务请求时地响应中断请求源提出的服务请求,并作出快速响应、,并作出快速响应、及时处理。这是由片内的中断系统来实现的。及时处理。这是由片内的中断系统来实现的。 当中断请求源当中断请求源发出中断请求发出中断请求时,如果中断请求被允许,时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。理程序处理中断服务请求。 中断服务处理程序处理完中断服务请求后,再回到原中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。来被中止的程序之处(断点),继续执行
4、被中断的主程序。 图图5-15-1为整个中断响应和处理过程。为整个中断响应和处理过程。56 6图图5-1 中断响应和处理过程中断响应和处理过程7如果单片机没有中断系统如果单片机没有中断系统,单片机的大量时间可能会浪,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。费在查询是否有服务请求发生的定时查询操作上。采用中断技术完全采用中断技术完全消除了单片机在查询方式中的等待现消除了单片机在查询方式中的等待现象象,大大地提高了单片机的,大大地提高了单片机的工作效率工作效率和和实时性实时性。5.2 AT89S515.2 AT89S51中断系统结构中断系统结构 中断系统结构图如中断系统
5、结构图如图图5-25-2所示。所示。中断系统有中断系统有5 5个个中断请求源(简称中断源),中断请求源(简称中断源),两个中断优两个中断优先级先级,可实现,可实现两级中断服务程序嵌套两级中断服务程序嵌套。每一中断源可用软件独立控制为每一中断源可用软件独立控制为允许中断允许中断或或关中断关中断状态,状态,中断优先级中断优先级均可用软件来设置。均可用软件来设置。785.2.1 中断请求源中断请求源由图5-2可见,AT89S51中断系统共有5个中断请求源:(1) 外部中断请求0,中断请求信号由 引脚输入,中断请求标志为IE0。(2) 外部中断请求1,中断请求信号由 引脚输入,中断请求标志为IE1。(
6、3)定时器定时器/计数器计数器T0计数溢出发出的中断请求,中断请求标志为TF0。(4)定时器定时器/计数器计数器T1计数溢出发出的中断请求,中断请求标志为TF1。(5)串行口串行口中断请求,中断请求标志为发送中断TI或接收中断RI。80INT1INT0INT1INT9 9图图5-2 5-2 AT89S51AT89S51的中断系统结构示意图的中断系统结构示意图105.2.2 中断请求标志寄存器中断请求标志寄存器5个中断请求源的中断请求标志中断请求标志分别由TCON和SCON的相应位锁存。1. TCON寄存器寄存器为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。特殊功能寄存器TCON的格
7、式如图图5-3所示。10图图5-35-3 特殊功能寄存器特殊功能寄存器TCONTCON的格式的格式11TCON各标志位功能如下:各标志位功能如下:(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为跳沿触发还是电平触发。1112IT1=0
8、,电平触发,电平触发方式,引脚 上低电平有效,并把IE1置“1”。转向中断服务程序时,由硬件自动把IE1清“0”。IT1=1,跳沿触发跳沿触发方式,加到引脚 上的外部中断请求输入信号电平从高到低的负跳变有效负跳变有效,并把IE1置“1”。转向中断服务程序时,由硬件自动自动把IE1清“0”。(6)IT0选择外部中断请求0为跳沿触发方式还是电平触发方式,其意义与IT1类似。AT89S51复位复位后,TCON被清被清“0”,5个中断源的中断请求标志均为0。TR1(D6位)、TR0(D4位)这2位与中断系统无关与中断系统无关,将在第6章定时器/计数器中介绍。12132. SCON寄存器寄存器串行口控制
9、寄存器,字节地址为98H,可位寻址可位寻址。低二位锁存串行口的发送中断和接收中断的中断请求标志TI和RI,格式如图图5-4所示所示。 图图5-4 SCON中的中断请求标志位中的中断请求标志位各标志位的功能: (1)TI串行口的发送中断请求标志位。每发送完一帧串行数据后,TI自动置“1”。TI标志必须由软件清必须由软件清“0”。1314(2)RI串行口接收中断请求标志位。串行口接收完一个串行口接收中断请求标志位。串行口接收完一个串行数据帧,硬件自动使串行数据帧,硬件自动使RI中断请求标志置中断请求标志置“1”。必须在中。必须在中断服务程序中用指令对断服务程序中用指令对RI清清“0”。 5.3 中
10、断允许与中断优先级的控制中断允许与中断优先级的控制中断允许中断允许控制由中断允许寄存器控制由中断允许寄存器IE控制。控制。中断优先级中断优先级控制由中断优先级寄存器控制由中断优先级寄存器IP控制。控制。5.3.1 中断允许寄存器中断允许寄存器IEAT89S51的对各中断源的开放或屏蔽,是由中断允许寄存的对各中断源的开放或屏蔽,是由中断允许寄存器器IE控制的。控制的。IE字节地址为字节地址为A8H,可位寻址可位寻址,格式如,格式如图图5-5所示所示。1415 图5-5 中断允许寄存器IE的格式IE对中断的开放和关闭实现两级控制两级控制。有一个总的开关中断控制位EA(IE.7位),EA=0时,所有
11、的中断请求被屏蔽;EA=1时,开放中断,但5个中断源的中断请求是否允许,还要由IE中的低中的低5位位所对应的对应的5个中断请求允许控制位个中断请求允许控制位的状态来决定(图5-5)。1516IE中各位功能如下:中各位功能如下:(1)EA中断允许总开关控制位。中断允许总开关控制位。EA=0,所有的中断请求被屏蔽。,所有的中断请求被屏蔽。EA=1,所有的中断请求被开放。,所有的中断请求被开放。(2)ES串行口中断允许位。串行口中断允许位。ES=0,禁止串行口中断。,禁止串行口中断。ES=1,允许串行口中断。,允许串行口中断。(3)ET1定时器定时器/计数器计数器T1的溢出中断允许位。的溢出中断允许
12、位。ET1=0,禁止,禁止T1溢出中断。溢出中断。ET1=1,允许,允许T1溢出中断。溢出中断。(4)EX1外部中断外部中断1中断允许位。中断允许位。1617EX1=0,禁止外部中断,禁止外部中断1中断。中断。EX1=1,允许外部中断,允许外部中断1中断。中断。(5)ET0定时器定时器/计数器计数器T0的溢出中断允许位。的溢出中断允许位。ET0=0,禁止,禁止T0溢出中断。溢出中断。ET0=1,允许,允许T0溢出中断。溢出中断。(6)EX0外部中断外部中断0中断允许位。中断允许位。EX0=0,禁止外部中断,禁止外部中断0中断。中断。EX0=1,允许外部中断,允许外部中断0中断。中断。18AT8
13、9S51复位以后,复位以后,IE被清被清“0”,所有中断请求被禁止。,所有中断请求被禁止。IE中与各个中断源相应的位可用指令置中与各个中断源相应的位可用指令置“1”或清或清“0”。若使某一个中断源被允许中断若使某一个中断源被允许中断,除了,除了IE相应的位被置相应的位被置“1”外,还必须使外,还必须使EA位置位置“1”。改变改变IE的内容的内容,可由,可由位操作指令位操作指令来实现(即来实现(即SETB bit;CLR bit),也可用),也可用字节操作指令字节操作指令实现。实现。1819【例例5-1】 若允许片内2个定时器/计数器中断,并禁止其他中断源的中断请求,请编写设置IE的相应程序段。
14、(1)用位操作指令)用位操作指令CLRES;禁止串行口中断;禁止串行口中断 CLREX0;禁止外部中断;禁止外部中断0中断中断CLREX1;禁止外部中断;禁止外部中断1中断中断SETBET0;允许定时器;允许定时器/计数器计数器T0中断中断SETBET1;允许定时器;允许定时器/计数器计数器T1中断中断SETBEA ;总中断开关位开放;总中断开关位开放(2)用字节操作指令)用字节操作指令MOV IE,#8AH上述两段程序对IE的设置是相同的。19205.3.2 中断优先级寄存器中断优先级寄存器IPAT89S51的中断请求源有两个中断优先级两个中断优先级,由软件分别设置为高高优先级中断优先级中断
15、或低低优先级中断优先级中断,可实现:两级中断嵌套两级中断嵌套AT89S51正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。两级中断嵌套两级中断嵌套的过程过程如图图5-6所示。202121图5-6 两级中断嵌套的过程22各中断源的中断优先级关系,可归纳为两条基本规则两条基本规则:(1)低优先级可被高优先级中断,高优先级不能低优)低优先级可被高优先级中断,高优先级不能低优先级中断。先级中断。如果某一中断源被设置为高优先级中断,则不能被任何其他的中断源的中断请求所中断。(2)任何一种中断中断一旦得到响应,不会再被它的同级不会再被它的
16、同级中断源所中断中断源所中断。中断优先级寄存器IP,其字节地址为字节地址为B8H,可位寻址。只要用程序改变其内容,可进行各中断源中断优先级的设中断优先级的设置置,IP寄存器的格式如图5-7所示。2223 图5-7 IP寄存器的格式中断优先级寄存器IP各位的含义各位的含义如下:(1)PS串行口中断优先级控制位 1:高优先级0:低优先级(2)PT1定时器T1中断优先级控制位 1:高优先级0:低优先级2324(3)PX1外部中断1中断优先级控制位1:高优先级0:低优先级(4)PT0定时器T0中断优先级控制位1:高优先级0:低优先级(5)PX0外部中断0中断优先级控制位1:高优先级0:低优先级中断优先级控制寄存器IP用位操作指令或字节操作指令可更新IP的内容,以改变中断优先级。AT89S51复位复位以后,IP的内容为0,各个中断源均为低均为低优先级优先级中断。2425AT89S51的中断系统有的中断系统有两个不可寻址的两个不可寻址的“优先级激活优先级激活触发器。触发器。一个指示某高优先级一个指示某高优先级的中断正在执行,所有后来的中断的中断正在执行,所有后来的中断均被阻止;均被阻止;另一个触发