智能機(jī)器人跨專業(yè)公選實驗_第1頁
智能機(jī)器人跨專業(yè)公選實驗_第2頁
智能機(jī)器人跨專業(yè)公選實驗_第3頁
智能機(jī)器人跨專業(yè)公選實驗_第4頁
智能機(jī)器人跨專業(yè)公選實驗_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、智能機(jī)器人跨專業(yè)公選實驗實驗指導(dǎo)書范守文 吳獻(xiàn)鋼 袁太文 陳暢電子科技大學(xué)機(jī)械電子工程學(xué)院2005年9月機(jī)器人自己做,也許你從小有這樣的一個夢,在這里,我們讓你夢想成真!第一篇 機(jī)器人控制電路基礎(chǔ)圖1 復(fù)位電路一、復(fù)位電路任何單片機(jī)在工作之前都要有個復(fù)位的過程,復(fù)位是什么意思呢?它就象是我們上課之前打的預(yù)備鈴。預(yù)備鈴一響,大家就自動地從操場、其它地方進(jìn)入教室了,在這一段時間里,是沒有老師干預(yù)的,對單片機(jī)來說,是程序還沒有開始執(zhí)行,是在做準(zhǔn)備工作。顯然,準(zhǔn)備工作不需要太長的時間,復(fù)位只需要5ms的時間就可以了。如何進(jìn)行復(fù)位呢?只要在單片機(jī)的RST引腳上加上高電平,就可以了,按上面所說,時間不少于

2、5ms。為了達(dá)到這個要求,可以用很多種方法,這里提供一種供參考,見圖1。圖2 晶振電路這種復(fù)位電路的工作原理是:通電時,電容兩端相當(dāng)于是短路,于是RST引腳上為高電平,然后電源通過電阻對電容充電,RST端電壓慢慢下降,降到一定程序,即為低電平,單片機(jī)開始正常工作。二、晶振電路圖3 機(jī)器人驅(qū)動芯片AS611單片機(jī)是一種時序電路,必須提供脈沖信號才能正常工作,在單片機(jī)內(nèi)部已集成了振蕩器,使用晶體振蕩器,接18、19腳。只要買來晶振,電容,連上就可以了,按圖2接上即可。三、機(jī)器人驅(qū)動芯片AS611圖3是機(jī)器人驅(qū)動芯片AS611與51單片機(jī)連接的電路原理圖AS611內(nèi)部包含4通道邏輯驅(qū)動電路,其額定工

3、作電流為1A,最大可達(dá)1.5A,Vss電壓最小4.5V,最大可達(dá)36V;Vs電壓最大值也是36V。下表是其使能、輸入引腳和輸出引腳的邏輯關(guān)系(電路按圖3連接):EN A(B)IN1(IN3)IN2(IN4)電機(jī)運(yùn)行情況HHL正轉(zhuǎn)HLH反轉(zhuǎn)H同IN2(IN4)同IN1(IN3)快速停止LXX停止四、74LS21四輸入與門圖4 74LS21四輸入與門引腳圖74LS21四輸入與門引腳如圖4所示。五、LM324四運(yùn)放集成電路圖5 LM324四運(yùn)放的組成與引腳圖LM324是四運(yùn)放集成電路,它采用14腳雙列直插塑料封裝。它的內(nèi)部包含四組形式完全相同的運(yùn)算放大器,除電源共用外,四組運(yùn)放相互獨(dú)立。每一組運(yùn)算放

4、大器可用圖5a所示的符號來表示,它有5個引出腳,其中“+”、“-”為兩個信號輸入端,“V+”、“V-”為正、負(fù)電源端,“Vo”為輸出端。兩個信號輸入端中,Vi-(-)為反相輸入端,表示運(yùn)放輸出端Vo的信號與該輸入端的相位相反;Vi+(+)為同相輸入端,表示運(yùn)放輸出端Vo的信號與該輸入端的相位相同。LM324的引腳排列見圖5b。圖6 碰撞開關(guān)引腳與尺寸圖123由于LM324四運(yùn)放電路具有電源電壓范圍寬,靜態(tài)功耗小,可單電源使用,價格低廉等優(yōu)點(diǎn),因此被廣泛應(yīng)用在各種電路中。當(dāng)去掉運(yùn)放的反饋電阻時,或者說反饋電阻趨于無窮大時(即開環(huán)狀態(tài)),理論上認(rèn)為運(yùn)放的開環(huán)放大倍數(shù)也為無窮大。此時運(yùn)放便形成一個電

5、壓比較器,其輸出如不是高電平(V+),就是低電平(V-或接地)。當(dāng)正輸入端電壓高于負(fù)輸入端電壓時,運(yùn)放輸出低電平。六、碰撞開關(guān) 碰撞開關(guān)引腳與尺寸如圖6所示。引腳1為信號輸出腳,引腳2接地,引腳3接+5V。七、紅外發(fā)射管圖8 紅外接收頭引腳與尺寸圖圖7 紅外發(fā)射管外形與電路符號紅外發(fā)射管發(fā)出的光是不可見的,它發(fā)出的峰值波長在900nm左右,屬于紅外波段,由于一般半導(dǎo)體硅光敏器件的峰值波長在900nm左右,因此可以方便地構(gòu)筑紅外傳感系統(tǒng)。智能機(jī)器人實驗中使用的紅外發(fā)射管波長為880nm,其電路符號及外形如圖7所示。圖9 紅外傳感器測障原理紅外發(fā)射管的主要優(yōu)點(diǎn)是:體積小、壽命長、功耗小、響應(yīng)速度快

6、(可以調(diào)制到幾十兆赫)等,因此在光電控制中被大量采用。其主要缺點(diǎn)是:有方向性、易受環(huán)境溫度影響等。紅外發(fā)射管工作在正向電壓下,其正向特征與普通二極管一樣。對它施加幾伏正向電壓后,就會發(fā)出不可見的紅外光,光敏元件接收到此紅外光后,就會輸出相應(yīng)的信號。由于紅外發(fā)射管在正向電流下工作,因此發(fā)光強(qiáng)度隨正向電流的增加而增加,因此調(diào)整流過紅外發(fā)射管的正向電流,便可以調(diào)整輸出光功率(即發(fā)光強(qiáng)度),對應(yīng)地達(dá)到調(diào)整有效檢測距離的目的。八、紅外接收頭紅外接收頭引腳與尺寸如圖8所示。引腳1為信號輸出腳,引腳2接地,引腳3接+5V。當(dāng)接收到紅外信號時,其信號輸出腳輸出為低電平。九、紅外傳感器測障原理紅外傳感系統(tǒng)依靠發(fā)

