新聞中心

PIC單片機(jī)匯編指令

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

通過(guò)上述四條清零指令格式和實(shí)例,可以說(shuō)明,學(xué)習(xí)PIC系列8位單片機(jī)的指令時(shí)應(yīng)首先了解指令的助記符意義(功能),再有就是它的表達(dá)方式。初學(xué)者沒(méi)有必要死記指令,重要是理解和實(shí)踐。

本文關(guān)于指令的注釋將與前述指令中的略有不同。前述指令注釋時(shí)是對(duì)指令具體完成的功能給以說(shuō)明,這種注釋方法對(duì)初學(xué)者確實(shí)易于接受和理解,但是實(shí)際應(yīng)用中的PIC產(chǎn)品匯編語(yǔ)言的注釋通常是以程序要做什么(或指令的作用)而不是說(shuō)指令的直接功能。鑒于上述原因,下述的指令注釋將改變過(guò)去的注釋方法,用程序應(yīng)起的作用作注釋。

10 寄程器半字節(jié)交換指令

指令格式:SWAPF f,d

說(shuō)明:SWAPF是Swap f的合寫(xiě)。符號(hào)f、d的意義與前述的相同。該條指令的功能是寄存器f的高4位與低4位交換,即指令執(zhí)行前,若寄存器f的8位狀態(tài)為D7、D6、D5、D4、D3、D2、D1、D0,執(zhí)行后的8位狀態(tài)變?yōu)镈3、D2、D1、D0、D7、D6、D5、D4,其結(jié)果存入W(d=0)或f(d=1)中。

實(shí)例:中斷現(xiàn)場(chǎng)保護(hù)是中斷技術(shù)中重要部分。由于PIC16C××指令系統(tǒng)中沒(méi)有進(jìn)棧PUSH和出棧POP指令,所以只能用其它指令來(lái)實(shí)現(xiàn)。因?yàn)樵谥鞒绦蛑谐3S玫焦ぷ骷拇嫫鱓和狀態(tài)寄存器STATUS,所以中斷現(xiàn)場(chǎng)保護(hù)常要保護(hù)寄存器W和STATUS。

下面是對(duì)PIC16C7×系列芯片中斷現(xiàn)場(chǎng)保護(hù)的實(shí)例程序。

MOVWF W_TEMP   ;將W內(nèi)容存入到臨時(shí)寄存器

W_TEMP中

SWAPF STATUS,W  ;交換STATUS與W內(nèi)容

MOVWF STATUS_TEMP ;將STATUS的內(nèi)容存入到臨

…           時(shí)寄存器STATUS_TEMP中

中斷服務(wù)程序

SWAPF STATUS_TEMP,W;交換STATUS_TEMP與W

的內(nèi)容

MOVWF STATUS    籗TATUS復(fù)原成原來(lái)的狀態(tài)

SWAPF W_TEMP,F   ;交換內(nèi)容

SWAPF W_TEMP,W  ;W復(fù)原成原來(lái)的狀態(tài)

說(shuō)明:上述程序中各條指令的注釋基本上都是以程序應(yīng)達(dá)到的目的而注釋的,對(duì)每條指令的功能幾乎未涉及。這是初學(xué)者應(yīng)特別注意的。

11 子程序調(diào)用指令(Subroutine Call)

指令格式:CALL k;k為立即地址

說(shuō)明:子程序調(diào)用,不同型號(hào)芯片的實(shí)現(xiàn)方法不盡相同,其共同點(diǎn)是首先將返回地址((PC)+1)壓棧保護(hù),再轉(zhuǎn)入所調(diào)用的子程序入口地址執(zhí)行(與MCS-51指令功能相似)。

指令格式模式:HERE CALL DELAY;調(diào)用延時(shí)子程序

DELAY MOVLW 0x80 ;延時(shí)子程序

RETLW 0

說(shuō)明:調(diào)用指令執(zhí)行前,PC=地址HERE

調(diào)用指令執(zhí)行后,PC=地址DELAY(標(biāo)號(hào)),堆棧指針TOS=HERE+1(返回地址)。

實(shí)例:見(jiàn)下條指令的實(shí)例

12 寄存器內(nèi)容取反指令

指令格式:COMF f,d

說(shuō)明:COMF是Complement f的縮寫(xiě)。其中d=1時(shí),操作(f)→f;d=0時(shí),操作(f)→w。

功能:寄存器f內(nèi)容取反后送入W(d=0)或f自身(d=1)。

實(shí)例:  ORG   0x1FF

GOTO MAIN

ORG   0

DELAY …

MAIN MOVLW 0 ;主程序開(kāi)始

TRTS 5 ;設(shè)置為輸出

BCF 5,0  ;置0位為0

LOOP   CALL DELAY;閃動(dòng)延時(shí)

COMF 5 ;求反(亮—滅—

亮……控制)

GOTO LOOP ;循環(huán)

分頻器相關(guān)文章:分頻器原理
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


關(guān)鍵詞: PIC單片機(jī) 匯編指令 RA口

評(píng)論


相關(guān)推薦

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

關(guān)閉