基于單片機(jī)的步進(jìn)電機(jī)控制課程設(shè)計_第1頁
已閱讀1頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  物聯(lián)網(wǎng)工程學(xué)院</b></p><p><b>  課程設(shè)計報告</b></p><p>  課程名稱: 單片機(jī)原理及應(yīng)用 </p><p>  設(shè)計題目: 基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計 </p>

2、<p>  班 級: </p><p>  姓 名: 學(xué) 號: </p><p>  指導(dǎo)教師: 評 分: </p><p>  2013年 6月 29日</p><p><b> 

3、 目錄</b></p><p><b>  一、設(shè)計目的2</b></p><p><b>  二、設(shè)計要求2</b></p><p><b>  三、儀器設(shè)備2</b></p><p>  四、主要芯片及硬件原理說明3</p><p&g

4、t;<b>  1、芯片說明3</b></p><p>  2、硬件原理說明5</p><p><b>  五、程序清單10</b></p><p><b>  六、設(shè)計體會14</b></p><p><b>  一、設(shè)計目的:</b></

5、p><p>  通過具體小型測試系統(tǒng)設(shè)計,實(shí)踐單片機(jī)系統(tǒng)設(shè)計及調(diào)試的全過程,以加深對單片機(jī)內(nèi)部結(jié)構(gòu)、功能和指令系統(tǒng)的理解,并進(jìn)一步學(xué)習(xí)單片機(jī)開發(fā)系統(tǒng)的應(yīng)用及一些外圍芯片的接口和編程方法,初步掌握單片機(jī)系統(tǒng)的硬、軟件設(shè)計技術(shù)及調(diào)試技巧。</p><p><b>  二、設(shè)計要求:</b></p><p>  電機(jī)轉(zhuǎn)速可以平穩(wěn)控制</p>

6、<p>  通過鍵盤和顯示器可以設(shè)置電機(jī)轉(zhuǎn)速</p><p><b>  顯示電機(jī)的速度趨勢</b></p><p><b>  三、儀器設(shè)備:</b></p><p>  1)PC機(jī)(已安裝程序編寫和調(diào)試的相關(guān)軟件)</p><p>  2)購買的51單片機(jī)學(xué)習(xí)開發(fā)板MINI V2&l

7、t;/p><p><b>  3)數(shù)據(jù)線</b></p><p>  4)28BYJ-48步進(jìn)電機(jī)</p><p>  主要芯片及硬件原理說明:</p><p><b>  芯片說明:</b></p><p>  AT89C51單片機(jī)</p><p>  

8、89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的89C51是一種高效微控制器。89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><

9、;p>  電機(jī)驅(qū)動芯片ULN2003A</p><p>  大電流達(dá)林頓陣列,由八個硅NPN 達(dá)林頓管組成??芍苯域?qū)動繼電器、電動機(jī)等,其內(nèi)部電路如下:</p><p>  3)鎖存器74ACQ573SC</p><p>  74ACQ573SC芯片為D型透明鎖存器,其封裝、內(nèi)部電路、引腳功能如下:</p><p>  硬件電路及其原理

10、說明:</p><p><b>  控制模塊:</b></p><p>  該部分電路為單片機(jī)最小系統(tǒng)與控制按鍵的原理電路。</p><p>  在最小系統(tǒng)中,使用晶振頻率為12MHZ,復(fù)位電路具有上電自動復(fù)位與手動復(fù)位2中功能,使用內(nèi)部程序存儲功能。P3.2~P3.6接獨(dú)立按鍵,分別為控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、停止、加速、減速,P3.2和P3.3

11、為外部中斷引腳,但程序中統(tǒng)一使用按鍵檢測的方法來讀取控制信號,未使用中斷。系統(tǒng)由電腦USB接口供電,電壓為5V,符合系統(tǒng)工作要求。</p><p><b>  顯示模塊:</b></p><p>  顯示電路中使用8段共陰極獨(dú)立數(shù)碼管,數(shù)碼管帶有選通端(com引腳)。本系統(tǒng)使用3個數(shù)碼管,第一個數(shù)碼管顯示速度等級,速度等級分為1~8,等級越高速度越高。第二個數(shù)碼管顯示

12、電機(jī)的運(yùn)行方向,“0”代表電機(jī)停止運(yùn)轉(zhuǎn)、“1”帶表電機(jī)正轉(zhuǎn)、“2”代表電機(jī)反轉(zhuǎn)。第三個數(shù)碼管顯示電機(jī)運(yùn)行趨勢,“P”代表電機(jī)平穩(wěn)運(yùn)行,“-”代表電機(jī)減速,“+”代表電機(jī)加速。</p><p>  數(shù)碼管位選數(shù)據(jù)和段選數(shù)據(jù)由P0口控制,數(shù)碼管的顯示中需要2個鎖存器74ACQ573SC分別鎖存位選和段選信號。2個鎖存器的片選信號分別由P^6和P2^7引腳控制。位選信號為0時,對應(yīng)數(shù)碼管被選通;段選信號為1時對應(yīng)的數(shù)碼

