找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 11238|回復(fù): 5
收起左側(cè)

單片機(jī)按鍵控制步進(jìn)電機(jī)的源程序

[復(fù)制鏈接]
ID:334750 發(fā)表于 2018-5-22 20:57 | 顯示全部樓層 |閱讀模式
自己做的小項(xiàng)目代碼

單片機(jī)源程序如下:
  1. #include<reg52.h>  
  2. #include<intrins.h>   
  3. #define uchar unsigned char  
  4. #define uint unsigned int     
  5. uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};   //逆時(shí)鐘旋轉(zhuǎn)相序表
  6. uchar code CW[8]= {0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};    //正時(shí)鐘旋轉(zhuǎn)相序表     
  7. sbit K1=P3^5;  //反轉(zhuǎn)按鍵  
  8. sbit K2=P3^3;  //正轉(zhuǎn)按鍵
  9. sbit K3=P3^1;  //反轉(zhuǎn)按鍵  
  10. sbit K4=P3^0;  //正轉(zhuǎn)按鍵         
  11. sbit K5=P3^2;  //正轉(zhuǎn)按鍵
  12. void delaynms(uint aa)
  13. {   
  14.         uchar bb;   
  15.         while(aa--)   
  16.         {     
  17.                 for(bb=0;bb<115;bb++);     //1ms基準(zhǔn)延時(shí)程序   
  18.         }   
  19. }

  20.   
  21. void motor_ccw(void)
  22. {    uchar i,j;   
  23.          for(j=0;j<8;j++)    //電機(jī)旋轉(zhuǎn)一周,不是外面所看到的一周,是里面的傳動(dòng)輪轉(zhuǎn)了一周   
  24.          {         
  25.          for(i=0;i<8;i++)  //旋轉(zhuǎn)45度  
  26.          {     P1=CCW[i];     
  27.                     delaynms(10);   //調(diào)節(jié)轉(zhuǎn)速  
  28.          }   
  29.          }
  30. }

  31. void motor_ccw0(void)
  32. {    uchar i,j;   
  33.          for(j=0;j<8;j++)    //電機(jī)旋轉(zhuǎn)一周,不是外面所看到的一周,是里面的傳動(dòng)輪轉(zhuǎn)了一周   
  34.          {         
  35.          for(i=0;i<8;i++)  //旋轉(zhuǎn)45度  
  36.          {     P0=CCW[i];     
  37.                     delaynms(10);   //調(diào)節(jié)轉(zhuǎn)速  
  38.          }   
  39.          }
  40. }

  41. void motor_cw(void)
  42. {    uchar i,j;   
  43.         for(j=0;j<8;j++)   
  44.         {         
  45.         for(i=0;i<8;i++)  //旋轉(zhuǎn)45度  
  46.         {     P1=CW[i];     
  47.                   delaynms(10);   //調(diào)節(jié)轉(zhuǎn)速  
  48.         }
  49.         }   
  50. }

  51. void motor_cw0(void)
  52. {    uchar i,j;   
  53.         for(j=0;j<8;j++)   
  54.         {         
  55.         for(i=0;i<8;i++)  //旋轉(zhuǎn)45度  
  56.         {     P0=CW[i];     
  57.                   delaynms(10);   //調(diào)節(jié)轉(zhuǎn)速  
  58.         }
  59.         }   
  60. }

  61. void main(void)
  62. {   uchar r;   
  63.         uchar N=1;          //因?yàn)椴竭M(jìn)電機(jī)是減速步進(jìn)電機(jī),減速比的1/64 ,        
  64.                                                  //所以N=64時(shí),步進(jìn)電機(jī)主軸轉(zhuǎn)一圈  
  65.         while(1)  
  66.         {
  67.                 if(K1==0)
  68.                 {for(r=0;r<N;r++)   
  69.                    motor_ccw();  //電機(jī)逆轉(zhuǎn)     
  70.                 }
  71.                 else if(K3==0)
  72.                 {for(r=0;r<N;r++)   
  73.                    motor_ccw0();  //電機(jī)逆轉(zhuǎn)     
  74.                 }                                        
  75.                 else if(K2==0)                                               
  76.                 {for(r=0;r<N;r++)   
  77.                                         motor_cw();   //電機(jī)反轉(zhuǎn)            
  78.                 }
  79.                 else if(K4==0)                                               
  80.                 {for(r=0;r<N;r++)   
  81.                                         motor_cw0();   //電機(jī)反轉(zhuǎn)            
  82.                 }
  83.         else if(K5==0)                                               
  84.                 {for(r=0;r<N;r++)   
  85.                                         motor_cw0();   //電機(jī)反轉(zhuǎn)            
  86.                 }   
  87.             else     P1=0xf0;    //電機(jī)停止  
  88.         }   
  89. }
復(fù)制代碼

所有資料51hei提供下載:
步進(jìn)電機(jī).zip (30.87 KB, 下載次數(shù): 103)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:408644 發(fā)表于 2018-10-14 09:58 | 顯示全部樓層
樓主,這個(gè)是基于51的還是stm32的程序??
回復(fù)

使用道具 舉報(bào)

ID:401924 發(fā)表于 2018-12-10 12:21 | 顯示全部樓層
沒有主程序,要下載的才是全的嗎?這個(gè)轉(zhuǎn)法,每45度一個(gè)繞組供電,不知道改為每次多個(gè)繞組供電,力會(huì)不會(huì)更大一點(diǎn)跜
回復(fù)

使用道具 舉報(bào)

ID:383374 發(fā)表于 2019-1-17 01:11 來(lái)自手機(jī) | 顯示全部樓層
看一下。明天我要用
回復(fù)

使用道具 舉報(bào)

ID:404223 發(fā)表于 2019-1-19 16:50 | 顯示全部樓層
程序思路不錯(cuò),但沒有細(xì)分控制,運(yùn)行起來(lái)容易失步,平穩(wěn)性不會(huì)太好,噪音也會(huì)比較大,如果能加以改進(jìn)會(huì)更好些。建議加入細(xì)分和起步的梯形或S型控制就完美了。
回復(fù)

使用道具 舉報(bào)

ID:607899 發(fā)表于 2019-9-5 20:58 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表