日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]項目是有關(guān)機(jī)器人控制的實現(xiàn)??刂撇糠植捎肞ICl6F7X系列單片機(jī),運(yùn)用匯編語言編程,運(yùn)行速度較快,能夠達(dá)到系統(tǒng)的要求。在這里使用的大多是數(shù)字信號的控制,電機(jī)的控制只有開和合兩種狀態(tài)。在動作的過程中需要兩只手

項目是有關(guān)機(jī)器人控制的實現(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ī)械停止位可能在該位的上一點或下一點,這就影響下面動作的進(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)志位的值。上述程序和前面所述程序的功能一樣,實現(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。這是筆者在實際中的一點體會,還有許多不足或沒有考慮到的問題,希望在和大家的探討中不斷學(xué)習(xí)PIC單片機(jī)的精髓。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

為增進(jìn)大家對PIC單片機(jī)的認(rèn)識,本文將對PIC單片機(jī)的技術(shù)特性、主流系列PIC單片機(jī)和PIC單片機(jī)在智能家居系統(tǒng)的應(yīng)用予以介紹。

關(guān)鍵字: 單片機(jī) 指數(shù) PIC單片機(jī)

為增進(jìn)大家對PIC單片機(jī)的認(rèn)識,本文將對PIC單片機(jī)的優(yōu)勢以及在PIC單片機(jī)振蕩電路中選擇晶體的方法予以介紹。

關(guān)鍵字: 單片機(jī) 指數(shù) PIC單片機(jī)

為增進(jìn)大家對PIC單片機(jī)的認(rèn)識,本文將對PIC單片機(jī)的優(yōu)勢和不足以及PIC單片機(jī)的端口設(shè)置方法予以介紹。

關(guān)鍵字: 單片機(jī) 指數(shù) PIC單片機(jī)

在由單片機(jī)和PC機(jī)構(gòu)成的檢測系統(tǒng)中,PIC單片機(jī)因其性價比高、功能強(qiáng)大而被廣泛應(yīng)用。然而,在數(shù)據(jù)采集與處理過程中,尤其是AD(模擬到數(shù)字)轉(zhuǎn)換后的數(shù)據(jù)存儲及通過串口上傳數(shù)據(jù)時,常常面臨存儲空間有限和傳輸效率不高的挑戰(zhàn)。本...

關(guān)鍵字: PIC單片機(jī) 數(shù)據(jù)采集 串口傳輸

Pic單片機(jī)和51單片機(jī)是兩種應(yīng)用廣泛的微控制器,它們各自具有不同的特點和優(yōu)勢,選擇哪種單片機(jī)取決于具體應(yīng)用需求。下面將對Pic單片機(jī)和51單片機(jī)進(jìn)行詳細(xì)的介紹和對比。

關(guān)鍵字: PIC單片機(jī) 51單片機(jī) 單片機(jī)

可編程任意電源就是某些功能或參數(shù)可以通過計算機(jī)軟件編程控制的電源。比如設(shè)置輸出電壓是多少,最大輸出電流是多少,超過這個值則不能正常供電等等。

關(guān)鍵字: 可編程 電源 軟件編程

PIC單片機(jī)是基于RISC系統(tǒng)結(jié)構(gòu)的單片機(jī),最初的設(shè)計是支持PDP(編程數(shù)據(jù)處理器)計算機(jī)。大量的操作可以用來控制外圍設(shè)備。PIC單片機(jī)比微控制器具有更快的程序執(zhí)行能力。它是由微芯片技術(shù)公司于1889年發(fā)明的,是一種8位...

關(guān)鍵字: PIC單片機(jī) 定時器 中斷

在通訊、電力領(lǐng)域,要求的直流電源系統(tǒng)輸出的電流電壓各不相同。對于大容量電源系統(tǒng),往往采用多個同一電壓等級的小容量電源模塊并聯(lián)的方法來實現(xiàn),但如果并聯(lián)的電源模塊太多,就不利于均流和可靠性,因此用戶迫切要求大容量電源模塊的出...

關(guān)鍵字: PIC單片機(jī) 開關(guān)電源 UPS

PIC單片機(jī)的技術(shù)優(yōu)勢,第一,哈佛總線結(jié)構(gòu)。在設(shè)計上這一系列的單片機(jī)不僅僅沿用了哈佛體系結(jié)構(gòu),更嘗試了使用哈佛 總線結(jié)構(gòu),這為其在流水作業(yè)中各項指令可以更好地執(zhí)行提供了技術(shù)保障;第二,在尋址方式上,其他類型的單片機(jī)尋址方...

關(guān)鍵字: PIC單片機(jī) 步進(jìn)電機(jī) 控制器

PIC單片機(jī)(Peripheral Interface Controller)是一種基于RISC(Reduced Instruction Set Computing)架構(gòu)的8位或16位微控制器。它由美國微芯片技術(shù)公司Mi...

關(guān)鍵字: PIC單片機(jī) 控制器 計算機(jī)
關(guān)閉