版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課程設(shè)計(jì)—自動(dòng)循跡小車</p><p><b> 車體設(shè)計(jì)</b></p><p> 方案1:購(gòu)買玩具電動(dòng)車。購(gòu)買的玩具電動(dòng)車具有組裝完整的車架車輪、電機(jī)及其驅(qū)動(dòng)電路。但是一般的說(shuō)來(lái),玩具電動(dòng)車具有如下缺點(diǎn):首先,這種玩具電動(dòng)車由于裝配緊湊,使得各種所需傳感器的安裝十分不方便。其次,這種電動(dòng)車一般都是前輪轉(zhuǎn)向后輪驅(qū)動(dòng),不能適應(yīng)該題目的方格地圖
2、,不能方便迅速的實(shí)現(xiàn)原地保持坐標(biāo)轉(zhuǎn)90度甚至180度的彎角。再次,玩具電動(dòng)車的電機(jī)多為玩具直流電機(jī),力矩小,空載轉(zhuǎn)速快,負(fù)載性能差,不易調(diào)速。而且這種電動(dòng)車一般都價(jià)格不菲。因此我們放棄了此方案。 </p><p> 方案2:自己制作電動(dòng)車。經(jīng)過(guò)反復(fù)考慮論證,我們制定了左右兩輪分別驅(qū)動(dòng),后萬(wàn)向輪轉(zhuǎn)向的方案。即左右輪分別用兩個(gè)轉(zhuǎn)速和力矩基本完全相同的直流電機(jī)進(jìn)行驅(qū)動(dòng),車體尾部裝一個(gè)萬(wàn)向輪。這樣,當(dāng)兩個(gè)直流電機(jī)轉(zhuǎn)向相
3、反同時(shí)轉(zhuǎn)速相同時(shí)就可以實(shí)現(xiàn)電動(dòng)車的原地旋轉(zhuǎn),由此可以輕松的實(shí)現(xiàn)小車坐標(biāo)不變的90度和180度的轉(zhuǎn)彎。 </p><p> 在安裝時(shí)我們保證兩個(gè)驅(qū)動(dòng)電機(jī)同軸。當(dāng)小車前進(jìn)時(shí),左右兩驅(qū)動(dòng)輪與后萬(wàn)向輪形成了三點(diǎn)結(jié)構(gòu)。這種結(jié)構(gòu)使得小車在前進(jìn)時(shí)比較平穩(wěn),可以避免出現(xiàn)后輪過(guò)低而使左右兩驅(qū)動(dòng)輪驅(qū)動(dòng)力不夠的情況。為了防止小車重心的偏移,后萬(wàn)向輪起支撐作用。 對(duì)于車架材料的選擇,我們經(jīng)過(guò)比較選擇了有機(jī)玻璃。用有機(jī)玻璃做的車架比塑
4、料車架更加牢固,比鐵制小車更輕便,美觀。 </p><p> 綜上考慮,我們選擇了方案2。小車底盤如圖1所示: </p><p><b> 電機(jī)選擇:</b></p><p> 最初我們?cè)跂|明電子市場(chǎng)上買了兩個(gè)舊電機(jī),有計(jì)數(shù)脈沖,如下圖所示:</p><p> 花費(fèi)了30元的舊電機(jī)</p><
5、p><b> 電機(jī)產(chǎn)生的脈沖</b></p><p> 經(jīng)過(guò)實(shí)際比較,我們發(fā)現(xiàn)電機(jī)的軸太短,根本無(wú)法固定輪子,并且其中有一個(gè)電機(jī)的軸有缺陷,軸上有一個(gè)凹槽。最終不得不放棄使用這個(gè)電機(jī)而去西門從新買了兩個(gè)新的減速電機(jī),如下圖:</p><p> 電機(jī)的固定采用的是鋁合金直角墊片加鐵絲捆綁的方式,這樣做非常牢固,但是看起來(lái)不是很美觀。</p>&
6、lt;p><b> 輪子方案:</b></p><p> 在選定電機(jī)后,我們買了一個(gè)萬(wàn)向輪,萬(wàn)向輪的高度減去電機(jī)的半徑就是驅(qū)動(dòng)輪的半徑。</p><p> 輪子是在工程訓(xùn)練中心用尼龍棒在車床上作出來(lái)的,當(dāng)時(shí)我們還戲稱我們的小車是“機(jī)電一體化”的產(chǎn)品。</p><p><b> 輪子的截面圖:</b></
7、p><p><b> 萬(wàn)向輪:</b></p><p> 當(dāng)小車前進(jìn)時(shí),左右兩驅(qū)動(dòng)輪與后萬(wàn)向輪形成了三點(diǎn)結(jié)構(gòu)。這種結(jié)構(gòu)使得小車在前進(jìn)時(shí)比較平穩(wěn),可以避免出現(xiàn)后輪過(guò)低而使左右兩驅(qū)動(dòng)輪驅(qū)動(dòng)力不夠的情況。為了防止小車重心的偏移,后萬(wàn)向輪起支撐作用。并且可以輕松實(shí)現(xiàn)90度甚至180度原地轉(zhuǎn)彎。</p><p><b> 硬件設(shè)計(jì)</b
8、></p><p> 系統(tǒng)總設(shè)計(jì)電路圖如下圖,PDF格式,Rrotel99格式。</p><p> 各部分電路圖及說(shuō)明:</p><p> 穩(wěn)壓電路:(上部分穩(wěn)壓至12V,下部分穩(wěn)壓至5V)</p><p> L298電機(jī)控制驅(qū)動(dòng): 可以參考http://bbs.avrvi.com/read.php?tid=252&pa
9、ge=1&toread=1</p><p> 電壓比較器電路(光電對(duì)管檢測(cè)電路):</p><p> 可調(diào)電阻R3可以調(diào)節(jié)比較器的門限電壓,經(jīng)示波器觀察,輸出波形相當(dāng)規(guī)則,可以直接夠單片機(jī)查詢使用。 而且經(jīng)試驗(yàn)驗(yàn)證給此電路供電的電池的壓降較小。因此我們選擇此電路作為我們的傳感器檢測(cè)與調(diào)理電路。 </p><p><b> 實(shí)物與分析</
10、b></p><p><b> 電源電路:</b></p><p> 由于本系統(tǒng)需要電池供電,我們考慮了如下幾種方案為系統(tǒng)供電。 </p><p> 方案1: 采用10節(jié)1.5V干電池供電,電壓達(dá)到15V,經(jīng)7812穩(wěn)壓后給支流電機(jī)供電,然后將12V電壓再次降壓、穩(wěn)壓后給單片機(jī)系統(tǒng)和其他芯片供電。但干電池電量有限,使用大量的干電池給
11、系統(tǒng)調(diào)試帶來(lái)很大的不便,因此,我們放棄了這種方案。</p><p> 方案2:采用3節(jié)4.2V可充電式鋰電池串聯(lián)共12.6V給直流電機(jī)供電,經(jīng)過(guò)7812的電壓變換后給支流電機(jī)供電,然后將12V電壓再次降壓、穩(wěn)壓后給單片機(jī)系統(tǒng)和其他芯片供電。鋰電池的電量比較足,并且可以充電,重復(fù)利用,因此,這種方案比較可行。但鋰電池的價(jià)格過(guò)于昂貴,使用鋰電池會(huì)大大超出我們的預(yù)算,因此,我們放棄了這種方案。</p>
12、<p> 方案3:采用12V蓄電池為直流電機(jī)供電,將12V電壓降壓、穩(wěn)壓后給單片機(jī)系統(tǒng)和其他芯片供電。蓄電池具有較強(qiáng)的電流驅(qū)動(dòng)能力以及穩(wěn)定的電壓輸出性能。雖然蓄電池的體積過(guò)于龐大,在小型電動(dòng)車上使用極為不方便,但由于我們的車體設(shè)計(jì)時(shí)留出了足夠的空間,并且蓄電池的價(jià)格比較低。因此我們選擇了此方案。 </p><p> 綜上考慮,我們選擇了方案3。這個(gè)黑呼呼的東西,讓我們可愛(ài)的小車變得很難看。</
13、p><p><b> 穩(wěn)壓模塊:</b></p><p> 方案1: 采用兩片7812將電壓穩(wěn)壓至12V后給直流電機(jī)供電,然后采用一片7809將電壓穩(wěn)定至9V,最后經(jīng)7805將電壓穩(wěn)至5V,給單片機(jī)系統(tǒng)和其他芯片供電,但7809和7805壓降過(guò)大,使7809和7805消耗的功率過(guò)大,導(dǎo)致7809和7805發(fā)熱量過(guò)大,因此,我們放棄了這種方案。 </p>
14、<p> 方案2:采用兩片7812將電壓穩(wěn)壓至12V后給直流電機(jī)供電,然后采用2576將電壓穩(wěn)至5V。2576的輸出電流最大可至3A,完全滿足系統(tǒng)要求。 綜上考慮,我們選擇了方案2。 穩(wěn)壓模塊如下圖:</p><p><b> ?。ㄗ髨D:穩(wěn)壓模塊)</b></p><p><b> 循跡傳感器模塊</b></p>&
15、lt;p> 方案1:用光敏電阻組成光敏探測(cè)器。光敏電阻的阻值可以跟隨周圍環(huán)境光線的變化而變化。當(dāng)光線照射到白線上面時(shí),光線發(fā)射強(qiáng)烈,光線照射到黑線上面時(shí),光線發(fā)射較弱。因此光敏電阻在白線和黑線上方時(shí),阻值會(huì)發(fā)生明顯的變化。將阻值的變化值經(jīng)過(guò)比較器就可以輸出高低電平。 但是這種方案受光照影響很大,不能夠穩(wěn)定的工作。因此我們考慮其他更加穩(wěn)定的方案。 </p><p> 方案2:用紅外發(fā)射管和接收管自己制作
16、光電對(duì)管尋跡傳感器。紅外發(fā)射管發(fā)出紅外線,當(dāng)發(fā)出的紅外線照射到白色的平面后反射,若紅外接收管能接收到反射回的光線則檢測(cè)出白線繼而輸出低電平,若接收不到發(fā)射管發(fā)出的光線則檢測(cè)出黑線繼而輸出高電平。這樣自己制作組裝的尋跡傳感器基本能夠滿足要求,但是工作不夠穩(wěn)定,且容易受外界光線的影響,因此我們放棄了這個(gè)方案。 </p><p> 方案3:用RPR220型光電對(duì)管。RPR220是一種一體化反射型光電探測(cè)器,其發(fā)射器是
17、一個(gè)砷化鎵紅外發(fā)光二極管,而接收器是一個(gè)高靈敏度,硅平面光電三極管。 </p><p> RPR220采用DIP4封裝,其具有如下特點(diǎn):</p><p> 塑料透鏡可以提高靈敏度。 </p><p> 內(nèi)置可見(jiàn)光過(guò)濾器能減小離散光的影響。 </p><p> 體積小,結(jié)構(gòu)緊湊。 </p><p> 當(dāng)發(fā)光二極
18、管發(fā)出的光反射回來(lái)時(shí),三極管導(dǎo)通輸出低電平。此光電對(duì)管調(diào)理電路簡(jiǎn)單,工作性能穩(wěn)定。 </p><p> 此我們選擇了方案3。 安裝后效果如下圖: </p><p><b> 下圖是電壓比較器:</b></p><p><b> 說(shuō)明文件:</b></p><p><b> 設(shè)計(jì)名稱
19、:循跡小車</b></p><p> 時(shí)間:2006-12-9</p><p> 關(guān)鍵詞:Atemega32 L298 減速電機(jī) 光電對(duì)管 7812 7805</p><p> 作者:古欣 朱巖 王智涌 原瑞花 喻巧群</p><p> /******************************************
20、***************/</p><p> 硬件資源分配1.0:12-9</p><p> PA0-PA5 光電對(duì)管檢測(cè)</p><p> PB1,PB2,PB3 電機(jī)右 PB3為PWM</p><p> PB4,PB5,PD7 電機(jī)左 PD7為PWM</p><p> PD2 int0 碼牌 行程檢
21、測(cè)</p><p> /********************************************************/</p><p><b> 電機(jī)轉(zhuǎn)向:</b></p><p><b> PB1 = 1</b></p><p> PB2 = 0 右電機(jī)前轉(zhuǎn)</p
22、><p><b> PB4 = 0</b></p><p> PB5 = 1 左電機(jī)前轉(zhuǎn)</p><p> /********************************************************/</p><p> flag; //小車狀態(tài)</p><p> //
23、0未偏 1左偏 2右偏 3前出線 4后出線 5脫軌</p><p><b> 主程序:</b></p><p><b> 電機(jī)驅(qū)動(dòng)程序:</b></p><p> /****************************************************************</p>
24、<p> ** 文件名:motor.c 電機(jī)驅(qū)動(dòng)函數(shù)</p><p> ****************************************************************/</p><p> #include "config.h"</p><p> /**********************
25、**左電機(jī)動(dòng)作*****************************/</p><p><b> //左電機(jī)前進(jìn)</b></p><p> void motor_left_forward(uint8 speed)</p><p><b> {</b></p><p> motol_uen
26、1;</p><p> motol_en2;</p><p> if(speed!=0) //加入調(diào)速指令</p><p><b> {</b></p><p> OCR0=speed;</p><p><b> }</b></p><p>
27、<b> T0_EN;</b></p><p><b> }</b></p><p><b> //左電機(jī)后退</b></p><p> void motor_left_backward(uint8 speed)</p><p><b> {</b&g
28、t;</p><p> motol_en1;</p><p> motol_uen2;</p><p> if(speed!=0) //加入調(diào)速指令</p><p><b> {</b></p><p> OCR0=speed;</p><p><b>
29、 }</b></p><p><b> T0_EN;</b></p><p><b> }</b></p><p><b> //左電機(jī)速度設(shè)定</b></p><p> void motor_left_speed_set(uint8 speed)<
30、/p><p><b> {</b></p><p> if(speed!=0)</p><p><b> {</b></p><p> OCR0=speed;</p><p><b> } </b></p><p><
31、b> }</b></p><p><b> //左電機(jī)滑行</b></p><p> void motor_left_stop(void)</p><p><b> {</b></p><p> motol_uen1;</p><p> moto
32、l_uen2;</p><p><b> T0_UEN;</b></p><p><b> }</b></p><p><b> //左電機(jī)急停</b></p><p> void motor_left_quick_stop(void)</p><p
33、><b> {</b></p><p> motol_en1;</p><p> motol_en2;</p><p><b> T0_UEN;</b></p><p><b> }</b></p><p> /************
34、*************右電機(jī)動(dòng)作*****************************/</p><p><b> //右電機(jī)前進(jìn)</b></p><p> void motor_right_forward(uint8 speed)</p><p><b> {</b></p><p>
35、; motor_en1;</p><p> motor_uen2;</p><p> if(speed!=0) //加入調(diào)速指令</p><p><b> {</b></p><p> OCR2=speed;</p><p> while(ASSR&(1<<TCR2
36、UB)==1) ; //異步操作需要等待 OCR2寫入完畢</p><p><b> }</b></p><p><b> T2_EN;</b></p><p><b> }</b></p><p><b> //右電機(jī)后退</b></p&g
37、t;<p> void motor_right_backward(uint8 speed)</p><p><b> {</b></p><p> motor_uen1;</p><p> motor_en2;</p><p> if(speed!=0) //加入調(diào)速指令</p>&
38、lt;p><b> {</b></p><p> OCR2=speed;</p><p> while(ASSR&(1<<TCR2UB)==1) ; //異步操作需要等待 OCR2寫入完畢</p><p><b> }</b></p><p><b>
39、T2_EN;</b></p><p><b> }</b></p><p><b> //右電機(jī)速度設(shè)定</b></p><p> void motor_right_speed_set(uint8 speed)</p><p><b> {</b></
40、p><p> if(speed!=0)</p><p><b> {</b></p><p> OCR0=speed;</p><p> while(ASSR&(1<<TCR2UB)==1) ; //異步操作需要等待 OCR2寫入完畢</p><p><b>
41、} </b></p><p><b> }</b></p><p><b> //右電機(jī)滑行</b></p><p> void motor_right_stop(void)</p><p><b> {</b></p><p>
42、motor_uen1;</p><p> motor_uen2;</p><p><b> T2_UEN;</b></p><p><b> }</b></p><p><b> //右電機(jī)急停</b></p><p> void motor_
43、right_quick_stop(void)</p><p><b> {</b></p><p> motor_en1;</p><p> motor_en2;</p><p><b> T2_UEN;</b></p><p><b> }</b&
44、gt;</p><p><b> 延時(shí)程序:</b></p><p> /****************************************************************</p><p> ** 文件名:unit.h 定時(shí)函數(shù)頭文件</p><p> *************
45、***************************************************/</p><p> #ifndef _UNIT_H__</p><p> #define _UNIT_H__ 1 </p><p><b> //100us</b></p><p> extern void
46、Delay100us(uint8 n);</p><p><b> //1s</b></p><p> extern void Delay1s(uint16 n);</p><p><b> //1ms</b></p><p> extern void Delay1ms(uint16 n);
47、</p><p><b> #endif</b></p><p> /****************************************************************</p><p> ** 文件名:unit.c 定時(shí)函數(shù)</p><p> ******************
48、**********************************************/</p><p> #include "config.h"</p><p> /***************************************************************************</p><p>&
49、lt;b> 延時(shí)公式</b></p><p><b> */</b></p><p> void Delay100us(uint8 n)</p><p><b> {</b></p><p> uint8 i; //4clock
50、 </p><p> for(i=147;n!=0;n--)</p><p> while(--i); //5 * i clock</p><p><b> }</b></p><p> void Delay1ms(uint16 n)</p><p><b>
51、; { </b></p><p> for (;n!=0;n--){</p><p> Delay100us(10);</p><p><b> }</b></p><p><b> }</b></p><p> void Delay1s
52、(uint16 n)</p><p><b> {</b></p><p> n=n*40; </p><p> for (;n!=0;n--){</p><p> Delay100us(250);</p><p><b> }</b>
53、</p><p><b> }</b></p><p><b> 工程定義頭文件:</b></p><p> /****************************************************************</p><p> ** 文件名:config.h
54、 工程頭文件定義</p><p> ****************************************************************/</p><p> #ifndef __config_H__</p><p> #define __config_H__ 1</p><p> /***********
55、**********************************/</p><p> #define M8 1</p><p> #define M16 2</p><p> #define M32 3</p><p> #define M64 4</p><p> #define M1
56、28 5</p><p> /*********************************************/</p><p> #define CPU_TYPE M32</p><p> //定義MCU時(shí)鐘頻率</p><p> //#define F_CPU 14745600</p><p>
57、; #define F_CPU 7372800</p><p> //**************************************************</p><p> //包含系統(tǒng)頭文件,請(qǐng)根據(jù)實(shí)際需要進(jìn)行裁減</p><p> //**************************************************&l
58、t;/p><p> //#pragma REGPARMS</p><p> #if CPU_TYPE == M128</p><p> #include <iom128v.h></p><p><b> #endif</b></p><p> #if CPU_TYPE == M6
59、4</p><p> #include <iom64v.h></p><p><b> #endif</b></p><p> #if CPU_TYPE == M32</p><p> #include <iom32v.h></p><p><b> #
60、endif</b></p><p> #if CPU_TYPE == M16</p><p> #include <iom16v.h></p><p><b> #endif</b></p><p> #if CPU_TYPE == M8</p><p> #in
61、clude <iom8v.h></p><p><b> #endif</b></p><p> //#include <intrins.h></p><p> //#include <absacc.h></p><p> #include <string.h>&l
62、t;/p><p> //#include <FLOAT.H></p><p> //#include <math.h></p><p> //#include <stdlib.h></p><p> #include <macros.h></p><p> //#i
63、nclude <eeprom.h></p><p> //#define const code</p><p> //**************************************************</p><p> //系統(tǒng)數(shù)據(jù)類型定義</p><p> //*********************
64、*****************************</p><p> #ifndef TRUE</p><p> #define TRUE 1</p><p><b> #endif</b></p><p> #ifndef FALSE</p><p> #define FAL
65、SE 0</p><p><b> #endif</b></p><p> #ifndef NULL</p><p> #define NULL 0</p><p><b> #endif</b></p><p> #define MIN(a,b)((a<
66、;b)?(a):(b))</p><p> #define MAX(a,b)((a>b)?(a):(b))</p><p> #define ABS(x)((x>0)?(x):(-x))</p><p> typedef unsigned char uint8; /
67、* 定義可移植的無(wú)符號(hào)8位整數(shù)關(guān)鍵字 */</p><p> typedef signed char int8; /* 定義可移植的有符號(hào)8位整數(shù)關(guān)鍵字 */</p><p> typedef unsigned int uint16;
68、 /* 定義可移植的無(wú)符號(hào)16位整數(shù)關(guān)鍵字 */</p><p> typedef signed int int16; /* 定義可移植的有符號(hào)16位整數(shù)關(guān)鍵字 */</p><p> typedef unsigned long ui
69、nt32; /* 定義可移植的無(wú)符號(hào)32位整數(shù)關(guān)鍵字 */</p><p> typedef signed long int32; /* 定義可移植的有符號(hào)32位整數(shù)關(guān)鍵字 */</p><p> //***
70、***********************************************</p><p> //包含工程頭文件,請(qǐng)根據(jù)需要進(jìn)行裁減</p><p> //**************************************************</p><p> #include "unit.h"</p
71、><p> //#include "lcddrive.h"</p><p> #include "main.h"</p><p> #include "motor.h"</p><p> //#include "queue.h"</p><
72、p> //#include "TWI.h"</p><p> //#include "sio.h" </p><p> //**************************************************</p><p> //一下為工程變量、端口定義</p><p>
73、 //**************************************************</p><p> /********************************/</p><p> /* "以下為工程配置" */</p><p> /*************************
74、*******/</p><p> #define T0 used</p><p> //#define T1 used</p><p> #define T2 used</p><p> //#define Int0 used</p><p> //#define Int1 used</p>
75、<p> //計(jì)數(shù)器0比較計(jì)數(shù)中斷允許</p><p> #if T0==used</p><p> #define T0_EN TIMSK |= (1<<OCIE0)|(1<<TOIE0)</p><p> #define T0_UEN TIMSK &=~ (1<<OCIE0)|(1<<TO
76、IE0)</p><p> #define T0_start TCCR0 |= (1<<WGM00)|(1<<WGM01)|(1<<COM01)|0x04;</p><p> //0x04 0100B 代表256預(yù)分頻</p><p> #define T0_stop TCCR0 = 0x00</p><
77、p><b> #endif</b></p><p> //計(jì)數(shù)器1定時(shí)中斷允許 //OVERflow</p><p> #if T1==used</p><p> #define T1_EN TIMSK |= (1<<TOIE1)|(1<<TOIE1)</p><p> #defi
78、ne T1_UEN TIMSK &=~ (1<<TOIE1)|(1<<TOIE1)</p><p> #define T1_start TCCR1B = 0x02</p><p> #define T1_stop TCCR1B = 0x00</p><p><b> #endif</b></p>
79、<p> //定時(shí)器2允許,PWM輸出</p><p> #if T2==used</p><p> #define T2_EN TIMSK |= (1<<OCIE2)|(1<<TOIE2)</p><p> #define T2_UEN TIMSK &=~ (1<<OCIE2)|(1<<
80、TOIE2)</p><p> #define T2_start TCCR2 = (1<<WGM20)|(1<<WGM21)|(1<<COM21)|0x06</p><p> #define T2_stop TCCR2 = 0x00</p><p> //start timer 快速pwm模式,匹配清零,溢出置位 256分頻
81、</p><p> //高比低為:(OCR2-0X55)/(0XFF-OCR2) OX55++++++(0X77)__________OXFF</p><p> //即OCR2越大,輸出越大</p><p><b> #endif</b></p><p><b> //外部中斷T0</b&g
82、t;</p><p> #if Int0==used</p><p> #define INT0_EN GICR |= (1<<INT0)</p><p> #define INT0_UEN GICR &=~ (1<<INT0)</p><p><b> #endif</b><
83、;/p><p><b> //外部中斷T1</b></p><p> #if Int1==used</p><p> #define INT1_EN GICR |= (1<<INT1)</p><p> #define INT1_UEN GICR &=~ (1<<INT1)</p
84、><p><b> #endif</b></p><p><b> #endif</b></p><p> /**********************end****************************************/</p><p> /** moto test 電機(jī)
85、運(yùn)轉(zhuǎn)情況測(cè)試程序*********************************************************</p><p> void main(void)</p><p><b> {</b></p><p> init_devices();</p><p> straight();&l
86、t;/p><p> Delay1s(5);</p><p> turn_left();</p><p> Delay1s(5);</p><p> turn_right();</p><p> Delay1s(5);</p><p> straight_back();</p>
87、<p> Delay1s(5);</p><p><b> stop();</b></p><p><b> while(1)</b></p><p><b> ;</b></p><p><b> }</b></p>
88、<p> *******************************************************************************/</p><p> 中斷處理;(這里都是定時(shí)器比較匹配和溢出中斷)</p><p> /**********************************************************
89、*********************</p><p> ** 文件名:interupts.c 中斷處理函數(shù)</p><p> *******************************************************************************/</p><p> #include "config.h
90、"</p><p> #pragma interrupt_handler timer0_ovf_isr:12</p><p> void timer0_ovf_isr(void)</p><p><b> {</b></p><p> TCNT0 = 0x01; //reload counter val
91、ue</p><p><b> }</b></p><p> #pragma interrupt_handler timer0_comp_isr:11</p><p> void timer0_comp_isr(void)</p><p><b> {</b></p><
92、p> //compare occured TCNT0=OCR0</p><p><b> }</b></p><p> #pragma interrupt_handler timer2_ovf_isr:6</p><p> void timer2_ovf_isr(void)</p><p><b>
93、; {</b></p><p> TCNT2 = 0x01; //reload counter value</p><p><b> }</b></p><p> /******************************************************************************/&
94、lt;/p><p> // T2 控制PWM輸出</p><p> // timer2_comp_isr不需要用,但是必須允許中斷,在中斷時(shí)有信號(hào)輸出變化</p><p> /******************************************************************************/</p><
95、p> #pragma interrupt_handler timer2_comp_isr:5</p><p> void timer2_comp_isr(void)</p><p><b> {</b></p><p> //compare occured TCNT2=OCR2</p><p><b&
96、gt; }</b></p><p><b> 小車圖片展示</b></p><p> flash模擬行進(jìn)路線</p><p> 請(qǐng)點(diǎn)擊開(kāi)始查看行進(jìn)情況:</p><p><b> 路徑圖片: </b></p><p> 小車從發(fā)車區(qū)出發(fā),按照預(yù)定的行進(jìn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動(dòng)循跡小車 課程設(shè)計(jì)報(bào)告
- 實(shí)時(shí)測(cè)量課程設(shè)計(jì)_自動(dòng)循跡小車
- 小車循跡課程設(shè)計(jì)
- 循跡小車課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-自動(dòng)循跡小車
- 循跡小車課程設(shè)計(jì)報(bào)告
- 智能小車課程設(shè)計(jì)--智能循跡小車
- 單片機(jī)循跡小車課程設(shè)計(jì)
- 嵌入式課程設(shè)計(jì)--智能循跡小車設(shè)計(jì)
- 課程設(shè)計(jì)-- 智能小車循跡控制系統(tǒng)
- 自動(dòng)循跡小車
- 綜合電子課程設(shè)計(jì)----智能循跡避障小車
- 循跡小車畢業(yè)設(shè)計(jì)--循跡小車設(shè)計(jì)
- 小車自動(dòng)往返控制課程設(shè)計(jì)
- 自動(dòng)循跡小車-畢業(yè)論文
- 小車自動(dòng)往返裝卸料控制課程設(shè)計(jì)
- 智能循跡小車設(shè)計(jì)報(bào)告
- 尋軌小車課程設(shè)計(jì)
- 循跡小車原理
- 智能循跡小車
評(píng)論
0/150
提交評(píng)論