基于ST89C52單片機的自動往返小車(含程序)畢業(yè)設(shè)計(論文)_第1頁
基于ST89C52單片機的自動往返小車(含程序)畢業(yè)設(shè)計(論文)_第2頁
基于ST89C52單片機的自動往返小車(含程序)畢業(yè)設(shè)計(論文)_第3頁
基于ST89C52單片機的自動往返小車(含程序)畢業(yè)設(shè)計(論文)_第4頁
基于ST89C52單片機的自動往返小車(含程序)畢業(yè)設(shè)計(論文)_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基本原理:單片機黑帶檢測路程和時間顯示led顯示路程,時間l298n電機驅(qū)動模塊1.電機驅(qū)動調(diào)速模塊方案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動機的分壓,從而達(dá)到調(diào)速的目的。但是電阻絡(luò)只能實現(xiàn)有級調(diào)速,而數(shù)字電阻的元器件價格昂貴。更主要的問題在于一般電動機的電阻較小,但電流很大;分壓不僅會降低效率,而且很難實現(xiàn)。方案二:采用繼電器對電動機的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對小車的速度進(jìn)行調(diào)整。方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應(yīng)時間慢,機械結(jié)構(gòu)易損壞,壽命較短,可靠性不高。方案三:采用達(dá)林頓管tip4組成的pwm電路。用單片機控制達(dá)林頓管使之工作在占空比可調(diào)的狀態(tài),精確調(diào)整電機轉(zhuǎn)速。方案四:

2、采用l298n來控制電機的正轉(zhuǎn)和反轉(zhuǎn)來實現(xiàn)小車的前進(jìn)和后退。加上單片機的程序pwm,實現(xiàn)整車的加速與減速,精確小車的速度。基于上述理論分析,擬選擇方案四。2.路面黑帶檢測模塊黑帶檢測的原理是:紅外光線照射到路面并反射,由于黑帶和白紙的系數(shù)不同,可根據(jù)接的紅外線的強弱判斷是否到達(dá)黑帶。方案一:可見光發(fā)光二極管與光敏二極管組成的發(fā)射接收電路。這種方案的缺點在于其他環(huán)境光源會對光敏二極管的工作產(chǎn)生很大的干擾,一旦外界光亮條件改變,很可能造成誤判和漏判;雖然產(chǎn)生超高亮發(fā)光二極管可以降低一定的干擾,但這又將增加額外的功率損耗。方案二:反射式的紅外發(fā)射接收器。由于采用紅外管代替普通可見光管,可以降低環(huán)境干

3、擾。 基于上述理論分析,擬選擇方案二。3. 電源選擇方案一:所有器件采用電源供電,這樣供電電路比較簡單;但是由于電動機啟動瞬時電流很大,會造成電壓不穩(wěn),干擾嚴(yán)重,缺點十分明顯。方案二:雙電源供電,將電動機驅(qū)動電源與單片機以及周邊電路電源完全隔離,這樣做雖然不如單電源方便靈活,但可以將電動機驅(qū)動所造成的干擾徹底消除,提高了系統(tǒng)的穩(wěn)定性?;谏鲜隼碚摲治?,擬選擇方案二。4. 控制單元模塊方案一:采用純數(shù)字電路該方案外部檢測采用光電轉(zhuǎn)換,系統(tǒng)控制部分采用數(shù)字電路譯碼對小車電動機兩端電壓調(diào)整,來控制小車的運行。時間和行程用加法器進(jìn)行計數(shù)。此系統(tǒng)的設(shè)計將會使電路過于復(fù)雜,調(diào)試時需要改變硬件電路,機動性差

4、。方案二:用單片機控制用光電檢測不同的信號,并經(jīng)單片機對其處理,傳送給l298信號,使其控制電機的正轉(zhuǎn)和反轉(zhuǎn),配合pwm程序控制,來實現(xiàn)加速減速和剎車。通過單片機內(nèi)部定數(shù)器/計數(shù)器進(jìn)行定時、計數(shù),在用單片機串行輸入/輸出口進(jìn)行顯示控制。此方案電路成熟、工作穩(wěn)定、容易實現(xiàn)控制。為能更好的實現(xiàn)題目的各種設(shè)計要求,所以我們選用第二種方案。用單片機進(jìn)行控制。其工作框圖如下:光電檢測小車正反轉(zhuǎn)控制中心stc89c52開 始行駛時間顯示霍爾檢測二 電路設(shè)計行駛里程顯示1. 光電檢測部分:我們采用反射式光電檢測電路對跑道上的黑線進(jìn)行檢測,并用兩個遮光套管套住發(fā)光管和接收管以一定的角度緊貼跑道,這樣可以消除外

