PIC单片机原理、开发方法及实践-何乐生-4第四章 中断系统.pptVIP

PIC单片机原理、开发方法及实践-何乐生-4第四章 中断系统.ppt

  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文档。上传文档
查看更多
4.2.5 PIC中档单片机的中断现场保护和恢复 1.PIC中档单片机中断现场的保护 哪些寄存器需要在进入中断之前进行保护呢? 原则上是主程序和中断服务程序双方都用到的重要寄存器。原因很简单,因为如果不这样做,前者存放在寄存器中的内容会在后者用到该寄存器时被更改。 需要保护的寄存器有: 最基本的当然是工作寄存器W和状态寄存器STATUS; PCLATH和FSR也经常需要保护:对于代码超过一个程序页面的程序(即占用大于2 K字的程序空间),PCLATH寄存器中存放了程序的页号,要在进入中断时进行保护的。因为当进入中断服务入口地址0004H时,中断程序入口确定在第0页,故PCLATH必须在进入中断服务程序时进行第0页设定。而原先程序执行的地址可能是整个程序空间的页号值。既然PCLATH将会在中断中改变,为了使中断返回后源程序还能继续正确执行,就必须在中断中保护和恢复PCLATH。 * 注意区分2条指令对标志的影响(参考下图) MOVWF W- TEMP,W ;不影响标志 MOVF W- TEMP ;影响Z标志 4.2.5 PIC中档单片机的中断现场保护和恢复 * 4.2.5 PIC中档单片机的中断现场保护和恢复 保护寄存器的具体方法:程序清单4-3提供了中断现场保护的程序代码 w_temp EQU 20H ;W寄存器的备份寄存器位于 ;20H处 status_temp EQU 21H ;STATUS寄存器的备份寄存器 pch_temp EQU 22H ;PCLATH寄存器的备份寄存器 fsr_temp EQU 23H ;FSR寄存器的备份寄存器 ;中断程序入口 ORG 0x0004 ;中断入口地址 MOVWF w_temp ;把W复制到其备份寄存器中 MOVF STATUS,W ;把STATUS的当前值复制到W暂存 ;虽然MOVF指令会改变STATUS, ;但在其发生变化前内容已送入W CLRF STATUS ;由于已经将STATUS存入W中了, ;此时可以改变STATUS了 ;对RP1:RP0清零,从而指向bank0 ;这样后续的所有备份肯定在bank0中完成了 * 4.2.5 PIC中档单片机的中断现场保护和恢复 保护寄存器的具体方法:程序清单4-3提供了中断现场保护的程序代码 MOVWF status_temp ;把STATUS的值复制到备份寄存器 MOVF PCLATH,W ;把PCLATH的值复制到W MOVWF pch_temp ;保存到PCLATH的备份寄存器 MOVF FSR,w ;把FSR的值复制到W MOVWF fsr_temp ;保存到FSR的备份寄存器 ………… ;备份其他需要备份的寄存器 ;至此完成寄存器的备份 …… ;首先要设置PCLATH,以使其指向中断服 ;务程序做在的页 ;为下一个跳转语句做好准备 GOTO ISR ;跳转到真正的中断服务程序 * 4.2.5 PIC中档单片机的中断现场保护和恢复 2. PIC中档单片机中断现场的恢复 中断现场的恢复基本上是保护的逆过程:先把其他寄存器逐个恢复,然后是STATUS寄存器,最后恢复W寄存器。 以下程序清单4-4为什么要采用会将W内容颠倒的SWAPF指令:W是最后恢复的寄存器,此时STATUS已经被正确的恢复了,而MOVF指令会改变STATUS寄存器的Z标志,这样就有可能在恢复W寄存器的同时破坏了已经恢复的STATUS寄存器的内容。SWAPF语句虽然颠倒了w_temp的内容,但它不会修改STATUS的内容,只需要使用两条SWAPF指令,将颠倒的W再颠倒过来就可以了。 * 4.2.5 PIC中档单片机的中断现场保护和恢复 1. PIC中档单片机中断现场的保护 以下是常见的中断现场恢复程序清单4-4 : CLRF STATUS ;对RP1:RP0清零,从而指向bank0 ………… ;恢复其他需要恢复的寄存器 MOVF fsr_temp,W ;取FSR备份的内容 MOVWF FSR ;恢复FSR MOVF pch_temp,W ;取PCLATH备份的内容 MOVWF PCLATH ;恢复PCL

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档