www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 電源 > 線性電源
[導(dǎo)讀]筆者的項(xiàng)目是有關(guān)機(jī)器人控制的實(shí)現(xiàn)??刂撇糠植捎肞ICl6F7X系列單片機(jī),運(yùn)用匯編語言編程,運(yùn)行速度較快,能夠達(dá)到系統(tǒng)的要求。

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

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

    在整個(gè)控制中,組合的動(dòng)作很多,當(dāng)所有動(dòng)作定位都通過光電開關(guān)控制時(shí),在程序編寫上就有一些問題。如要求左手上升到鼓掌位、右手上升到舉手位(手初始位置在最下的放下位),光電開關(guān)0有效(即為0時(shí)是擋住),到達(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ī)械動(dòng)作是有慣性的,機(jī)械停止位可能在該位的上一點(diǎn)或下一點(diǎn),這就影響下面動(dòng)作的進(jìn)行,可能在若干動(dòng)作后機(jī)械動(dòng)作出現(xiàn)失常,也就是程序沒法正常的運(yùn)行。在此情況下,需要修改程序的編寫方式,采用標(biāo)志位來控制動(dòng)作的進(jìn)行。如果采用控制標(biāo)志位,一定要在動(dòng)作子函數(shù)中對標(biāo)志位置零。程序如下:
    list p=16c73
    :
    actlonstopflag equ Ox6e ;位定義
    lefthandfla8 cqu 0x0 ;0表示停止左手動(dòng)作
    rightbandflag equ Oxl ;O表示停止右手動(dòng)作
    :
    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表示動(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)不需返回。由于PIC單片機(jī)的堆棧有限,在程序中,不能無止境地使用GOTO語句,這樣會(huì)使堆棧溢出,程序無法正常運(yùn)行。各個(gè)小程序內(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表示一個(gè)輸入超聲檢測信號。上面程序描寫調(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í)行下面的程序。

    總之,在PIC單片機(jī)的編程中采用合適的方法,可以使整個(gè)程序運(yùn)行穩(wěn)定,而且程序空間的使用也將有所減小,避免了調(diào)試中的Bug。這是筆者在實(shí)際中的一點(diǎn)體會(huì),還有許多不足或沒有考慮到的問題,希望在和大家的探討中不斷學(xué)習(xí)PIC單片機(jī)的精髓。
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