5、界光線的干擾。為了加強可靠性采用槽型光耦檢測輪子轉(zhuǎn)動的行程。用lm358電壓比較器輸出高低電平檢測信號。如圖所示:2. stc89c52單片機基本系統(tǒng)此系統(tǒng)以89c52為核心,每檢測到一個黑帶由光電檢測部分產(chǎn)生一個的脈沖,使單片機產(chǎn)生一個外部中斷1,定義檢測黑帶數(shù)的變量加1,同時車輪每轉(zhuǎn)一圈,霍爾元件輸出一個脈沖,是安單片機產(chǎn)生一個外部中斷0,定義圈數(shù)的變量加1.通過p3.0和p3.1控制l298來控制電機的正轉(zhuǎn)與反轉(zhuǎn)及剎車。當(dāng)p3.0輸出低電平,p3.1輸出高電平時,電機正轉(zhuǎn),相反則電機反轉(zhuǎn),當(dāng)p3.0和p3.1都是低電平時,使電動機被短路,提高了剎車效率,基本杜絕了由于制動慣性造成的小車的

6、前沖現(xiàn)象。通過p0口進(jìn)行兩個數(shù)碼管的位選,p2口進(jìn)行段碼輸出,其中一個數(shù)碼管顯示行駛時間,另外一個數(shù)碼管顯示行駛路程。 如圖所示:3. l298n電動機驅(qū)動模塊部分該電路采用電動機驅(qū)動芯片l298來控制電動機的正轉(zhuǎn)與反轉(zhuǎn),加以第二路電機電源保證了電動機啟動時有足夠的電流。在試驗中控制電壓為單片機輸出的高低電平直接控制。具體電路圖連接如下:4. 電源部分由于電動機工作電流大,需要選用內(nèi)阻小,供電電流強,質(zhì)量輕,可反復(fù)使用的經(jīng)濟型電池,我們選用鎳鉻可充電電池組。為使單片機工作穩(wěn)定,避免電動機開關(guān)機和其轉(zhuǎn)動時對其電源的影響,在此用兩個電池組和穩(wěn)壓塊7805分別為89c52和電動機驅(qū)動顯示部分分別進(jìn)行

7、供電。保證小車工作和顯示的穩(wěn)定性。5.軟件設(shè)計部分單片機控制電路主要由一片stc89c52組成,通過p3口控制小車正轉(zhuǎn)與反轉(zhuǎn),剎車,加速減速,通過兩個四聯(lián)數(shù)碼管控制顯示時間和里程以及小車行駛的時間。其中p0口進(jìn)行位選,p2口進(jìn)行顯示段碼輸出。該系統(tǒng)采用上電復(fù)位加上手動復(fù)位聯(lián)合復(fù)位系統(tǒng)進(jìn)行初始化,單片機通過p3.0,p3.1輸出脈沖控制電機正轉(zhuǎn)反轉(zhuǎn)以及剎車,當(dāng)p3.0,p3.1分別輸出01是電動機正轉(zhuǎn),輸出10時電動機反轉(zhuǎn),輸出00時電動機兩邊短路,小車立即剎車。流程圖如下:(1)外部中斷0車輪美轉(zhuǎn)一次,霍爾元件產(chǎn)生一個脈沖p3.14,通過下降沿觸發(fā)外部中斷0,并且在每進(jìn)行一次外部中斷記錄圈數(shù)的

8、變量加1.車輪每轉(zhuǎn)一圈霍爾元件產(chǎn)生一個脈沖圈數(shù)quanshu+開始外部中斷int0(2)外中斷1光電檢測每檢測到一條黑帶就產(chǎn)生一個脈沖輸入p3.2口,通過下降沿的方式觸發(fā)外中斷1,每中斷一次記錄黑帶的變量加1,當(dāng)檢測到第五條黑帶時,p1.0=1,p1.1=1,小車的電動機由于短路剎車,當(dāng)檢測到第九條黑帶時,小車再次剎車同時關(guān)掉所有中斷。開始黑帶數(shù)heidai+退出ea=0,剎車p3.0=1,p3.1=1heidai=5yyheidai=9(3)定時器中斷0使用定時器t0產(chǎn)生5ms定時中斷,每次執(zhí)行該中斷前要先給定時器0賦初值,定時器中斷每執(zhí)行一次,變量加1。當(dāng)i=200時,即每當(dāng)計時1秒時,時