7、射并接收由障礙物反射回來的紅外光來判斷是否有障礙物。如圖9所示,紅外光以60的散射角向外發(fā)射,陰影區(qū)域分別是左右兩個紅外發(fā)射管的反射區(qū)域,而紅外接收模塊正好處于左右兩個反射區(qū)域內(nèi),能接收到左右兩個紅外發(fā)射管的反射光,從而可以判定前方、左邊、右邊有無障礙物。圖10 機(jī)器人控制板的電源十、機(jī)器人控制板的電源機(jī)器人控制板的電源部分分兩路,一路直接由充電電池提供,主要是提供給電機(jī)使用,另一路通過三端穩(wěn)壓芯片LM7805穩(wěn)壓成5伏直流電源提供給單片機(jī)系統(tǒng)使用,右邊兩個電容是5伏電源的濾波電容,電阻和發(fā)光二極管組成5伏電源的工作指示電路,只要電源部分正常,發(fā)光二極管組就會點(diǎn)亮,我們可以根據(jù)這個發(fā)光二極管組

8、來判斷整個電源部分是否工作正常,左側(cè)的開關(guān)是整個機(jī)器人控制系統(tǒng)電源的總開關(guān)。第二篇 機(jī)器人控制軟件基礎(chǔ)一、中斷服務(wù)程序有關(guān)中斷的概念什么是中斷,我們從一個生活中的例子引入。你正在家中看書,突然電話鈴響了,你放下書本,去接電話,和來電話的人交談,然后放下電話,回來繼續(xù)看你的書。這就是生活中的“中斷”的現(xiàn)象,就是正常的工作過程被外部的事件打斷了。仔細(xì)研究一下生活中的中斷,對于我們學(xué)習(xí)單片機(jī)的中斷也很有好處。第一、什么可經(jīng)引起中斷,生活中很多事件可以引起中斷:有人按了門鈴了,電話鈴響了,你的鬧鐘鬧響了,你燒的水開了.等等諸如此類的事件,我們把可以引起中斷的稱之為中斷源,單片機(jī)中也有一些可以引起中斷的

9、事件,8031中一共有5個:兩個外部中斷,兩個計數(shù)/定時器中斷,一個串行口中斷。第二、中斷的嵌套與優(yōu)先級處理:設(shè)想一下,我們正在看書,電話鈴響了,同時又有人按了門鈴,你該先做那樣呢?如果你正是在等一個很重要的電話,你一般不會去理會門鈴的,而反之,你正在等一個重要的客人,則可能就不會去理會電話了。如果不是這兩者(即不等電話,也不是等人上門),你可能會按你通常的習(xí)慣去處理??傊@里存在一個優(yōu)先級的問題,單片機(jī)中也是如此,也有優(yōu)先級的問題。優(yōu)先級的問題不僅僅發(fā)生在兩個中斷同時產(chǎn)生的情況,也發(fā)生在一個中斷已產(chǎn)生,又有一個中斷產(chǎn)生的情況,比如你正接電話,有人按門鈴的情況,或你正開門與人交談,又有電話響了

10、情況??紤]一下我們會怎么辦吧。第三、中斷的響應(yīng)過程:當(dāng)有事件產(chǎn)生,進(jìn)入中斷之前我們必須先記住現(xiàn)在看書的第幾頁了,或拿一個書簽放在當(dāng)前頁的位置,然后去處理不同的事情(因為處理完了,我們還要回來繼續(xù)看書):電話鈴響我們要到放電話的地方去,門鈴響我們要到門那邊去,也說是不同的中斷,我們要在不同的地點(diǎn)處理,而這個地點(diǎn)通常還是固定的。計算機(jī)中也是采用的這種方法,五個中斷源,每個中斷產(chǎn)生后都到一個固定的地方去找處理這個中斷的程序,當(dāng)然在去之前首先要保存下面將執(zhí)行的指令的地址,以便處理完中斷后回到原來的地方繼續(xù)往下執(zhí)行程序。具體地說,中斷響應(yīng)可以分為以下幾個步驟:保護(hù)斷點(diǎn),即保存下一將要執(zhí)行的指令的地址,就

11、是把這個地址送入堆棧。尋找中斷入口,根據(jù)5個不同的中斷源所產(chǎn)生的中斷,查找5個不同的入口地址。以上工作是由計算機(jī)自動完成的,與編程者無關(guān)。在這5個入口地址處存放有中斷處理程序(這是程序編寫時放在那兒的,如果沒把中斷程序放在那兒,就錯了,中斷程序就不能被執(zhí)行到)。執(zhí)行中斷處理程序。中斷返回:執(zhí)行完中斷指令后,就從中斷處返回到主程序,繼續(xù)執(zhí)行。究竟單片機(jī)是怎么樣找到中斷程序所在位置。中斷請求源:外中斷請求源:即外中斷0和1,經(jīng)由外部引腳引入的,在單片機(jī)上有兩個引腳,名稱為INT0、INT1,也就是P3.2、P3.3這兩個引腳。在內(nèi)部的TCON中有四位是與外中斷有關(guān)的。IT0:INT0觸發(fā)方式控制位

12、,可由軟件進(jìn)和置位和復(fù)位,IT0=0,INT0為低電平觸發(fā)方式,IT0=1,INT0為負(fù)跳變觸發(fā)方式。IE0:INT0中斷請求標(biāo)志位。當(dāng)有外部的中斷請求時,這位就會置1(這由硬件來完成),在CPU響應(yīng)中斷后,由硬件將IE0清0。IT1、IE1的用途和IT0、IE0相同。內(nèi)部中斷請求源TF0:定時器T0的溢出中斷標(biāo)記,當(dāng)T0計數(shù)產(chǎn)生溢出時,由硬件置位TF0。當(dāng)CPU響應(yīng)中斷后,再由硬件將TF0清0。TF1:與TF0類似。TI、RI:串行口發(fā)送、接收中斷。中斷允許寄存器IE 在MCS51中斷系統(tǒng)中,中斷的允許或禁止是由片內(nèi)可進(jìn)行位尋址的8位中斷允許寄存器IE來控制的。EA是總開關(guān),如果它等于0,則

