发 帖  
原厂入驻New
[资料]

步进电机驱动程序

2011-9-26 16:57:02  6581
分享
本帖最后由 eehome 于 2013-1-5 09:58 编辑

偶然看到一个,发上来给有需要的自己看看!
/*******************************************************
程序功能:步进电机驱动
开发环境:Keil3
硬件环境:CEPARK51 V4.0,STC12C5A60S2,12M晶振
实验现象:单双八拍工作方式:A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度)
步进电机先加速再匀速后减速转动。
*******************************************************/





  1. #include "STC12C5A60S2.h"
  2. void delay();
  3. //Motor
  4. sbit F1 = P0^0;
  5. sbit F2 = P0^1;
  6. sbit F3 = P0^2;
  7. sbit F4 = P0^3;
  8. unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反转
  9. unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转
  10. unsigned int  K, rate;

  11. /**********************************************************
  12. *   *
  13. *                 步进电机驱动   *
  14. ***********************************************************/
  15. void  motor_ffw(void)
  16. {
  17.    unsigned char i;
  18.       for (i=0; i<8; i++)       //一个周期转30度
  19.         {
  20.           P0 = FFW[i]&0x1f;  //取数据
  21.           delay();           //调节转速
  22.         }
  23.      }
  24. /********************************************
  25. 延时程序
  26. *********************************************/
  27. void delay(void)   
  28. {                           
  29.    unsigned int k,t;
  30.     t=rate;
  31.    while(t--)
  32.    {
  33.      for(k=0; k<150; k++)
  34.      { }
  35.    }
  36. }

  37. /********************************************************
  38. *                                                      
  39. *步进电机运行                                               
  40. *                                                      
  41. *********************************************************/
  42. void  motor_turn(void)
  43. {
  44.    unsigned char x;
  45.    rate=0x0a;
  46.    x=0x40;
  47.    do
  48.      {
  49.   motor_ffw();          //加速
  50.       rate--;
  51. }while(rate!=0x01);
  52.    do
  53.      {     
  54.    motor_ffw();        //匀速
  55.    x--;
  56. }while(x!=0x01);
  57.    do
  58.      {
  59.   motor_ffw();         //减速
  60.       rate++;
  61. }while(rate!=0x0a);   
  62. }
  63. main()
  64. {
  65.     while(1)
  66. {
  67. motor_turn();
  68. }
  69. }

复制代码









2
· 2011-9-26 16:57:47
{:42:}
· 2011-9-27 07:36:32
学习了!!
s00
· 2011-9-27 11:34:41
学习了!!
· 2012-5-21 14:33:47
学习了
HHH
· 2012-5-25 03:53:05
看看了 ,回复
· 2012-5-28 12:59:02
看看
· 2012-5-28 22:55:07
学习学习、、
· 2012-5-29 07:39:09
· 2012-7-1 20:45:13
学习学习、、
· 2012-7-9 16:07:50
学习
· 2012-7-10 21:12:10
· 2012-7-17 10:16:27
给力啊!!!!
· 2012-7-22 07:56:50
学习了!!
· 2012-7-23 22:05:34
学习中!!
· 2012-7-25 09:06:38
这个,看看
· 2012-8-4 19:59:06
看看吧。
· 2012-8-5 19:17:57
承接各类电子自动控制设备开发,包括小型智能电器,各类工装,夹具,设备
承接各类单片机开发设计项目,承接毕业设计论文设计
承接基于单片机的UCOS开发设计
QQ794652574
15723280980 赵工

· 2012-10-16 09:17:30
· 2012-11-10 22:33:06
谢谢你的代码。很好。受用了。

只有小组成员才能发言,加入小组>>

123下一页

375个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

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