9、間變量t加1,速度等于一秒轉(zhuǎn)的圈數(shù)和小車車輪的周長相乘。定時中斷0開始產(chǎn)生5ms中斷控制一秒定時,i+一秒定時是否到共轉(zhuǎn)的圈數(shù)q路程=周長*圈數(shù)q(4)定時器中斷1主要用來產(chǎn)生不同的占空比的波型進(jìn)行高低速控制,每次執(zhí)行時,定時器1要賦初值(5) 主程序主程序主要用來控制兩個四聯(lián)數(shù)碼管的顯示,通過循環(huán)語句不斷的調(diào)用顯示程序,使兩個四聯(lián)數(shù)碼管按位不斷循環(huán)亮點,當(dāng)小車行駛時動態(tài)顯示時間和路程,小車停止時顯示小車行駛過程中的時間和路程。6.安裝與調(diào)試自動小車為玩具遙控小汽車的改裝品,在改裝的過程中最重要的是考慮設(shè)計光電檢測管的位置,檢測黑帶的光電管放在車體的中央,用遮光管將其以一定反射角度壓到跑道上。

10、路程檢測用槽型光耦,放在小車的從動輪上。輪子的周長約為21.6厘米,在輪子上用了一個霍爾元件,每轉(zhuǎn)一圈一個脈沖。在組裝前對每一個單元電路進(jìn)行測試,以保證外部硬件電路的無誤,有利于最后的統(tǒng)調(diào)。調(diào)整是以點到線,最后到整體調(diào)試的方法。在調(diào)整的過程中我們發(fā)現(xiàn)了許多問題,如響應(yīng)中斷的次數(shù)的調(diào)整等。并且為了小車碰到墻壁不至于停車,我們在小車的四角上都加上了導(dǎo)向輪,導(dǎo)向輪用隨身聽的壓帶輪制作即可。7.附錄元器件及程序如下:基本元器件列表一個stc89c52單片機2個四位共陽數(shù)碼管一個l298n芯片一個lm358 一個霍爾元件和小磁鋼片光點接收管一對晶振(12m)及30pf電容開關(guān)電阻 10k 100歐姆 1

11、k 20k可調(diào)附錄程序:#include /包含頭文件#define uint unsigned int /宏常量定義#define uchar unsigned char /宏常量定義sbit dianji1=p10; /p1_0設(shè)置為電機控制一sbit dianji2=p11; /p1_1設(shè)置為電機控制二sbit hdjc=p32; /p3_2設(shè)置為黑帶檢測位uchar code duma=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff; /段編碼uchar code dianduma=0x40,0x79,0x24,0x30,0

12、x19,0x12,0x02,0x78,0x00,0x10; /帶小數(shù)點段編碼uchar code wema=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0xff; /位編碼uchar num,ge,shi,bai,qian; /定義幾個字符型變量uint miao,lc,heidai=0; /定義幾個整形變量long int qs; /定義一個長整形變量用來記錄小車所轉(zhuǎn)的圈數(shù)void fenwei(uint); /聲明一個分位函數(shù)用來把要顯示的數(shù)分位void shuma(uchar,uchar); /聲明一個數(shù)碼上顯示函數(shù)用來在數(shù)碼管上顯示數(shù)據(jù)vo

13、id shumadian(uchar,uchar); /聲明另一個數(shù)碼顯示函數(shù)用來顯示帶小數(shù)點的數(shù)據(jù)void miaoxianshi(uint); /聲明一個顯示時間的函數(shù)void lcxs(uint); /聲明一個顯示路程的函數(shù)void djkz(); /聲明一個電機控制函數(shù)void delay(uchar); /聲明一個延時函數(shù)void delay10s(); /聲明另一個延時函數(shù)用來延時十秒鐘/*主函數(shù)*/void main() ea=1; /打開總中斷et0=1; /打開定時器中斷0ex0=1; /打開外部中斷1it0=1; /外部中斷0設(shè)置為跳變沿觸發(fā)方式ex1=1; /打開外部中斷

