![基于51單片機的自動往返小車_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/26/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c1.gif)
![基于51單片機的自動往返小車_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/26/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c2.gif)
![基于51單片機的自動往返小車_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/26/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c3.gif)
![基于51單片機的自動往返小車_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/26/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c4.gif)
![基于51單片機的自動往返小車_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/26/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c/0952a2dd-5fa4-4e97-a1ee-f4ccd0463e6c5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于單片機的自動往返小車摘要本設計以一片單片機STC89C52作為核心來控制自動往返小車,加以控制芯片L298N和單片機聯(lián)合控制小車的前進與后退。路面的黑帶檢測使用反射式紅外傳感器,通過STC89C52對輸入的信號進行處理,以動態(tài)顯示的形式通過一個四位的數(shù)碼管顯示即時里程,另外一個四位數(shù)碼管動態(tài)顯示小車行駛時間。以紅外傳感器對路面黑線檢測用,行駛距離使用霍爾元件進行檢測。關鍵詞:光電檢測霍爾檢測動態(tài)顯示L298N控制電動機 小組成員:李亞昊、陳國翠、成曉斌、丁玉嬌單片機黑帶檢測路程和時間顯示LED顯示路程,時間L298N電機驅動模塊1.電機驅動調速模塊采用L298N來控制電機的正轉和反轉來實現(xiàn)
2、小車的前進和后退。加上單片機的程序PWM,實現(xiàn)整車的加速與減速,精確小車的速度。2.路面黑帶檢測模塊黑帶檢測的原理是:紅外光線照射到路面并反射,由于黑帶和白紙的系數(shù)不同,可根據接的紅外線的強弱判斷是否到達黑帶。反射式的紅外發(fā)射接收器。由于采用紅外管代替普通可見光管,可以降低環(huán)境干擾。3.電源選擇雙電源供電,將電動機驅動電源與單片機以及周邊電路電源完全隔離,這樣做雖然不如單電源方便靈活,但可以將電動機驅動所造成的干擾徹底消除,提高了系統(tǒng)的穩(wěn)定性。4.控制單元模塊用單片機控制用光電檢測不同的信號,并經單片機對其處理,傳送給L298信號,使其控制電機的正轉和反轉,配合PWM程序控制,來實現(xiàn)加速減速和
3、剎車。通過單片機內部定數(shù)器/計數(shù)器進行定時、計數(shù),在用單片機串行輸入/輸出口進行顯示控制。此方案電路成熟、工作穩(wěn)定、容易實現(xiàn)控制。小車正反轉 光電檢測控制中心STC89C52開 始行駛時間顯示 霍爾檢測二 電路設計行駛里程顯示1. 光電檢測部分:我們采用反射式光電檢測電路對跑道上的黑線進行檢測,并用兩個遮光套管套住發(fā)光管和接收管以一定的角度緊貼跑道,這樣可以消除外界光線的干擾,用LM358電壓比較器輸出高低電平檢測信號。如圖所示:2. STC89C52單片機基本系統(tǒng)此系統(tǒng)以89C52為核心,每檢測到一個黑帶由光電檢測部分產生一個的脈沖,使單片機產生一個外部中斷1,定義檢測黑帶數(shù)的變量加1,同時
4、車輪每轉一圈,霍爾元件輸出一個脈沖,是安單片機產生一個外部中斷0,定義圈數(shù)的變量加1.通過P1.0和P1.1控制L298來控制電機的正轉與反轉及剎車。當P1.0輸出低電平,P1.1輸出高電平時,電機正轉,相反則電機反轉,當P1.0和P1.1都是低電平時,使電動機被短路,提高了剎車效率,基本杜絕了由于制動慣性造成的小車的前沖現(xiàn)象。通過P0口進行兩個數(shù)碼管的位選,P2口進行段碼輸出,其中一個數(shù)碼管顯示行駛時間,另外一個數(shù)碼管顯示行駛路程。如圖所示:3. L298N電動機驅動模塊部分該電路采用電動機驅動芯片L298來控制電動機的正轉與反轉,加以第二路電機電源保證了電動機啟動時有足夠的電流。在試驗中控
5、制電壓為單片機輸出的高低電平直接控制。具體電路圖連接如下:4. 電源部分由于電動機工作電流大,需要選用內阻小,供電電流強,質量輕,可反復使用的經濟型電池,我們選用可充電電池組。為使單片機工作穩(wěn)定,避免電動機開關機和其轉動時對其電源的影響,在此用兩個電池組和穩(wěn)壓塊7805分別為89C52和電動機驅動顯示部分分別進行供電。保證小車工作和顯示的穩(wěn)定性。5.軟件設計部分單片機控制電路主要由一片STC89C52組成,通過P3口控制小車正轉與反轉,剎車,加速減速,通過兩個四聯(lián)數(shù)碼管控制顯示時間和里程以及小車行駛的時間。其中P0口進行位選,P2口進行顯示段碼輸出。該系統(tǒng)采用上電復位加上手動復位聯(lián)合復位系統(tǒng)進
6、行初始化,單片機通過P1.0,P1.1輸出脈沖控制電機正轉反轉以及剎車,當P1.0,P1.1分別輸出01是電動機正轉,輸出10時電動機反轉,輸出00時電動機兩邊短路,小車立即剎車。流程圖如下:(1)外部中斷0車輪美轉一次,霍爾元件產生一個脈沖P3.3,通過下降沿觸發(fā)外部中斷0,并且在每進行一次外部中斷記錄圈數(shù)的變量加1.開始車輪每轉一圈霍爾元件產生一個脈沖圈數(shù)quanshu+(2)外中斷1光電檢測每檢測到一條黑帶就產生一個脈沖輸入P3.2口,通過下降沿的方式觸發(fā)外中斷1,每中斷一次記錄黑帶的變量加1,當檢測到第六條黑帶時,p1.0=1,p1.1=1,小車的電動機由于短路剎車,當檢測到第十二條黑
7、帶時,小車再次剎車同時關掉所有中斷開始黑帶數(shù)heidai+退出EA=0,剎車P1.0=1,P1.1=1heidai=6YYheidai=12(3)定時器中斷0使用定時器T0產生5ms定時中斷,每次執(zhí)行該中斷前要先給定時器0賦初值,定時器中斷每執(zhí)行一次,變量加1。當i=200時,即每當計時1秒時,時間變量t加1,速度等于一秒轉的圈數(shù)和小車車輪的周長相乘。 定時中斷0開始產生5ms中斷控制一秒定時,i+一秒定時是否到總共轉的圈數(shù)q路程=周長*圈數(shù)q(4)定時器中斷1主要用來產生不同的占空比的波型進行高低速控制,每次執(zhí)行時,定時器1要賦初值。(5)主程序主程序主要用來控制兩個四聯(lián)數(shù)碼管的顯示,通過循
8、環(huán)語句不斷的調用顯示程序,使兩個四聯(lián)數(shù)碼管按位不斷循環(huán)亮點,當小車行駛時動態(tài)顯示時間和路程,小車停止時顯示小車行駛過程中的時間和路程。6.安裝與調試自動小車為玩具遙控小汽車的改裝品,在改裝的過程中最重要的是考慮設計光電檢測管的位置,檢測黑帶的光電管放在車體的中央,用遮光管將其以一定反射角度壓到跑道上。路程檢測用槽型光耦,放在小車的從動輪上。輪子的周長約為21.6厘米,在輪子上用了一個霍爾元件,每轉一圈一個脈沖。在組裝前對每一個單元電路進行測試,以保證外部硬件電路的無誤,有利于最后的統(tǒng)調。調整是以點到線,最后到整體調試的方法。在調整的過程中我們發(fā)現(xiàn)了許多問題,如響應中斷的次數(shù)的調整等。并且為了小
9、車碰到墻壁不至于停車,我們在小車的四角上都加上了導向輪,導向輪用隨身聽的壓帶輪制作即可。7.附錄元器件及程序如下:基本元器件列表一個STC89C52單片機2個四位共陽數(shù)碼管一個L298N芯片 一個霍爾元件和小磁鋼片一路循跡模塊晶振(12M)及30pf電容開關電阻 10k 100歐姆 1k 20k可調程序:#include/包含頭文件#define uint unsigned int/宏常量定義#define uchar unsigned char/宏常量定義sbit dianji1=P10;/P1_0設置為電機控制一sbit dianji2=P11; /P1_1設置為電機控制二sbit hdj
10、c=P32; /P3_2設置為黑帶檢測位uchar code duma=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /段編碼uchar code dianduma=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /帶小數(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;
11、 /定義幾個整形變量long int qs; /定義一個長整形變量用來記錄小車所轉的圈數(shù)void fenwei(uint);/聲明一個分位函數(shù)用來把要顯示的數(shù)分位void shuma(uchar,uchar);/聲明一個數(shù)碼上顯示函數(shù)用來在數(shù)碼管上顯示數(shù)據void shumadian(uchar,uchar); /聲明另一個數(shù)碼顯示函數(shù)用來顯示帶小數(shù)點的數(shù)據void miaoxianshi(uint); /聲明一個顯示時間的函數(shù)void lcxs(uint); /聲明一個顯示路程的函數(shù)void djkz(); /聲明一個電機控制函數(shù)void delay(uchar); /聲明一個延時函數(shù)voi
12、d delay10s(); /聲明另一個延時函數(shù)用來延時十秒鐘void fenwei(uint x)/把需要在數(shù)碼管上顯示的數(shù)據分位 ge=x%10; shi=(x%100)/10; bai=(x%1000)/100; qian=x/1000; void shuma(uchar x,uchar y)/將需要顯示的數(shù)據顯示在數(shù)碼管上 P0=wema8;P2=dumax;P0=wemay;delay(5);void shumadian(uchar x,uchar y)/將需要顯示的數(shù)據顯示在數(shù)碼管上P0=wema8;P2=diandumax;P0=wemay;delay(5);void miaox
13、ianshi(uint x)/將定時器0輸出的時間顯示在數(shù)碼管上 fenwei(x);shuma(ge,3);shuma(shi,2);shumadian(bai,1);shuma(qian,0);void lcxs(uint z)/將外部中斷1輸出的路程顯示在數(shù)碼 fenwei(z);shuma(ge,7);shuma(shi,6);shumadian(bai,5);shuma(qian,4);void djkz()/控制電機運轉 uchar n=20,m=60;switch(heidai)case 0:case 1:case 2:dianji1=1;dianji2=0;miaoxiansh
14、i(miao);lcxs(lc);break;case 3:while(m-)dianji1=1;dianji2=0;delay(70);dianji1=0;dianji2=0;delay(30);miaoxianshi(miao);lcxs(lc);while(heidai=3)dianji1=1;dianji2=0;delay(13);dianji1=0;dianji2=0;delay(1);miaoxianshi(miao);lcxs(lc);break;case 4:while(heidai=4)dianji1=1;dianji2=0;delay(25);dianji1=0;dianj
15、i2=0;delay(1);miaoxianshi(miao);lcxs(lc);break;case 5:case 6:while(n-)dianji1=1;dianji2=0;delay(50);dianji1=0;dianji2=0;delay(50);miaoxianshi(miao);lcxs(lc);dianji1=1;dianji2=1;delay10s();while(heidai=6)dianji1=0;dianji2=1;break;case 7: break;case 8:dianji1=0;dianji2=1;miaoxianshi(miao);lcxs(lc);cas
16、e 9:while(n-)dianji1=0;dianji2=1;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 10:dianji1=0;dianji2=1;miaoxianshi(miao);lcxs(lc);break;case 11:dianji1=0;dianji2=1;miao
17、xianshi(miao);lcxs(lc);case 12:while(n-)dianji1=0;dianji2=1;delay(50);dianji1=0;dianji2=0;delay(50);miaoxianshi(miao);lcxs(lc);dianji1=1;dianji2=1;TR0=0;while(1)miaoxianshi(miao);lcxs(lc);default:break;void delay(uchar x)/延時 uchar i,j;for(i=x;i0;i-)for(j=50;j0;j-);void delay10s()/延時十秒鐘 uint i,j;for(i=15;i0;i-)for(j=123;j0;j-)miaoxianshi(miao);lcxs(lc);void ext0() interrupt 0/外部中斷0,用來檢測黑帶 delay(50);if(hdjc=0)heidai+;void time0() interrupt 1/函數(shù)功能:定時器中斷0,用來記錄時間 TH0=(65536-500)/256;TL0=(65536-500)%256; num+;if(num=20)num=0;miao+; void ext1() interrupt 2/函數(shù)功能:外部中斷1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 晉教版地理八年級下冊《8.1 西雙版納──晶瑩剔透的“綠寶石”》聽課評課記錄
- 小學二年級口算練習題
- 蘇教版四年級數(shù)學上冊期末復習口算練習題一
- 人教版七年級數(shù)學下冊 聽評課記錄5.3.1 第1課時《平行線的性質》
- 七年級體育教學計劃
- 商業(yè)營銷策劃項目合作協(xié)議書范本
- 建筑智能化工程框架合作協(xié)議書范本
- 商用精裝房屋租賃協(xié)議書范本
- 鍋爐及附屬供熱設備安裝施工合同范本
- 汽車掛靠租賃協(xié)議書范本
- 公司財務制度及流程
- 高支模專項施工方案(專家論證)
- 深圳版初中英語單詞匯總
- 健康養(yǎng)生,快樂生活課件
- 《物流與供應鏈管理-新商業(yè)、新鏈接、新物流》配套教學課件
- 物聯(lián)網項目實施進度計劃表
- MDD指令附錄一 基本要求檢查表2013版
- 駱駝祥子1一24章批注
- 新部編人教版四年級下冊道德與法治全冊教案(教學設計)
- 2021年胃腸外科規(guī)培出科考試試題及答案
- 人美版高中美術選修:《繪畫》全冊課件【優(yōu)質課件】
評論
0/150
提交評論