基于51系列的單片機(jī)進(jìn)行的簡易智能電動車設(shè)計(jì)論文_第1頁
基于51系列的單片機(jī)進(jìn)行的簡易智能電動車設(shè)計(jì)論文_第2頁
基于51系列的單片機(jī)進(jìn)行的簡易智能電動車設(shè)計(jì)論文_第3頁
基于51系列的單片機(jī)進(jìn)行的簡易智能電動車設(shè)計(jì)論文_第4頁
基于51系列的單片機(jī)進(jìn)行的簡易智能電動車設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)作品簡易智能電動車實(shí)驗(yàn)報(bào)告生物醫(yī)學(xué)工程11鄧源() 歐陽鳳欣()、鄭絲敏() 孫明()1、 簡介:本設(shè)計(jì)是基于51系列的單片機(jī)進(jìn)行的簡易智能電動車設(shè)計(jì),該簡易智能電動車設(shè)計(jì)要求包括: 1基本要求(1)車輛從起跑線出發(fā)(出發(fā)前,車體不得超出起跑線),連續(xù)跑2圈,不得沖出跑道,單圈時(shí)間應(yīng)力求最短。(2)車輛到達(dá)終點(diǎn)線后能自動停車(跑完2圈),停車位置離起跑線和終點(diǎn)線偏差應(yīng)最小。(3)在限速區(qū)內(nèi),平均最高速度不得超過1m/s,不允許在限速區(qū)內(nèi)停車。 2自動記錄、顯示每圈時(shí)間(記錄顯示裝置要求安裝在車上)。 自動記錄、顯示每圈行駛距離(記錄顯示裝置要求安裝在車上)。二、主要器件:LED1286

2、4液晶顯示屏 霍爾傳感器 STC89C52芯片 L298驅(qū)動 反射式四路紅外尋跡器*2 電源模塊三、各流程框圖1、電路設(shè)計(jì)框圖: 4、各模塊電路圖 五、成品靚照:1、正面照2、背面照:3、作品靚照&顯示效果:5. 實(shí)驗(yàn)中遇到的問題 程序方面:開始將程序?qū)懲瓴⑾螺d后,發(fā)現(xiàn)小車會斷斷續(xù)續(xù)的走(走一段停一段在走一段),不是連續(xù)的走,經(jīng)過多次的調(diào)時(shí)后,發(fā)現(xiàn)原因是因?yàn)橹袛嗟膬?yōu)先級問題,所以將電機(jī)驅(qū)動定時(shí)器T1設(shè)置為最高優(yōu)先級,問題也就解決了。硬件方面:對于我們所用到的紅外循跡器來說,對跑道的要求是非常高的,我們在跑道上反復(fù)嘗試(瓷磚間隙要用白色膠布封?。┎拍苷5漠a(chǎn)生中斷。小車速度的控制方面:剛開始的時(shí)

3、候小車經(jīng)常沖出軌道,而這主要就是程序中速度設(shè)置問題,經(jīng)過我們多次的調(diào)試,小車才能相對穩(wěn)定的行走并且能夠相對流暢的轉(zhuǎn)不同程度的彎。 六、實(shí)驗(yàn)心得1、在整個(gè)設(shè)計(jì)過程中,發(fā)揮團(tuán)隊(duì)精神,分工合作,充分發(fā)揮人的主觀能動性,自主學(xué)習(xí),學(xué)到了許多書本上沒學(xué)到的知識。較好的完成了作品。達(dá)到了預(yù)期的目的,在最初的設(shè)計(jì)中,發(fā)揮“三個(gè)臭皮匠,頂個(gè)諸葛亮”的作用。相互學(xué)習(xí)、相互討論、研究。 2、在電路焊接時(shí)出現(xiàn)一些小問題,但經(jīng)過查找改進(jìn),問題得以解決,從做作品過程中知道了焊接在整個(gè)作品中的重要性,電路工程量大,不能心急,一個(gè)個(gè)慢慢來不能急于求成。反而達(dá)到事半功倍的效果。對電路的設(shè)計(jì)、布局要先有一個(gè)好的構(gòu)思,才顯得電路

4、板美觀、大方。程序編寫中,通過上網(wǎng)找資料等寫好的,剛開始由于思路不清晰,遇到了很多的問題,經(jīng)過靜下心來思考,和同組員的討論,理清了思路,反而得心應(yīng)手。在此次設(shè)計(jì)中,知道了凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我們的耐心,做什么事都在有耐心。此次做作品過程中學(xué)到了很多很多東西,這是最重要的。3、在這次設(shè)計(jì)中,將C語言和單片機(jī)等已學(xué)的課程進(jìn)行一次在學(xué)習(xí)的良好機(jī)會。通過這次學(xué)習(xí),無疑進(jìn)一步提高了自己的專業(yè)技能,為今后踏入社會,在該領(lǐng)域上發(fā)揮自己的特長,以及就業(yè)打下了堅(jiān)實(shí)的基礎(chǔ)。通過本次設(shè)計(jì),使我們對大學(xué)期間所學(xué)的課程有了針對性、綜合性、系統(tǒng)性的了解,并且提高了自己的分析的能力4、

5、本系統(tǒng)的設(shè)計(jì)過程并非一帆風(fēng)順,剛開始接觸這個(gè)課題時(shí),心中并沒有一個(gè)清晰的框架,通過翻看手冊與查閱相關(guān)資料后,我漸漸有了設(shè)計(jì)的思路,對于系統(tǒng)所要用到的元器件類型也有了一定程度的了解。附錄:源程序代碼*#include#include#include#define uchar unsigned char#define uint unsigned intsbit in1=P10; /左電機(jī) 1 輸入sbit in2=P11;/左電機(jī) 2 輸入sbit in3=P12;/右電機(jī) 3 輸入sbit in4=P13; /右電機(jī) 4 輸入sbit left1=P14;sbit left2=P15; sbit

6、 right2=P16;sbit right1=P17;sbit a=P20; /*左邊開始a,b,c,d*/sbit b=P21;sbit c=P22;sbit d=P23; sbit lcd_rs=P35;sbit lcd_rw=P36;sbit lcd_en=P37;/sbit beep=P26; /-喇叭unsigned int time=0;uchar time_count,second,M1=0,M2=0,s=0,s1=0,s2=0,count=0,w=0;float v=0;uchar ThirdLine=v: cm/s;uchar SecondLine=s: cm;uchar

7、FirstLine =T: s;char left_go_duty_cycle=0,right_go_duty_cycle=0,num;/*延時(shí)*/void delay(unsigned int k)unsigned int i,j;for(i=0;ik;i+)for(j=0;j121;j+);/*延時(shí)5微秒(STC90C52RC12M)不同的工作環(huán)境,需要調(diào)整此函數(shù),注意時(shí)鐘過快時(shí)需要修改當(dāng)改用1T的MCU時(shí),請調(diào)整此延時(shí)函數(shù)*/void Delay5us() _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();/

8、*_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); */*延時(shí)5毫秒(STC90C52RC12M)不同的工作環(huán)境,需要調(diào)整此函數(shù)當(dāng)改用1T的MCU時(shí),請調(diào)整此延時(shí)函數(shù)*/void Delay5ms() unsigned short n = 560; while

