AT98S52控制驱动二相步进电动机程序,求!!!

2020-02-04 09:33发布

求90GBY4502型步进电动机驱动电路的程序!控制器是AT98S52,原理图上传如下图!各位大神,谢啦

(原文件名:GBY17.jpg)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
kiracl
2020-02-04 14:00
来个最简单,能转的,能说明问题的,然后你自己再搞搞:

#include <reg52.h>

unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10}; //正转表格,换算成二进制 0000 0010,0000 0100,0000 1000,0001 0000
unsigned char code B_Rotation[4]={0x10,0x08,0x04,0x02}; //反转表格,换算成二进制 0001 0000,0000 1000,0000 0100,0000 0010
//这是四拍的,你也可以弄个八拍,差不多意思,unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90}
//反正是在你的驱动端口上产生一个完整的驱动序列就行了

/******************************************************************/
/*                    延时函数                                    */
/******************************************************************/
void Delay(unsigned int i)//延时
{
while(--i);
}
/******************************************************************/
/*                   主函数                                       */
/******************************************************************/
main()
{

unsigned char i;

while(1)
{
  for(i=0;i<4;i++)      //4相
     {
     P1=F_Rotation;  //输出对应的相 可以自行换成反转表格
     Delay(500);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
         }
  }
}


//关于步进电机变速曲线的讨论,通常就是Delay这块的算法讨论了。

一周热门 更多>