13、所有中斷都不允許。ES 串行口中斷允許ET1定時器1中斷允許EX1外中斷1中斷允許。ET0定時器0中斷允許EX0外中斷0中斷允許。我們也可以用位操作指令SETB EASETB ET1SETB EX1來實現(xiàn)它。五個中斷源的自然優(yōu)先級與中斷服務(wù)入口地址外中斷0:0003H定時器0:000BH外中斷1:0013H定時器1:001BH串口 :0023H它們的自然優(yōu)先級由高到低排列。寫到這里,大家應(yīng)當(dāng)明白,為什么前面有一些程序一始我們這樣寫:ORG 0000HLJMP STARTORG 0030HSTART:這樣寫的目的,就是為了讓出中斷源所占用的向量地址。圖11 按鍵接口電路圖12 按鍵的抖動波形二、

14、按鍵接口與編程按鍵是單片機(jī)最常用的輸入設(shè)備,用戶可以通過按鍵向計算機(jī)輸入指令、地址和數(shù)據(jù),它具有結(jié)構(gòu)簡單,使用靈活等特點(diǎn),因此被廣泛應(yīng)用于單片機(jī)系統(tǒng)。按鍵開關(guān)的抖動問題 組成鍵盤的按鍵有觸點(diǎn)式和非觸點(diǎn)式兩種,單片機(jī)中應(yīng)用的一般是由機(jī)械觸點(diǎn)構(gòu)成的。在圖11中,當(dāng)按鍵未被按下時,P1.0輸入為高電平,當(dāng)按鍵閉合后,P1.0輸入為低電平。由于按鍵是機(jī)械觸點(diǎn),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時,會有抖動動,P1.0輸入端的波形如圖12所示。這種抖動對于人來說是感覺不到的,但對計算機(jī)來說,則是完全可以感應(yīng)到的,因為計算機(jī)處理的速度是在微秒級,而機(jī)械抖動的時間至少是毫秒級,對計算機(jī)而言,這已是一個“漫長”的時間了。前

15、面我們講到中斷時曾有個問題,就是說按鍵有時靈,有時不靈,其實就是這個原因,你只按了一次按鍵,可是計算機(jī)卻已執(zhí)行了多次中斷的過程,如果執(zhí)行的次數(shù)正好是奇數(shù)次,那么結(jié)果正如你所料,如果執(zhí)行的次數(shù)是偶數(shù)次,那就不對了。為使CPU能正確地讀出P1口的狀態(tài),對每一次按鍵只作一次響應(yīng),就必須考慮如何去除抖動。單片機(jī)中常用軟件法,軟件法其實很簡單,就是在單片機(jī)獲得P1.0口為低的信息后,不是立即認(rèn)定S1已被按下,而是延時10毫秒或更長一些時間后再次檢測P1.0口,如果仍為低,說明S1的確按下了,這實際上是避開了按鍵按下時的抖動時間。而在檢測到按鍵釋放后(P1.0為高)再延時5-10個毫秒,消除后沿的抖動,然

16、后再對鍵值處理。不過一般情況下,我們通常不對按鍵釋放的后沿進(jìn)行處理,實踐證明,也能滿足一定的要求。當(dāng)然,實際應(yīng)用中,對按鍵的要求也是千差萬別,要根據(jù)不同的需要來編制處理程序,但以上是消除鍵抖動的原則。按鍵編程方法示例(通過按鍵控制小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn))ORG 0000hAJMP L1ORG 0100hL1:MOV A,P1JNB ACC.0,L2JNB ACC.1,L3JNB ACC.2,L4JNB ACC.3,L5 MOV A,#0h ;停止 MOV P2,AAJMP L1L2:ACALL DELY10ms MOV A,P1JB ACC.0,L1 MOV A,#27h ;前進(jìn) MOV

17、P2,A AJMP L1L3:ACALL DELY10msMOV A,P1 JB ACC.1,L1 MOV A,#1bh ;后退 MOV P2,A AJMP L1L4:ACALL DELY10msMOV A,P1 JB ACC.2,L1 MOV A,#17h ;左轉(zhuǎn) MOV P2,A AJMP L1L5:ACALL DELY10ms MOV A,P1JB ACC.3,L1 MOV A,#2bh ;右轉(zhuǎn) MOV P2,A AJMP L1 DELY10ms: MOV R6,#50 ;12M晶振,延時10msDL1: MOV R5,#100DL2: DJNZ R5,DL2 DJNZ R6,DL1 R

18、ETEND第三篇 機(jī)器人機(jī)械結(jié)構(gòu)圖13 直流電機(jī)各種關(guān)系圖一、機(jī)器人中的電機(jī)電機(jī)在機(jī)器人驅(qū)動中起著重要的作用。直流電機(jī)的作用原理是建立在電與磁的相互轉(zhuǎn)化和相互作用的基礎(chǔ)上的。它主要由定子和轉(zhuǎn)子兩大部分組成。定子上有勵磁繞組,由它產(chǎn)生磁場。轉(zhuǎn)子與機(jī)械負(fù)載相聯(lián),上面安裝有電樞繞組,并通過電刷與直流電源聯(lián)接,電樞繞組上的電壓稱為電樞電壓。電樞中由于電刷的作用,被通以交變的電流,使轉(zhuǎn)子在磁場中連續(xù)相對運(yùn)動,輸出物理量轉(zhuǎn)速和轉(zhuǎn)矩。由此,轉(zhuǎn)子便帶動機(jī)械負(fù)載(如智能機(jī)器人中的主動輪)運(yùn)動。T0T0:為一定的轉(zhuǎn)矩圖14 直流電機(jī)轉(zhuǎn)矩轉(zhuǎn)速關(guān)系圖T(轉(zhuǎn)矩)n1n2n(轉(zhuǎn)速)U2=12vU1=6v圖13為直流電機(jī)的

19、電流、功率、效率與轉(zhuǎn)速的關(guān)系圖。T為轉(zhuǎn)矩,n為轉(zhuǎn)速,P為功率。當(dāng)電機(jī)無負(fù)載時轉(zhuǎn)速最快,轉(zhuǎn)矩越大轉(zhuǎn)速越?。还β蕜t是隨轉(zhuǎn)矩的增大而增大,當(dāng)功率達(dá)到最大值后,功率則是隨轉(zhuǎn)矩的增大而減??;電流隨轉(zhuǎn)矩的增大而增大;效率則先增大,當(dāng)達(dá)到最大值時又隨之減小。直流電機(jī)在一定的電樞電壓下,轉(zhuǎn)速與轉(zhuǎn)矩成反比。如果改變電壓,則轉(zhuǎn)矩/轉(zhuǎn)速線隨著電壓的升降而升降(如圖14)。在智能機(jī)器人負(fù)載一定時(即轉(zhuǎn)矩一定時),提高電壓,即電壓由u1到u2,對應(yīng)的轉(zhuǎn)速為n1和n2,可見,n1n2,即當(dāng)電樞電壓提高時,電機(jī)轉(zhuǎn)子的轉(zhuǎn)速便也提高。所以只要改變直流電機(jī)電樞電壓的大小,就可以實現(xiàn)直流電機(jī)的調(diào)速。圖15 不同寬度的方波實現(xiàn)PWM

