国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發(fā)布時間:2010-11-1 14:30    發(fā)布者:eetech
關(guān)鍵詞: PIC , 單片機(jī) , 開發(fā)技巧 , 軟件
筆者的項目是有關(guān)機(jī)器人控制的實(shí)現(xiàn)。控制部分采用PICl6F7X系列單片機(jī),運(yùn)用匯編語言編程,運(yùn)行速度較快,能夠達(dá)到系統(tǒng)的要求。在這里使用的大多是數(shù)字信號的控制,電機(jī)的控制只有開和合兩種狀態(tài)。在動作的過程中需要兩只手臂、身體、頭部、腳部等的協(xié)調(diào)動作。整個控制系統(tǒng)比較復(fù)雜,因而在PIC程序編寫和空間分配方面需要注意一些問題。

1 動作標(biāo)志位的使用

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

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

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

    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
    繼續(xù)下面的程序

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

2 GOTO,cALL指令的不同使用

在PIC的匯編程序中,CALL與GOT0指冷使用的場合不同。一般情況下,在于程序與主程序之間大多用CALL指令;而狀態(tài)轉(zhuǎn)換模塊之間大多用GOTO指令,即由此狀態(tài)進(jìn)入另一種狀態(tài)不需返回。由于PIC單片機(jī)的堆棧有限,在程序中,不能無止境地使用GOTO語句,這樣會使堆棧溢出,程序無法正常運(yùn)行。各個小程序內(nèi)部循環(huán)占用堆棧的級數(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表示一個輸入超聲檢測信號。上面程序描寫調(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)志位時,Z(零標(biāo)志)、C(借位標(biāo)志)是不同的。Z為l時,表示上面的結(jié)果為0,Z為0時,則結(jié)果不為0。C為l時,借位,C為0時,沒有借位。在使用定時器的時候,一般使用C標(biāo)志位,這是由于當(dāng)完成某一動作去檢查定時器時,時間可能沒到,或是正好,或是已經(jīng)超過時間,只要到了或超過時間,都要按照要求關(guān)閉定時器,如下面程序所述。如果用Z標(biāo)志位,等于0時可能沒有檢測到,無法判斷停止的狀態(tài),而用z可以很好地控制時間定時。進(jìn)行一般的計算時大多用Z,如前面的動作標(biāo)志位中就是如此使用的。

    list D=16c76
    call opentimerO
L4  movlw d’30’
    subwf t0_v2,W
    btfss status,c
    goto L4
    cau closetimer0

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

總之,在PIC單片機(jī)的編程中采用合適的方法,可以使整個程序運(yùn)行穩(wěn)定,而且程序空間的使用也將有所減小,避免了調(diào)試中的Bug。這是筆者在實(shí)際中的一點(diǎn)體會,還有許多不足或沒有考慮到的問題,希望在和大家的探討中不斷學(xué)習(xí)PIC單片機(jī)的精髓。
本文地址:http://m.qingdxww.cn/thread-35619-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人久久精品二区三区 | 成年女人免费看片 | 三级毛片免费观看 | 欧美视频免费 | 成人免费男女视频网站慢动作 | 99在线资源 | 中文 日本 免费 高清 | 国产无毛 | 在线看欧美日韩中文字幕 | 日本天堂网在线观看 | 久久精品一本到99热免费 | 亚洲精品15p | 黄视频在线观看www 黄视频网址 | 伊人五月在线 | 麻豆精品视频网站在线观看 | 久久国产精品系列 | 久久精品免费观看久久 | 激情 婷婷 | 国产精品一级二级三级 | 国亚洲欧美日韩精品 | 97国产蝌蚪视频在线观看 | 精品一区二区三区高清免费不卡 | 国产精品一区二区久久精品 | 10000拍拍18勿入免费视频| 四虎成人免费影院网址 | 欧美1819| www.色女人| 日本欧美韩国一区二区三区 | 一级做a爰片欧美一区 | 免费欧洲毛片a级视频 | 色爽视频 | 国产在线激情视频 | 美女视频网站色 | 伊人日日夜夜 | 韩毛片| 亚洲欧美日韩另类在线 | 在线观看福利影 | 男人j桶进女人p无遮挡 | 日韩高清的天堂在线观看免费 | 国产日韩欧美视频在线 | 在线免费h|