8051单片机的中断系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章8051单片机的中断系统

6.1 微型计算机中断技术概述

6.1.1 中断的概念

1.中断及中断技术的特点计算机在执行某一程序的过程中,由于计算机系统之外的某种原因,有必要尽快地中止当前程序的运行,而去执行相应的处理程序,待处理程序结束后,再返回来继续执行被中止了的那个程序。这种某一程序在执行过程中由于外界的原因,中间被打断的情况就称为“中断”。“中断”类似于程序设计中的调用子程序,区别在于这些外部原因的发生是随机的,而子程序调用是程序设计人员事先安排好的。

能够打断当前程序的外部事件,被称为中断源。中断属于一种对事件的实时处理过程,中断源可能随时迫使CPU停止当前正在执行的工作,转而去处理中断源指示的另一项工作,待后者完成后,再返回原来工作的“断点”处,继续原来的工作。

一个计算机一般具有多个中断源,这就存在中断优先权和中断嵌套的问题。例如,一个人在读书时如果接了电话并且正在通话时,又有人敲门,由于敲门的优先权更高,这个人又“响应”这个敲门的中断申请,暂停通话,去与敲门人交谈;交谈完毕,接着原来的话茬继续通话,直到通话完毕,再返回书桌前继续看书。这里,敲门的中断源就比电话的中断源优先权高,因此,出现了中断嵌套,即高级优先权的中断源可以打断低级中断优先权的中断服务程序,而去执行高级中断源的中断处理,直至该处理程序完毕,再返回接着执行低级中断源的中断服务程序,直至这个处理程序完毕,最后返回主程序。

计算机响应中断的条件是,计算机的CPU是处于开中断状态的,同时只能在一条指令执行完毕后才能响应中断请求。

2.中断功能利用中断技术,使计算机能够完成更多的功能。

(1)可实现高速CPU;

(2) 可实现实时处理;

(3) 实现故障的紧急处理;

(4)便于人机联系。

总之,随着计算机硬件软件技术的发展,中断技术也在不断丰富,所以中断功能已经成为评价计算机系统的整体性能的一项重要指标。

6.1.2中断处理过程

CPU响应中断源的中断请求后,就转去进行中断处理。不同的中断源,其中断处理内容可能不同,但其主要内容及顺序都如图6-1所示。

图6-1 中断处理流程

从图6-1可以看到中断处理的过程,下面做几点补充说明:

1. 保护现场与恢复现场为了使中断服务程序的执行不破坏CPU中寄存器或存储单元的原有内容,以免在中断返回后影响主程序的运行,因此,要把CPU中有关寄存器或存储单元的内容推入堆栈中保护起来,这就是所谓保护现场。而在中断服务程序结束时和返回主程序之前,则需要把保护起来的那些现场内容从堆栈中弹出,以便恢复寄存器或存储单元原有的内容,这就是恢复现场。注意一定要按先进后出的原则进行推入和弹出堆栈。

2. 开中断与关中断在中断处理正在进行的过程中,可能又有新的中断请求到来,一般说来,为防止这种高于当前优先级的中断请求打断当前的中断服务程序的执行,CPU响应中断后应关断(很多CPU是自动关中断的,但8051单片机不是自动关闭的,需要用软件指令关闭),而在编写保护现场和恢复现场的程序时,也应在关闭中断后进行,以免使保护现场和恢复现场的工作不被干扰,这样,就可屏蔽其他中断请求了。如果要想响应更高级的中断源的中断请求.那么应在现场保护之后,将CPU处于开中断的状态,这样就使系统具有中断嵌套的功能。对于不同的CPU, 开中断和关中断的方法有所不同,有关8051单片机的开中断和关中断的办法将在下节叙述。

3.中断服务中断服务是中断处理程序的主要内容,将根据中断功能去编写,以满足用户的需要。复杂的中断服务程序也可以用子程序形式。

4.中断返回中断返回是把当前运行的中断服务程序转回到被中断请求中断的主程序上来。中断返回指令与子程序返回不同,用专用的中断返回指令RETI来完成。因此,这条指令是中断服务程序的最后一条指令;另外,开中断后,必须运行一条指令后才有响应中断的可能性,所以,后面紧跟一条RETI指令,在执行完RETI指令前不可能响应新的中断申请。

6.2 8051单片机的中断控制

