新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 淺談PIC單片機軟件開發技巧

        淺談PIC單片機軟件開發技巧

        作者: 時間:2013-02-07 來源:網絡 收藏
        單片機是一種集成在電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統。整個控制系統比較復雜,因而在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

          subwf actionstopflag,w

          btfss status,z

          goto L2

          繼續下面的程序


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 苍南县| 建始县| 年辖:市辖区| 江川县| 兴山县| 文水县| 永昌县| 阜城县| 原阳县| 资兴市| 武鸣县| 永善县| 丹巴县| 彩票| 民丰县| 全椒县| 辉县市| 长岛县| 靖安县| 扬州市| 东辽县| 南投市| 会东县| 潍坊市| 木里| 罗江县| 普陀区| 黄陵县| 吉水县| 太白县| 宣城市| 金沙县| 化隆| 株洲县| 绥阳县| 疏附县| 新疆| 芜湖市| 清新县| 蒲江县| 巴中市|