第4章 定时器中断.ppt

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 定时器中断

  3) 实现中断嵌套   当CPU响应某一中断时,若有优先权高的中断源发出中断请求,则CPU会中断正在进行的中断服务程序,并保留这个程序的断点(类似于子程序嵌套),响应高级中断。高级中断处理结束以后,再继续进行被中断的中断服务程序,这个过程称为中断嵌套,其流程图如图4.8所示。如果发出新的中断请求的中断源的优先权级别与正在处理的中断源同级或更低,则CPU不会响应这个中断请求,直至正在处理的中断服务程序执行完以后才能去处理新的中断请求。 图4.8 中断嵌套流程图   2.中断处理过程   中断处理过程可分为中断响应、中断处理和中断返回三个阶段。不同的计算机因其中断系统的硬件结构不同,而使其中断响应的方式也有所不同。这里,仅以8051单片机为例进行叙述。   1) 中断响应   中断响应是CPU对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称为矢量地址)。CPU并非任何时刻都响应中断请求,而是在中断响应条件满足之后才会响应。   CPU响应中断的条件有:   ① 有中断源发出中断请求。   ② 中断总允许位EA = 1。   ③ 申请中断的中断源允许。 满足以上基本条件,CPU一般会响应中断,但若有下列任何一种情况存在,则中断响应会受到阻断。   ① CPU正在响应同级或高优先级的中断。   ② 当前指令未执行完。   ③ 正在执行RETI中断返回指令或访问专用寄存器IE和IP的指令。   若存在上述任何一种情况,中断查询结果即被取消,CPU不响应中断请求而在下一机器周期继续查询;否则,CPU在下一机器周期响应中断。   CPU在每个机器周期的S5P2期间查询每个中断源,并设置相应的标志位,在下一机器周期S6期间按优先级顺序查询每个中断标志,如查询到某个中断标志为1,则在再下一个机器周期S1期间按优先级进行中断处理。   2) 中断响应过程   中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。首先,中断系统通过硬件自动生成长调用指令(LACLL),该指令将自动把断点地址压入堆栈保护(不保护累加器A、状态寄存器PSW和其它寄存器的内容),然后,将对应的中断入口地址装入程序计数器PC中(由硬件自动执行),使程序转向该中断入口地址,执行中断服务程序。MCS-51系列单片机各中断源的入口地址由硬件事先设定,分配如下:       中断源   入口地址       外部中断0   0003H       定时器0中断   000BH       外部中断1   0013H       定时器1中断      001BH       串行口中断      0023H   使用时,通常在这些中断入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断服务程序的起始地址上去。   实训5步骤2)中采用定时器1中断,其中断入口地址为001BH,中断服务程序名为CONT,因此,指令形式为   ORG 001BH ;定时器1中断入口   AJMP CONT ;转向中断服务程序   3.中断处理  中断处理就是执行中断服务程序。中断服务程序从中断入口地址开始执行,到返回指令“RETI”为止,一般包括两部分内容,一是保护现场,二是完成中断源请求的服务。   通常,主程序和中断服务程序都会用到累加器A、状态寄存器PSW及其它一些寄存器。当CPU进入中断服务程序并用到上述寄存器时,会破坏原来存储在寄存器中的内容,一旦中断返回,将会导致主程序的混乱。因此,在进入中断服务程序后,一般要先保护现场,然后执行中断处理程序,在中断返回之前再恢复现场。   编写中断服务程序时还需注意以下几点:   (1) 各中断源的中断入口地址之间只相隔8个字节,容纳不下普通的中断服务程序,因此,在中断入口地址单元通常存放一条无条件转移指令,可将中断服务程序转至存储器的其它任何空间。   (2) 若要在执行当前中断程序时禁止其它更高优先级中断,则需先用软件关闭CPU中断,或用软件禁止相应高优先级的中断,在中断返回前再开放中断。   (3) 在保护和恢复现场时,为了不使现场数据遭到破坏或造成混乱,一般规定此时CPU不再响应新的中断请求。因此,在编写中断服务程序时,要注意在保护现场前关中断,在保护现场后则应开中断。同样,在恢复现场前也应先关中断,恢复之后再开中断。   实训5步骤2)中的中断服务程序不与主程序共用累加器和任何寄存器,所以无需保护现场,在程序中也就没有保护和恢复现场的指令。   4.中断返回   中断返回是指执行完中断服务程序后,计算机返回原来断开的位置(即断点),继续执行原来的程序。中断返回由中断返

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档