单片机原理与应用-5AA要点详解.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中断处理过程 中断处理过程的三个阶段 中断响应 中断处理 中断返回 中断处理流程 中断响应条件 有中断源发出中断请求 中断允许位EA=1,CPU开放中断 申请中断的中断源的中断允许位为1,中断未被屏蔽 无同级或更高级中断服务正在运行 当前的指令周期已结束 若现行指令为RETI或设置IE、IP的指令,需要等待现行指令及下一条指令执行完毕 中断响应操作过程 CPU在S5P2期间采样每个中断源,在下一个机器周期S6期间查询中断标志,再在下一个机器周期S1期间按优先级进行处理 把当前PC值压入堆栈,保护断点 将相应的中断服务程序的入口地址送入PC 对有些中断源,CPU会自动清除中断标志 执行中断服务程序 执行到返回指令RETI,中断服务程序结束,将堆栈内容弹出到PC,返回到原来断点继续执行 中断源对应的矢量地址(入口地址) 中断服务程序从矢量地址开始执行,直到RETI指令为止 注意: 各中断入口地址之间的间隔只有8个字节,因此中断服务程序如果在8个字节以内时可以直接放置在矢量地址开始的空间中,否则可采用在向量地址处放置LJMP指令跳转到中断服务程序 复位入口(0000H)与中断入口之间有3个字节空间,当系统采用中断时可以在0000H地址处放置AJMP指令跳过中断入口区 中断响应时间 CPU不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的 对于顺利的中断响应,其最短的响应时间为3个机器周期 对于受阻的中断响应,则响应时间会更长 若中断系统只有一个中断源,则响应时间在3~8个机器周期之间 中断处理 CPU响应中断后即转入中断服务程序的入口,执行中断服务程序。从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务 中断处理包括的内容 不同的中断源服务的内容及要求各不相同,其处理过程也就有所区别。一般情况,中断处理包括两部分内容 保护现场 PC返回值由硬件系统自动入栈 其它寄存器如PSW、工作寄存器、累加器、标志位需要在中断服务程序中使用时,需要采用指令将断点处的值压入堆栈,执行返回指令RETI之前用软件从堆栈恢复 保护现场时,为了防止更高优先级中断破坏未保护内容,需要关闭中断允许位EA 为中断源服务 针对中断源的具体要求进行相应的处理 中断返回 恢复现场 在中断服务程序中,最后一条指令必须为中断返回指令RETI CPU执行该指令时,一方面清除中断响应时所置位的“优先级生效”触发器,另一方面从当前栈顶弹出断点地址送入程序计数器PC,从而返回主程序 中断处理中推入堆栈的寄存器、累加器、标志位需要在执行返回指令RETI之前用软件从堆栈恢复,采用POP指令 注意在中断服务程序中,PUSH和POP指令必须成对使用,否则,不能正确返回断点 恢复现场期间,为了防止更高优先级中断破坏现场内容,需要关闭中断允许位EA 编写中断服务程序时的注意问题 在中断矢量地址单元处放一条无条件转移指令,中断服务程序可灵活地安排在64KB ROM的任何空间 在中断服务程序中,应注意用软件保护现场,以免中断返回后丢失原来寄存器、累加器、标志位中的信息 若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断或禁止某中断源中断,在中断返回前再开放中断 外部中断扩展方法 8051单片机只有两个外部中断请求输入端(INT0和INT1) 实际应用中,若外部中断源有两个以上,则需要扩展外部中断源 利用定时器扩展外部中断源 中断加查询扩展外部中断源 利用定时器扩展外部中断源 8051单片机有两个定时器,具有两个内部中断标志和外部计数输入引脚 当定时器设置为计数方式时,计数初值设置为满量程FFH 一旦外部信号从计数器引脚输入一个负跳变信号,计数器加1即产生溢出中断,从而转去处理该外部中断源的请求 将外部中断源信号接至T0或T1引脚 该定时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序 中断加查询扩展外部中断源 每一根中断输入线可以通过“线或”的关系连接多个外部中断源,同时利用输入端口线作为各个中断源的识别线 具体线路如图所示 INT1 INT0 P1.0 P1.1 P1.2 P1.3 8051 装置1 装置2 装置3 装置4 中断加查询扩展外部中断源 ORG 0003H LJMP INTRP ;INT0中服程序入口 ORG 1000H INTRP: PUSH PSW ;INT0中断服务程序是一 ;个中断查询服务程序 PUSH ACC JB P1.0, DV1

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档