20、控制直流電機(jī)能調(diào)速,這點(diǎn)對于控制機(jī)器人的運(yùn)動構(gòu)件非常重要,因為只有當(dāng)電機(jī)的轉(zhuǎn)動能被控制成時快、時慢、時正、時反時,機(jī)器人才可能按照所設(shè)計的運(yùn)動規(guī)律來動作。智能機(jī)器人采用的是改變電機(jī)電樞電壓的方式來改變直流電機(jī)的轉(zhuǎn)速,這種方式只是直流電機(jī)調(diào)速方式之一,有關(guān)詳細(xì)資料可參考有關(guān)資料。提供給電機(jī)的信號是方波,不同的方波,它的平均電壓不同如圖15所示,u1u2u3,我們就利用這一點(diǎn)來進(jìn)行智能機(jī)器人的速度控制。進(jìn)而調(diào)節(jié)電機(jī)的轉(zhuǎn)速,這就是脈寬調(diào)制技術(shù)(PWM,Pulse Width Modulation)。二、機(jī)器人的傳動系統(tǒng)圖16 齒輪機(jī)器人的運(yùn)動由兩個主動輪的運(yùn)動來完成,而它們分別由兩套完全一樣的驅(qū)動裝

21、置來分別帶動兩個驅(qū)動輪。在機(jī)器人的驅(qū)動裝置中,減速器是主要的機(jī)械部件,它構(gòu)成了機(jī)器人的傳動系統(tǒng),下面對減速器進(jìn)行介紹。1、齒輪齒輪機(jī)構(gòu)是現(xiàn)在機(jī)械中應(yīng)用最為廣泛的一種傳動機(jī)構(gòu)。他可以用來傳遞空間任意兩軸間的運(yùn)動和力,而且傳動準(zhǔn)確、平穩(wěn)、機(jī)械效率高,使用壽命長和工作安全可靠。1)齒輪各部分的名稱齒輪上每個凸起部分稱為齒,齒輪的齒數(shù)用z表示。其他參數(shù)為:齒頂圓 過所有齒輪頂端的圓稱為齒頂圓,用半徑ra表示,直徑用da表示。分度圓和齒輪圓之間的徑向距離稱為齒頂高,用ha表示。齒根圓 過所有齒槽底部的圓稱為齒根圓,用半徑rf表示,直徑用df表示。分度圓和齒根圓之間的徑向距離稱為齒根高,用hf表示。分度圓

22、 齒頂圓和齒根圓之間的一個特殊定圓,用半徑r表示,直徑用d表示。全齒高 齒頂圓與齒根圓之間的徑向距離稱為全齒高,用半徑h表示,h=ha+hf?;鶊A 產(chǎn)生漸開線的圓稱為基圓,用半徑rb表示,直徑用db表示。圖17 齒輪中心距齒厚 每個齒輪上的圓周弧長稱為齒厚。在半徑為rk的圓周上度量的弧長稱為該半徑上的齒厚,用sk表示。在分度圓上度量弧長稱為分度圓槽寬,用e表示。槽寬 兩個齒間齒槽上的圓周弧長稱為槽寬。在半徑為rk的圓周上度量的弧長稱為該半徑上的槽寬,用ek表示。在分度圓上度量弧長稱為分度圓齒厚,用S表示。齒距 相鄰兩個齒輪同側(cè)齒廓之間的圓周弧長稱為齒距。在半徑為rk的圓周上度量的弧長稱為該半徑

23、的齒距,用pk表示,顯然pk=sk+ek。在分度圓上度量的弧長稱為分度圓齒距,用p=s+e表示。在基圓上度量的弧長稱為基圓齒距,用pb表示,pb=sb+eb,sb和eb是基圓上的齒厚與槽寬。法向齒距 相鄰兩個齒輪同側(cè)齒廓之間在法線方向上的距離稱為法向齒距,用pn表示。由漸開線性質(zhì)可知:pn=pb。中心距 中心距是指相互嚙合的一對齒輪,兩齒輪的圓心之間的距離,用a表示,a=r1+r2。如圖17所示。2)基本參數(shù)為了計算齒輪各部分幾何尺寸,需要規(guī)定若干基本參數(shù),對于標(biāo)準(zhǔn)齒輪而言,有以下5個基本參數(shù):齒數(shù)z分度圓模數(shù)m 分度圓周長d=zp,于是可得: d=zp/ 由于是無理數(shù),分度圓的直徑也將為無理

24、數(shù),用一個無理數(shù)的尺寸作為設(shè)計標(biāo)準(zhǔn),對設(shè)計是很不利的。為了方便設(shè)計、加工和檢驗,人為地把分度圓齒距與的比值用m表示,并取其為一理數(shù)列,即:p/=m m稱為分度圓模數(shù),也簡稱為模數(shù),單位為mm。分度圓直徑d=mz,分度圓齒距p=m。分度圓壓力角 過分度圓與漸開線交點(diǎn)作基圓切線得切點(diǎn)N,該交點(diǎn)與中心O的連線與NO線之間的夾角用表示,其大小等于漸開線在分度圓圓周上壓力角的大小。為方便起見,往往用這個中心角表示分度圓壓力角。我過規(guī)定分度圓壓力角標(biāo)準(zhǔn)值一般為20。在某些裝置中,也有用分度圓壓力角為14.5、15、22.5、和25等的齒輪。至此,我們可以給分度圓下一個完整的定義:分度圓就是齒輪中具有標(biāo)準(zhǔn)模

