超聲波智能小車_第1頁
超聲波智能小車_第2頁
超聲波智能小車_第3頁
超聲波智能小車_第4頁
超聲波智能小車_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit Signal=P17;sbit RX=P24;sbit TX=P25;sbit lcden=P31;sbit lcdrs=P30;unsigned int time=0;/用于存放定時器時間值unsigned int S=0;/用于存放距離的值bit flag =0; unsigned char disbuff="0000"unsigned char code t

2、able1="! Out of range"void motor_r_z(void);/右邊電動機正轉(zhuǎn)void motor_l_z(void);/左邊電動機正轉(zhuǎn)void motor_r_f(void);/右邊電動機反轉(zhuǎn)void motor_l_f(void);/左邊電動機反轉(zhuǎn)void back(uchar,uchar); /小車后退void go(uchar,uchar);/小車前進void stop(void);/小車停止void left(void);/小車左轉(zhuǎn)void right(void);/小車右轉(zhuǎn)sbit PWM1=P15;sbit PWM2=P14;sbit

3、PWM3=P11;sbit PWM4=P12;sbit EN1=P10;sbit EN2=P13;sbit start_k=P32;uchar data t_0;uchar data motor_r;uchar data motor_l;uchar data Value;uchar data mid;/*延時子程序*/void delay_1ms(uint n)uint i,j;for(j=n;j>0;j-)for(i=20;i>0;i-);void ini(void)/T0初始化/TMOD=0x01; /T0工作在方式1TH1=0xff; /裝入T0初值TL1=0xf6;TR1=

4、1;/開T0中斷ET1=1;/T0允許中斷EA=1;/t_0=0;/P2=0;void start(void) uchar a; aa: while(start_k); for(a=0;a<50;a+) delay_1ms(1); while(start_k) goto aa; go(0x30,0x30);void go(uchar left_motor,uchar right_motor)/直行Value=right_motor;motor_r_z();Value=left_motor;motor_l_z();void back(uchar left_motor,uchar right

5、_motor)/后退Value=right_motor;motor_r_f();Value=left_motor;motor_l_f();void motor_r_z(void)/右邊電動機正轉(zhuǎn) motor_r=0x64+Value; EN1=1;void motor_l_z(void)/左邊電動機正轉(zhuǎn) motor_l=0x64-Value; EN2=1;void motor_r_f(void)/右邊電動機反轉(zhuǎn) motor_r=0x64-Value; EN1=1;void motor_l_f(void)/左邊電動機反轉(zhuǎn) motor_l=0x64+Value; EN2=1;void stop(v

6、oid)EN2=0;EN1=0;void time0(void) interrupt 3 TR1=0;TH1=0xff;TL1=0xf6;+t_0;ACC=t_0;CY=0;ACC-=motor_r;if(CY=1)PWM1=1;PWM2=0;goto PWM_2;PWM1=0;PWM2=1;PWM_2:ACC=t_0;CY=0;ACC-=motor_l;if(CY=1)PWM3=1;PWM4=0;goto HIGHT;PWM3=0;PWM4=1;HIGHT:ACC=t_0;if(ACC!=0xc9)goto EXIT;ACC=0;t_0=ACC;EXIT:TR1=1; void Delay4

7、00Ms(void)unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA-)TempCycB=7269;while(TempCycB-);void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void write_com(uchar com)lcdrs=0;P2=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar date)lcdrs=1;P2=date;delay(5);lc

8、den=1;delay(5);lcden=0;void init()lcden=0; write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);void Timer_Count(void)uint i; TR0=1; /開啟計數(shù) while(RX);/當(dāng)RX為1計數(shù)并等待 TR0=0;/關(guān)閉計數(shù) time=TH0*256+TL0; TH0=0; TL0=0; S=time*1.7; S=S/10; if(S>=200)|flag=1) /超出測量范圍 go(0x35,0x35);Signal=0; flag=0; /*

9、write_com(0x80+0x00);i = 0;while(table1i!='0') write_data(table1i); i+; */ else back(0x35,0x35); Signal=1; /* disbuff3=S%10+'0' disbuff2=S/10%10+'0' disbuff1=S/100%10+'0' disbuff0=S/1000%10+'0' write_com(0x80+0x45); i = 0; while(disbuffi!='0') write_da

10、ta(disbuffi); i+; */ /計算 void zd0() interrupt 1 /T0中斷用來計數(shù)器溢出,超過測距范圍 flag=1; /中斷溢出標(biāo)志RX=0; /*/ void StartModule() /啟動模塊 TX=1; /啟動一次模塊 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; voi

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論