13、管內(nèi)部LED被點(diǎn)亮。所以數(shù)碼管的段選數(shù)碼表和位選控制如下:</p><p><b>  數(shù)碼管段選數(shù)碼表</b></p><p><b>  位選控制</b></p><p><b>  原理圖如下:</b></p><p><b>  驅(qū)動模塊:</b>

14、</p><p>  步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元步進(jìn)電機(jī)件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個固定的角度,稱為“步距角”,它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的

15、速度和加速度,從而達(dá)到調(diào)速的目的。本系統(tǒng)使用28BYJ-484相5線制步進(jìn)電機(jī),由于單片機(jī)輸出電流較小無法直接驅(qū)動步進(jìn)電機(jī)運(yùn)轉(zhuǎn),所以需要經(jīng)過ULN2003A電流放大芯片放大后,才能驅(qū)動電機(jī)。</p><p>  28BYJ-48硬件特性:</p><p>  1.額定電壓:12VDC(另有電壓:5V、6V、24V)</p><p>  2.減速比:1/64(另有減速

16、比:1/16、1/32) </p><p>  3.步距角:5.625°/64 </p><p>  4.驅(qū)動方式:4 相 8 拍</p><p>  5.直流電阻:200Ω± </p><p>  6.空載牽入頻率:≥600Hz </p><p>  7.空載牽出頻率:≥1000Hz </p

17、><p>  8.牽入轉(zhuǎn)矩:≥34.3mN.m(120Hz) </p><p>  本設(shè)計采用8拍運(yùn)行方式,即A-AB-B-BC-C-CD-D-DA的運(yùn)行方式。</p><p>  程序中對應(yīng)的正轉(zhuǎn)、反轉(zhuǎn)數(shù)碼表如下:</p><p><b>  正轉(zhuǎn)數(shù)碼表</b></p><p><b> 

18、 反轉(zhuǎn)數(shù)碼表</b></p><p><b>  原理圖如下:</b></p><p><b>  程序清單:</b></p><p>  #include<reg52.h></p><p>  #define uint unsigned int</p><

19、;p>  #define uchar unsigned char</p><p>  uchar djr[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//電機(jī)正轉(zhuǎn)數(shù)碼表</p><p>  uchar djl[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//電機(jī)反轉(zhuǎn)數(shù)碼表</p>&

20、lt;p>  uchar djstop[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};</p><p><b>  //電機(jī)停止數(shù)碼表</b></p><p>  uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x46,0x40,<

21、/p><p>  0x73}; //數(shù)碼管顯示段碼表</p><p>  uint flag,k;//flag為電機(jī)運(yùn)行狀態(tài)標(biāo)志</p><p>  sbit right=P3^2;//正傳按鍵</p><p>  sbit left=P3^3;//反轉(zhuǎn)按鍵<

22、/p><p>  sbit stop=P3^6;//停止按鍵</p><p>  sbit up=P3^4;//加速按鍵</p><p>  sbit down=P3^5;//減速按鍵</p><p>  sbit dula=P2^6;//數(shù)碼管段選通輸出端口</p><p>  sbit wela=P2^7;//數(shù)碼管位

23、選通輸出端口</p><p>  void display(uchar sudu);//速度顯示函數(shù)聲明</p><p>  void display1(uchar flag1);//電機(jī)運(yùn)行狀態(tài)顯示函數(shù)</p><p>  void delay1(uint z)//延時函數(shù)1</p><p><b>  {</b>&l

24、t;/p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=30;y>0;y--);</p><p><b>  }</b></p><p>  void delay2(uint a)

25、//延時函數(shù)2</p><p>  {uint b,c;</p><p>  for(b=a;b>0;b--)</p><p>  for(c=10;c>0;c--);</p><p><b>  }</b></p><p>  void main()//主函數(shù)</p>

26、<p>  { uint speed1=1,speed;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(stop==0)//停止按鍵檢測</p><p><b>  {</b></

27、p><p>  delay1(5);</p><p>  if(stop==0)</p><p>  while(!stop);</p><p>  flag=0;//如果停止按鍵按下,則flag=0</p><p><b>  }</b></p><p>  if(right

28、==0)//正轉(zhuǎn)按鍵檢測</p><p><b>  {</b></p><p>  delay1(5);</p><p>  if(right==0)</p><p>  while(!right);</p><p>  flag=1;//如果正轉(zhuǎn)按鍵按下,則flag=1</p>

29、<p><b>  }</b></p><p>  if(left==0)//反轉(zhuǎn)按鍵檢測</p><p><b>  {</b></p><p>  delay1(5);</p><p>  if(left==0)</p><p>  while(!left);&

30、lt;/p><p>  flag=2;//如果反轉(zhuǎn)按鍵按下,則flag=2</p><p><b>  }</b></p><p>  if(down==0)//減速按鍵檢測</p><p><b>  {</b></p><p>  delay1(5);</p>

