找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6410|回复: 1
收起左侧

51单片机步进电机驱动实例

[复制链接]
ID:419067 发表于 2019-4-21 17:33 | 显示全部楼层 |阅读模式
步进电机驱动程序,多种驱动方式,包含电路图
电路原理图如下:
步进马达电路图.jpg 捕获.PNG

单片机源程序如下:
  1. /**************************************************************************************
  2. *  标题:  步进电机试验四                                                                                                                          *
  3. *                                                                                                                                                                           *
  4. *    通过本例程了解步进马达使用及驱动程序编写                                                                                  *
  5. *     双四拍工作方式:                                                                     *
  6. *    AB-BC-CD-DA (即一个脉冲,转 7.5 度)                                                                                              *
  7. *                                                                                               *
  8. *  请学员一定要消化掉本例程,                                                                 *
  9.                                                                                                                                 *
  10. **************************************************************************************/   


  11. #include "reg52.h"
  12. //Motor
  13. sbit F1 = P1^0;
  14. sbit F2 = P1^1;
  15. sbit F3 = P1^2;
  16. sbit F4 = P1^3;



  17. ///////////////////////////////////////
  18. //步进电机驱动
  19. unsigned char MotorStep=0;
  20. unsigned int MotorTimer = 0;
  21. unsigned int TIM,CT;

  22. void InitMotor()
  23. {
  24.   F1 = 1;
  25.   F2 = 1;
  26.   F3 = 1;
  27.   F4 = 1;
  28. }



  29. void SetMotor()
  30. {
  31.   //  if(Speed == 0) return;

  32.    
  33.     switch(MotorStep)
  34.     {
  35.        case 0:
  36.           if(TIM)
  37.           {
  38.             F1 = 0;
  39.             F2 = 0;
  40.                         F3 = 1;
  41.                         F4 = 1;
  42.             MotorStep = 1;
  43.                          TIM=0;
  44.           }
  45.        break;

  46.        case 1:
  47.          if(TIM)
  48.           {       
  49.             F1 = 1;
  50.             F2 = 0;
  51.             F3 = 0;
  52.             F4 = 1;
  53.             MotorStep = 2;
  54.                         TIM=0;
  55.           }
  56.        break;

  57.        case 2:
  58.          if(TIM)
  59.           {
  60.            
  61.          
  62.             F1 = 1;
  63.             F2 = 1;
  64.             F3 = 0;
  65.             F4 = 0;
  66.             MotorStep = 3;
  67.                         TIM=0;
  68.           }
  69.        break;


  70.        case 3:
  71.          if(TIM)
  72.           {       
  73.             F1 = 0;
  74.             F2 = 1;
  75.             F3 = 1;
  76.             F4 = 0;
  77.             MotorStep = 0;
  78.                         TIM=0;
  79.           }
  80.        break;
  81.     }

  82. }


  83. void system_Ini()
  84. {
  85.     TMOD|= 0x11;
  86.     TH0=0xDC; //11.0592M
  87.     TL0=0x00;       
  88.         IE = 0x8A;       
  89.     TR0  = 1;


  90. }

  91. main()
  92. { system_Ini();
  93.    InitMotor();
  94.     while(1)
  95.         {
  96.          SetMotor();

  97.          }



  98.   }
  99.   
  100. /*************************************
  101. [ t1 (0.5ms)中断] 中断中做 PWM 输出
  102.   ------------1000/(0.02ms*250)=200Hz
  103. *************************************/
  104.   void Tzd(void) interrupt 1
  105. {
  106.    TH0 = 0xfe;    //11.0592
  107.          TL0 = 0x33;

  108.         if( CT++==20)
  109.           {TIM=1;
  110.            CT=0;
  111.           }
  112. }
复制代码

所有资料51hei提供下载:
步进马达.rar (614.18 KB, 下载次数: 76)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:46689 发表于 2019-12-18 20:32 | 显示全部楼层
谢谢分享。刚学啥都不会。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表