STC单片机89C52RC .步进电机驱动板型号是ULN2003AN 。步进电机是四相五线的,型号是28BYJ-48 .

求一个能驱动步进电机的C程序,最好有中文解释每一步,步进电机能正转、停、反转、或是正转半圈、停、反转半圈、 我是用USB TTL烧录程序,

#include<reg52.h>

//#include "reg52.h"

unsigned char code RUN[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6};  //步进电机相序表

void delay(unsigned int t);


 /************************************************************/

//步进电机驱动

void  motor_ffw(unsigned int n)                                  //正转函数

 { 

   unsigned char i,j,s,x;

   for(x=0;x<n;x++)

   {

   for(s=0;s<43;s++)

  { for(j=0;j<12;j++)

{

      for (i=0; i<8; i++)       

        {

          P1 = RUN[i];        

          delay(5);             

        }

}  }

   } 

    } 

 /***************************************************/

void  motor_ffm(unsigned int n)                                      //反转函数

 { 

   unsigned char i,j,s,x;

   for(x=0;x<n;x++)

   {

   for(s=0;s<43;s++)

  { for(j=0;j<12;j++)

{

      for (i=8; i>0; i--)       

        {

          P1 = RUN[i];        

          delay(5);             

        }

}  

}

    } 

 } 


/******延时函数****************/

void delay(unsigned int t)

{                           

   unsigned int k;

   while(t--)

   {

     for(k=0; k<60; k++)//用for的空循环延长程序的执行时间

     { }

   }

}


/******************************************************/

void main() 

 { 


 motor_ffw(1); //正转  1r

 P1=0x00;

 delay(500);

 motor_ffm(2);  //反转         2r

 P1=0x00;

 delay(500);

 while(1)

 {}

}


(这个型号步进电机自带减速器,上面的程序角度输出可能不太准确!


)前两天刚刚写的文件,你编译成hex文件烧写进去就好了!我今年大一,自学单片机!欢迎一起交流!qq810817901

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-27
STC的数据手册里有案例,你去官网下载