标价机厂家
免费服务热线

Free service

hotline

010-00000000
标价机厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

关于PIC单片机的中断现场保护问题

发布时间:2020-06-30 20:26:17 阅读: 来源:标价机厂家

在进入中断服务子程序期间,只有返回地址PC的数值被自动压入堆栈,其他的一些寄存器的内容就得按照程序的需要由我们自己想办法了。PIC单片机汇编语言没有象51系列单片机那样的PUSH POP指令,所以我们要用一段程序来实现类似的功能。

因为是用一段程序来实现现场的保护,这样就可能影响到W和STATUS寄存器,所以我们要在保护现场的时候先把这两个寄存器给保护了。这些现场保护不是将数据保存在芯片的堆栈中。而是将其放到RAM中进行保存。个人认为将这些数据保存在与体选址无关的RAM中,也就是说PIC一般有四个体,无论目前在哪个体里改变其RAM的数据,都可以映射到其他体中,本人认为这样在程序上比较方便,避免了一些弊端和麻烦。我也是刚接触PIC,如果有说的不对的地方,还请大家提出,我们共同探讨。先谢了:)

下面引用一段厂家提供的中断现场保护的样例程序:将W,STATUS,和PCLATH寄存器内的内容保存到临时备分寄存器中

(1) MOVWF W_TEMP 复制W到它的临时寄存器W_TEMP中

(2) SWAPF STATUS,W 将STATUS中的高低四位交换后放入W

(3) CLRF STATUS 不管目前在哪个体,都设置成体0为当前体

(4) MOVWF STATUS_TEMP 保存STATUS到体0上的临时寄存器

(5) MOVF PCLATH,W 把寄存器PCLATH中的内容复制到W中

(6) MOVWF PCLATH_TEMP 保存PCLATH到临时寄存器里

(7) CLRF PCLATH 不管当前处在哪页,都把PCLATH设置成0

............(中断服务子程序的核心部分)

(8) MOVF PCLATH_TEMP,W 经过W转移

(9) MOVWF PCLATH 恢复PCLATH

(10)SWAPF STATUS_TEMP,W 交换后放回W

(11)MOVWF STATUS

(12)SWAPF W_TEMP,1

(13)SWAPF W_TEMP,0

天津制作西服

天津订做防静电工服

德州西服制做

河北职业装制作