找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)步進(jìn)電機(jī)調(diào)節(jié)轉(zhuǎn)動例程

[復(fù)制鏈接]
ID:283855 發(fā)表于 2018-2-12 16:25 | 顯示全部樓層 |閱讀模式
步進(jìn)電機(jī)轉(zhuǎn)動歷程
單片機(jī)源程序如下:

  1. #include "reg52.h"

  2. //電機(jī)IO
  3. #define GPIO_MOTOR P1
  4. //sbit F1 = P1^0;
  5. //sbit F2 = P1^1;
  6. //sbit F3 = P1^2;
  7. //sbit F4 = P1^3;
  8. //按鍵IO
  9. sbit K1=P3^0;  //接開關(guān)
  10. //sbit K2=P3^1;
  11. //sbit K3=P3^2;
  12. //sbit K4=P3^3;

  13. unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反轉(zhuǎn)順序
  14. unsigned char code FFW1[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//正轉(zhuǎn)
  15. unsigned int k=0,j=0;

  16. void Delay(unsigned int t);
  17. void  Motor();
  18. void  Motor1();
  19. /*******************************************************************************
  20. * 函 數(shù) 名         : main
  21. * 函數(shù)功能                   : 主函數(shù)
  22. * 輸    入         : 無
  23. * 輸    出         : 無
  24. *******************************************************************************/

  25. void main(void)
  26. {
  27.   while(1)
  28.         {  
  29.         if(K1==0)         //通電,正轉(zhuǎn)25
  30.         {
  31.           for(k;k<28;k++)
  32.              {Motor1(); }
  33.                  j=0;
  34.                 }
  35.         else if(K1==1)           //斷電,倒轉(zhuǎn)25
  36.         {
  37.           for(j;j<28;j++)
  38.              {Motor();        }
  39.                  k=0;
  40.                 }

  41.         }
  42. }
  43. /*******************************************************************************
  44. * 函 數(shù) 名         : Motor
  45. * 函數(shù)功能                   : 電機(jī)旋轉(zhuǎn)函數(shù)
  46. * 輸    入         : 無
  47. * 輸    出         : 無
  48. *******************************************************************************/

  49. void  Motor()         //反轉(zhuǎn)
  50. {
  51.         unsigned char i;
  52.         for(i=0;i<8;i++)
  53.         {
  54.                 GPIO_MOTOR = FFW[i]&0x1f;  //取數(shù)據(jù)
  55.                 Delay(13);        //調(diào)節(jié)轉(zhuǎn)速       
  56.         }                         
  57. }

  58. void  Motor1()        //正轉(zhuǎn)
  59. {
  60.         unsigned char i;
  61.         for(i=0;i<8;i++)
  62.         {
  63.                 GPIO_MOTOR = FFW1[i]&0x1f;  //取數(shù)據(jù)
  64.                 Delay(13);        //調(diào)節(jié)轉(zhuǎn)速       
  65.         }                         
  66. }
  67. /*******************************************************************************
  68. * 函 數(shù) 名         : Delay
  69. * 函數(shù)功能                   : 延時
  70. * 輸    入         : t
  71. * 輸    出         : 無
  72. *******************************************************************************/
  73. void Delay(unsigned int t)
  74. {                           
  75.         unsigned int k;
  76.         while(t--)
  77.         {
  78.                 for(k=0; k<80; k++)
  79.                 { }
  80.         }
  81. }


復(fù)制代碼

所有資料51hei提供下載:
步進(jìn)電機(jī)轉(zhuǎn)動.rar (24.38 KB, 下載次數(shù): 22)


評分

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

查看全部評分

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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