<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è) > 嵌入式系統 > 設計應用 > PIC單片機軟件在關(guān)機器人控制中的編程技巧

PIC單片機軟件在關(guān)機器人控制中的編程技巧

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

subwf actionstopflag,w

btfss status,z

goto L2

繼續下面的程序

actionstopflag 表示動(dòng)作標志位參數,給動(dòng)作標志位賦值,動(dòng)作停止函數中將清零標志位的值。上述程序和前面所述程序的功能一樣,實(shí)現兩支手臂的動(dòng)作。上面程序描寫(xiě)左手是否到達鼓掌位,到達停止,右手是否到達舉手位,到達停止??磩?dòng)作標志位是否為零,不是,不斷地循環(huán)檢測;是,執行下面的程序。
2 、GOTO,CALL指令的不同使用

在PIC的匯編程序中,CALL與GOT0指冷使用的場(chǎng)合不同。一般情況下,在于程序與主程序之間大多用CALL指令;而狀態(tài)轉換模塊之間大多用GOTO 指令,即由此狀態(tài)進(jìn)入另一種狀態(tài)不需返回。由于的堆棧有限,在程序中,不能無(wú)止境地使用GOTO語(yǔ)句,這樣會(huì )使堆棧溢出,程序無(wú)法正常運行。各個(gè)小程序內部循環(huán)占用堆棧的級數不多,使用GOTO指令是可行的,但在大的程序中用GOTO則無(wú)法返回到調用前程序的下一條指令。CALL指令完成調用完子程序后返回到調用前的程序。程序如下:

list D=16c76

start:ca11 setcpu

call automatlsn、statel

L3 call readinsignal

btfsc cs2_v,ultrasonicdetectl

goto L3

goto autonatlsmstate2

automatlsmstate2:

return

auatomatismstatel、 automatismstate2表示兩種狀態(tài),uhrasonicdetectl表示一個(gè)輸入超聲檢測信號。上面程序描寫(xiě)調用 automatistmstate1狀態(tài),執行完后進(jìn)行下面的檢測ultrasonicdetect],沒(méi)有觸發(fā)就一直循環(huán)檢測,觸發(fā)就進(jìn)入 autornatismstate2狀態(tài),執行完也不再回到下面的程序。

3 、狀態(tài)標志位Z、C的不同使用情況

在進(jìn)行判斷標志位時(shí),Z(零標志)、C(借位標志)是不同的。Z為l時(shí),表示上面的結果為0,Z為0時(shí),則結果不為0。C為l時(shí),借位,C為0時(shí),沒(méi)有借位。在使用定時(shí)器的時(shí)候,一般使用C標志位,這是由于當完成某一動(dòng)作去檢查定時(shí)器時(shí),時(shí)間可能沒(méi)到,或是正好,或是已經(jīng)超過(guò)時(shí)間,只要到了或超過(guò)時(shí)間,都要按照要求關(guān)閉定時(shí)器,如下面程序所述。如果用Z標志位,等于0時(shí)可能沒(méi)有檢測到,無(wú)法判斷停止的狀態(tài),而用z可以很好地控制時(shí)間定時(shí)。進(jìn)行一般的計算時(shí)大多用Z,如前面的動(dòng)作標志位中就是如此使用的。

list D=16c76

call opentimerO

L4 movlw d’30’

subwf t0_v2,W

btfss status,c

goto L4

cau closetimer0

程序檢測時(shí)間是否到達1.5s,沒(méi)有則循環(huán)等待,到了或檢測時(shí)間過(guò)了就關(guān)閉定時(shí)器,執行下面的程序。

總之,在的編程中采用合適的方法,可以使整個(gè)程序運行穩定,而且程序空間的使用也將有所減小,避免了調試中的Bug。這是筆者在實(shí)際中的一點(diǎn)體會(huì ),還有許多不足或沒(méi)有考慮到的問(wèn)題,希望在和大家的探討中不斷學(xué)習的精髓。

光電開(kāi)關(guān)相關(guān)文章:光電開(kāi)關(guān)原理

上一頁(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>