第5章80C51单片微机的中断系统原理及应用祥解.ppt

第5章80C51单片微机的中断系统原理及应用祥解.ppt

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

* ⒉ 中断查询 若查询到某中断标志为1,则按优先级的高低进行处理,即响应中断。 80C51的中断请求都汇集在TCON和SCON中。而CPU则在下一机器周期的S6期间按优先级的顺序查询各中断标志。 先查询高级中断,再查询低级中断。 同级中断按内部中断优先级序列查询。 如果查询到有中断标志位为“1” ,则表明有中断请求发生,接着从相邻的下一个机器周期的S1状态开始进行中断响应。 ⒊ 中断响应 ? 硬件自动生成长调用指令为LCALL addr16,而addr16就是各中断源的中断矢量地址(参见表5-1)。 ◆先将程序计数器PC的内容压入堆栈进行保护,先低位地址,后高位地址,同时堆栈指针SP加2。 ◆将对应中断源的中断矢量地址装入PC,去执行中断服务程序。 ◆中断服务程序由中断矢量地址开始执行,直至遇到RETI为止。 执行RETI,一是撤销中断申请,弹出断点地址进入PC,先弹出高位地址,后弹出低位地址,同时堆栈指针SP减2,恢复原程序的断点地址执行;二是恢复中断触发器原先状态。 中断响应是有条件的,在接受中断申请时,如遇下列情况之一时,硬件生成的长调用指令“LCALL”将被封锁: ⑴ CPU正在执行同级或高一级的中断服务程序中。因为当一个中断被响应时,其对应的中断优先级触发器被置“1”,封锁了同级和低级中断; ⑵ 查询中断请求的机器周期不是执行当前指令的最后一个周期。 ⑶ 当前正在执行RETI指令或执行对IE、IP的读/写操作指令。80C51中断系统的特性规定,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中断。 中断的执行过程与调用子程序相似点: ⑴ 都是中断当前正在执行的程序,转去执行子程序或中断服务程序。 ⑵ 都是由硬件自动地把断点地址压入堆栈,然后通过软件完成现场保护。 ⑶ 执行完子程序或中断服务程序后,都要通过软件完成现场恢复,并通过执行返回指令,重新返回到断点处,继续往下执行程序。 ⑷ 二者都可以实现嵌套,如中断嵌套和子程序嵌套。 中断的执行与调用子程序差别 ⑴ 中断请求信号可以由外部设备发出,是随机的,比如故障产生的中断请求;子程序调用却是由软件编排好的。 ⑵ 中断响应后由固定的矢量地址转入中断服务程序,而子程序地址由软件设定。 ⑶ 中断响应是受控的,其响应时间会受一些因素影响;子程序响应时间是固定的。 一般来说,在单级中断系统中,中断的响应时间最短为3个机器周期,最长为8个机器周期。 当中断请求标志位查询占1个机器周期,而这个机器周期又恰好是指令的最后一个机器周期,在这个机器周期结束后,CPU即响应中断,产生硬件长调用LCALL指令,执行这条长调用指令需要2个机器周期,中断响应时间为3个机器周期。 5.4.2 中断响应时间 中断响应时间最长为8个机器周期。如果CPU正在执行的是RETI指令或访问IP、IE指令,则等待时间不会多于2个机器周期,而中断系统规定把这几条指令执行完必须再继续执行一条指令后才能响应中断,如这条指令恰好是4个机器周期长的指令(比如乘法指令MUL或除法指令DIV) ,再加上执行长调用指令LCALL所需2个机器周期。 如果中断请求被前面所列三个条件之一所阻止,所需的响应时间就更长些。如果正在处理同级或优先级更高的中断,那么中断响应的时间还需取决于处理中的中断服务程序的执行时间。 在80C51系列单片微机中,一般只有两个外部中断请求输入端INT0、INT1 。当某个系统需要多个外部中断源时,可以通过增加“OC门” 结合软件来扩展;当定时器/计数器在系统中有空余时,可以通过对计数器计数长度的巧妙设置,使定时器/计数器的外部输入脚(T0或T1) 成为外部中断请求输入端。 5.5 外部中断源的扩展 引入芯片本身的外部中断请求输入端(INT0、INT1)就可很方便地扩展多个外部中断源。图5–5 就是占用一个80C51的 INT0(或INT1)扩展4个外部中断源的电路。 4个扩展外部中断源中有一个或几个出现高电平,反相器输出为0,引起INT0低电平触发中断,中断源都是电平触发方式。当满足外部中断请求条件时,则CPU响应中断,转入0003H单元开始执行中断服务程序。 5.5.1 采用“OC门”经“线或”后实现 在中断服务程序中,由软件设定的顺序查询外中断哪一位是高电平,然后进入该中断处理程序。查询的顺序就是外部扩展中断源的中断优先级顺序。流程图示于图5-6。 INT0的中断服务程序如下: PINTO:PUSH PSW ;保护现场 PUSH ACC JB P1.0, LOOP1 ;转向中断服务程序1 JB P1.l,L

文档评论(0)

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

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

1亿VIP精品文档

相关文档