<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 關(guān)于PIC單片機的中斷現場(chǎng)保護問(wèn)題

關(guān)于PIC單片機的中斷現場(chǎng)保護問(wèn)題

作者: 時(shí)間:2013-03-04 來(lái)源:網(wǎng)絡(luò ) 收藏

在進(jìn)入服務(wù)子程序期間,只有返回地址PC的數值被自動(dòng)壓入堆棧,其他的一些寄存器的內容就得按照程序的需要由我們自己想辦法了。匯編語(yǔ)言沒(méi)有象51系列單片機那樣的PUSH POP指令,所以我們要用一段程序來(lái)實(shí)現類(lèi)似的功能。

因為是用一段程序來(lái)實(shí)現現場(chǎng)的保護,這樣就可能影響到W和STATUS寄存器,所以我們要在保護現場(chǎng)的時(shí)候先把這兩個(gè)寄存器給保護了。這些不是將數據保存在芯片的堆棧中。而是將其放到RAM中進(jìn)行保存。個(gè)人認為將這些數據保存在與體選址無(wú)關(guān)的RAM中,也就是說(shuō)PIC一般有四個(gè)體,無(wú)論目前在哪個(gè)體里改變其RAM的數據,都可以映射到其他體中,本人認為這樣在程序上比較方便,避免了一些弊端和麻煩。我也是剛接觸PIC,如果有說(shuō)的不對的地方,還請大家提出,我們共同探討。先謝了:)

下面引用一段廠(chǎng)家提供的的樣例程序:將W,STATUS,和PCLATH寄存器內的內容保存到臨時(shí)備分寄存器中

(1) MOVWF W_TEMP 復制W到它的臨時(shí)寄存器W_TEMP中

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

(3) CLRF STATUS 不管目前在哪個(gè)體,都設置成體0為當前體

(4) MOVWF STATUS_TEMP 保存STATUS到體0上的臨時(shí)寄存器

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

(6) MOVWF PCLATH_TEMP 保存PCLATH到臨時(shí)寄存器里

(7) CLRF PCLATH 不管當前處在哪頁(yè),都把PCLATH設置成0

............(服務(wù)子程序的核心部分)

(8) MOVF PCLATH_TEMP,W 經(jīng)過(guò)W轉移

(9) MOVWF PCLATH 恢復PCLATH

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

(11)MOVWF STATUS

(12)SWAPF W_TEMP,1

(13)SWAPF W_TEMP,0


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>