31、<p>  if(down==0)</p><p><b>  {</b></p><p>  wela=1;//減速狀態(tài)顯示,第4數(shù)碼管顯示"-"</p><p><b>  P0=0xf7;</b></p><p><b>  wela=0;</

32、b></p><p><b>  dula=1;</b></p><p>  P0=table[11];</p><p><b>  dula=0;</b></p><p>  while(!down);</p><p><b>  speed1++;<

33、/b></p><p><b>  }</b></p><p>  if(speed1>8)</p><p>  speed1=1;</p><p><b>  }</b></p><p>  if(up==0)//加速按鍵檢測</p><

34、p><b>  {</b></p><p>  delay1(5);</p><p><b>  if(up==0)</b></p><p><b>  {</b></p><p>  wela=1;//加速狀態(tài)顯示,第4數(shù)碼管顯示"+"</p&

35、gt;<p><b>  P0=0xf7;</b></p><p><b>  wela=0;</b></p><p><b>  dula=1;</b></p><p>  P0=table[10];</p><p><b>  dula=0;<

36、/b></p><p>  while(!up);</p><p><b>  speed1--;</b></p><p><b>  }</b></p><p>  if(speed1<1)</p><p><b>  speed1=8;</b&

37、gt;</p><p><b>  }</b></p><p>  if(flag==0)//電機(jī)停止運(yùn)行程序</p><p><b>  {</b></p><p>  for(k=0;k<8;k++)</p><p><b>  {</b>&l

38、t;/p><p>  P1=djstop[k];</p><p>  delay2(speed1);</p><p>  display(flag);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if

39、(flag==1)//電機(jī)內(nèi)部一周程序正傳</p><p><b>  {</b></p><p>  for(k=0;k<8;k++)</p><p><b>  {</b></p><p>  P1=djr[k];</p><p>  delay2(speed1);

40、</p><p>  speed=9-speed1;</p><p>  display(speed);//調(diào)用速度顯示函數(shù)</p><p>  display1(flag);//調(diào)用電機(jī)運(yùn)行狀態(tài)顯示函數(shù)</p><p><b>  }</b></p><p><b>  }<

41、;/b></p><p>  else if(flag==2)//電機(jī)內(nèi)部反轉(zhuǎn)一周程序</p><p><b>  {</b></p><p>  for(k=0;k<8;k++)</p><p><b>  {</b></p><p>  P1=djl[k];&

42、lt;/p><p>  delay2(speed1);</p><p>  speed=9-speed1;</p><p>  display(speed);//調(diào)用速度顯示函數(shù)</p><p>  display1(flag);//調(diào)用電機(jī)運(yùn)行狀態(tài)顯示函數(shù)</p><p><b>  }</b>&

43、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void display(uchar sudu)//速度顯示子函數(shù)</p><p><b>  {<

44、;/b></p><p><b>  wela=1;</b></p><p><b>  P0=0xfe;</b></p><p><b>  wela=0;</b></p><p><b>  dula=1;</b></p><

45、p>  P0=table[sudu];</p><p><b>  dula=0;</b></p><p>  delay1(1);</p><p><b>  }</b></p><p>  void display1(uchar flag1)//電機(jī)運(yùn)行狀態(tài)顯示函數(shù)</p>

46、<p><b>  {</b></p><p><b>  wela=1;</b></p><p><b>  P0=0xfb;</b></p><p><b>  wela=0;</b></p><p><b>  dula=1;&l

47、t;/b></p><p>  P0=table[flag1];//顯示0代表電機(jī)停止,1代表正傳,2代表反轉(zhuǎn)</p><p><b>  dula=0;</b></p><p>  delay1(1);</p><p><b>  wela=1;</b></p><p&g

48、t;<b>  P0=0xf7;</b></p><p><b>  wela=0;</b></p><p><b>  dula=1;</b></p><p>  P0=table[12];//顯示P代表電機(jī)平穩(wěn)運(yùn)行</p><p><b>  dula=0;<

49、;/b></p><p>  delay1(1);</p><p><b>  }</b></p><p><b>  設(shè)計體會:</b></p><p>  我通過基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計,實(shí)踐單片機(jī)系統(tǒng)設(shè)計、上機(jī)調(diào)試及再設(shè)計的全過程,以加深對單片機(jī)內(nèi)部結(jié)構(gòu)、原理功能和指令系統(tǒng)的進(jìn)一步

50、理解,并進(jìn)一步學(xué)習(xí)單片機(jī)開發(fā)系統(tǒng)的原理與應(yīng)用以及一些外圍芯片的接口和編程調(diào)試方法與技巧,初步掌握單片機(jī)系統(tǒng)的硬、軟件設(shè)計技術(shù)及調(diào)試技巧。</p><p>  老師課程上沒有講過步進(jìn)電機(jī)的設(shè)計,不過課程設(shè)計需要用單片機(jī),在設(shè)計之前,我好好復(fù)習(xí)了課本,全面梳理了一下51系列單片機(jī)的系統(tǒng)框圖、功能和應(yīng)用、指令系統(tǒng)以及擴(kuò)展的知識點(diǎn),對這次課程設(shè)計需要的硬件進(jìn)行了預(yù)算和統(tǒng)計。</p><p>  這

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論