9、 (n-);/*PWM占空比定義*/void pwm_init(void)TMOD=0X11;TH0=0XFF;TL0=0XA3;/0.1ms interruptEA=1;ET0=1;TR0=1;void time1_init() /顯示時(shí)間初始化TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET1=1;void go(char left_speed,char right_speed)left_go_duty_cycle=left_speed;right_go_duty_cycle=right_speed;/* 時(shí)間行程顯示*/*液晶顯示*/

10、 /*寫指令*/void lcd_12864_write_cmd(uchar cmd)lcd_rs=0;lcd_rw=0;lcd_en=0;/初始P0=cmd;/送數(shù)據(jù)Delay5ms();/5ms,保持?jǐn)?shù)據(jù)lcd_en=1;/高脈沖時(shí)候數(shù)據(jù)才有效Delay5ms();/5ms,保持高電平lcd_en=0;/*寫數(shù)據(jù)*/void lcd_12864_write_dat(uchar dat)lcd_rs=1;lcd_rw=0;lcd_en=0;P0=dat;/先送數(shù)據(jù)Delay5ms(); /保持一會lcd_en=1;Delay5ms();lcd_en=0;/*設(shè)置顯示的位置*/void lcd

11、_12864_pos(uchar x,uchar y)uchar po;if(x=0)x=0x80;else if(x=1)x=0x90;else if(x=2)x=0x88;else if(x=3)x=0x98;po=x+y;lcd_12864_write_cmd(po);/*初始化*/void lcd_12864_init()/lcd_psb=1; /并行l(wèi)cd_12864_write_cmd(0x30);/基本指令/Delay5ms();/5mslcd_12864_write_cmd(0x0c);/顯示開,光標(biāo)關(guān)/Delay5ms();lcd_12864_write_cmd(0x01);

12、/清屏/Delay5ms();void lcd_12864_float(uchar x,uchar y,float addata) /uchar i,table5;sprintf(table,%.2f,addata);lcd_12864_pos(x,y);/i=0;while(tablei!=0)lcd_12864_write_dat(tablei);i+;void lcd_12864_int(uchar x,uchar y,uint dat) /顯示uintuchar i,table13;table10=0x30+dat/100; /提取P3口數(shù)據(jù)處理table11=0x30+dat%100