25、數(shù)和標(biāo)準(zhǔn)壓力角的圓。齒頂高系數(shù)ha* 齒頂高h(yuǎn)a用齒頂高系數(shù)ha*與模數(shù)的乘積表示,ha=ha*m頂隙系數(shù)c* 齒根高h(yuǎn)f用齒頂高系數(shù)ha*與頂隙系數(shù)c*之和乘以模數(shù)表示,hf=( ha*+c*)m。我國定了齒頂高系數(shù)和頂隙系數(shù)的標(biāo)準(zhǔn)值:圖18 齒輪減速器正常齒制當(dāng)m1mm時,ha*1,c*=0.25當(dāng)m1mm時,ha*1,c*=0.35短齒制 ha*0.8,c*=0.33)漸開線標(biāo)準(zhǔn)直齒輪的幾何尺寸和基本參數(shù)的關(guān)系漸開線標(biāo)準(zhǔn)直齒輪除了基本參數(shù)是標(biāo)準(zhǔn)值外,還有兩個特征:分度圓齒厚與槽寬相等,即 s=e=p/2=m/2具有標(biāo)準(zhǔn)的齒頂高和齒根高,即 ha=ha*m hf=( ha*+c*)m不具備

26、上述特征的稱為非標(biāo)準(zhǔn)齒輪。2、減速器減速器是指原動機(jī)與工作機(jī)之間獨(dú)立的閉式傳動裝置,用來降低轉(zhuǎn)速和相應(yīng)的增大轉(zhuǎn)距。此外,在某些場合,用來增速的。并名為增速器。減速器的種類很多,常用的減速器有齒輪及蝸桿減速器。按其傳動和機(jī)構(gòu)的特點(diǎn),大致可以分為三類:1)齒輪減速器 2)蝸桿減速器 3)行星減速器。這里僅討論齒輪減速器,按其減速齒輪的級數(shù)可以分為一級、二級、三級及多級,如圖所示:按其軸在空間的相互配置可以分為立式和臥式;按其運(yùn)動簡圖的特點(diǎn)可以分為展式、同軸式和分流式等。我國已將減速器系列化了,而且指定了某些類型減速器的標(biāo)準(zhǔn)系列。在指定標(biāo)準(zhǔn)系列時,對減速器的主要參數(shù),如中心距,模數(shù),齒寬系數(shù)及傳動比

27、等,還做了一系列的規(guī)定。在計算時須將數(shù)值轉(zhuǎn)換成與其相近的標(biāo)準(zhǔn)值?,F(xiàn)將減速器的常用參數(shù)計算公式列表如下:類型中心距符號總中心距傳動比符號總傳動比一級aa=a=1/2(d2+d1)ii=z從/z主二級高速級afa=af+as高速級ifi=if*is低速級as低速級is三級高速級afa=af+am+as高速級ifi=if*im*is中速級am中速級im低速級as低速級is減速器的每級有兩個齒輪相互嚙合傳遞動力,小齒輪為主動輪(Z1),大齒輪為從動輪(Z2),小齒輪轉(zhuǎn)一周而大齒輪則轉(zhuǎn)不到一周,故而減速(反之,便為增速)。二、機(jī)器人的總體結(jié)構(gòu)機(jī)器人由機(jī)器人小車、手臂、手爪等部分組成,機(jī)器人小車、手臂、手

28、爪通過螺紋連接件連接裝配在一起。機(jī)器人總體三維結(jié)構(gòu)如圖19所示,零件之間的三維裝配關(guān)系如圖20所示,手臂和手爪通過電機(jī)帶動拉繩來驅(qū)動。電機(jī)停止工作時,在彈簧或橡皮筋的拉動下,手臂和手爪將會回復(fù)原位。以上機(jī)器人手臂和手爪的總體結(jié)構(gòu)圖僅供同學(xué)們參考,同學(xué)們可以自己創(chuàng)意設(shè)計自己的機(jī)器人手臂和手爪的結(jié)構(gòu)。三、機(jī)器人的手臂結(jié)構(gòu)(若干零件圖,用AutoCAD軟件繪制)四、機(jī)器人的手爪結(jié)構(gòu)(若干零件圖,用AutoCAD軟件繪制)圖20 機(jī)器人裝配關(guān)系示意圖圖19 機(jī)器人的總體結(jié)構(gòu)圖第四篇 機(jī)器人實驗實驗一 基礎(chǔ)實驗按照圖21的電路圖連接各電子元器件,控制板上元器件參考布局如圖22所示。上電之前請按照以下步驟

