欢迎来到天天文库
浏览记录
ID:14463207
大小:783.00 KB
页数:14页
时间:2018-07-28
《8051单片机的中断系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、139第6章8051单片机的中断系统6.1微型计算机中断技术概述6.1.1中断的概念1.中断及中断技术的特点计算机在执行某一程序的过程中,由于计算机系统之外的某种原因,有必要尽快地中止当前程序的运行,而去执行相应的处理程序,待处理程序结束后,再返回来继续执行被中止了的那个程序。这种某一程序在执行过程中由于外界的原因,中间被打断的情况就称为“中断”。“中断”类似于程序设计中的调用子程序,区别在于这些外部原因的发生是随机的,而子程序调用是程序设计人员事先安排好的。能够打断当前程序的外部事件,被称为中断
2、源。中断属于一种对事件的实时处理过程,中断源可能随时迫使CPU停止当前正在执行的工作,转而去处理中断源指示的另一项工作,待后者完成后,再返回原来工作的“断点”处,继续原来的工作。一个计算机一般具有多个中断源,这就存在中断优先权和中断嵌套的问题。例如,一个人在读书时如果接了电话并且正在通话时,又有人敲门,由于敲门的优先权更高,这个人又“响应”这个敲门的中断申请,暂停通话,去与敲门人交谈;交谈完毕,接着原来的话茬继续通话,直到通话完毕,再返回书桌前继续看书。这里,敲门的中断源就比电话的中断源优先权高,
3、因此,出现了中断嵌套,即高级优先权的中断源可以打断低级中断优先权的中断服务程序,而去执行高级中断源的中断处理,直至该处理程序完毕,再返回接着执行低级中断源的中断服务程序,直至这个处理程序完毕,最后返回主程序。计算机响应中断的条件是,计算机的CPU是处于开中断状态的,同时只能在一条指令执行完毕后才能响应中断请求。2.中断功能利用中断技术,使计算机能够完成更多的功能。(1)可实现高速CPU;(2)可实现实时处理;(3)实现故障的紧急处理;(4)便于人机联系。总之,随着计算机硬件软件技术的发展,中断技术
4、也在不断丰富,所以中断功能已经成为评价计算机系统的整体性能的一项重要指标。6.1.2中断处理过程CPU响应中断源的中断请求后,就转去进行中断处理。不同的中断源,其中断处理内容可能不同,但其主要内容及顺序都如图6-1所示。139图6-1中断处理流程从图6-1可以看到中断处理的过程,下面做几点补充说明:1.保护现场与恢复现场为了使中断服务程序的执行不破坏CPU中寄存器或存储单元的原有内容,以免在中断返回后影响主程序的运行,因此,要把CPU中有关寄存器或存储单元的内容推入堆栈中保护起来,这就是所谓保护现
5、场。而在中断服务程序结束时和返回主程序之前,则需要把保护起来的那些现场内容从堆栈中弹出,以便恢复寄存器或存储单元原有的内容,这就是恢复现场。注意一定要按先进后出的原则进行推入和弹出堆栈。2.开中断与关中断在中断处理正在进行的过程中,可能又有新的中断请求到来,一般说来,为防止这种高于当前优先级的中断请求打断当前的中断服务程序的执行,CPU响应中断后应关断(很多CPU是自动关中断的,但8051单片机不是自动关闭的,需要用软件指令关闭),而在编写保护现场和恢复现场的程序时,也应在关闭中断后进行,以免使保
6、护现场和恢复现场的工作不被干扰,这样,就可屏蔽其他中断请求了。如果要想响应更高级的中断源的中断请求.那么应在现场保护之后,将CPU处于开中断的状态,这样就使系统具有中断嵌套的功能。对于不同的CPU,开中断和关中断的方法有所不同,有关8051单片机的开中断和关中断的办法将在下节叙述。3.中断服务中断服务是中断处理程序的主要内容,将根据中断功能去编写,以满足用户的需要。复杂的中断服务程序也可以用子程序形式。1394.中断返回中断返回是把当前运行的中断服务程序转回到被中断请求中断的主程序上来。中断返回指
7、令与子程序返回不同,用专用的中断返回指令RETI来完成。因此,这条指令是中断服务程序的最后一条指令;另外,开中断后,必须运行一条指令后才有响应中断的可能性,所以,后面紧跟一条RETI指令,在执行完RETI指令前不可能响应新的中断申请。6.28051单片机的中断控制由于单片机的结构和功能有限,中断系统不算复杂。但从实际应用的角度来看,8051单片机的中断系统已足够。下面针对8051单片机的中断系统做详细介绍。6.2.1中断源与中断标志位8051型单片机提供了5个中断源:两个外部中断源和三个内部中断源
8、,8052增加了一个中断源——定时器2中断。每一个中断源都有一个中断申请标志,但串行口占两个中断标志位,一共六个中断标志,表6-1给出了它们的名称。表6-1中断源和中断申请标志分类中断源名称中断申请标志触发方式中断入口地址外部中断外部中断0IE0(TCON.1)INT0(P3.2)引脚上的低电平/下降沿引起的中断0003H内部中断T0定时器/计数器0中断IF0(TCON.5)T0定时器/计数器溢出后引起的中断000BH外部中断外部中断1IE1(TCON.3)INT1(P3.3)引脚
此文档下载收益归作者所有