色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)軟件在關(guān)機(jī)器人控制中的編程技巧

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

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

          subwf actionstopflag,w

          btfss status,z

          goto L2

          繼續(xù)下面的程序

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

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

          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è)輸入超聲檢測信號(hào)。上面程序描寫調(diào)用 automatistmstate1狀態(tài),執(zhí)行完后進(jìn)行下面的檢測ultrasonicdetect],沒有觸發(fā)就一直循環(huán)檢測,觸發(fā)就進(jìn)入 autornatismstate2狀態(tài),執(zhí)行完也不再回到下面的程序。

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

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

          list D=16c76

          call opentimerO

          L4 movlw d’30’

          subwf t0_v2,W

          btfss status,c

          goto L4

          cau closetimer0

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

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

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

          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