六足爬蟲機器人設計說明_第1頁
六足爬蟲機器人設計說明_第2頁
六足爬蟲機器人設計說明_第3頁
六足爬蟲機器人設計說明_第4頁
六足爬蟲機器人設計說明_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、六足爬蟲機器人設計前言3(一)、機器人的大月窗3(二)、機器人的眼睛耳朵4(三)、機器人的腿一一驅動器與驅動輪4(四)、機器人的手臂一一機械傳動專制5(五)、機器人的心月電池5一、AT89S51單片機簡介6(一)、AT89S51主要功能列舉如下:6(二)、AT89S51各引腳功能介紹:6二、控制系統電路圖9三、微型伺服馬達原理與控制10(一)、微型伺服馬達內部結構10(二)、微行伺服馬達的工作原理10(三)、伺服馬達的控制11(四)、選用的伺服馬達11四、紅外遙控12(一)、紅外遙控系統12(二)、遙控發射器及其編碼12(三)、紅外接收模塊13(四)、紅外解碼程序設計13五、控制程序14六、六

2、足爬蟲機器人結構設計圖21刖百今年年初,學校為參加中央電視臺舉辦的第三屆全國大學生機器人電視大賽,組建了機器人制作小組。我積極參加,有幸成為了其中的一員。因為我們以前沒有參加過類似的比賽,也沒有制作機器人的經驗。可以說我們什么都是從零開始,邊學習邊制作。通過這半年多的制作過程,我從中學到了很多書本上學不到的東西,也得到了很好的學習與鍛煉的機會。最初,我們組建了機器人制作實驗室。到五金機電市場購買了必要的工具和一些制作材料。然后開始制作實驗機器人的身體一一框架。實驗機器人的框架我們是使用輕型萬能角鋼制作的,這種角鋼的兩側都有問隔均勻的孔槽,可以很方便的用螺栓進行連接。用不同長度的角鋼組合后,就可

3、以得到不同大小的立方體和長方體及多邊形。機器人身體的框架就搭建好了。在它的上面將裝上:機器人的大腦一一可編程控制器、機器人的眼睛耳朵一一傳感器、機器人的腿一一驅動輪、機器人的手臂一一機械傳動專制、機器人的心臟一電池之所以使用輕型萬能角鋼,主要是因為是在制作試驗機型,而輕型萬能角鋼安裝拆卸方便和便于修改長度,調整設計。實驗機器人定型后,就照其尺寸用不銹鋼方管焊接制作機器人的身體。再在上面進行打孔等工作,后就可以將機器人的其它部分安裝上去。這樣一個機器人就制作好了。下面我介紹一下機器人的基本組成部分:(一)、機器人的大腦它可以有很多叫法,可以叫做:可編程控制器、微控制器,微處理器,處理器或者計算器

4、等,不過這都不要緊,通常微處理器是指一塊芯片,而其它的是一整套控制器,包括微處理器和一些別的元件。任何一個機器人大腦就必須要有這塊芯片,不然就稱不上機器人了。在選擇微控制器的時候,主要要考慮:處理器的速度,要實現的功能,RO防口RAM勺大小,I/O端口類型和數量,編程語言以及功耗等。其主要類型有:單片機、PLG工控機、PCM等。單有這些硬件是不夠的,機器人的大腦還無法運行。只有在程序的控制下,它才能按我們的要求去工作。可以說程序就是機器人的靈魂了。而程序是由編程語言所編寫的。編程語言是一個控制器能夠接受的語言類型,一般有C語言,匯編語言或者basic語言等,這些通常能被高級一點的控制器直接執行

5、,因為在高級控制器里面內置了編譯器能夠直接把一些高級語言翻譯成機器碼。微處理器將執行這些機器碼,并對機器人進行控制。(二)、機器人的眼睛耳朵傳感器,是機器人的感覺器官,是機器人和現實世界之間的紐帶,使機器人能感知周圍的環境情況。其主要有:光電傳感器、紅外傳感器、力傳感器、超聲波傳感器、位置和姿態傳感器等等。下面我將就幾種常用傳感器進行介紹:1、光電傳感器:光電傳感器的原理是光電效應。其主要用途是顏色識別(機器人就可以沿著地上的線條行進了)和光電編碼等。2、紅外傳感器:紅外傳感器是用來測量距離和感知周圍情況的。因為發射出去的紅外信號在一定距離內遇到物體就會反射回來。通過發送紅外線信號,并接收反射

