<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 淺談PIC單片機(jī)軟件開發(fā)技巧

          淺談PIC單片機(jī)軟件開發(fā)技巧

          作者: 時(shí)間:2013-02-07 來(lái)源:網(wǎng)絡(luò) 收藏
          單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。整個(gè)控制系統(tǒng)比較復(fù)雜,因而在PIC程序編寫和空間分配方面需要注意一些問(wèn)題。

            1 的使用

            在整個(gè)控制中,組合的動(dòng)作很多,當(dāng)所有動(dòng)作定位都通過(guò)光電開關(guān)控制時(shí),在程序編寫上就有一些問(wèn)題。如要求左手上升到故障位、右手上升到舉手位(手初始位置在最下的放下位),光電開關(guān)0有效(即為0時(shí)是擋?。竭_(dá)正確位置。用簡(jiǎn)單的理解可以寫成下面的程序:

            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

           ?。?/P>

            lefthandlight表示光電開關(guān),由此判斷是否到相應(yīng)的位置。1表示在手臂最下面的位置;2表示在手臂的握手位置;3表示在手臂的故障位置;4表示在手臂的高舉手位置。上面程序描寫左手臂上升到舉手位置和右手臂上升到故障位置并停止的過(guò)程。先判斷左手到達(dá)否,到達(dá)則左手停止,接著看右手是否到達(dá)舉手位,到達(dá)則停止,否則循環(huán)上述的檢測(cè),直到左手到達(dá)故障位,右手到達(dá)舉手位。

            注意,這里的3,4表示的就是故障位,舉手位。經(jīng)過(guò)循環(huán)檢測(cè)可以讓手臂停在各位上,然而機(jī)械動(dòng)作是有慣性的,機(jī)械停止位可能在該位的上一點(diǎn)或下一點(diǎn),這就影響下面動(dòng)作的進(jìn)行,可能在若干動(dòng)作后機(jī)械動(dòng)作出現(xiàn)失常,也就是程序沒(méi)法正常的運(yùn)行。在此情況下,需要修改程序的編寫方式,采用標(biāo)志位來(lái)控制動(dòng)作的進(jìn)行。如果采用控制標(biāo)志位,一定要在動(dòng)作子函數(shù)中對(duì)標(biāo)志位置零。程序如下:

            list p=16c73

           ?。?/P>

            actlonstopflag equ Ox6e ;位定義

            lefthandfla8 cqu 0x0 ;0表示停止左手動(dòng)作

            rightbandflag equ Oxl ;O表示停止右手動(dòng)作

           ?。?/P>

            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

            繼續(xù)下面的程序


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();