智能小車源代碼_第1頁
智能小車源代碼_第2頁
智能小車源代碼_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、#include<r e g 5 1、II>。# i ncl u de < in t r i ns、h >/ / #inc 1 ud e "led、h *sbit TX=P 2 7 ;sbi t RX = P2A6;sbit PWM= Pl" 4;sb i t B e ep= P3A7;s b it led 1 =P 3 A 3 ;sbit led2=P3A4;s b i t led 3 =P 3 "5;(京*藍牙切換扌安鍵* *眾/s bit kl=P3A6:/"*自左義一些數(shù)據(jù),注意這些數(shù)據(jù)對應(yīng)“51智能車藍牙無線遙控、exe

2、”軟件上得數(shù)據(jù)設(shè) 置"/#defin e le f t dat a 0x1 1#defin e r i gh t data 0x22#d e fi n e forwa r dd a t a 0x3 3 #defin e b ac k d ata 0x44 #define s t op d ata 0 x55# d efine uchar unsignedc har#define u i n t u n signed intu n si g ned ch a r r ece i v e D a ta» h i g h_ v el o s i t y» low_v e

3、 I o si t y;v o id UsartConfigu r a t io n ();/*電機端口立義* */sbit IN1=P 1 ao: sbi t IN 2 =PlAl;oo sbi t IN3=P1 八 2 ;sbit IN4=P1a3;/ /為髙電平時,左電機后轉(zhuǎn)。/ /為高電平時,左電機正轉(zhuǎn)/為高電平時,右電機正轉(zhuǎn)/為高電平時,右電機后轉(zhuǎn)廠*木柑次“*無線遙控模塊宦義* */sbit Key_A = P 2A0?B 鍵信號端。對應(yīng) DOsbit Key_B二P2八1;。 D鍵信號端。 對應(yīng)DI sb i t Key_C = P2人2;。/C鍵信號端對應(yīng)D2S bit K e

4、 y_D 二 P2 八 3;。/ / C 鍵彳言號?闊。voi d de 1 a y0 (int a);v o id delay 1 5 u s (v o id);vo i d d elaylm s (int z );void di();/蜂鳴器函數(shù)聲明un s i g n ed int t ime; / /用于存放定時器時間值 un s ign e d in t S; 用于存放距離得值 char f lag =0;疑程溢出標志位c har f 3,f 4 zn0: i n t a;int n;運行次數(shù)判斷標志 in t s_le f t,s_ r i g ht;voi d D e I a y