29、做好電路檢查工作:確保電源正負(fù)極之間沒有短路(一定要慎重?。┐_保AT89C51芯片、AS611芯片相鄰引腳之間沒有短接。AT89C51芯片的引腳20與電源負(fù)極相連,AT89C51芯片的引腳31、40與電源正極相連。AS611芯片的引腳4、5、12、13與電源負(fù)極相連,AS611芯片的引腳8、16與電源正極相連。復(fù)位電路、晶振電路按照電路圖正確連接。AT89C51芯片的引腳21、22、23、24分別與第一塊AS611芯片的引腳2、7、10、15相連,AT89C51芯片的引腳25、26、27、28分別與第二塊AS611芯片的引腳2、7、10、15相連。圖21 實驗一電路圖輸入以下的匯編程序,編譯后

30、將十六進(jìn)制代碼程序燒寫進(jìn)AT89C51芯片,在電路檢查正確的前提下,可以嘗試著上電,觀察運(yùn)行結(jié)果。如果電機(jī)不動,請立即斷電。再做進(jìn)一步的檢查或者請求教師幫助。ORG 0000hAJMP MAINORG 0100hMAIN: MOV A,#09h ;二進(jìn)制數(shù)00001001b 小車右轉(zhuǎn)MOV P2,A ACALL DELYMOV A,#06h ;二進(jìn)制數(shù)00000110b 小車左轉(zhuǎn)MOV P2,A ACALL DELYMOV A,#05h ;二進(jìn)制數(shù)00000101b 小車后退MOV P2,A ACALL DELYMOV A,#0ah ;二進(jìn)制數(shù)00001010b 小車前進(jìn)MOV P2,A AC

31、ALL DELYMOV A,#20h ;二進(jìn)制數(shù)00100000b 手臂前進(jìn)MOV P2,A ACALL DELYMOV A,#10h ;二進(jìn)制數(shù)00010000b 手臂后退MOV P2,A ACALL DELYMOV A,#80h ;二進(jìn)制數(shù)10000000b 手爪松開MOV P2,A ACALL DELYMOV A,#40h ;二進(jìn)制數(shù)01000000b 手爪夾緊MOV P2,A ACALL DELYMOV A,#0h ;所有電機(jī)停MOV P2,ASJMP MAIN DELY: MOV R7,#100 ;12M晶振,延時2秒DLY0: MOV R6,#100DLY1: MOV R5,#10

32、0DLY2: DJNZ R5,DLY2 DJNZ R6,DLY1 DJNZ R7,DLY0 RETAT89C51AS611AS611碰撞傳感器接口手爪驅(qū)動電機(jī)接口手臂驅(qū)動電機(jī)接口小車右電機(jī)接口小車左電機(jī)接口外接電池接口電源總開關(guān)紅外接收頭復(fù)位按鈕手控手柄接口LM7805穩(wěn)壓芯片右紅外發(fā)射管右發(fā)光二極管左發(fā)光二極管左紅外發(fā)射管圖22 控制板上元器件參考布局示意圖 END以下是用單片機(jī)C語言編寫的運(yùn)動控制程序,其運(yùn)動控制功能與上面的匯編語言程序相同。#include#define COUNT0 197#define COUNT1 100unsigned char bdata motorctrl;/

33、*底盤兩個電機(jī)對應(yīng)的控制位*/sbit IN1_Base = motorctrl0;sbit IN2_Base = motorctrl1;sbit IN3_Base = motorctrl2;sbit IN4_Base = motorctrl3;/*手臂電機(jī)對應(yīng)的控制位*/sbit IN1_Arm = motorctrl4;sbit IN2_Arm = motorctrl5;/*手爪電機(jī)對應(yīng)的控制位*/sbit IN3_Hand = motorctrl6;sbit IN4_Hand = motorctrl7;void delayL(unsigned char count2) small ree

34、ntrant;void delayM(unsigned char count1) small reentrant;void delayS(unsigned char count0) small reentrant;void run(bit motor1, bit dir1, bit motor2, bit dir2, bit motor3, bit dir3, bit motor4, bit dir4);void stop(bit motor1, bit motor2, bit motor3, bit motor4);main() do run(1,0,1,1,0,0,0,0);/*右轉(zhuǎn)*/

35、delayL(20);/*2s*/ run(1,1,1,0,0,0,0,0);/*左轉(zhuǎn)*/ delayL(20); run(1,0,1,0,0,0,0,0);/*后退*/ delayL(20); run(1,1,1,1,0,0,0,0);/*前進(jìn)*/ delayL(20); stop(1,1,0,0); run(0,0,0,0,1,1,0,0);/*手臂前進(jìn)*/ delayL(20); run(0,0,0,0,1,0,0,0);/*手臂后退*/ delayL(20); stop(0,0,1,0); run(0,0,0,0,0,0,1,1);/*手爪松開*/ delayL(20); run(0,

36、0,0,0,0,0,1,0);/*手爪夾緊*/ delayL(20); stop(0,0,0,1); while(1); void delayS(unsigned char count0) small reentrant/*/* 短延時函數(shù) */* count0取值范圍: 0 256 */* 延時計算方法: count0 x 5T + 2T 。 */* T:機(jī)器周期(振蕩周期的1/12)。 */*/ while(-count0);/* 對應(yīng)的匯編代碼 000A 150A DEC 00AH ;T 000C AF0A MOV R7,00AH ;T 000E EF MOV A,R7 ;T 000F

37、70F9 JNZ 0000AH ;2T 0011 22 RET ;2T*/void delayM(unsigned char count1) small reentrant/*/* 中延時函數(shù) */* count1取值范圍: 0 256 */* 延時計算方法: count1 x ( 11T + delayS(COUNT0) ) + 2T 。 */* T:機(jī)器周期(振蕩周期的1/12)。 */*/ while(-count1) delayS(COUNT0);/* 對應(yīng)的匯編代碼 0109 150B DEC 00BH ;T 010B AF0B MOV R7,00BH ;T 010D EF MOV

38、A,R7 ;T 010E 6008 JZ 00118H ;2T 0110 750A64 MOV 00AH,#064H ;2T 0113 12000A LCALL 0000AH ;2T 0116 80F1 SJMP 00109H ;2T 0118 22 RET ;2T*/void delayL(unsigned char count2) small reentrant/*/* 長延時函數(shù) */* count2取值范圍: 0 256 */* 延時計算方法: count2 x ( 11T + delayM(COUNT1) ) + 2T 。 */* T:機(jī)器周期(振蕩周期的1/12)。 */*/ wh

39、ile(-count2) delayM(COUNT1);/* 對應(yīng)的匯編代碼 0119 150C DEC 00CH ;T 011B AF0C MOV R7,00CH ;T 011D EF MOV A,R7 ;T 011E 6008 JZ 00128H ;2T 0120 750B32 MOV 00BH,#032H ;2T 0123 120109 LCALL 00109H ;2T 0126 80F1 SJMP 00119H ;2T 0128 22 RET ;2T*/void run(bit motor1, bit dir1, bit motor2, bit dir2, bit motor3, bi

40、t dir3, bit motor4, bit dir4)/*/* 運(yùn)行函數(shù) */* 電機(jī)選擇(motor1,motor2,motor3,motor4): */ /* 為1表示對應(yīng)的電機(jī)被選中進(jìn)行“運(yùn)轉(zhuǎn)”操作,為0則表示沒有被選中。 */* 運(yùn)行方向選擇(dir1,dir2,dir3,dir4): */* 對應(yīng)的電機(jī)如果被選中,為1表示按照正方向運(yùn)行,為0表示按反方向運(yùn)行。 */*/ if(motor1)/*1#電機(jī)*/ if(dir1) IN1_Base = 0; IN2_Base = 1; else IN1_Base = 1; IN2_Base = 0; if(motor2)/*2#電機(jī)*

41、/ if(dir2)/*=1*/ IN3_Base = 0; IN4_Base = 1; else IN3_Base = 1; IN4_Base = 0; if(motor3)/*3#電機(jī)*/ if(dir3) IN1_Arm = 0; IN2_Arm = 1; else IN1_Arm = 1; IN2_Arm = 0; if(motor4)/*4#電機(jī)*/ if(dir4)/*=1*/ IN3_Hand = 0; IN4_Hand = 1; else IN3_Hand = 1; IN4_Hand = 0; P2 = motorctrl; return;void stop(bit motor

42、1, bit motor2, bit motor3, bit motor4)/*/* 停止函數(shù) */* 電機(jī)選擇(motor1,motor2,motor3,motor4): */ /* 為1表示對應(yīng)的電機(jī)被選中進(jìn)行“停止”操作,為0則表示沒有被選中。 */*/ if(motor1) IN1_Base = IN2_Base = 0; if(motor2) IN3_Base = IN4_Base = 0; if(motor3) IN1_Arm = IN2_Arm = 0; if(motor4) IN3_Hand = IN4_Hand = 0; P2 = motorctrl; return;圖23

43、實驗二電路圖實驗二 手控機(jī)器人按照圖23連接各電子元器件,手控手柄上按鈕及接口參考布局如圖24所示,將手控手柄與機(jī)器人控制板通過手控手柄接口用約1.5米長的排線連接起來。輸入以下的匯編程序,編譯后將十六進(jìn)制代碼程序燒寫進(jìn)AT89C51芯片,觀察運(yùn)行結(jié)果。通過手控手柄控制機(jī)器人小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)運(yùn)動、手臂的前后運(yùn)動以及手爪的夾持、松開等動作。ORG 0000hAJMP L1ORG 0100hL1:MOV A,P1JNB ACC.0,L2JNB ACC.1,L3JNB ACC.2,L4JNB ACC.3,L5JNB ACC.4,L6JNB ACC.5,L7JNB ACC.6,L8JNB

