基于51單片機的步進電機調(diào)速系統(tǒng)(含完整代碼).docx_第1頁
基于51單片機的步進電機調(diào)速系統(tǒng)(含完整代碼).docx_第2頁
基于51單片機的步進電機調(diào)速系統(tǒng)(含完整代碼).docx_第3頁
基于51單片機的步進電機調(diào)速系統(tǒng)(含完整代碼).docx_第4頁
基于51單片機的步進電機調(diào)速系統(tǒng)(含完整代碼).docx_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設(shè)計報告設(shè)計題目: 遙控小車 基于51單片機的步進電機調(diào)速系統(tǒng)學(xué) 院: 專 業(yè): 班 級: 學(xué) 號: 姓 名: 電子郵件: 時 間: 成 績: 指導(dǎo)教師: 華 南 農(nóng) 業(yè) 大 學(xué)理 學(xué) 院 應(yīng) 用 物 理 系課 程 設(shè) 計(報告)任 務(wù) 書學(xué)生姓名 指導(dǎo)教師 職稱 學(xué)生學(xué)號 專業(yè) 電子信息科學(xué)與技術(shù) 題目 基于51單片機的步進電機調(diào)速系統(tǒng)(遙控小車)任務(wù)與要求1. 設(shè)計并制作電路,利用單片計控制步進電機運轉(zhuǎn)。2. 通過鍵盤可以不間斷地設(shè)定改變電機的轉(zhuǎn)速、轉(zhuǎn)向。3. 利用顯示器實時顯示轉(zhuǎn)速等參數(shù)。4. 擴展功能:可設(shè)定轉(zhuǎn)動步數(shù)。開始日期 2014 年3 月 完成日期 2014 年3 月 1 引言步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。目前,步進機已經(jīng)廣泛應(yīng)用于領(lǐng)域,例如工業(yè)生產(chǎn)中的機械臂的控制,照明裝置和監(jiān)控攝像機轉(zhuǎn)動等。步進機在裝置轉(zhuǎn)動、精確位移方面有很重大的作用。本系統(tǒng)是基于STC89C51 單片機的遙控小車。采用STC89C51單片機作為控制核心,通過ULN2003A驅(qū)動步進機(28BYJ-48)轉(zhuǎn)動,由按鍵和顯示屏1602組成人機交互模塊,同時通過315M無線發(fā)射和接收模塊向單片機輸入控制信號,將整個系統(tǒng)固定于簡易小車上,最終實現(xiàn)小車測試和遠(yuǎn)程遙控功能。基本達(dá)到預(yù)定的設(shè)計要求以及功能的擴展。2 系統(tǒng)的設(shè)計與理論分析2.1 系統(tǒng)總體設(shè)計2.2 理論分析本設(shè)計分為兩種工作模式:測試模式、遙控模式。在電路板上有一個帶鎖的開關(guān)進行設(shè)置。測試模式工作時,通過控制小車上的按鍵進行加速、減速、反轉(zhuǎn)、設(shè)置、步數(shù)增、步數(shù)減等按鍵,單片機掃描按鍵,通過軟件控制液晶模塊顯示對應(yīng)的轉(zhuǎn)速、設(shè)置的速度和步數(shù),同時控制步進機模塊進行相應(yīng)的轉(zhuǎn)動。步進機的是由ULN2003A達(dá)林頓管驅(qū)動,由單片機控制輸入脈沖的頻率來控制步進機的轉(zhuǎn)速,單片機是通過程序查表對4個I/O口輸出脈沖,本次設(shè)計采用的是兩相四線減速步進機,步進角為5.625,減速比為64:1,程序采用的是8拍查表,具有較好的扭矩。遙控模式工作時,遙控部分五個按鍵分別輸入前、后、左、右、暫停,單片機掃描按鍵,通過無線發(fā)射模塊發(fā)射串行編碼,小車的無線接收模塊接收對應(yīng)的編碼,送至單片機進行解碼,從而控制液晶模塊的顯示和步進機模塊的工作,進而完成功能。設(shè)定單通道無線收發(fā)模塊通信協(xié)議為:下降沿: 1ms的高電平,隨后500us的低電平。起始位: 4ms的高電平,隨后4ms的低電平。數(shù)據(jù)1: 2ms的高電平,隨后500us的低電平。數(shù)據(jù)0: 1ms的高電平,隨后500us的低電平。結(jié)束位:4ms的低電平。發(fā)送指令程序為:下降沿,起始位,3個數(shù)據(jù)位,結(jié)束位發(fā)送編碼為:右轉(zhuǎn):000前進:001后退:010左轉(zhuǎn):011接收程序通過觸發(fā)外部中斷1來接受信號,當(dāng)P3.3口收到下降沿信號是即開始接收數(shù)據(jù)。3 硬件系統(tǒng)設(shè)計3.1 總體電路圖3.2 單片機最小系統(tǒng)3.3 步進機模塊本次設(shè)計采用的是兩相四線減速步進電機,步進角為5.625,減速比為64:1 采用ULN2003達(dá)林頓管驅(qū)動。3.4 液晶顯示模塊液晶顯示模塊采用LCD1602顯示屏。3.5 測試按鍵模塊3.6 遙控器部分4 軟件系統(tǒng)設(shè)計 4.1 主函數(shù)4.2 遙控模式程序4.3 測試模式程序4.4 鍵盤掃描程序5 系統(tǒng)運行情況分析打開小車開關(guān)后,按下“測試”按鍵,小車進入測試模式。連續(xù)按 “加速”按鍵時,小車輪子轉(zhuǎn)速明顯變快;連續(xù)按“減速”按鍵時,小車輪子轉(zhuǎn)速逐漸變慢;按“反轉(zhuǎn)”按鍵輪子轉(zhuǎn)速反向。按“設(shè)置”按鍵會看到液晶顯示屏關(guān)標(biāo)閃爍,按“設(shè)置”鍵使光標(biāo)移動,按“+”、“-”設(shè)置小車速度和步數(shù),再一次按“設(shè)置”鍵,小車會依照這頂要求行駛。按“測試”按鍵使其彈起,測試小車進入遙控模式工作時,打開遙控器,分別按下“前”、“后”、“左”、“右”,小車會依照對應(yīng)的方向行駛,按下“暫?!辨I時,小車停止。由此,改系統(tǒng)基本達(dá)到設(shè)計要求及拓展功能的要求。不過因為本設(shè)計采用的28BYJ-48步進機為減速步進機,轉(zhuǎn)動的上限值比較下,導(dǎo)致小車的行駛效果較慢,這個問題可以通過課后改用其他型號計算機得以解決。6 總結(jié)與討論經(jīng)過四個星期的單片機課程設(shè)計,終于完成了基于51單片機的步進電機調(diào)速系統(tǒng)的設(shè)計,基本達(dá)到設(shè)計要求。同時自己在該系統(tǒng)上擴展無線收發(fā)模塊,將該系統(tǒng)拓展為遙控小車。在本次設(shè)計的過程中,我們組成員進行了熱烈討論及反復(fù)的斟酌、修改。首先對需要用到的元器件的參數(shù)進行充分的了解,然后在計算機上用Proteus進行了與Keil軟件的聯(lián)動仿真。確認(rèn)仿真正確看是硬件的焊接與調(diào)試。在實驗過程中,我們也遇到了許多問題,如步進機轉(zhuǎn)動不起來、液晶屏顯示亂碼等,但是經(jīng)過不斷的探索、思考、驗證,我們最終克服了種種困難,解決了所遇到的問題,成功地完成了這個課程設(shè)計。在這個過程中,除了學(xué)習(xí)到關(guān)于本次設(shè)計的一些專業(yè)知識、電路焊接實踐經(jīng)驗外,同時,大家的刻苦耐勞、團隊合作的品質(zhì)也得到了充分的鍛煉。附1:實物圖:圖1 遙控小車圖2 遙控器附2:參考文獻(xiàn)1 李朝青. 單片機原理及接口技術(shù)M.第3版. 北京航空航天大學(xué)出版社, 2005.2 楊素行. 模擬電子技術(shù)基礎(chǔ)簡明教程M. 第三版. 高等教育出版社, 2006.附3:組內(nèi)分工:A.龐明轅:電路焊接、單片機編程、電路調(diào)試、輔助完成設(shè)計報告。B.杜爍:電路焊接、單片機編程、輔助方案改進、輔助完成設(shè)計報告。C.湯安琪:電路焊接、數(shù)據(jù)采集、完成設(shè)計報告。附4:元器件清單表格元件數(shù)量STM89C51216022ULN2003A228BYJ-482315M無線收發(fā)模塊2簡易小車1其它(開關(guān)、電池)若干評語: 成績: 附:程序代碼:/*單片機課程設(shè)計C語言程序*題目:基于步進機的小車成員:湯安琪、龐明轅、杜爍。日期:2014-3-1*/#include #define uchar unsigned char#define uint unsigned intsbit a = P10; /反向sbit b = P11; /減速sbit c = P12; /加速sbit d = P13; /開關(guān)sbit f = P14; /設(shè)置sbit g = P15; /加sbit h = P16; /減sbit lcden = P37; /1602使能sbit lcdrs = P36; /1602寫命令/數(shù)據(jù)選擇端sbit trans = P33; /射頻串行輸入端bit n,p;uint step,time,flag,flag1,num,snum,setnum,stepnum,count,temp,sum,t,e,j,k,m;uchar v0,v1,v2,count1,num1,temp1;uchar code table1 = 0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99;/左uchar code table2 = 0x11,0x99,0x88,0xcc,0x44,0x66,0x22,0x33;/右uchar code table3 = 0x11,0x93,0x82,0xc6,0x44,0x6c,0x28,0x39;/后uchar code table4 = 0x11,0x39,0x28,0x6c,0x44,0xc6,0x82,0x93;/前uchar code table5 = SPEED: 000 r/h;uchar code table6 = SET:000 STEP:000;/*-延時程序 -*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=10;y0;y-);void delay1(uint z) /10usuchar a,b,x; for(x=0;x0;b-) for(a=2;a0;a-);/*-LCD1602寫命令程序 -*/void write_com(uchar com)lcdrs = 0;P0 = com;delay(5);lcden = 1;delay(5);lcden = 0;/*-LCD1602寫數(shù)據(jù)程序 -*/void write_dat(uchar dat)lcdrs = 1;P0 = dat;delay(5);lcden = 1;delay(5);lcden = 0;/*-基于LCD1602的顯示程序-*/void display(uchar add,uchar dat)uint bai,shi,ge;bai = dat/100;shi = (dat-(dat/100)*100)/10;ge = dat%10;write_com(0x80+add);write_dat(0x30+bai);write_dat(0x30+shi);write_dat(0x30+ge);/*-小車速度計算程序-*/void speed_dis()double n;if(b = 0)delay(5);if(b=0)while(!b);time = time+10;if(time=300)time=300; if(c = 0)delay(5);if(c=0)while(!c);time = time-10;if(time=70)time=70; n = 15*time/1024; count = 60*n;/*-步數(shù)執(zhí)行程序:進入設(shè)置模式設(shè)置步數(shù),確認(rèn)后執(zhí)行。-*/void steprun()uint m;m=512*stepnum;while(m-)uchar i;for(i=0;i8;i+)P2 = table4i;delay1(time);speed_dis();display(7,count);if(f=0)break;/*-轉(zhuǎn)速設(shè)置程序:進入設(shè)置模式設(shè)置轉(zhuǎn)速確認(rèn)后執(zhí)行。-*/void setrun()while (1)uchar i;time=(setnum*1024/900);for(i=0;i35&t35&t5&t15&t5&t15&t5&t15&t25) /數(shù)據(jù)1v2=1;while(trans=0);t=0;count1=v0+v1+v2;switch(count1)case 0:e=0;j=1;k=1;m=1;break; /000case 1:e=1;j=0;k=1;m=1;break; /001case 2:e=1;j=1;k=0;m=1;break; /010case 3:e=1;j=1;k=1;m=0;break; /011case 4:e=1;j=1;k=1;m=1;p=0;break; /100 n=0;EX1=1;/*-控制小車運行程序(前后左右),運行時顯示小車的實時速度。-*/void run()if(flag=0&flag1=0)if(j=0)uchar i,q;p=1;while(1)if(n=1)break;for(q=0;q128;q+)for(i=0;i8;i+)P2 = table4i;delay1(time); speed_dis();display(7,count);if(m=0)uchar i,q;p=1;while(1)if(n=1)break;for(q=0;q128;q+)for(i=0;i8;i+)P2 = table1i;delay1(time); speed_dis();display(7,count);if(k=0)uchar i,q;p=1;while(1)if(n=1)break;for(q=0;q128;q+)for(i=0;i8;i+)P2 = table3i;delay1(time); speed_dis();display(7,count);if(e=0)uchar i,q;p=1;while(1)if(n=1)break;for(q=0;q128;q+)for(i=0;i8;i+)P2 = table2i;delay1(time); speed_dis();display(7,count); receive();/*-正轉(zhuǎn)程序-*/void forward()uint i,q;for(q=0;q512;q+)if(d=1|a=0)break;for(i=0;i8;i+)P2 = table4i;delay1(time); speed_dis();display(7,count); /*-反轉(zhuǎn)程序-*/void reverse()uint i,q;for(q=0;q512;q+)if(d=1|a=1)break;for(i=0;i8;i+)P2 = table3i;delay1(time); speed_dis();display(7,count); /*-小車停止?fàn)顟B(tài)下的測試程序功能:b增加步進機脈沖周期 c減少步進機脈沖周期, d為測試開關(guān), a為反轉(zhuǎn)開關(guān),運行狀態(tài)實時顯示步進機速度。-*/void testcar()if(flag1=0)if(d = 0)flag = 1; /測試狀態(tài)下,保證方向按鍵無效if(a=0)reverse();else forward();else display(7,0);flag = 0; /*-鍵盤掃描程序。功能:f為設(shè)置鍵,g為加鍵,h為減鍵,按下g鍵次數(shù):1:速度設(shè)置2:步數(shù)設(shè)置3:確認(rèn)按下g鍵對應(yīng)數(shù)+1按下h鍵對應(yīng)數(shù)-1-*/void keyscan()if(f=0) delay(5);if(f=0)while(!f);snum+;flag1 = 1;if(snum=1)write_com(0xc6);write_com(0x0f);if(snum=2)write_com(0xc0+15);if(snum=3)write_com(0x0c);snum=0;flag1 = 0;time = setnum+40;display(7,time);write_com(0x0c);if(stepnum!=0)steprun();if(setnum!=0)setrun(); if(snum!=0)if(g=0)delay(5);if(g=0)while(!g);if(snum=1)setnum = setnum+10;if(setnum=99)setnum=0;display(0x40+4,setnum+40);write_com(0xc0+6);if(snum=2)stepnum+;if(stepnum=99)stepnum=0;display(0x40+13,stepnum);write_com(0xc0+15);if(h=0)delay(5);if(h=0)while(!h);if(snum=1)setnum = setnum-10;if(setnum0)setnum=99;display(0x40+4,setnum+40);write_com(0xc0+6);if(snum=2)stepnum-;if(stepnum0)stepnum=99;display(0x40+13,stepn

溫馨提示

  • 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

提交評論