第5章中斷系统-2.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章中斷系统-2

中断标志位在TCON和SCON中。【必须记住】 但在下列任何一种情况存在时,中断响应会被阻止: (1)CPU正在执行同级或高一级的中断服务程序; (2)现行机器周期不是正在执行指令的最后一个机器周期,即现行指令完成前,不响应任何中断请求; (3)当前正在执行的是中断返回指令或访问专用寄存器IE或IP的指令。也就是说,在执行中断返回指令或是访问IE、IP的指令后,至少需要再执行一条其他指令,才会响应中断请求。 中断查询在每个机器周期都要重复执行。如果CPU响应中断的基本条件已满足,但由于上述三个封锁条件之一而未被及时响应,待封锁中断的条件撤消后,若中断标志也已消失,则本次被拖延的中断申请就不会再被响应。 各中断源的中断服务程序入口地址见表5-3。 表5-3 中断服务程序入口地址 中 断 源 入口地址 外部中断0(IE0) 03H 定时器T0溢出中断(TF0) 0BH 外部中断1(IE1) 13H 定时器T1溢出中断(TF1) 1BH 串行口中断(RI/TI) 23H 两个中断入口间只相隔8字节,难以安放一个完整的中断服务程序。因此,通常在中断入口地址处放置一条无条件转移指令,使程序执行转向中断服务程序入口。 中断服务与返回 在用C语言编程时,中断处理程序中的现场保护是由集成开发环境(IDE)自动完成的,返回指令也是编译系统自动处理的,用C语言编程时只要注意其书写格式即可。 5.3.2 外部中断的响应时间 使用外部中断时,需考虑从外部中断请求到转向中断入口地址所需的时间。 外部中断的最短响应时间为3个机器周期。其中中断请求标志位查询占1个机器周期,而这个机器周期恰好处于指令的最后一个机器周期。在这个机器周期结束后,中断即被响应,CPU接着执行一条硬件子程序调用指令LCALL到相中断服务程序入口,需要2个机器周期。 外部中断响应的最长时间为8个机器周期。在CPU进行中断标志查询时,刚好才开始执行RETI或访问IE或IP的指令,需执行完指令再继续执行一条指令后,才响应中断。 执行RETI或访问IE或IP的指令,最长需要2个机器周期。 接着再执行一条指令,最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。再加上硬件子程序调用指令LCALL的执行,需要2个机器周期,所以,外部中断响应的最长时间为8个机器周期。 如果已经在处理同级或更高级中断,外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间,这种情况下,响应时间就无法计算了。 这样,在一个单一中断的系统里,80C51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。 5.3.3 跳沿触发方式 外部中断申请触发器能锁存外部中断输入线上的负跳变。即使不能响应,中断请求标志不丢失。 相继连续两次采样,一个机器周期为高,下一个机器周期采样为低,则中断申请触发器置1,直到CPU响应此中断时,才清0。 输入的负脉冲宽度至少保持12个时钟周期,才能被采样到。适合于以负脉冲形式输入的外部中断请求。 【4、中断响应时间【何立民P128】 中断响应时间是指从中断请求产生到CPU转向中断服务程序入口处所花费的时间。CPU不是在任何情况下对中断请求都予以响应,且不同的情况对中断响应的时间也是不一样的。下面以外部中断为例,说明中断响应的时间。 外部中断INT0和INT1的电平在每个机器周期的S5P2期间,经反相后锁存到IE0和IE1标志位,CPU在下一个机器周期才会查询到新置入的IE0和IE1。如果这时满足中断响应条件,则CPU响应中断(即执行一条由硬件生成的LCALL指令),转入中断服务程序入口。由于执行LCALL指令要花费2个机器周期,因此,从外部中断请求有效到开始执行中断服务程序的第一条指令,中间要隔3个完整的机器周期,这是最短的响应时间。 若中断响应条件得不到满足,则需要更长的中断响应时间。可分为以下3种情况: (1)若现行查询周期不是现行指令最后一个机器周期,那么增加的等待时间不会超过3个周期,因为一条指令的最长时间为4个周期(乘法和除法指令)。 (2)若当前指令为RETI或访问IE或IP指令,执行该类指令占一个机器周期,其后需再执行一条指令(最多占4个机器周期),才能响应中断请求,则增加的等待时间不会超过5个周期。 在上述两种情况下,中断响应时间在3-8个机器周期之间。 (3)若当前正在处理同级或更高级中断,则额外等待时间取决于所执行的中断服务程序的长短。 】 5.3.4 中断请求的撤销【P102】 某个中断请求被响应后,就存在着一个中断请求的撤销问题。 CPU响应中断请求,转向中断服务程序执行,在其执行中断返回之前【在C51中,就是中断服务程序返回】,中断请求信号必

文档评论(0)

cwhs + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档