新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機軟件在關機器人控制中的編程技巧

        PIC單片機軟件在關機器人控制中的編程技巧

        作者: 時間:2014-01-16 來源:網絡 收藏

        本文介紹項目是有的實現。控制部分采用PICl6F7X系列單片機,運用匯編語言編程,運行速度較快,能夠達到系統的要求。在這里使用的大多是數字信號的控制,電機的控制只有開和合兩種狀態。在動作的過程中需要兩只手臂、身體、頭部、腳部等的協調動作。整個控制系統比較復雜,因而在PIC程序編寫和空間分配方面需要注意一些問題。

        1、 動作標志位的使用

        在整個控制中,組合的動作很多,當所有動作定位都通過光電開關控制時,在程序編寫上就有一些問題。如要求左手上升到鼓掌位、右手上升到舉手位(手初始位置在最下的放下位),光電開關0有效(即為0時是擋住),到達正確位置。用簡單的理解可以寫成下面的程序:

        list P=16c73

        call lefthandup

        call righthandup

        LO call readinsignal

        bdss csl_v,1efthandligbts

        call lefthandstop

        btfsc csl_v,righthandlight4

        goto L0

        call righthandstop

        L1 call readinsignal

        btfsc csl_v,lefthandlight3

        goto L1

        call lefthandstop

        lefthandlight表示光電開關,由此判斷是否到相應的位置。1表示在手臂最下面的位置;2表示在手臂的握手位置;3表示在手臂的鼓掌位置;4表示在手臂的高舉手位置。上面程序描寫左手臂上升到舉手位置和右手臂上升到鼓掌位置并停止的過程。先判斷左手到達否,到達則左手停止,接著看右手是否到達舉手位,到達則停止,否則循環上述的檢測,直到左手到達鼓掌位,右手到達舉手位。

        注意,這里的3,4表示的就是鼓掌位,舉手位。經過循環檢測可以讓手臂停在各位上,然而機械動作是有慣性的,機械停止位可能在該位的上一點或下一點,這就影響下面動作的進行,可能在若干動作后機械動作出現失常,也就是程序沒法正常的運行。在此情況下,需要修改程序的編寫方式,采用標志位來控制動作的進行。如果采用控制標志位,一定要在動作子函數中對標志位置零。程序如下:

        list p=16c73

        actlONstopflag equ Ox6e ;位定義

        lefthandfla8 cqu 0x0 ;0表示停止左手動作

        rightbandflag equ Oxl ;O表示停止右手動作

        movlw Ox03

        movWf actionstopflag

        call lefthanduo

        call righthandup

        L2 call readinsignal

        btfss csl_v,lefthandhght3

        call lefthatldotop

        btfss csl_v,righthandlight4

        call righthandstop

        movlw Ox00

        光電開關相關文章:光電開關原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沈丘县| 延川县| 元谋县| 黄浦区| 体育| 伊川县| 谢通门县| 玉屏| 高阳县| 邹平县| 舟山市| 焦作市| 汶上县| 原阳县| 建湖县| 新邵县| 白城市| 界首市| 鄂托克前旗| 马鞍山市| 建瓯市| 玛多县| 南岸区| 济阳县| 曲阳县| 潜江市| 武汉市| 四平市| 萨迦县| 虎林市| 岗巴县| 淮安市| 嘉黎县| 凤城市| 垦利县| 安顺市| 荃湾区| 鄂托克前旗| 临邑县| 民权县| 胶州市|