6、回來的信號,機器人就可以感知前方或身體周圍的情況,做出相應的調整(如:倒退或繞行等)。3、力傳感器:力傳感器是用來檢測碰撞或者接觸信號的,比如機械手的應用,當你放一個東西到機械手的時候,機械手自動抓住它,它就需要力傳感器檢測東西抓的緊不緊。典型的力傳感器是微動開關和壓敏傳感器。微動開關其實就是一個小開關,通過調節開關上的杠桿長短,能夠調節觸動開關的力的大小。用來做碰撞檢測這是最好不過了。但是這種傳感器必須事先確定好力的閥值,也就是說只能實現硬件控制(開還控制)。而壓敏傳感器是能根據受力大小,自動調節輸出電壓或者電流,從而可以實現軟件控制(閉環控制)。4、超聲波傳感器:超聲波傳感器是從蝙蝠那里學

7、來的,通過把發射出的信號與接收到的信號進行對比,就可以測定周圍是否有障礙物,及障礙物的距離,也屬于距離探測傳感器,能提供交遠的探測范圍,而且還能提供在一個范圍內的探測而不是一條線的探測。5、位置和姿態傳感器:機器人在移動或者動作的時候必須時時刻刻知道自己的姿態動作,否則就會產生控制中的一個開環問題,沒有反饋,無法獲知運動是否正確。位置傳感器和姿態傳感器就是用來解決這個問題的。常用的有光電編碼器,由于機器人的執行機構一般是電機驅動,通過計算電機轉的圈數,可以得出電機帶動部件的大致位置,編碼器就是這樣一種傳感器,它一般和電機軸或者轉動部件直接連接,電機或者轉動部件轉了多少圈或者角度能夠通過編碼器讀

8、出,控制軟件再根據讀出數據進行位置估計計算。還有一種是陀螺儀,這是利用陀螺原理制作的傳感器,主要可以測得移動機器人的移動加速度,轉過的角度等信息。(三)、機器人的腿一一驅動器與驅動輪驅動器就是驅動機器人的動的部件。最常用的是電機了。當然還有液壓,氣動等別的驅動方式。一個機器人最主要的控制量就是控制機器人的移動,無論是自身的移動還是手臂等關節的移動,所以機器人驅動器中最根本和本質的問題就是控制電機,控制電機轉的圈數,就可以控制機器人移動的距離和方向,機械手臂的彎曲的程度或者移動的距離等。所以,第一個要解決的問題就是如何讓電機能根據自己的意圖轉動。一般來說,有專門的控制卡和控制芯片來進行控制的。有

9、了這些控制卡和芯片,我們所要做的就是把微控制器和這些連接起來,然后就可以用程序來控制電機了。第二個問題是控制電機的速度,在機器人上的實際表現就是機器人或者手臂的實際運動速度了,機器人走的快慢全靠電機的轉速,這樣,我們就要求控制卡對電機有速度控制。電機目前常用的有兩種,步進電機和直流電機。下面我將就這兩種電機進行介紹:1、直流電機:這是最最普通的電機了。直流電機最大的問題是你沒法精確控制電機轉的圈數,也就前面所說的位置控制。你必須加上一個編碼盤,來進行反饋,來獲得實際轉的圈數。但是直流電機的速度控制相對就比較簡單,用一種叫pwM脈寬調速)的調速方法可以很輕松的調節電機速度。現在也有很多控制芯片帶

10、調速功能的。選購時要考慮的參數是電機的輸出力矩,電機的功率,電機的最高轉速。2、步進電機:看名字就知道了,它是一步一步前進的。也就是說,它可以一個角度一個角度旋轉,不象直流電機,你可以很輕松的調節步進電機的轉角位置,如果你發一個轉10圈的指令,步進電機就不會轉11圈,但是如果是直流電機,由于慣性作用,它可能轉11圈半。步進電機的調速是通過控制電機的頻率來獲得的。一般控制信號頻率越高,電機轉的越快,頻率越低,轉的越慢。選購時要考慮的參數是電機的輸出力矩,電機的功率,每個脈沖電機的最小轉角。還有就是關于輸出的動力,要說明一下:一般情況下,電機都沒法直接帶動輪子或者手臂,因為速度過高力矩不夠大,所以

