CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序,叫做中断。⒉为什么要设置中断?⑴提高CPU工作效率⑵具有实时处理功能⑶具有故障处理功能⑷实现分时操作一.中断概述⒈什么叫中断?中断响应过程主程序断点继续主程序响应中断请求中断服务程序返回主程序(1)在每条指令结束后,系统都自动检测中断请求信号,如果有中断请求,且CPU处于开中断状态下,则响应中断。(2)保护现场,在保护现场前,一般要关中断,以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。3.中断响应过程流程图1.中断响应过程CPU处理事件的过程--中断响应过程。2.中断处理中断处理CPU处理整个事件的过程--中断处理(服务)。3.中断系统能够实现中断处理功能的部件。二.中断相关概念4.中断源与中断请求产生中断的请求源称中断源。中断源向CPU提出的处理请求称中断请求。5.中断返回执行中断返回指令RETI,从堆栈中弹出断点地址到PC,继续执行被中断的程序。6.中断优点提高单片机CPU的工作效率。⑴INT0:外部中断0,中断请求信号由P3.2输入。⑵INT1:外部中断1,中断请求信号由P3.3输入。⑶T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。⑷T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。⑸串行中断:包括串行接收中断RI和串行发送中断TI。二.中断源和中断控制寄存器⒈中断源中断源是指能发出中断请求,引起中断的装置或事件。80C51单片机的中断源共有5个,其中2个为外部中断源,3个为内部中断源:①中断请求:定时和外中断控制寄存器TCON;串行控制寄存器SCON;②中断允许控制寄存器IE;③中断优先级控制寄存器IP。⒉中断控制寄存器80C51单片机中涉及中断控制的有3个方面4个特殊功能寄存器:INT0、INT1、T0、T1中断请求标志放在TCON中串行中断请求标志放在SCON中。⑴中断请求控制寄存器TCOND7D6D5D4D3D2D1D0位名称TF1—TF0—IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能T1中断标志—T0中断标志—中断标志触发方式中断标志触发方式TCON的结构、位名称、位地址和功能如下:TCON位功能:①TF1——T1溢出中断请求标志T1计数溢出后,TF1=1②TF0——T0溢出中断请求标志T0计数溢出后,TF0=1③IE1——外中断中断请求标志当P3.3引脚信号有效时,IE1=1④IE0——外中断中断请求标志当P3.2引脚信号有效时,IE0=1⑤IT1——外中断触发方式控制位IT1=1,边沿触发方式;IT1=0,电平触发方式。⑥IT0——外中断触发方式控制位其意义和功能与IT1相似。串行控制寄存器SCONTCOND7D6D5D4D3D2D1D0位名称——————TIRI位地址——————99H98H功能——————串行发送中断标志串行接收中断标志①TI——串行口发送中断请求标志②RI——串行口接收中断请求标志80C51对中断源的开放或关闭由中断允许控制寄存器IE控制。⑵中断允许控制寄存器IEIE的结构、位名称和位地址如下:IED7D6D5D4D3D2D1D0位名称EA——ESET1EX1ET0EX0位地址AFH——ACHABHAAHA9HA8H中断源CPU——串行口T1T0①EA——CPU中断允许控制位EA=1,CPU开中;EA=0,CPU关中,且屏蔽所有5个中断源。②EX0——外中断INT0中断允许控制位EX0=1,INT0开中;EX0=0,INT0关中。③EX1——外中断INT1中断允许控制位EX1=1,INT1开中;EX1=0,INT1关中。④ET0——定时/计数器T0中断允许控制位ET0=1,T0开中;ET0=0,T0关中。⑤ET1——定时/计数器T1中断允许控制位ET1=1,T1开中;ET1=0,T1关中。⑥ES——串行口中断(包括串发、串收)允许控制位ES=1,串行口开中;ES=0,串行口关中。说明:80C51对中断实行两级控制,总控制位是EA,每一中断源还有各自的控制位。首先要EA=1,其次还要自身的控制位置“1”。三.中断处理过程中断处理过程大致可分为四步:中断请求、中断响应、中断服务、中断返回⒈中断请求中断源发出中断请求信号,相应的中断请求标志位(在中断允许控制寄存器IE中)置“1”。⒉中断响应CPU查询(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。⑴中断响应条件:①该中断已经“开中”;②CPU此时没有响应同级或更高级的中断;③当前正处于所执行指令的最后一个机器周期;④正在执行的指令不是RETI或者是访向IE、IP的指令,否则必须再另外执行一条指令后才能响应。⑵中断响应操作CPU响应中断后,进行下列操作:①保护断点地址;②撤除该中断源的中断请求标志;③关闭同级中断;④将相应中断的入口地址送入PC;80C51五个中断入口地址:INT0:0003H;T0:000BH;INT1:0013HT1:001BH;串行口:0023H⒊执行中断服务程序中断服务程序应包含以下几部分:⑴保护现场⑵执行中断服务程序主体,完成相应操作⑶恢复现场⒋中断返回在中断服务程序最后,必须安排一条中断返回指令RETI,当CPU执行RETI指令后,自动完成下列操作:⑴恢复断点地址。⑵开放同级中断,以便允许同级中断源请求中断。四.中断响应等待时间若排除CPU正在响应同级或更高级的中断情况,中断响应等待时间为:3~8个机器周期五.中断请求的撤除中断源发出中断请求,相应中断请求标志置“1”。CPU响应中断后,必须清除中断请求“1”标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。⑴对定时/计数器T0、T1中断,外中断边沿触发方式,CPU响应中断时就用硬件自动清除了相应的中断请求标志。⑵对外中断电平触发方式,需要采取软硬结合的方法消除后果。⑶对串行口中断,用户应在串行中断服务程序中用软件清除TI或RI。六.中断优先控制和中断嵌套⒈中断优先控制80C51中断优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。其从高到低的顺序为:INT0、INT1、T0、T1、串行口。中断优先级是可编程的,而中断优先权是固定的,不能设置,仅用于同级中断源同时请求中断时的优先次序。80C51中断优先控制的基本原则:①高优先级中断可以中断正在响应的低优先级中断,反之则不能。②同优先级中断不能互相中断。③同一中断优先级中,若有多个中断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。⒉中断嵌套当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。中断嵌套结构类似与调用子程序嵌套,不同的是:①子程序嵌套是在程序中事先按排好的;中断嵌套是随机发生的。②子程序嵌套无次序限制,中断嵌套只允许高优先级“中断”低优先级。