




已閱讀5頁,還剩21頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程設計報告設計題目: 遙控小車 基于51單片機的步進電機調速系統學 院: 專 業: 班 級: 學 號: 姓 名: 電子郵件: 時 間: 成 績: 指導教師: 華 南 農 業 大 學理 學 院 應 用 物 理 系課 程 設 計(報告)任 務 書學生姓名 指導教師 職稱 學生學號 專業 電子信息科學與技術 題目 基于51單片機的步進電機調速系統(遙控小車)任務與要求1. 設計并制作電路,利用單片計控制步進電機運轉。2. 通過鍵盤可以不間斷地設定改變電機的轉速、轉向。3. 利用顯示器實時顯示轉速等參數。4. 擴展功能:可設定轉動步數。開始日期 2014 年3 月 完成日期 2014 年3 月 1 引言步進電機是一種將電脈沖轉化為角位移的執行機構。目前,步進機已經廣泛應用于領域,例如工業生產中的機械臂的控制,照明裝置和監控攝像機轉動等。步進機在裝置轉動、精確位移方面有很重大的作用。本系統是基于STC89C51 單片機的遙控小車。采用STC89C51單片機作為控制核心,通過ULN2003A驅動步進機(28BYJ-48)轉動,由按鍵和顯示屏1602組成人機交互模塊,同時通過315M無線發射和接收模塊向單片機輸入控制信號,將整個系統固定于簡易小車上,最終實現小車測試和遠程遙控功能。基本達到預定的設計要求以及功能的擴展。2 系統的設計與理論分析2.1 系統總體設計2.2 理論分析本設計分為兩種工作模式:測試模式、遙控模式。在電路板上有一個帶鎖的開關進行設置。測試模式工作時,通過控制小車上的按鍵進行加速、減速、反轉、設置、步數增、步數減等按鍵,單片機掃描按鍵,通過軟件控制液晶模塊顯示對應的轉速、設置的速度和步數,同時控制步進機模塊進行相應的轉動。步進機的是由ULN2003A達林頓管驅動,由單片機控制輸入脈沖的頻率來控制步進機的轉速,單片機是通過程序查表對4個I/O口輸出脈沖,本次設計采用的是兩相四線減速步進機,步進角為5.625,減速比為64:1,程序采用的是8拍查表,具有較好的扭矩。遙控模式工作時,遙控部分五個按鍵分別輸入前、后、左、右、暫停,單片機掃描按鍵,通過無線發射模塊發射串行編碼,小車的無線接收模塊接收對應的編碼,送至單片機進行解碼,從而控制液晶模塊的顯示和步進機模塊的工作,進而完成功能。設定單通道無線收發模塊通信協議為:下降沿: 1ms的高電平,隨后500us的低電平。起始位: 4ms的高電平,隨后4ms的低電平。數據1: 2ms的高電平,隨后500us的低電平。數據0: 1ms的高電平,隨后500us的低電平。結束位:4ms的低電平。發送指令程序為:下降沿,起始位,3個數據位,結束位發送編碼為:右轉:000前進:001后退:010左轉:011接收程序通過觸發外部中斷1來接受信號,當P3.3口收到下降沿信號是即開始接收數據。3 硬件系統設計3.1 總體電路圖3.2 單片機最小系統3.3 步進機模塊本次設計采用的是兩相四線減速步進電機,步進角為5.625,減速比為64:1 采用ULN2003達林頓管驅動。3.4 液晶顯示模塊液晶顯示模塊采用LCD1602顯示屏。3.5 測試按鍵模塊3.6 遙控器部分4 軟件系統設計 4.1 主函數4.2 遙控模式程序4.3 測試模式程序4.4 鍵盤掃描程序5 系統運行情況分析打開小車開關后,按下“測試”按鍵,小車進入測試模式。連續按 “加速”按鍵時,小車輪子轉速明顯變快;連續按“減速”按鍵時,小車輪子轉速逐漸變慢;按“反轉”按鍵輪子轉速反向。按“設置”按鍵會看到液晶顯示屏關標閃爍,按“設置”鍵使光標移動,按“+”、“-”設置小車速度和步數,再一次按“設置”鍵,小車會依照這頂要求行駛。按“測試”按鍵使其彈起,測試小車進入遙控模式工作時,打開遙控器,分別按下“前”、“后”、“左”、“右”,小車會依照對應的方向行駛,按下“暫停”鍵時,小車停止。由此,改系統基本達到設計要求及拓展功能的要求。不過因為本設計采用的28BYJ-48步進機為減速步進機,轉動的上限值比較下,導致小車的行駛效果較慢,這個問題可以通過課后改用其他型號計算機得以解決。6 總結與討論經過四個星期的單片機課程設計,終于完成了基于51單片機的步進電機調速系統的設計,基本達到設計要求。同時自己在該系統上擴展無線收發模塊,將該系統拓展為遙控小車。在本次設計的過程中,我們組成員進行了熱烈討論及反復的斟酌、修改。首先對需要用到的元器件的參數進行充分的了解,然后在計算機上用Proteus進行了與Keil軟件的聯動仿真。確認仿真正確看是硬件的焊接與調試。在實驗過程中,我們也遇到了許多問題,如步進機轉動不起來、液晶屏顯示亂碼等,但是經過不斷的探索、思考、驗證,我們最終克服了種種困難,解決了所遇到的問題,成功地完成了這個課程設計。在這個過程中,除了學習到關于本次設計的一些專業知識、電路焊接實踐經驗外,同時,大家的刻苦耐勞、團隊合作的品質也得到了充分的鍛煉。附1:實物圖:圖1 遙控小車圖2 遙控器附2:參考文獻1 李朝青. 單片機原理及接口技術M.第3版. 北京航空航天大學出版社, 2005.2 楊素行. 模擬電子技術基礎簡明教程M. 第三版. 高等教育出版社, 2006.附3:組內分工:A.龐明轅:電路焊接、單片機編程、電路調試、輔助完成設計報告。B.杜爍:電路焊接、單片機編程、輔助方案改進、輔助完成設計報告。C.湯安琪:電路焊接、數據采集、完成設計報告。附4:元器件清單表格元件數量STM89C51216022ULN2003A228BYJ-482315M無線收發模塊2簡易小車1其它(開關、電池)若干評語: 成績: 附:程序代碼:/*單片機課程設計C語言程序*題目:基于步進機的小車成員:湯安琪、龐明轅、杜爍。日期:2014-3-1*/#include #define uchar unsigned char#define uint unsigned intsbit a = P10; /反向sbit b = P11; /減速sbit c = P12; /加速sbit d = P13; /開關sbit f = P14; /設置sbit g = P15; /加sbit h = P16; /減sbit lcden = P37; /1602使能sbit lcdrs = P36; /1602寫命令/數據選擇端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寫數據程序 -*/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;/*-步數執行程序:進入設置模式設置步數,確認后執行。-*/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;/*-轉速設置程序:進入設置模式設置轉速確認后執行。-*/void setrun()while (1)uchar i;time=(setnum*1024/900);for(i=0;i35&t35&t5&t15&t5&t15&t5&t15&t25) /數據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();/*-正轉程序-*/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); /*-反轉程序-*/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); /*-小車停止狀態下的測試程序功能:b增加步進機脈沖周期 c減少步進機脈沖周期, d為測試開關, a為反轉開關,運行狀態實時顯示步進機速度。-*/void testcar()if(flag1=0)if(d = 0)flag = 1; /測試狀態下,保證方向按鍵無效if(a=0)reverse();else forward();else display(7,0);flag = 0; /*-鍵盤掃描程序。功能:f為設置鍵,g為加鍵,h為減鍵,按下g鍵次數:1:速度設置2:步數設置3:確認按下g鍵對應數+1按下h鍵對應數-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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 豆類食品加工企業生產計劃與調度考核試卷
- 肉類加工過程中的質量監控技術考核試卷
- 新生兒喂養指導要點
- 院前急救與護理要點解析
- 誼安呼吸機510臨床操作與產品解析
- Guamecycline-生命科學試劑-MCE
- 單站閃電定位儀在哪些場景應用
- 新疆棉紡織產業發展現狀與趨勢調研報告
- 2025年下半年保險行業策略報告:新增負債成本顯著下降板塊兼具基本面及資金面催化
- 新能源汽車在城市公共交通中的應用與城市能源結構轉型報告
- 《納稅籌劃(第7版)》課件 第7章 其他稅種的納稅籌劃
- 四川省南充市高坪區五年級下學期期末綜合試題
- 兒童被忽視量表(CNS)
- 回購商鋪方案
- 閩教版小學英語四年級下冊總復習
- 美制螺紋對照表
- B站營銷生態與效果向營銷資源組合【嗶哩嗶哩】【通案】【互聯網】【社交媒體營銷】
- 01-BUFR格式應用指南(試用版)
- 固定式升降機安全操作規程
- 輔酶Q10的基本生理作用課件
- 西方音樂史課后習題答案
評論
0/150
提交評論