14、1it1=1; /外部中斷1設(shè)置為跳變沿觸發(fā)方式tmod=0x01; /設(shè)置定時器0為方式1th0=(65536-500)/256; /定時器0高八位裝初值tl0=(65536-500)%256; /定時器0低八位裝初值tr0=1; /打開定時器0while(1) /進(jìn)入主循環(huán) djkz(); /進(jìn)入電機控制函數(shù)/*顯示分位*/函數(shù)功能: 把需要在數(shù)碼管上顯示的數(shù)據(jù)分位,/ 即把數(shù)據(jù)的個、十、百、千位分別分/ 離出來/函數(shù)入口參數(shù):整形x,儲存需要分位的數(shù)據(jù)/函數(shù)返回值: 無void fenwei(uint x) ge=x%10; shi=(x%100)/10; bai=(x%1000)/10

15、0; qian=x/1000; /*數(shù)碼顯示*/函數(shù)功能: 將需要顯示的數(shù)據(jù)顯示在數(shù)碼管上/函數(shù)入口參數(shù):字符型x,儲存顯示數(shù)據(jù)/ 字符型y,儲存要顯示的位置/函數(shù)返回值: 無void shuma(uchar x,uchar y) p0=wema8;p2=dumax;p0=wemay;delay(5);/*帶小數(shù)點數(shù)碼顯示*/函數(shù)功能: 將需要顯示的數(shù)據(jù)顯示在數(shù)碼管上/函數(shù)入口參數(shù):字符型x,儲存顯示數(shù)據(jù)/ 字符型y,儲存要顯示的位置/函數(shù)返回值: 無void shumadian(uchar x,uchar y) p0=wema8;p2=diandumax;p0=wemay;delay(5);

16、/*時間顯示*/函數(shù)功能: 將定時器0輸出的時間顯示在數(shù)碼管上/函數(shù)入口參數(shù):整型x,要顯示的時間/函數(shù)返回值: 無void miaoxianshi(uint x) fenwei(x);shuma(ge,3);shuma(shi,2);shumadian(bai,1);shuma(qian,0);/*路程顯示*/函數(shù)功能: 將外部中斷1輸出的路程顯示在數(shù)碼/ 管上/函數(shù)入口參數(shù):整形z:要顯示的路程/函數(shù)返回值: 無void lcxs(uint z) fenwei(z);shuma(ge,7);shuma(shi,6);shumadian(bai,5);shuma(qian,4);/*電機控制

17、*/函數(shù)功能: 控制電機運轉(zhuǎn)/函數(shù)入口參數(shù):無/函數(shù)返回值: 無 void djkz() uchar n=20,m=60;switch(heidai)case 0:case 1:case 2:dianji1=1;dianji2=0;miaoxianshi(miao);lcxs(lc);break;case 3:while(m-)dianji1=0;dianji2=1;delay(70);dianji1=0;dianji2=0;delay(30);miaoxianshi(miao);lcxs(lc);while(heidai=3)dianji1=1;dianji2=0;delay(13);dia

18、nji1=0;dianji2=0;delay(1);miaoxianshi(miao);lcxs(lc);break;case 4:while(heidai=4)dianji1=1;dianji2=0;delay(25);dianji1=0;dianji2=0;delay(1);miaoxianshi(miao);lcxs(lc);break;case 5:while(n-)dianji1=0;dianji2=1;delay(50);dianji1=0;dianji2=0;delay(50);miaoxianshi(miao);lcxs(lc);待添加的隱藏文字內(nèi)容3dianji1=1;dia

19、nji2=1;delay10s();while(heidai=5)dianji1=0;dianji2=1;break;case 6: dianji1=0;dianji2=1;miaoxianshi(miao);lcxs(lc);break;case 7:while(n-)dianji1=1;dianji2=0;delay(50);dianji1=0;dianji2=0;delay(50);miaoxianshi(miao);lcxs(lc);while(heidai=7)dianji1=0;dianji2=1;delay(90);dianji1=0;dianji2=0;delay(1);miaoxianshi(miao);lcxs(lc);break;case 8:dianji1=0;dianji2=1;miaoxianshi(miao);lcxs(lc);break;case 9:while(n-)dianji1=1;dianji2=0;delay(50);dianji1=0;dianji2=0;delay(50);miaoxianshi(miao);lc

溫馨提示

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

最新文檔

評論

0/150

提交評論