AT98S52控制驱动二相步进电动机程序,求!!!
求90GBY4502型步进电动机驱动电路的程序!控制器是AT98S52,原理图上传如下图!各位大神,谢啦http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_710122XOCO8K.jpg
(原文件名:GBY17.jpg) 回复【楼主位】shl19890206
-----------------------------------------------------------------------
./emotion/em008.gif 来个最简单,能转的,能说明问题的,然后你自己再搞搞:
#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]