电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机中断多优先级的软件扩展方法

单片机中断多优先级的软件扩展方法_第1页
1/18
单片机中断多优先级的软件扩展方法_第2页
2/18
单片机中断多优先级的软件扩展方法_第3页
3/18
单片机中断多优先级的软件扩展方法 摘要:为了解决 MCS-51 系列单片机只能由 IP 寄存器设定两级优先级的问题,文中给出了利用软件对中断优先级进行扩展的方法,同时给出了高于两个优先级的多优先级软件扩展程序。关键词:单片机;中断;优先级;寄存器1 引言所谓中断是指当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理,于是CPU临时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作,这样的一个过程称之为中断。以8051为例,中断系统含有5个中断源,分别是外部中断0请求,外部中断1请求,定时/计数器0溢出中断请求,定时/计数器1溢出中断请求以及串行口中断请求。既然系统含有5个中断源,就有可能出现数个中断源同时提出中断请求的情况,这样,设计人员必须事先根据它们的轻重缓急来为每个中断源确定CPU对其的响应顺序。然而,对于中断优先级寄存器IP来说,只可能设定两级优先,即控制位为1时对应的中断源为高级中断,反之,控制位为0时对应的为低级中断。这样就出现一个问题:假如一个中断正在执行,如何才能让它响应同级甚至是低级中断请求呢?2 中断多优先级的扩展根据8051的结构特点,其中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另一个则指出CPU是否正在执行低优先级中断服务程序,该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址的,所以无法用软件直接清零。遍历系统所提供的111条指令,只有RETI可以达到此目的。该指令可在CPU执行该指令时,一方面清除中断响应时所置位的“优先级生效”触发器,另一方面可从当前栈顶弹出断点地址送入程序计数PC,从而返回主程序。3 软件扩展方法3.1 高级中断源响应低级中断源的软件设计现以当前IE=84H,IP=04H设定INT1为高优先级正在执行外部中断1服务子程序为例来进行说明。如欲响应串行口中断,也就是要实现高级中断源响应低级中断源,设计时可加入如下代码而无须改变IP寄存器的内容PUSH IE ;IE内容入栈保护MOV IE , #10010000B ;开放串行口中断CALL PP ;继...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机中断多优先级的软件扩展方法

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部