13、/10;table12=0x30+dat%10; lcd_12864_pos(x,y);/第二行的第一個(gè)字符i=0;while(i3)lcd_12864_write_dat(table1i);i+;void lcd_12864_string(uchar x,uchar y,char *str)lcd_12864_pos(x,y);while(*str != 0)lcd_12864_write_dat(*str);str+; /地址加 /*void speak(void)/蜂鳴器子程序unsigned char i,j;for(i=0;i3;i+)for(j=0;j200;j+)/喇叭發(fā)聲的時(shí)間

14、循環(huán),改變大小可以改變發(fā)聲時(shí)間長短 delay(80);/參數(shù)決定發(fā)聲的頻率,估算值,可以自行更改參數(shù)并SPK=!SPK; SPK=1;/喇叭停止工作,間歇的時(shí)間,可更改delay(20);*/ /*減速子程序*/ void speed_down() if(left2=1)&(c=1)go(12,12);else if(left2=1)go(10,12);else if(c=1)go(12,10);else if(left2=1 & b=1)go(5,12);else if(right2=1 & c=1)go(12,5);else if(right2=1)go(12,2);else if(b=

15、1) go(2,12);else if(d=1)go(23,3);else if(left1=1) go(3,23);else if(right1=1)go(25,0); else if(a=1) go(0,25); /*循跡子程序*/void xunji() if(left2=1)&(c=1)go(15,15);else if(left2=1)go(15,17);else if(c=1)go(17,15);else if(left2=1 & b=1)go(13,20);else if(right2=1 & c=1)go(20,13);else if(right2=1)go(22,10);el

16、se if(b=1) go(10,22);else if(d=1)go(37,7);else if(left1=1) go(7,37);else if(right1=1)go(40,0); else if(a=1) go(0,40); /*外部中斷初使化函數(shù)*/void INT_Init()IT0 = 1;/設(shè)置外部中斷0為下降沿觸發(fā) IT1 = 1; /設(shè)置外部中斷1為下降沿觸發(fā) EX0 = 1; /開外部中斷0EX1 = 1;/開外部中斷1EA = 1;/開總中斷 /-外部中斷測行程/外部中斷 INT0 測左電機(jī)行程void speed_test_left() interrupt 0 M1

17、=M1+;/外部中斷 INT1 測右電機(jī)行程void speed_test_right() interrupt 2 M2=M2+; void timer0() interrupt 1TH0=0XFF;TL0=0XA3;/0.1ms interrupt num+;/activetime+;/0.1*10000=1sif(numright_go_duty_cycle) /The higher the value,Fasterin3=0;/go-rightelsein3=1;if(num=100) /0.1*100=10ms Cycle10000-1snum=0;if(time=10000)/1s

18、time=0;void timer1() interrupt 3 /定時(shí)器1中斷TH1=(65536-50000)/256;TL1=(65536-50000)%256;time_count+;if(time_count=20) /1stime_count=0;second+;s1=M1/100.00*3.14*65; /1秒鐘小車左輪走s1毫米,車輪胎直徑為65MM s2=M2/100.00*3.14*65; /1秒鐘小車右輪走s2毫米,車輪胎直徑為65MMs=(s1+s2)/2; /平均路程s1=0; /小車左輪走的路程s1歸零s2=0; /小車右輪走的路程s2歸零/M1=0; /外部中斷0

19、中斷次數(shù)歸零/M2=0; /外部中斷1中斷次數(shù)歸零 w=M1; /提取外部中斷的個(gè)數(shù)v=(float)(0.10676*w); /W是不斷更新的lcd_12864_float(2,1,v);lcd_12864_int(0,1,second);lcd_12864_int(1,1,s);TR1=1; /*主程序*/ void main(void) uint i; EA=1; EX0=1; EX1=1; lcd_12864_init(); pwm_init(); time1_init(); /顯示時(shí)間初始化 INT_Init(); /外部中斷初使化 lcd_12864_string(0,0,Firs

20、tLine); /液晶顯示 lcd_12864_string(1,0,SecondLine); lcd_12864_string(2,0,ThirdLine); /*第一圈*/ while(a=0 | right1=0) /起始線之前循跡 xunji(); second=0;/開始計(jì)時(shí)、計(jì)路程 s=0; TR1=1; lcd_12864_int(3,1,1);/記錄顯示第一階段 /檢測到起始線和第一階段循跡/ while(!(a=1 & c=1) | (c=1 & right1=1) | (a=1 & left2=1) | (left2=1 & right1=1) | (a=1 & right

21、1=1) xunji(); while(!(b=1 & left2=1 & c=1 & right2=1) & (b=1 & left2=1 & c=1) & (left2=1 & c=1 & right2=1) xunji(); i=5000; /沖入減速標(biāo)志線 while(i-) xunji(); lcd_12864_int(3,1,2); /顯示第二階段減速標(biāo)志/減速循跡/ while(!(b=1 & left2=1 & c=1 & right2=1) &(b=1 & left2=1 & c=1) & (left2=1 & c=1 & right2=1) speed_down(); i=5000; /沖出減速標(biāo)志線 while(i-) speed_down(); lcd_12864_int(3,1,3); /顯示第三階段標(biāo)志/減速后回到正常循跡/ while(a=

溫馨提示

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

評論

0/150

提交評論