教学目标通过本章教学,要求达到以下目标:1.熟记AT89C515个中断源及其中断入口地址。2.熟悉TCON、SCON、IE、IP的结构、控制作用和设置方法。3.理解AT89C51中断响应过程。4.了解中断响应等待时间。5.理解中断请求撤除情况和应对措施。6.熟悉中断优先控制的方法。7.掌握中断应用程序的编制方法。5.1中断概述1.中断概念CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,这一过程叫做中断。中断概念类比看电视中断处理中断请求实际生活中断返回电话铃响接听电话看电视主程序计算机事件发生事件处理主程序图5.1中断概念示意图主程序A响应返回断点RETI……中断服务程序B图5.2中断过程示意图2.为什么要设中断中断解决了快速主机与慢速I/O设备的数据传送,还具有如下优点:(1)分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;(2)实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;(3)可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。3.中断源及其优先级中断源是指能发出中断请求,引起中断的装置或事件。一个单片机系统通常有多个中断源,而单片机CPU在某一时刻只能响应一个中断源的中断请求,当多个中断源同时向CPU发出中断请求时,则必须按照“优先级别”进行排队,CPU首先选定其中中断级别最高的中断源为其服务,然后按由高到低的排队顺序逐一服务,完毕后返回断点地址,继续执行主程序。这就是“中断优先级”的概念。4.中断源的管理单片机系统中有一个专门用来管理中断源的机构,它就是中断控制寄存器,我们可以通过对其编程来设置中断源的优先级别以及是否允许某个中断源的中断请求等。5.2AT89C51中断系统的结构5.2.1中断源及中断系统构成1.中断源:(1)INT0:外部中断0;(2)INT1:外部中断1;(3)T0:定时/计数器0溢出中断;(4)T1:定时/计数器1溢出中断;(5)串行中断(包括串行接收中断RI和串行发送中断TI)。5.2.1中断源及中断系统构成IE0EX0TF0IE1TF1TIESET1EX1ET0RIIP硬件查询高级中断请求低级中断请求中断入口地址中断源INT0INT1中断入口地址中断源10IEPX0PSPT1PX1PT0111111111100000EA1≥1SCON11T0T1RXTXIT0IT100TCON图5.3AT89C51中断系统结构示意图5.2.2中断标志与中断控制1.中断标志(1)定时器控制寄存器TCONTCON为8位特殊功能寄存器,其结构、位名称、位地址及其功能如表5.1所示。表5.1TCON的结构、位名称、位地址和功能位编码位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能T1中断标志位T1启停控制位T0中断标志位TCON.0/INT1中断标志位/INT0中断标志位/INT1触发方式位/INT0触发方式位T0启停控制位TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7表5.1TCON的结构、位名称、位地址和功能位编码位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H状态TCON.0TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7外部中断0采用电平触发0外部中断0采用边沿触发111外部中断1采用边沿触发0外部中断1采用电平触发0000单片机复位时或无中断请求发生时,这些位均为0外部中断1发出中断请求时外部中断0发出中断请求时111T0发出中断请求时T1发出中断请求时单片机复位或T0停止计数启动T0开始计数单片机复位或T1停止计数启动T1开始计数0011(2)SCON的中断标志串行控制寄存器SCON的结构、位名称、位地址及其功能如表5.2所示。其中只有TI和RI两位用来表示串行口中断标志位。表5.2SCON的结构、位名称、位地址和功能位编码位名称SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能SCON.0串行发送中断标志位串行接收中断标志位SCON.1SCON.2SCON.3SCON.4SCON.5SCON.6SCON.71)TI:为串行口发送中断标志位,位地址为99H。在串行口发送完一组数据时,TI由硬件自动置位(TI=1),请求中断,当CPU响应中断进入中断服务程序后,TI状态不能被硬件自动清除,而必须在中断程序中由软件来清除。2)RI:为串行口接收中断标志位,位地址为98H。在串行口接收完一组串行数据时,RI由硬件自动置位(RI=1),请求中断,当CPU响应中断进入中断服务程序后,也必须由软件来清除RI标志。1)中断允许控制寄存器IE2.中断控制AT89C51设有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器IE各位的状态进行两级控制的。所谓两级控制是指所有中断允许的总控制位和各中断源允许的单独控制位,每位状态靠软件来设定。中断允许控制寄存器IE各位的定义及其功能等如表5.3所示。表5.3IE的结构、位名称、位地址和功能位编码IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0位名称EA—ET2ESET1EX1ET0EX0位地址AFH—ADHACHABHAAHA9HA8H功能中断总允许控制位定时器T1的溢出中断允许控制位外部中断1的中断允许控制位定时器T0的溢出中断允许控制位外部中断0的中断允许控制位串行口中断允许控制位定时器T2的溢出中断允许控制位表5.3IE的结构、位名称、位地址和功能位编码IE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0位名称EA—ET2ESET1EX1ET0EX0位地址AFH—ADHACHABHAAHA9HA8H功能禁止所有中断开通外部中断/INT0禁止其他中断0000000开通总中断1所有中断仍被禁止000001010010开通T0和串行口中断禁止其他中断111111开通所有中断(1)EA(IE.7):总允许控制位,位地址为AFH。EA状态可由软件设定,若EA=0,禁止AT89C51所有中断源的中断请求;若EA=1,则总控制被开放,但每个中断源是允许还是被禁止CPU响应,还受控于中断源的各自中断允许控制位的状态。(2)ET2(IE.5):定时器T2溢出中断允许控制位,位地址是ADH。(3)ES(IE.4):串行口中断允许控制位,位地址是ACH。(4)ET1(IE.3):定时器T1的溢出中断允许控制位,位地址为ABH。(5)EX1(IE.2):外部中断的中断请求允许控制位,位地址是AAH。(6)ET0(IE.1):定时器T0的溢出中断允许控制位,位地址是A9H。(7) EX0(IE.0):外部中断的中断请求允许控制位,位地址是A8H。1INT0INT2)中断优先级控制寄存器IPAT89C51的中断源优先级是由中断优先寄存器IP来进行控制的。其5个中断源划分为两个中断优先级:高优先级和低优先级。每一个中断源都可以通过IP寄存器中的相应位设置成高(优先)级中断或低(优先)级中断。相应位置“1”,定义为高级中断,相应位清“0”,定义为低级中断,因此,CPU对所有中断请求只能实现两级中断嵌套。IP寄存器的结构、位名称和位地址如表5.4所示。表5.4IP的结构、位名称、位地址和功能位编码IP.7IP.6IP.5IP.4IP.3IP.2IP.1IP.0位名称——PT2PSPT1PX1PT0PX0位地址——BDHBCHBBHBAHB9HB8H功能保留位保留位定时器T2中断优先级控制位串行口中断优先级控制位定时器T1中断优先级控制位定时器T0中断优先级控制位/INT0中断优先级控制位/INT1中断优先级控制位111111高级中断(同为1时亦称其为同级中断)低级中断(同为0时亦称其为同级中断)000000如果同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接受哪一个请求,表5.5列出了同(一优先)级中断源的内部查询顺序。中断源中断标志优先查询顺序外部中断0定时器T0中断外部中断1定时器T1中断串行口中断IE0TF0IE1TF1RI+TI高↓↓↓低表5.5中断源的内部查询顺序中断优先级三条原则:(1)同时收到几个中断时,响应优先级别最高的;(2)中断过程不能被同级、低优先级所中断;(3)低优先级中断服务,能被高优先级中断。