- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ct0[高等教育]中断系统
5.1 中断的概念 中断:是指中央处理器CPU正在执行程序,处理某件事情的时候,外部发生了某一事件请求CPU马上处理,CPU暂时中断当前的工作转入处理所发生的事件,处理完以后,再返回到原来被中断的地方,继续原来的工作。 能够实现中断处理功能的部件称为中断系统。 向CPU 提出中断请求的源称为中断源。 中断源向CPU 提出的处理请求,称为中断请求或中断申请。 CPU 同意处理该请求称为中断响应,处理中断请求的程序称为中断服务子程序。 当CPU暂时终止正在执行的程序,转去执行中断服务子程序时,除了硬件自动把断点PC值(即下一条应执行的指令地址)压入堆栈之外,用户应注意保护有关的工作寄存器、累加器、标志位等信息,这称为保护现场; 5.2 MCS-51中断系统 MCS-51 单片机的中断系统结构随型号的不同而不同,包括中断源数目,中断优先级、中断控制寄存器都有差异。典型的89C51单片机有5个中断源,具有2个中断优先级,可以实现二级中断嵌套。每一个中断源可以设置为高优先级或低优先级中断,允许或禁止向CPU申请中断。89C51的中断系统结构如图5-2所示。 5.2.1 MCS-51中断源 8051有5个中断源:2个是引脚(P3.2)、(P3.3)输入的外部中断源;3个是内部中断源,它们是定时器T0、T1和串行口的中断请求源。 (1)外部中断源 上输入的两个外部中断标志和触发方式控制位在特殊功能寄存器TCON的低4位(见表5-1)。 5.2.2 中断控制 1.中断允许寄存器IE(某位“1允许,“0”禁止) EA:中断允许总控制 ES:串行口中断允许位 ET1:定时/计数器T1的溢出中断允许位。 EX1:外部中断1中断允许位 ET0:定时/计数器T0 的溢出中断允许位。 EX0:中断0中断允许位。 默认优先级由硬件形成,排列次序如下: 中断源 默认优先级 外部中断0 最高级 定时器T0 外部中断1 定时器T0 串行口中断 最低级 当重新设置优先级时,则顺序查询逻辑电路将会改变相应排队顺序。 例如,给中断优先级寄存器IP中设置的优先级控制字为11H,则PS和PX0均为高优先级中断。当这两个中断源同时发出中断申请时,CPU将先响应自然优先级高的PX0的中断申请,而后响应自然优先级低的PS的中断申请。 5.2.3 中断处理 1.中断响应过程 CPU 在每一个机器周期顺序检查每一个中断源。并按优先级处理每个被激活的中断请求,如果没有被下述条件所阻止,将在下一个机器周期响应激活了的最高级中断请求。 (1)CPU 正在处理相同的或更高优先级的中断; (2)现行的机器周期不是所执行指令的最后—个机器周期; (3)正在执行的指令是RETI 或是访问IE或IP的指令(CPU 在执行RETI 或访问IE、IP 的指令后,至少需要再执行一条指令才会响应新的中断请求)。 5.3 中断应用程序举例 中断程序一般包含中断控制程序(即中断初始化程序)和中断服务程序两部分。 (1)中断初始化程序 中断初始化程序实质上就是对TCON、SCON、IE和IP寄存器的管理和控制。只要这些寄存器的相应位按照要求进行了状态预置,CPU就会按照用户的意图对中断源进行管理和控制。中断初始化程序一般不独立编写,而是包含在主程序中,根据需要进行编写。中断初始化程序需完成以下操作: 1)开中断; 2)某一中断源中断请求的允许与禁止(屏蔽); 3)确定各中断源的优先级别; 4)若是外部中断请求,则要设定触发方式是电平触发还是边沿触发。 【例5.2】设在主程序中用到了寄存器PSW、ACC、B、DPTR,而在执行中断服务程序时需要用到这些寄存器。试编写程序在中断服务程序中对这些寄存器加以保护。 SERVICE:PUSH PSW ;保护程序状态字 PUSH ACC ;保护累加器A PUSH B ;保护寄存器B PUSH DPL ;保护数据指针低字节 PUSH DPH ;保护数据指针高字节 ┇ ;中断处理 POP DPH ;恢复现场 POP DPL POP B POP ACC POP PSW RETI * 在完成中断服务子程序后,恢复有关的工作寄存器、累加器、标志位的内容,称为恢复现场; 最后执行中断返回指令RETI,从堆栈中自动弹出断点地址PC,继续执行被中断的程序,称为中断返回。 优先权:给各中断源规定一个优先级别,称为优先权。当两个或者两个以上的中断源同时提出中断请求时,计算机首先为优先权最高的中断源服务,服务结束后再响应级别较低的中断源。计算机按中断源级别高低逐次响应的过程称优先权排队。这个过程可以通过硬件电路来实现,也可以通过程序
文档评论(0)