44、ACC.7,L9 MOV A,#0h ;停止 MOV P2,AAJMP L1手控手柄接口小車前進(jìn)小車后退小車左轉(zhuǎn)小車右轉(zhuǎn)手臂前伸手臂回縮手爪張開手爪閉合圖24 手控手柄上按鈕及接口參考布局圖L2:ACALL DELY10msMOV A,P1 JB ACC.0,L1 MOV A,#0ah ;小車前進(jìn) MOV P2,A AJMP L1L3:ACALL DELY10msMOV A,P1 JB ACC.1,L1 MOV A,#05h ; 小車后退 MOV P2,A AJMP L1L4:ACALL DELY10msMOV A,P1 JB ACC.2,L1 MOV A,#06h ; 小車左轉(zhuǎn) MOV P2

45、,A AJMP L1L5:ACALL DELY10msMOV A,P1 JB ACC.3,L1 MOV A,#09h ; 小車右轉(zhuǎn) MOV P2,A AJMP L1L6:ACALL DELY10msMOV A,P1 JB ACC.4,L1 MOV A,#20h ; 手臂前進(jìn) MOV P2,A AJMP L1L7:ACALL DELY10msMOV A,P1 JB ACC.5,L1 MOV A,#10h ; 手臂后退 MOV P2,A AJMP L1L8:ACALL DELY10msMOV A,P1 JB ACC.6,L1 MOV A,#80h ; 手爪松開 MOV P2,A AJMP L1L9

46、:ACALL DELY10msMOV A,P1 JB ACC.7,L1 MOV A,#40h ; 手爪夾緊 MOV P2,A AJMP L1DELY10ms: MOV R6,#50 ;延時10msDL1: MOV R5,#100DL2: DJNZ R5,DL2 DJNZ R6,DL1 RETEND以下是用單片機(jī)C語言編寫的運(yùn)動控制程序,其運(yùn)動控制功能與上面的匯編語言程序相同。#include#define COUNT0 197#define COUNT1 100unsigned char bdata motorctrl;/*底盤兩個電機(jī)對應(yīng)的控制位*/sbit IN1_Base = motor

47、ctrl0;sbit IN2_Base = motorctrl1;sbit IN3_Base = motorctrl2;sbit IN4_Base = motorctrl3;/*手臂電機(jī)對應(yīng)的控制位*/sbit IN1_Arm = motorctrl4;sbit IN2_Arm = motorctrl5;/*手爪電機(jī)對應(yīng)的控制位*/sbit IN3_Hand = motorctrl6;sbit IN4_Hand = motorctrl7;unsigned char bdata SW;/*8個手動按鈕對應(yīng)的位*/sbit SW1 = SW0;sbit SW2 = SW1;sbit SW3 = S

48、W2;sbit SW4 = SW3;sbit SW5 = SW4;sbit SW6 = SW5;sbit SW7 = SW6;sbit SW8 = SW7;void delayL(unsigned char count2) small reentrant;void delayM(unsigned char count1) small reentrant;void delayS(unsigned char count0) small reentrant;void run(bit motor1, bit dir1, bit motor2, bit dir2, bit motor3, bit dir

49、3, bit motor4, bit dir4);void stop(bit motor1, bit motor2, bit motor3, bit motor4);main()while(1)L1:SW = P1;if(SW1 = 0)delayM(10);SW = P1;if(SW1 = 0)run(1,1,1,1,0,0,0,0);/*前進(jìn)*/goto L1;if(SW2 = 0)delayM(10);SW = P1;if(SW2 = 0)run(1,0,1,0,0,0,0,0);/*后退*/goto L1;if(SW3 = 0)delayM(10);SW = P1;if(SW3 = 0

50、)run(1,1,1,0,0,0,0,0);/*左轉(zhuǎn)*/goto L1;if(SW4 = 0)delayM(10);SW = P1;if(SW4 = 0)run(1,0,1,1,0,0,0,0);/*右轉(zhuǎn)*/goto L1;if(SW5 = 0)delayM(10);SW = P1;if(SW5 = 0)run(0,0,0,0,1,1,0,0);/*手臂前進(jìn)*/goto L1;if(SW6 = 0)delayM(10);SW = P1;if(SW6 = 0)run(0,0,0,0,1,0,0,0);/*手臂后退*/goto L1;if(SW7 = 0)delayM(10);SW = P1;if

