《C51单片机中断》由会员分享,可在线阅读,更多相关《C51单片机中断(17页珍藏版)》请在金锄头文库上搜索。
1、C51C51单片机中断片机中断中断响应过程中断响应过程主主程程序序断断点点继继续续主主程程序序响应中断请求响应中断请求中中断断服服务务程程序序返回主程序返回主程序(1) (1) 在每条指令结束后在每条指令结束后, , 系统系统都自动检测中断请求信号都自动检测中断请求信号, , 如如果有中断请求,且果有中断请求,且CPUCPU处于开中处于开中断状态下断状态下, , 则响应中断。则响应中断。 (2) (2) 保护现场保护现场, , 在保护现场前在保护现场前, , 一般要关中断一般要关中断, , 以防止现场被以防止现场被破坏。保护现场一般是用堆栈破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器指
2、令将原程序中用到的寄存器推入堆栈。推入堆栈。3.3.中断响应过程流程图中断响应过程流程图1.中断响应过程中断响应过程 CPU处理事件的过程处理事件的过程-中断响应过程。中断响应过程。2.中断处理中断处理 中断处理中断处理CPU处理整个事件的过程处理整个事件的过程-中断处中断处理(服务)。理(服务)。3.3.中断系统中断系统 能够实现中断处理功能的部件。能够实现中断处理功能的部件。二二. . 中断相关概念中断相关概念4.4.中断源与中断请求中断源与中断请求 产生中断的请求源称中断源。中断源向产生中断的请求源称中断源。中断源向CPUCPU提出提出的处理请求称中断请求。的处理请求称中断请求。5.5.
3、中断返回中断返回 执行中断返回指令执行中断返回指令RETIRETI,从堆栈中弹出断点地,从堆栈中弹出断点地址到址到PCPC,继续执行被中断的程序。,继续执行被中断的程序。6.6.中断优点中断优点 提高单片机提高单片机CPUCPU的工作效率。的工作效率。 INT0INT0: :外部中断外部中断0 0,中断请求信号由,中断请求信号由P3.2P3.2输入。输入。 INT1INT1: :外部中断外部中断1 1,中断请求信号由,中断请求信号由P3.3P3.3输入。输入。 T0T0: :定时定时/ /计数器计数器0 0溢出中断溢出中断,对外部脉冲计数由,对外部脉冲计数由P3.4P3.4输入。输入。 T1T
4、1: :定时定时/ /计数器计数器1 1溢出中断溢出中断,对外部脉冲计数由,对外部脉冲计数由P3.5P3.5输入。输入。 串行中断串行中断: :包括包括串行接收中断串行接收中断RIRI和和串行发送中断串行发送中断TITI。二二. . 中断源和中断控制寄存器中断源和中断控制寄存器 中断源中断源 中断源是指能发出中断请求,引起中断的中断源是指能发出中断请求,引起中断的装置或事件。装置或事件。 80C51 80C51单片机的中断源共有单片机的中断源共有5 5个,其中个,其中2 2个为个为外部中断源,外部中断源,3 3个为内部中断源:个为内部中断源: 中断请求:定时和外中断控制寄存器中断请求:定时和外
5、中断控制寄存器TCONTCON; ; 串行控制寄存器串行控制寄存器SCONSCON; ; 中断允许控制寄存器中断允许控制寄存器IEIE; ; 中断优先级控制寄存器中断优先级控制寄存器IPIP。 中断控制寄存器中断控制寄存器 80C5180C51单片机中涉及中断控制的有单片机中涉及中断控制的有3 3个方面个方面4 4个个特殊功能寄存器特殊功能寄存器:INT0INT0、INT1INT1、T0T0、T1T1中断请求标志放在中断请求标志放在TCONTCON中中串行中断请求标志放在串行中断请求标志放在SCONSCON中。中。 中断请求控制寄存器中断请求控制寄存器TCONTCOND7D7D6D6D5D5D
6、4D4D3D3D2D2D1D1D0D0位名称位名称TF1TF1TF0TF0IE1IE1IT1IT1IE0IE0IT0IT0位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88H功能功能 T1T1 中断中断标志标志T0T0中断中断标志标志 中断中断标志标志 触发触发方式方式 中断中断标志标志触发触发方式方式TCONTCON的结构、位名称、位地址和功能如下:的结构、位名称、位地址和功能如下: TCON TCON位功能位功能: : TF1 TF1 T1T1溢出中断请求标志溢出中断请求标志 T1T1计数溢出后,计数溢出后,TF1=1TF1=1 TF
7、0TF0 T0T0溢出中断请求标志溢出中断请求标志 T0T0计数溢出后,计数溢出后,TF0=1TF0=1 IE1IE1 外中断中断请求标志外中断中断请求标志 当当P3.3P3.3引脚信号有效时,引脚信号有效时,IE1=1IE1=1 IE0IE0 外中断中断请求标志外中断中断请求标志 当当P3.2P3.2引脚信号有效时,引脚信号有效时,IE0=1IE0=1 IT1IT1 外中断触发方式控制位外中断触发方式控制位 IT1=1 IT1=1,边沿触发方式;,边沿触发方式; IT1=0 IT1=0,电平触发方式。,电平触发方式。 IT0IT0 外中断触发方式控制位外中断触发方式控制位 其意义和功能与其意
8、义和功能与IT1IT1相似。相似。串行控制寄存器串行控制寄存器SCONSCONTCONTCOND7D7 D6D6 D5D5D4D4 D3D3 D2D2D1D1D0D0位名称位名称 TITIRIRI位地址位地址 99H99H98H98H功能功能 串行发送串行发送中断标志中断标志串行接收串行接收中断标志中断标志 TITI 串行口发送中断请求标志串行口发送中断请求标志 RIRI 串行口接收中断请求标志串行口接收中断请求标志 80C5180C51对中断源的开放或关闭由中断允许控对中断源的开放或关闭由中断允许控制寄存器制寄存器IEIE控制。控制。 中断允许控制寄存器中断允许控制寄存器IEIEIEIE的结
9、构、位名称和位地址如下:的结构、位名称和位地址如下:IEIED7D7D6D6 D5D5D4D4D3D3D2D2D1D1D0D0位名称位名称EAEA ESESET1ET1EX1EX1ET0ET0EX0EX0位地址位地址AFHAFH ACHACHABHABHAAHAAHA9HA9HA8HA8H中断源中断源CPUCPU 串行口串行口T1T1T0T0 EAEA CPUCPU中断允许控制位中断允许控制位 EA=1 EA=1,CPUCPU开中;开中; EA=0 EA=0,CPUCPU关中,且屏蔽所有关中,且屏蔽所有5 5个中断源。个中断源。 EX0EX0 外中断外中断INT0INT0中断允许控制位中断允许
10、控制位 EX0=1 EX0=1,INT0INT0开中;开中;EX0=0EX0=0,INT0INT0关中。关中。 EX1EX1 外中断外中断INT1INT1中断允许控制位中断允许控制位 EX1=1 EX1=1,INT1INT1开中;开中;EX1=0EX1=0,INT1INT1关中。关中。 ET0ET0 定时定时/ /计数器计数器T0T0中断允许控制位中断允许控制位 ET0=1 ET0=1,T0T0开中;开中;ET0=0ET0=0,T0T0关中。关中。 ET1ET1 定时定时/ /计数器计数器T1T1中断允许控制位中断允许控制位 ET1=1 ET1=1,T1T1开中;开中;ET1=0ET1=0,T
11、1T1关中。关中。 ESES 串行口中断串行口中断( (包括串发、串收包括串发、串收) )允许控制位允许控制位 ES=1 ES=1,串行口开中;,串行口开中;ES=0ES=0,串行口关中。,串行口关中。说明说明: : 80C51 80C51对中断实行两级控制,总控制位是对中断实行两级控制,总控制位是EAEA,每一,每一中断源还有各自的控制位。首先要中断源还有各自的控制位。首先要EA=1EA=1,其次还要自,其次还要自身的控制位置身的控制位置“1”“1”。三三. 中断处理过程中断处理过程 中断处理过程大致可分为四步:中断处理过程大致可分为四步: 中断请求、中断响应、中断服务、中断返回中断请求、中
12、断响应、中断服务、中断返回 中断请求中断请求 中断源发出中断请求信号,相应的中断请求标志位中断源发出中断请求信号,相应的中断请求标志位( (在中断在中断允许控制寄存器允许控制寄存器IEIE中中) )置置“1”“1”。 中断响应中断响应 CPU CPU查询(检测)到某中断标志为查询(检测)到某中断标志为“1”“1”,在满足中断响应条,在满足中断响应条件下,响应中断。件下,响应中断。 中断响应条件中断响应条件: 该中断已经该中断已经“开中开中”; CPU CPU此时没有响应同级或更高级的中断;此时没有响应同级或更高级的中断; 当前正处于所执行指令的最后一个机器周期;当前正处于所执行指令的最后一个机
13、器周期; 正在执行的指令不是正在执行的指令不是RETIRETI或者是访向或者是访向IEIE、IPIP的指令,的指令, 否则必须再另外执行一条指令后才能响应。否则必须再另外执行一条指令后才能响应。 中断响应操作中断响应操作 CPU CPU响应中断后响应中断后, ,进行下列操作:进行下列操作: 保护断点地址;保护断点地址; 撤除该中断源的中断请求标志;撤除该中断源的中断请求标志; 关闭同级中断;关闭同级中断; 将相应中断的入口地址送入将相应中断的入口地址送入PCPC; 80C51 80C51五个中断入口地址五个中断入口地址:INT0INT0:0003H0003H; T0 T0:000BH000BH
14、;INT1INT1:0013H0013H T1 T1:001BH001BH;串行口:;串行口:0023H0023H 执行中断服务程序执行中断服务程序 中断服务程序应包含以下几部分:中断服务程序应包含以下几部分: 保护现场保护现场 执行中断服务程序主体,完成相应操作执行中断服务程序主体,完成相应操作 恢复现场恢复现场 中断返回中断返回 在中断服务程序最后,必须安排一条中断返回指令在中断服务程序最后,必须安排一条中断返回指令RETIRETI,当,当CPUCPU执行执行RETIRETI指令后,自动完成下列操作:指令后,自动完成下列操作: 恢复断点地址。恢复断点地址。 开放同级中断,以便允许同级中断源
15、请求中断。开放同级中断,以便允许同级中断源请求中断。 四四. . 中断响应等待时间中断响应等待时间 若排除若排除CPUCPU正在响应同级或更高级的中断情况,中断响应等正在响应同级或更高级的中断情况,中断响应等待时间为待时间为: : 3 38 8个机器周期个机器周期五五. . 中断请求的撤除中断请求的撤除 中断源发出中断请求,相应中断请求标志置中断源发出中断请求,相应中断请求标志置“1”“1”。 CPU CPU响响应中断后,必须清除中断请求应中断后,必须清除中断请求“1”“1”标志。否则中断响应返回后,标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。将再次进入该中断,引起死循环出错。
16、 对定时对定时/ /计数器计数器T0T0、T1T1中断,外中断边沿触发方式,中断,外中断边沿触发方式,CPUCPU响响应中断时就用硬件自动清除了相应的中断请求标志。应中断时就用硬件自动清除了相应的中断请求标志。 对外中断电平触发方式,需要采取软硬结合的方法消除后对外中断电平触发方式,需要采取软硬结合的方法消除后果。果。 对串行口中断,用户应在串行中断服务程序中用软件清除对串行口中断,用户应在串行中断服务程序中用软件清除TITI或或RIRI。六六. . 中断优先控制和中断嵌套中断优先控制和中断嵌套 中断优先控制中断优先控制 80C51 80C51中断优先控制首先根据中断优先级,此外还规定了同中断
17、优先控制首先根据中断优先级,此外还规定了同一中断优先级之间的中断优先权。其从高到低的顺序为:一中断优先级之间的中断优先权。其从高到低的顺序为: INT0 INT0、INT1INT1、T0T0、T1T1、串行口。、串行口。 中断优先级是可编程的中断优先级是可编程的,而,而中断优先权是固定的中断优先权是固定的,不能设,不能设置,仅用于同级中断源同时请求中断时的优先次序。置,仅用于同级中断源同时请求中断时的优先次序。 80C51 80C51中断优先控制的基本原则:中断优先控制的基本原则: 高优先级中断可以中断正在响应的低优先级中断,反之则高优先级中断可以中断正在响应的低优先级中断,反之则不能。不能。
18、 同优先级中断不能互相中断。同优先级中断不能互相中断。 同一中断优先级中,若有多个中断源同时请求中断,同一中断优先级中,若有多个中断源同时请求中断,CPUCPU将先响应优先权高的中断,后响应优先权低的中断。将先响应优先权高的中断,后响应优先权低的中断。 中断嵌套中断嵌套 当当CPUCPU正在执行某个中断服务程序时,如果发生更高一正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,级的中断源请求中断,CPUCPU可以可以“中断中断”正在执行的低优先级中正在执行的低优先级中断断,转而响应更高一级的中断,这就是中断嵌套。转而响应更高一级的中断,这就是中断嵌套。 中断嵌套只能高优先级中断嵌套只能高优先级“中断中断”低优先级,低优先级不能低优先级,低优先级不能“中断中断”高优先级,同一优先级也不能相互高优先级,同一优先级也不能相互“中断中断”。 中断嵌套结构类似与中断嵌套结构类似与调用子程序嵌套,调用子程序嵌套,不同不同的是的是: 子程序嵌套是在程序子程序嵌套是在程序中事先按排好的;中断中事先按排好的;中断嵌套是随机发生的。嵌套是随机发生的。 子程序嵌套无次序限子程序嵌套无次序限制,中断嵌套只允许高制,中断嵌套只允许高优先级优先级“中断中断”低优先级。低优先级。结束结束