11、我們需要加上一個減速箱來增加電機的輸出力矩,但是代價是電機速度的減小,比如一個1:250的齒輪箱,會讓你電機的輸出力矩增大250倍,但是速度只有原來的1/250了。首先計算出機器人所需要的速度與力矩大小,然后根據速度與力矩去選擇電機與減速器。(四)、機器人的手臂一一機械傳動專制機械傳動專制就是,由電機驅動的一些桿件和機構(如:凸輪機構、螺桿機構等),用以實現機械手臂的上升、下降、伸縮、彎曲等動作。通常運用的機構有四桿機構、凸輪機構、螺桿機構、搖臂等。(五)-機器人的心臟一一電池電池為機器人的控制系統與驅動系統提供能源供應。主要有:電瓶及可充電電池、電池。前面介紹了機器人的一些基本知識,但這是遠

12、遠不夠的。機器人學科,是在多學科基礎上發展起來的綜合性技術。機器人技術涉及機械、電子、計算機、語言學和人工智能等許多學科。現在機器人已經應用在人類社會生活的各個領域,發揮著越來越重要的影響。我利用暑假的時間設計了一個六足爬蟲機器人,用日立(HITACHI的錄像機遙控器來對它進行控制。基本原理是:遙控器發出紅外學號,機器人通過紅外接收器接收倒紅外信號后,對信號進行解碼,并以存儲的代碼進行比較,確定指令的含義,后可以實現前進、后退、左轉、右轉及發聲等功能。控制系統我使用的是AT89S51單片機,編程語言使用的是匯編語言,動力系統使用的是微型伺服馬達,能源系統使用的是9V電池。下面我將就具體設計進行

13、介紹。一、AT89S51單片機簡介AT89S51為ATMEL所生產的可電氣燒錄清洗的8051相容單芯片,其內部程序代碼容量為4KB(一)、AT89S51主要功能列舉如下:1、為一般控制應用的8位單芯片2、晶片內部具時鐘振蕩器(傳統最高工作頻率可至12MH03、內部程式存儲器(ROM為4KB4、內部數據存儲器(RAM為128B5、外部程序存儲器可擴充至64KB6、外部數據存儲器可擴充至64KB7、32條雙向輸入輸出線,且每條均可以單獨做I/O的控制8、5個中斷向量源9、2組獨立的16位定時器10、1個全多工串行通信端口11、8751及8752單芯片具有數據保密的功能12、單芯片提供位邏輯運算指令

14、(T2)P1Q匚口VCC140(T2EX)P1.1匚239PO.OiADOP1.2E33&P0.1(AD1P13匚437P0.2(AD2)P1H匚536P0.3(AD3)P15E635P0.4(A04)P1.6匚734P0.5(ADS)F17匚833PO.e(AD6)RSTC932P0.7CAD7)(RXDiP3.0匚1031EAVPP_(TXD)pad匚1130ALBPROG(INTO)P3.2匚1229PSENUNT1)P43匚1328口P2.7(A1£)(TO)P3.4匚1427口F261Al中(TDRMIZ1526P2.SCA13)(WRjP3.6匚162Sp24ml

15、-RDF&7匚1724P2.3(A11)XTAL2C1923口P2.2iA10iXTAL1匚1922P2.1(A9)GND匚2021P2.D(A8)(二)、AT89S51各弓I腳功能介紹:AT89S51VCCAT89S51電源正端輸入,接+5VVSS電源地端。XTAL,單芯片系統時鐘的反相放大器輸入端。XTAL2系統時鐘的反相放大器輸出端,一般在設計上只要在XTAL1和XTAL2上接上一只石英振蕩晶體系統就可以動作了,此外可以在兩引腳與地之間加入一20PF的小電容,可以使系統更穩定,避免噪聲干擾而死機。RESETAT89S51的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提

16、升至高電平并保持兩個機器周期以上的時間,AT89S51便能完成系統重置的各項動作,使得內部特殊功能寄存器之內容均被設成已知狀態,并且至地址0000H處開始讀入程序代碼而執行程序oEA/Vpp:"EA"為英文"ExternalAccess"的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統會取用外部的程序代碼(存于外部EPROMP)來執行程序。因此在8031及8032中,EA引腳必須接低電平,因為其內部無程序存儲器空間。如果是使用8751內部程序空間時,此引腳要接成高電平。止匕外,在將程序代碼燒錄至8751內部EPROIW,可以

17、利用此引腳來輸入21V的燒錄高壓(Vpp)0ALE/PROGALE是英文"AddressLatchEnable"的縮寫,表示地址鎖存器啟用信號。AT89S51可以利用這支引腳來觸發外部的8位鎖存器(如74LS373),將端口0的地址總線(A0A7)鎖進鎖存器中,因為AT89S51是以多工的方式送出地址及數據。平時在程序執行時ALE引腳的輸出頻率約是系統工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規劃的特殊功能來使用。PSEN此為“ProgramStoreEnable"的縮寫,其意為程序儲存啟用,當805

18、1被設成為讀取外部程序代碼工作模式時(EA=。,會送出此信號以便取得程序代碼,通常這支腳是接至|JEPROIMJOE腳。AT89S51可以禾I用PSENRRD弓I腳分另啟用存在外部的RAMtEPROM使得數據存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。PORT0(P0.0P0.7):端口0是一個8位寬的開路汲極(OpenDrain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態,而是內部有一提升電路,P0在當做I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時(即取用外部程序代碼或數據

19、存儲器),P0就以多工方式提供地址總線(A0A7)及數據總線(D0D7)。設計者必須外加一鎖存器將端口0送出的地址栓鎖住成為A0A7,再配合端口2所送出的A8A15合成一完整的16位地址總線,而定址到64K的外部存儲器空問。PORT2(P2.0P2.7):端口2是具有內部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當做一般I/O端口使用外,若是在AT89S51擴充外接程序存儲器或數據存儲器時,也提供地址總線的高字節A8A15,這個時候P2便不能當做I/O來使用了。PORT1(P1.0P1.7):端口1也是

20、具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LSTTL負載,同樣地若將端口1的輸出設為高電平,便是由此端口來輸入數據。如果是使用8052或是8032的話,P1.0又當做定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發腳位。PORT3(P3.0P3.7):端口3也具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數控制及外部數據存儲器內容的讀取或寫入控制等功能。其引腳分配如下:P3.0:RXD串行通信輸入。P3.1:TXD串行通信輸出。P3.2:INT0,外部中斷

21、0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計時計數器0輸入。P3.5:T1,計時計數器1輸入。P3.6:WR外部數據存儲器的寫入信號。P3.7:RD外部數據存儲器的讀取信號。、控制系統電路圖780J聚光二里富:叫了1110FNAX2322-'l|3+123.5f781£融1期金P0J)P13P01Pls+PONH1利3Pl.£P0.+Pl.7P)JRM同7JUHh辭&EMVp面、P31KLHO5&畫迅PSJ面T、P33Z0»%K711KJP2.i版P5.(P2JED-KJK.+於3K2P2J阻F32繇口G-JTDIM”+0

22、239+38537一一tJj:g科d103$C0H12算311113口30TTF£髓1Jli4H2£2JW15料231?22n0阿騰陽CU1T8COtlli1rI,控制系統電路圖三、微型伺服馬達原理與控制(一)、微型伺服馬達內部結構一個微型伺服馬達內部包括了一個小型直流馬達;一組變速齒輪組;一個反饋可調電位器;及一塊電子控制板。其中,高速轉動的直流馬達提供了原始動力,帶動變速(減速)齒輪組,使之產生高扭力的輸出,齒輪組的變速比愈大,伺服馬達的輸出扭力也愈大,也就是說越能承受更大的重量,但轉動的速度也愈低。小型直流馬達變速齒輪組可調電位器電子控制板微型伺服馬達內部結構圖(二)

23、、微行伺服馬達的工作原理一個微型伺服馬達是一個典型閉環反饋系統,其原理可由下圖表示:比例電.至微行伺服馬達工作原理圖減速齒輪組由馬達驅動,其終端(輸出端)帶動一個線性的比例電位器作位置檢測,該電位器把轉角坐標轉換為一比例電壓反饋給控制線路板,控制線路板將其與輸入的控制脈沖信號比較,產生糾正脈沖,并驅動馬達正向或反向地轉動,使齒輪組的輸出位置與期望值相符,令糾正脈沖趨于為0,從而達到使伺服馬達精確定位的目的。(三)、伺服馬達的控制標準的微型伺服馬達有三條控制線,分別為:電源、地及控制。電源線與地線用于提供內部的直流馬達及控制線路所需的能源,電壓通常介于4尸6V之間,該電源應盡可能與處理系統的電源

24、隔離(因為伺服馬達會產生噪音)。甚至小伺服馬達在重負載時也會拉低放大器的電壓,所以整個系統的電源供應的比例必須合理。輸入一個周期性的正向脈沖信號,這個周期性脈沖信號的高電平時間通常在1ms-2ms之間,而低電平時間應在5ms到20ms之間,并不很嚴格,下表表示出一個典型的20ms周期性脈沖的正脈沖寬度與微型伺服馬達的輸出臂位置的關(四)、選用的伺服馬達我選用的伺服馬達為TowPro的,型號為SG303其主要技術參數如下:轉速:0.23秒/60度。力矩:3.2kg-cm,尺寸:40.4mnrK19.8mnrK36mm重量:37.2go5V電源供電。控制周期脈沖寬度為20ms送出不同的正脈沖寬度是

25、,就可以得到不同的控制效果。控制正脈沖寬度如下:正脈沖寬度為0.3ms時,伺服馬達反轉。正脈沖寬度為2.5ms時,伺服馬達正轉。正脈沖寬度為1.4ms時,伺服馬達回到中點。四、紅外遙控家中許多的電器產品都有遙控的功能,例如電視機、錄像機、VCD空調等家電產品,它們都是以紅外遙控的方式進行遙控。(一)、紅外遙控系統通用紅外遙控系統由發射和接收兩大部分組成,應用編/解碼專用集成電路芯片來進行控制操作,如圖1所示。發射部分包括鍵盤矩陣、編碼調制、LED紅外發送器;接收部分包括光、電轉換放大器、解調、解碼電路。(二)、遙控發射器及其編碼遙控發射器專用芯片很多,根據編碼格式可以分成兩大類,這里我們以運用

26、比較廣泛,解碼比較容易的一類來加以說明,現以日本NEC勺uPD6121G&成發射電路為例說明編碼原理。當發射器按鍵按下后,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調制的用行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”,其波形如圖2所示。上述“0”和“1”組成的32位二進制碼經38kHz的載頻進行二次調制以提高發射效率,達到降低電源功耗的目的。然后再通過紅外發射二極管產生紅外線向空間發射。遙控編碼是連續的32位二進制碼組

27、,其中前16位為用戶識別碼,能區別不同的電器設備,防止不同機種遙控碼互相干擾。該芯片的用戶識別碼固定為十六進制01H;后16位為8位操作碼(功能碼)及其反碼。UPD6121GR多額128種不同組合的編碼,如圖3所示。遙控器在按鍵按下后,周期性地發出同一種32位二進制碼,周期約為108ms一組碼本身的持續時間隨它包含的二進制“0”和“1”的個數不同而不同,大約在4563ms之間,圖4為發射波形圖。叫號的jFL,j.戶/我”I斗力:產"嗎;坤作產£及學I卜箱小kgk*4k祠匹加卜永:3卜4/5廉周沖中邪帆網心扃"畏|口市;圉3遙控信號痛碼波然圖*竺蝴.冉、圖4遺疑伯目

28、的陶斯恃波影(三)、紅外接收模塊1GND2I;3一左圖為一常用的紅外接收模塊。其內部含有高頻的濾波電路,專門用來濾除紅外線合成信號的載波信號(38KH,并送出接收到的信號。當紅外線合成信號進入紅外接收模塊,在其輸出端便可以得到原先發射器發出的數字編碼,只要經過單片機解碼程序進行解碼,便可以得知按下了哪一個按鍵,而做出相應的控制處理,完成紅外遙控的動作。紅外接收模塊(四)、紅外解碼程序設計紅外解碼程序主要工作為等待紅外線信號出現,并跳過引導信號,開始收集連續32位的表面數據,存入內存的連續空間。位信號解碼的原則是:以判斷各個位的波寬信號來決定高低信號。位解碼原理如下:解碼為0:低電平的寬度0.5

29、6ms+高電平白寬度0.56ms。解碼為1:低電平的寬度1.68ms+高電平白寬度0.56ms。程序中必須設計一精確的0.1ms延時時間作為基礎時間,以計數實際的波形寬度,若讀值為5表示波形寬度為0.5ms,若讀值為16表示波形寬度為1.6ms,以此類推。高電平的寬度1.12ms為固定,因此可以直接判斷低電平的寬度的計數值5或時16,來確定編碼為0或是1。程序中可以減法指令SUBBE完成判斷,指令"SUBBA,R2'中若R2為計數值,A寄存器設為8,就可如下:當“8R2'有產生借位,借位標志C=1,表示編碼為1。當“8R2'無產生借位,借位標志C=0,表示編碼

30、為00將借位標志C經過右移指令“RRCA”轉入A寄存器中,再經由R0寄存器間接尋址存入內存中。詳細解碼程序請參看“紅外遙控爬蟲機器人ASM!序”中的“紅外解碼子程序”。五、控制程序HOMEEQU14BACKEQU3FOREQU25;;伺服馬達回到中點時間常數;伺服馬達反轉時間常數;伺服馬達正轉時間常數;遙控器按鍵16比較碼CODE_K1EQU19H;機器人前進比較碼CODE_K2EQU18H;機器人后退比較碼CODE_K3EQU0AH;機器人左轉比較碼CODE_K4EQU09H;機器人右轉比較碼CODE_K5EQU0BH;機器人回到中點比較碼CODE_K6EQU14H;機器人行走啟動進比較碼I

31、RCOMEQU30H;紅外線信號解碼數據放置變量起始地址COMEQU32H;比較第3字節變量IRINEQUP3.2;紅外線IR信號輸入位引腳定義WLEDEQUP3.7;發光二極管引腳定義SPKEQUP3.4;壓電喇叭引腳定義DJZEQUP1.0;中間伺服馬達引腳定義DJLEQUP1.1;左側伺服馬達引腳定義DJREQUP1.2;右側伺服馬達引腳定義ORG0H;程序代碼由地址0開始執行JMPBEGIN;進入主程序BEGIN:CLRDJZ;關閉中間伺服馬達CLRDJL;關閉左側伺服馬達CLRDJR;關閉右側伺服馬達CLRSPK;關閉壓電喇叭CALLLED_BL;發光二極管閃爍,表示程序開始執行CA

32、LLBZ;壓電喇叭發出嘀的一聲CALLGO_HOME;全部伺服馬達回到中點CALLLED_BL;發光二極管閃爍,表示機器人準備完畢CALLBZ;壓電喇叭發出嘀的一聲CALLQD;運行行走啟動子程序,擺好行走姿態SETBIRINLOOP:;紅外線信號IR輸入位設為高電平,MOVR0,#IRCOM;設置IR解碼起始地址CALLIR_IN;進行IR解碼CALLOP;進行解碼比較,并控制機器人動作JMPLOOP;繼續循環執行DELAY:MOVR6,#50D1:MOVR7,#99;10ms延時子程序J準備接收紅外信號;紅外遙控爬蟲機器人ASM程序DJNZR7,$DJNZR6,D1DJNZR5,DELAY

33、RET;LED_BL:MOVR1,#4LE1:CPLWLEDMOVR5,#10CALLDELAYDJNZR1,LE1RET;發光二極管閃爍子程序;發光二極管反向;進行100ms延時BZ:MOVR6,#0B1:SETBSPKDJNZR6,B1MOVR5,#5CALLDELAYCLRSPKRET;壓電喇叭發聲子程序;壓電喇叭得電,開始發聲;進行50ms延時;關閉壓電喇叭DEL:;0.1ms延時子程序MOVR5,#1DELAY1:MOVR6,#2E1:MOVR7,#22E2:DJNZR7,E2DJNZR6,E1DJNZR5,DELAY1RET;IR_IN:;紅外解碼子程序I1:JNBIRIN,I2;

34、等待紅外IR信號出現JMPI1I2:MOVR4,#20;發現紅外IR信號,延時一下I20:CALLDELDJNZR4,I20JBIRIN,I1;確認紅外IR信號出現I21:JBIRIN,I3CALLDELJMPI21;等待IR變為高電平I3:MOVR3,#0;8位數清0LL:JNBIRIN,I4CALLDELJMPLL;等待IR變為低電平I4:JBIRIN,I5CALLDELJMPI4;等待IR變為高電平I5:MOVR2,#0;0.1ms計數L1:CALLDELJBIRIN,N1;等待IR變為高電平MOVA,#8;設置減數為8CLRC;清除借位標志CSUBBA,R2;判斷高低位MOVA,R0;

35、取出內存中原先數據RRCA;右移指令,將借位標志C右移進入A寄存器中;將數據寫入內存中;處理完成一位,R3+1(R3計數);循環處理8位;R3清0;處理完成1個字節,R0+1(R0計數);循環收集到4個字節;至完成返回;R2+1(R2計數);0.1ms計數過長,時間到自動離開;完成返回MOVR0,AINCR3CJNER3,#8,LLMOVR3,#0INCR0CJNER0,#34H,LLJMPOKN1:INCR2CJNER2,#30,L1OK:RET;OP:MOVA,COMCJNEA,#CODE_K5,A1CALLLED_BLCALLBZCALLGO_HOMECALLLED_BLCALLBZRE

36、TA1:MOVA,COMCJNEA,#CODE_K1,A2CALLBZCALLGO_FOR執行解碼動作子程序;對解碼進行比較,看是否是回到中點指令,否就轉至下一項比較;發光二極管閃爍;壓電喇叭發出嘀的一聲;執行回到中點;發光二極管閃爍;壓電喇叭發出嘀的一聲;對解碼進行比較,看是否是前進指令,否就轉至下一項比較;壓電喇叭發出嘀的一聲;執行前進RETA2:MOVA,COMCJNEA,#CODE_K2,A3CALLBZCALLGO_BACK;對解碼進行比較,看是否是后退指令,否就轉至下一項比較;壓電喇叭發出嘀的一聲;執行后退RETA3:;LMOVA,COMCJNEA,#CODE_K3,A4CALLB

37、ZCALLGO_L;對解碼進行比較,看是否是左轉指令,否就轉至下一項比較;壓電喇叭發出嘀的一聲;執行左轉RETA4:;RMOVA,COMCJNEA,#CODE_K4,A5CALLBZCALLGO_R;對解碼進行比較,看是否是右轉指令,否就轉至下一項比較;壓電喇叭發出嘀的一聲;執行右轉RETA5:MOVA,COMCJNEA,#CODE_K6,A6CALLLED_BLCALLBZCALLQDCALLLED_BLCALLBZRETA6:RET;對解碼進行比較,看是否是行走啟動指令,否就轉至下一項;發光二極管閃爍;壓電喇叭發出嘀的一聲;執行行走啟動;發光二極管閃爍;壓電喇叭發出嘀的一聲;返回;各伺服電

38、機回中點控制子程序HOME1:SETBDJZSETBDJLSETBDJRMOVR4,#HOMEG1:CALLDELDJNZR4,G1CLRDJZCLRDJLCLRDJRMOVR4,#(200-HOME)G2:CALLDELDJNZR4,G2RET;GO_HOME:MOVR3,#15H1:CALLHOME1DJNZR3,H1RET;機器人回中點子程序DJZ_FOR:SETBDJZMOVR4,#FORFZ1:CALLDELDJNZR4,FZ1CLRDJZMOVR4,#(200-FOR)FZ2:CALLDELDJNZR4,FZ2RET;中間電機正轉子程序DJL_FOR:SETBDJLMOVR4,#FORFL1:CALLDELDJNZR4,FL1CLRDJLMOVR4,#(200-FOR)FL2:CALLDELDJNZR4,FL2RET;左側電機正轉子程序DJR_FOR:SETBDJRMOVR4,#FORFR1:CALLDELDJNZR4,FR1CLRDJRMOVR4,#(200-FOR)FR2:CALLDELDJNZR4,FR2RET;右側電機正轉子程序DJZ_BACK:SETBDJZMOVR4,#BACKDJZBA1:CALLDELDJNZR4,DJZBA1CLRDJZMOVR4,#(200-BACK)D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論