51、(SW7 = 0)run(0,0,0,0,0,0,1,1);/*手爪松開*/goto L1;if(SW8 = 0)delayM(10);SW = P1;if(SW8 = 0)run(0,0,0,0,0,0,1,0);/*手爪夾緊*/goto L1;stop(1,1,1,1);/*end of while*/ void delayS(unsigned char count0) small reentrant/*/* 短延時函數(shù) */* count0取值范圍: 0 256 */* 延時計算方法: count0 x 5T + 2T 。 */* T:機(jī)器周期(振蕩周期的1/12)。 */*/ whil

52、e(-count0);/* 對應(yīng)的匯編代碼 000A 150A DEC 00AH ;T 000C AF0A MOV R7,00AH ;T 000E EF MOV A,R7 ;T 000F 70F9 JNZ 0000AH ;2T 0011 22 RET ;2T*/void delayM(unsigned char count1) small reentrant/*/* 中延時函數(shù) */* count1取值范圍: 0 256 */* 延時計算方法: count1 x ( 11T + delayS(COUNT0) ) + 2T 。 */* T:機(jī)器周期(振蕩周期的1/12)。 */*/ while(

53、-count1) delayS(COUNT0);/* 對應(yīng)的匯編代碼 0109 150B DEC 00BH ;T 010B AF0B MOV R7,00BH ;T 010D EF MOV A,R7 ;T 010E 6008 JZ 00118H ;2T 0110 750A64 MOV 00AH,#064H ;2T 0113 12000A LCALL 0000AH ;2T 0116 80F1 SJMP 00109H ;2T 0118 22 RET ;2T*/void run(bit motor1, bit dir1, bit motor2, bit dir2, bit motor3, bit di

54、r3, bit motor4, bit dir4)/*/* 運(yùn)行函數(shù) */* 電機(jī)選擇(motor1,motor2,motor3,motor4): */* 為1表示對應(yīng)的電機(jī)被選中進(jìn)行“運(yùn)轉(zhuǎn)”操作,為0則表示沒有被選中。 */* 運(yùn)行方向選擇(dir1,dir2,dir3,dir4): */* 對應(yīng)的電機(jī)如果被選中,為1表示按照正方向運(yùn)行,為0表示按反方向運(yùn)行。 */*/ if(motor1)/*1#電機(jī)*/ if(dir1) IN1_Base = 0; IN2_Base = 1; else IN1_Base = 1; IN2_Base = 0; if(motor2)/*2#電機(jī)*/ if(d

55、ir2)/*=1*/ IN3_Base = 0; IN4_Base = 1; else IN3_Base = 1; IN4_Base = 0; if(motor3)/*3#電機(jī)*/ if(dir3) IN1_Arm = 0; IN2_Arm = 1; else IN1_Arm = 1; IN2_Arm = 0; if(motor4)/*4#電機(jī)*/ if(dir4)/*=1*/ IN3_Hand = 0; IN4_Hand = 1; else IN3_Hand = 1; IN4_Hand = 0; P2 = motorctrl; return;void stop(bit motor1, bit

56、 motor2, bit motor3, bit motor4)/*/* 停止函數(shù) */* 電機(jī)選擇(motor1,motor2,motor3,motor4): */* 為1表示對應(yīng)的電機(jī)被選中進(jìn)行“停止”操作,為0則表示沒有被選中。 */*/ if(motor1) IN1_Base = IN2_Base = 0; if(motor2) IN3_Base = IN4_Base = 0; if(motor3) IN1_Arm = IN2_Arm = 0; if(motor4) IN3_Hand = IN4_Hand = 0; P2 = motorctrl; return;實驗三 尋線機(jī)器人尋線系

57、統(tǒng)是機(jī)器人的一種簡單視覺,在機(jī)器人的運(yùn)動中起著非常重要的作用,為機(jī)器人運(yùn)動過程中位置的準(zhǔn)確性提供了保障。每一套尋線系統(tǒng)由比較電路和光發(fā)射接收模塊兩大部分組成。比較電路主要是將光發(fā)射接收板輸入的模擬信號經(jīng)比較器比較后,轉(zhuǎn)換為數(shù)字信號,輸入到單片機(jī)中。光發(fā)射接收模塊主要功能是完成光的發(fā)射、接收和將光信號轉(zhuǎn)換為模擬信號。每一塊光發(fā)射接收模塊就是機(jī)器人的一個檢測點(diǎn),一般情況每個機(jī)器人需安裝多個檢測點(diǎn),以保證機(jī)器人在運(yùn)動過程中有較大的偏向檢測能力和糾錯能力。本尋線系統(tǒng)采用了基于光敏電阻的尋線方案,該尋線系統(tǒng)的電路圖如圖25所示。光發(fā)射接收板上元件及接口參考布局如圖26所示。檢測點(diǎn)結(jié)構(gòu)每個檢測點(diǎn)由1 個高

58、亮度發(fā)光二極管(LED)和一個光敏電阻組成。發(fā)光二極管發(fā)出的紅色光照射到地面上,產(chǎn)生漫反射,反射光照射到光敏電阻后,光敏電阻的阻值隨地面反射光的強(qiáng)弱而顯著變化。因此,由于地面引導(dǎo)白線上的光強(qiáng)明顯大于黑色的光強(qiáng)。通過電路檢測出的信號都通過比較器進(jìn)行處理,通過調(diào)整比較器的比較基準(zhǔn)電壓,可確定檢測點(diǎn)是否處于黑線的上方。圖25 實驗三電路圖檢測點(diǎn)布局為了擴(kuò)大機(jī)器人的偏差糾錯能力,尋線機(jī)器人使用了4個檢測點(diǎn),其檢測點(diǎn)的布局安排如圖27a所示。安裝板相對于黑色指示帶的中心線成對稱分布。中間的兩個檢測點(diǎn)分布在黑色指示帶中間位置,以便使檢測點(diǎn)相對于黑線的位置變化較為敏感。其余兩側(cè)的兩個檢測點(diǎn)分布較為分散,主要

59、是為了在機(jī)器人轉(zhuǎn)彎或偏差過大時“捕捉”黑線用。以下是匯編語言編寫的尋線機(jī)器人控制的參考程序,請反復(fù)調(diào)試以下的尋線運(yùn)動控制程序,以實現(xiàn)機(jī)器人小車沿黑線走(如圖27b所示)的功能。 ORG 0000h AJMP START ORG 0003h AJMP INT_0 ORG 0100hSTART: SETB EX0 ;外中斷0允許 CLR IT0 ;外中斷0低電平有效 SETB EA ;開中斷 MOV A,P1 JNB ACC.0,L3 JNB ACC.1,L4 MOV A,#06h ;前進(jìn) MOV P2,A ACALL DELY10ms MOV A,#0h ;停止 MOV P2,A ACALL D

60、ELY10ms AJMP STARTL3: MOV A,#0h ;停止 MOV P2,A MOV R7,#13 ;延時1.04秒 ACALL DELY MOV A,#05h ;右轉(zhuǎn) MOV P2,A MOV R7,#13 ;延時1.04秒 ACALL DELY AJMP STARTL4: MOV A,#0h ;停止 MOV P2,A MOV R7,#13 ;延時1.04秒 ACALL DELY MOV A,#0ah ;左轉(zhuǎn) MOVMOV P2,A MOV R7,#13 ;延時1.04秒 ACALL DELY AJMP START 檢測信號指示用發(fā)光二極管電源接口檢測信號接口可調(diào)電阻LM324發(fā)

溫馨提示

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

評論

0/150

提交評論