由于单片机的结构和功能有限,中断系统不算复杂。但从实际应用的角度来看,8051单片机的中断系统已足够。下面针对8051单片机的中断系统做详细介绍。

6.2.1中断源与中断标志位

8051型单片机提供了5个中断源:两个外部中断源和三个内部中断源,8052增加了一个中断源——定时器2中断。每一个中断源都有一个中断申请标志,但串行口占两个中断标志位,一共六个中断标志,表6-1给出了它们的名称。

表6-1 中断源和中断申请标志

(1)外部中断源,指可以向单片机提出中断申请的外部原因引起的,共有两个中断源:外部中断0和外部中断1,它们的请求信号分别由引脚0

INT(P3.2)和1

INT(P3.3 )接入。

外部中断的信号被称为外部事件,这个信号究竟是低电平有效还是下降沿有效,可以被软件设定,称之为“外部中断触发方式选择”。

(2)内部中断源,有定时器中断和串行中断两种。定时器中断是为满足定时或计数的需要而设置的。在8051单片机内部有两个定时器/计数器,当其内部计数器溢出时,即表明定时

时间已到或计数值已满,这时就以计数溢出作为中断请求去置位一个标志位,作为单片机接收中断请求的标志。这个中断请求是在单片机内部发生的,因此,无需从单片机芯片的外部引入输入端。

串行中断是为串行数据传送的需要而设计的,每当串行口接收和发送完一帧串行数据时,就产生一个中断请求。至于中断申请标志位,是在两个特殊功能寄存器TCON和SCON 中定义了相应位作为中断标志位;当其中某位为0时,相应的中断源没有提出中断申请,当其中某位变成1时,表示相应中断源已经提出了中断申请。对于这些申请何时予以响应,由硬件和软件共同确定。所有的中断申请标志位都可以由软件置位或清0,其效果与硬件置位(置1)或清0标志位是相同的。这就是说,可以由软件产生或者撤销一次中断申请。

8052单片机增加了定时器2,当定时/计数器方式的计数器(TH2,TL2)计数满后溢出,置位中断请求标志位TF2(T2CON.7),向CPU申请中断处理;当外部输入端口T2EX(P1.1)发生从1→0下降沿时,也将置位中断请求标志位EXF2(T2CON.6),向CPU申请中断处理。

6.2.2 与中断有关的特殊功能寄存器SFR

与中断有关的特殊功能寄存器是中断允许控制寄存器(IE)、定时器控制寄存器(TCON)、中断优先级控制寄存器(IP)及串行口控制寄存器(SCON)。这四个寄存器都属于专用寄存器,且可以位寻址,通过置位和清零这些位以便对中断进行控制。

1. 中断允许控制寄存器(IE) 这个特殊功能寄存器的字节地址为0A8H,其位地址为0A8H~0AFH,也可以用IE.0~IE.7表示。该寄存器中各位的定义及位地址表示如下:

其中只有7位有定义,它们是:

EA—中断允许的总控制位。

EA=0时,中断总禁止相当于关中断,即禁止所有中断。

EA=1时,中断总允许,相当于开中断。总的中断允许后,各个中断源是否可以申请中断,则由其余各中断源的中断允许位进行控制。

EX0—外部中断0允许控制位,当EX0=0,禁止外中断0;EX0=1,允许外中断0。

EX1—外部中断1允许控制位,当EX1=0,禁止外中断1;EX1=1,允许外中断1。

ET0—定时器0中断允许控制位,当ET0=0, 禁止该中断;ET0=1,允许定时器0中断。

ET1—定时器1中断允许控制位,当ET1=0,禁止该中断;ET1=1,允许定时器1中断。

ES—串行口中断允许控制位,当ES=0,禁止串行中断;ES=1,允许串行中断。

ET2—定时器2中断允许控制位,当ET2=0,禁止该中断;ET2=1,允许定时器2中断。

由上可见,8051单片机通过中断允许控制寄存器进行两级中断控制。EA位作为总控制位,以各中断源的中断允许位作为分控制位。但总控制位为禁止(EA=0)时,无论其它位是1或0,整个中断系统是关闭的。只有总控制位为1时,才允许由各分控制位设定禁止或允许中断,因此,单片机复位时,IE寄存器的初值是(IE)=00H,中断系统是处于禁止状态,即关中断。

相关文档
最新文档