shl19890206 发表于 2012-1-3 21:34:29

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

求90GBY4502型步进电动机驱动电路的程序!控制器是AT98S52,原理图上传如下图!各位大神,谢啦
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_710122XOCO8K.jpg
(原文件名:GBY17.jpg)

shl19890206 发表于 2012-1-3 21:35:44

回复【楼主位】shl19890206
-----------------------------------------------------------------------

./emotion/em008.gif

kiracl 发表于 2012-2-26 16:58:41

来个最简单,能转的,能说明问题的,然后你自己再搞搞:

#include <reg52.h>

unsigned char code F_Rotation={0x02,0x04,0x08,0x10}; //正转表格,换算成二进制 0000 0010,0000 0100,0000 1000,0001 0000
unsigned char code B_Rotation={0x10,0x08,0x04,0x02}; //反转表格,换算成二进制 0001 0000,0000 1000,0000 0100,0000 0010
//这是四拍的,你也可以弄个八拍,差不多意思,unsigned char step={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这块的算法讨论了。
页: [1]
查看完整版本: AT98S52控制驱动二相步进电动机程序,求!!!