大家帮忙解决下我的步进电机新问题,谢谢。

[复制链接]
2153|3
 楼主| 欧阳青云 发表于 2009-8-15 19:13 | 显示全部楼层 |阅读模式
目的是让步进电机转起来,程序如下,请求大家帮忙解决,谢谢。
#include "reg51.h"
unsigned char table[]={0xfe,0xfd,0xfb,0xf7};
unsigned char t=0;
unsigned int m=200;
void delay(unsigned int i)
{
unsigned char j;
for(;i>0;i--)
for(j=250;j>0;j--);
}
void main()
{
while(1)
{
  P3=table[t];
  P0=table[t];
  delay(m);
  delay(m);
  delay(m);
  t++;
  if(m!=40)
  {
   m--;
  }
  if(t==4)
  {
   t=0;
  }
}
}
chen3bing 发表于 2009-8-15 19:36 | 显示全部楼层
是电机转不起来吗?
 楼主| 欧阳青云 发表于 2009-8-15 20:58 | 显示全部楼层
出现的问题是向前走两步向后走两步,如此循环下去。我后面把数组改成{0xfd,0xfe,0xfb,0xf7}就行了,好像正常情况下电机数组就该是0xfe,0xfd,0xfb,0xf7}但后面一种不行。现在的问题又出来了,频率提高不到1KZ,一旦频率设为1KZ的话,它加速一会儿就不动了。这是为什么啊。
5880527 发表于 2009-8-17 09:53 | 显示全部楼层
你拿示波器观测脉冲频率,宽度,均匀程度
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

378

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部