5、lOus(unsign e d c h ar i) o un s ig n e d cha r j; a doo j =10:do。_nop_();while(j);whil e (一i);夫 *4t*4t * *京夫 * 夫* * * * * 4(孚* * * * 法 * *電機程序和"* * * */* ««« * * * * * * * * * * * * * * * * * * * *Hc*4i*«*«*void Io o p()IN 1 = 1 ; 左電機I N2=0;a 八 aIN3 ="/右電機IN 4=0;v

6、oid run f ron t ()I Nl=l?/左電機IN2=0;“2IN3=0;。/ /右電機IN4 = 1;小車后退函數(shù)v 0 id runback()IN 1 =0;o /左電機I N2=l;I N3 = l? /右電機IN4= 0 ;/小車左轉(zhuǎn)void r u nl e ft ()IN1=O; /左電機IN2=0;IN 3=0; o/右電機I N4=l:/小車右轉(zhuǎn)void r unri g h t()IN1 = 1?/左電機I N 2 =0;I N3=0;,右電機IN 4=0;/小車左后轉(zhuǎn)/void r u n b a c k left()/ IN1=O; 左電機/ IN 2 =0

7、;/ / I N3 = 0;。/右電機 / IN 4=1;/ /小車右后轉(zhuǎn)/ / v o id r u nbackright()/ /IN1=1: o/左電機/ I N2= 0 ;/ IN3=0; / / 右電機/IN4=0;/小車停止函數(shù)vo i d stop()INl = 0: o /左電機IN 2 =0;IN3=0;。右電機IN4=0;車* * 卓* 寧 #*)!(次夫 * * * 孚 * 案 * 夫* 夫* * 專* *拿*藍牙程序*專專專*/* * * *拿 * * *常夫 *拿* * *voi d d ela y (uns i gn e d i n t a)uns igne d i

8、nt b:f o r (: a> 0 ;a-)a for (b=3: b >0; b-);左電機轉(zhuǎn)voi d 1 eft_m o tor_runfro n t (unsi g ned i n t a)IN1 = 1?/左電機IN2=O;d e la y (a);IN 1 =0;I N 2 = 0 ;dela y (100-a);。voi d rig h t_m o tor_ru nfront(u n sign e d i n t a)IN3= 0 ; 右電機I N4 = l;d e lay(a);IN3=0;IN4=0;d e lay( 1 00a);。v o id left_m

9、o tor_ b a c k(unsigned int a) IN1=O; /左電機IN 2=1;de I a y(a):IN1=O ;I N2=0 :delay (100-a);。v o id rig h t_mot o r _ba ck(un s i gned i nt a) IN3二"/右電機IN 4=0;delay( a );IN3=0;I N4= 0;del a y( 100-a)?。voi d 1 e f t_m o tor_s t op () "IN 20;。/左電機IN2=0;。 a。voi d r ight_m o t o r_sto p ()IN 3=0

10、? /左電機I N 4 =0?oa。/PWM調(diào)速voi d PWM_RUNFRO NT(unsig n e d int a, uns i gne d int b )。/ / a 屬于 0 1 0 0 left_mot o r_ru n f r o nt (a);r ight_mo t or_ru n f r o n t (b); " vo i d PW M_RUN B AC K (un s i g ned in t a,un s i g ned int b)a 屬0l00le f t_mot o r_bac k (a); r ight_motor_back (b);v oid PWM

11、_RUNLEFT( u nsign e d int a)“。/ / a H J * 01 0 0r i g ht_moto r _ r unf r on t (a);。left_mo t o r_ s top();void PWM_RUNR 1 GHT( un s i g ned int a)a 屬于 0 1 00r i ght_motor_stop (); left_moto r _ r unfront(a);void b 1 u estop()left_motor_sto p ();ri g h t _moto r _stop();void Usar t Con f igurat i o

12、n ()a SCON= 0 X50: “ 設(shè)置為工作方式1。TMO D = T MOD 10x21;設(shè)置計數(shù)器工作方式2PCON=OX8 0; o波特率加倍oTlU = 0XFA?/計數(shù)器初始值設(shè)置,注意波特率就是4 800得TL1= 0XFA;-ES=1;-打開接收中斷E A=l; oooooo 打開總中斷-TR1=1;TH 0=0;TLO=O;打開計數(shù)器ET 0=1;。/* * * * * * * * * *沐案*車*床* 車 * 案*函數(shù)名*函數(shù)功能“*輸入*輸出:Del ay (unsig ned int i) :延時函數(shù):無° :無* *木未拿 * * * 次* * * *

13、 * * * * * < *京* ««*« 法*卞* * */voi d Usart() i n terrupt 4。rece i v e D a t a =S B U F; / /岀去接收到得數(shù)據(jù)qRI = 0;/淸除接收中斷標志位if( r e c e iv e Data= 0x66)aI o w _v e los i ty=l;h igh_ve 1 o s i t y=0;/ w rite_(0x80);4i f (receiveDat a =0 x 77)low_ve 1 os i ty= 0 ;a h igh_ v elo s ity= 1 ;4/

14、* 夫*卓* * 夫* 京* */*舵機程序* */ *, * 璟卓車 * 璟璟 * 案* * * *姦 * * v o id dela y x(in t t)o c h ar j ;f o r(: t>O;t- )for (j = 19; j>0 : j-);void deg r e e0()a int i;fo r (i=0; i< 1 0; i +)。PWM= 1 ;del a y x (10);/lm so pV M =0:o d e I a yx ( 3 90);/19msvo i d deg r e e 9 0 () o int i;o f or(i=0;i<

15、; 10; i+)a PWM=1;de 1 ayx(2 4); /5 0“ PWM=0;o delay x(376); /18> 5msvoid d e g r e el8 0 ()o in t i :fo r (i=0;i<l 5 ;i+)。PWM=1;。delay x (40); /l 5mso PWM = 0 ;。delay x (360): /18、5ms4/ * * * * * * * * */* * 超聲波程序 *<!* 夫 * *車 * */拿* * 夫 *京* * *拿* * * * * * * *京拿* * * * * * * */* A鍵被按下后,前進*

16、/v oi d Count 1 (v o i d)t ime=TH 1 *256+T LI:TH 1 = 0 ;TL1=O;o S= (t i me *1. 7)/10 0;a n+;if(S< = 3 0 &&n= 1 )Q le d 1=0;a S t O P();odegr e eO();di ():0 o i f (S>30&& n = 1 )Iedl = l;。r u nfron t ();n =0:if(n= 2 )。s Jeft = S;d e gree 1 8 0(); d i();a if(n=3)。a o sr ig h t =S

17、:degree90();di();n=0; 標志位淸零a if (s_left>sig h t)o o |“ I e d2=l; delay 1ms (5 0 );l e d2= 0 ;del a ylms (50);。 r u nrigh t ():八 d elay x (125 0 );o o J"e I sea Ied3= 1 ;delay(8 0 0) ;le d 3=0;de 1 a y (500);ru n left ()?odelayx(1 25 0);O d / * *超聲波髙電平脈沖寬度計算程序*/void Time r_C o u n t (void)TR1

18、=1: - o 開啟計數(shù)o while ( RX); “/當(dāng)RX為1計數(shù)并等待T R 1=0;。關(guān)閉計數(shù)/Count");。/ / 計算/*夫 m* * 夫* *vo i d Star t M o dul e ()。啟動模塊txt;。啟動一次模塊Delay 1 0 u s(2);-TX=0;/* 孚 * F 程序 * 京* *#*/* * * * 車 *n*l * * 京* * *車 * 車* * * * * * * * 案* * 木* * 車* * 案車* * 夫 * * * * * voi d ma i n(void)oUsartConfigu rati o n();wh i l

19、e(l)i f (kl=0&&n 0=0)a odela y 1 ms(2 0 );° o if( k l=0)o o o |0n 0 +:o o o J°else if ( k 1 =0&& n 0=l)4 odela y lm s ( 2 0);if(kl=O)o o a a n 0 ;o i f (n0= 0 )o o |“if(Key_B= = 0&&KeyD=0&& Key_C= 0 &&Key_A= 1 ) A 鍵被按下o o 。of 1 =1; f 2 = 0;f3 = 0;f4=

20、0: d i ();。 “。e 1 seif(Key_A=O&& Key_D = =0&&Key_B= = l&&Ke y_C = = 0)。B 鍵被按下。 “ f 1=0: f 2=l;f3 =0; f 4=0;d i ();。 el s e i f( K ey_B=0&&Key_D=0&&Key_A=0&&Key_C=“/C鍵被按下o o o |afl=0; f 2=0; f 3 = 1 ; f 4 =0; di ();。 aelse if(K e y_D=l&& Key _B=

21、0&&K e y _A= 0 &&Key_C 二二 0) /D 鍵被按下f 1 =0: f 2 = 0 ;f3=0;f4=l;di()?i f(fl)S t a rtM o du 1 e);a 八 f o r ( a =95 1 ;a>0; a -)。 八if(RX=l)ODOaooT i mer_Count (); a Countlf);ooJo o o J“if( f 2)o o o |runb a ck():0 “if(f3 )oo I o o p();o o oif (f4)O b stop():oo 。a i f( n 0 = 1 )O di f (low_velo s ity)。 b oo swit c h(rece i v eDat a )八 。case leftdata:PWM_ R UNLEFT(3 0 ); br e a k;? ak;a k;brea k ;ca s e righ t da t a: PWM_RUNR

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論