




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于單片機的自動往返小車摘要本設(shè)計以一片單片機 STC89C52 作為核心來控制自動往返小車,加以控 制芯片 L298N 和單片機聯(lián)合控制小車的前進與后退。 路面的黑帶檢測使用反 射式紅外傳感器,通過 STC89C52 對輸入的信號進行處理,以動態(tài)顯示的形 式通過一個四位的數(shù)碼管顯示即時里程,另外一個四位數(shù)碼管動態(tài)顯示小車 行駛時間。以紅外傳感器對路面黑線檢測用,行駛距離使用霍爾元件進行檢 測。關(guān)鍵詞:光電檢測 霍爾檢測 動態(tài)顯示 L298N 控制電動機小組成員:亞昊、國翠、成曉斌、丁玉嬌黑帶檢測1. 電機驅(qū)動調(diào)速模塊采用 L298N 來控制電機的正轉(zhuǎn)和反轉(zhuǎn)來實現(xiàn)小車的前進和后退。加上單片機
2、的程序 PWM ,實現(xiàn)整車的加速與減速,精確小車的速度。2. 路面黑帶檢測模塊 黑帶檢測的原理是:紅外光線照射到路面并反射,由于黑帶和白紙的系數(shù)不 同,可根據(jù)接的紅外線的強弱判斷是否到達黑帶。反射式的紅外發(fā)射接收器。由于采用紅外管代替普通可見光管,可以降低 環(huán)境干擾。3. 電源選擇 雙電源供電,將電動機驅(qū)動電源與單片機以及周邊電路電源完全隔離,這樣 做雖然不如單電源方便靈活,但可以將電動機驅(qū)動所造成的干擾徹底消除,提高 了系統(tǒng)的穩(wěn)定性。4. 控制單元模塊 用單片機控制 用光電檢測不同的信號,并經(jīng)單片機對其處理,傳送給 L298 信號,使其控制 電機的正轉(zhuǎn)和反轉(zhuǎn),配合 PWM 程序控制,來實現(xiàn)加
3、速減速和剎車。通過單片機 部定數(shù)器 /計數(shù)器進行定時、計數(shù),在用單片機串行輸入 /輸出口進行顯示控制。此 方案電路成熟、工作穩(wěn)定、容易實現(xiàn)控制。1. 光電檢測部分:我們采用反射式光電檢測電路對跑道上的黑線進行檢測,并用兩個遮光套管 套住發(fā)光管和接收管以一定的角度緊貼跑道,這樣可以消除外界光線的干擾,用LM358 電壓比較器輸出高低電平檢測信號。如圖所示:2. STC89C52 單片機基本系統(tǒng)此系統(tǒng)以 89C52 為核心,每檢測到一個黑帶由光電檢測部分產(chǎn)生一個的脈沖, 使單片機產(chǎn)生一個外部中斷 1,定義檢測黑帶數(shù)的變量加 1,同時車輪每轉(zhuǎn)一圈, 霍爾元件輸出一個脈沖,是安單片機產(chǎn)生一個外部中斷0
4、,定義圈數(shù)的變量加 1.通過 P1.0和 P1.1控制 L298來控制電機的正轉(zhuǎn)與反轉(zhuǎn)及剎車。 當(dāng) P1.0輸出低電平, P1.1輸出高電平時,電機正轉(zhuǎn),相反則電機反轉(zhuǎn),當(dāng) P1.0和 P1.1都是低電平時, 使電動機被短路,提高了剎車效率,基本杜絕了由于制動慣性造成的小車的前沖 現(xiàn)象。通過 P0口進行兩個數(shù)碼管的位選, P2口進行段碼輸出, 其中一個數(shù)碼管顯 示行駛時間,另外一個數(shù)碼管顯示行駛路程。如圖所示:3. L298N 電動機驅(qū)動模塊部分該電路采用電動機驅(qū)動芯片 L298 來控制電動機的正轉(zhuǎn)與反轉(zhuǎn), 加以第二路電 機電源保證了電動機啟動時有足夠的電流。在試驗中控制電壓為單片機輸出的高
5、低電平直接控制。具體電路圖連接如下:4. 電源部分 由于電動機工作電流大,需要選用阻小,供電電流強,質(zhì)量輕,可反復(fù)使用 的經(jīng)濟型電池,我們選用可充電電池組。為使單片機工作穩(wěn)定,避免電動機開關(guān) 機和其轉(zhuǎn)動時對其電源的影響, 在此用兩個電池組和穩(wěn)壓塊 7805 分別為 89C52和 電動機驅(qū)動顯示部分分別進行供電。保證小車工作和顯示的穩(wěn)定性。5. 軟件設(shè)計部分單片機控制電路主要由一片 STC89C52組成,通過 P3 口控制小車正轉(zhuǎn)與反轉(zhuǎn), 剎車,加速減速,通過兩個四聯(lián)數(shù)碼管控制顯示時間和里程以及小車行駛的時間。 其中 P0 口進行位選, P2口進行顯示段碼輸出。該系統(tǒng)采用上電復(fù)位加上手動復(fù)位聯(lián)合
6、復(fù)位系統(tǒng)進行初始化,單片機通過P1.0,P1.1輸出脈沖控制電機正轉(zhuǎn)反轉(zhuǎn)以及剎車,當(dāng) P1.0,P1.1分別輸出 01 是電 動機正轉(zhuǎn),輸出 10 時電動機反轉(zhuǎn),輸出 00 時電動機兩邊短路,小車立即剎車。 流程圖如下:( 1)外部中斷 0 車輪美轉(zhuǎn)一次, 霍爾元件產(chǎn)生一個脈沖 P3.3,通過下降沿觸發(fā)外部中斷 0,并 且在每進行一次外部中斷記錄圈數(shù)的變量加 1.( 2)外中斷 1 光電檢測每檢測到一條黑帶就產(chǎn)生一個脈沖輸入 P3.2 口,通過下降沿的方式 觸發(fā)外中斷 1,每中斷一次記錄黑帶的變量加 1,當(dāng)檢測到第六條黑帶時, p1.0=1, p1.1=1,小車的電動機由于短路剎車, 當(dāng)檢測到
7、第十二條黑帶時, 小車再次剎車同 時關(guān)掉所有中斷退出( 3)定時器中斷 0 使用定時器 T0 產(chǎn)生 5ms定時中斷,每次執(zhí)行該中斷前要先給定時器 0賦初值, 定時器中斷每執(zhí)行一次,變量加 1。當(dāng) i=200 時,即每當(dāng)計時 1 秒時,時間變量 t 加 1 ,速度等于一秒轉(zhuǎn)的圈數(shù)和小車車輪的周長相乘。( 4)定時器中斷 1 主要用來產(chǎn)生不同的占空比的波型進行高低速控制,每次執(zhí)行時,定時器 1 要賦初值。( 5)主程序 主程序主要用來控制兩個四聯(lián)數(shù)碼管的顯示,通過循環(huán)語句不斷的調(diào)用顯示 程序,使兩個四聯(lián)數(shù)碼管按位不斷循環(huán)亮點,當(dāng)小車行駛時動態(tài)顯示時間和路程, 小車停止時顯示小車行駛過程中的時間和路
8、程。6. 安裝與調(diào)試 自動小車為玩具遙控小汽車的改裝品,在改裝的過程中最重要的是考慮設(shè)計 光電檢測管的位置,檢測黑帶的光電管放在車體的中央,用遮光管將其以一定反 射角度壓到跑道上。路程檢測用槽型光耦,放在小車的從動輪上。輪子的周長約 為 21.6 厘米,在輪子上用了一個霍爾元件,每轉(zhuǎn)一圈一個脈沖。在組裝前對每一 個單元電路進行測試,以保證外部硬件電路的無誤,有利于最后的統(tǒng)調(diào)。調(diào)整是 以點到線,最后到整體調(diào)試的方法。在調(diào)整的過程中我們發(fā)現(xiàn)了許多問題,如響 應(yīng)中斷的次數(shù)的調(diào)整等。并且為了小車碰到墻壁不至于停車,我們在小車的四角 上都加上了導(dǎo)向輪,導(dǎo)向輪用隨身聽的壓帶輪制作即可。7. 附錄元器件及程
9、序如下: 基本元器件列表一個 STC89C52 單片機2 個四位共陽數(shù)碼管 一個 L298N 芯片 一個霍爾元件和小磁鋼片 一路循跡模塊 晶振( 12M)及 30pf電容 開關(guān)電阻 10k 100歐姆 1k 20k 可調(diào)程序:/段編碼#include#define uint unsigned int #define uchar unsigned char sbit dianji1=P10;sbit dianji2=P11;sbit hdjc=P32; uchar code duma= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f;uch
10、ar code dianduma= 0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87, 0xff,0xef;uchar code wema= 0x01,0x02,0x04,0x08, 0x10,0x20,0x40,0x80, 0x00,0xff;uchar num,ge,shi,bai,qian; uint miao,lc,heidai=0;/包含頭文件/宏常量定義/宏常量定義/P1_0 設(shè)置為電機控制一/P1_1 設(shè)置為電機控制二/P3_2 設(shè)置為黑帶檢測位/帶小數(shù)點段編碼/位編碼/定義幾個字符型變量/定義幾個整形變量long int qs;void fenw
11、ei(uint);void shuma(uchar,uchar);/定義一個長整形變量用來記錄小車所轉(zhuǎn)的圈數(shù)/聲明一個分位函數(shù)用來把要顯示的數(shù)分位/聲明一個數(shù)碼上顯示函數(shù)用來在數(shù)碼管上顯示數(shù)據(jù)void shumadian(uchar,uchar); 數(shù)據(jù)/聲明另一個數(shù)碼顯示函數(shù)用來顯示帶小數(shù)點的void miaoxianshi(uint);void lcxs(uint);void djkz();void delay(uchar);void delay10s();void fenwei(uint x)/聲明一個顯示時間的函數(shù)/聲明一個顯示路程的函數(shù) /聲明一個電機控制函數(shù)/聲明一個延時函數(shù) /聲
12、明另一個延時函數(shù)用來延時十秒鐘 /把需要在數(shù)碼管上顯示的數(shù)據(jù)分位ge=x%10;shi=(x%100)/10;bai=(x%1000)/100;qian=x/1000;void shuma(uchar x,uchar y)P0=wema8;P2=dumax;P0=wemay;delay(5);void shumadian(uchar x,uchar y)P0=wema8;P2=diandumax;P0=wemay;delay(5);void miaoxianshi(uint x)f enwei(x);shuma(ge,3);shuma(shi,2);shumadian(bai,1); shum
13、a(qian,0);void lcxs(uint z)f enwei(z);shuma(ge,7);shuma(shi,6);shumadian(bai,5);shuma(qian,4);void djkz()uchar n=20,m=60;switch(heidai)/將需要顯示的數(shù)據(jù)顯示在數(shù)碼管上/將需要顯示的數(shù)據(jù)顯示在數(shù)碼管上/將定時器 0 輸出的時間顯示在數(shù)碼管上/將外部中斷 1 輸出的路程顯示在數(shù)碼/控制電機運轉(zhuǎn)case 0:case 1:case 2:dianji1=1;dianji2=0; miaoxianshi(miao); lcxs(lc);break;case 3:whil
14、e(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;dianji2=0;delay(1); miaoxianshi(
15、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);case 9:while(n-)
16、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;
17、miaoxianshi(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;f or(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 0delay(50);i f(hdjc=0)heidai+;void time0() interrupt 1TH0=(65536-500)/256; TL0=(65536-500)%256; num+;i f(num=20)num=0;miao+;void ext1() interrupt 2qs+;lc=(int)(qs*38.5);void main()EA=1;ET0=1;EX0=1;IT0=
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘豫名校聯(lián)考2024-2025學(xué)年高三下學(xué)期第二次模擬考試語文試卷(圖片版無答案)
- 【道路運輸企業(yè)主要負(fù)責(zé)人】理論考題及答案
- 2025個人向個人借款的合同
- 2025農(nóng)田租賃合同書下載
- 2025租房合同模板下載3
- 高校畢業(yè)生創(chuàng)業(yè)扶持政策全新實施方案
- 長春建筑學(xué)院《鐵路行車織》2023-2024學(xué)年第二學(xué)期期末試卷
- 證券從業(yè)資格考試題庫與答案(A卷)
- 九州職業(yè)技術(shù)學(xué)院《工程項目成本規(guī)劃與控制》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東藝術(shù)學(xué)院《期貨投資》2023-2024學(xué)年第二學(xué)期期末試卷
- 瑞幸加盟合同范本
- CJJ 122-2017 游泳池給水排水工程技術(shù)規(guī)程
- 【人教部編版】五年級語文下冊第13課《人物描寫一組 摔跤》教學(xué)課件
- 讀書分享讀書交流會《四世同堂》
- 2024年人教精通版四年級下冊英語期末專項復(fù)習(xí)-閱讀理解
- 中醫(yī)推拿基礎(chǔ)培訓(xùn)課件
- 防電信詐騙安全教案
- 產(chǎn)品履歷表完
- 保健食品備案產(chǎn)品可用輔料及其使用規(guī)定
- 肺癌伴胸腔積液護理查房
- 健康管理中的健康教育與健康促進研究
評論
0/150
提交評論