打印

我的步进电机的C语言程序到底错在哪 我是新手

[复制链接]
2829|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zdp1214|  楼主 | 2009-10-12 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg51.h>
#include <absacc.h>
#define uint unsigned int
#define uchar unsigned char

void out(uchar state);//声明一个out 函数
void delay(uint x);//声明延迟函数

main()
{
for(;;)
{  
      uchar phase=0;
out(phase=++phase&0x03);//0000--0001--0010--0011--0000
}
}


void out(uchar state)
{
code uchar table[]={0x02,0x04,0x08,0x10};
P1=table[state];
delay(8);
}

void delay(uint x)
{
uchar j;
while(x-->0)
{
for(j=0;j <125;j++)
{;}
}
}
我先将程序烧进去,将步进电机的红色对准VCC,其他对准ABCD插在板上,然后用杜邦线将ABCD于p1.1p1.2p1.3p1.4短接
机器不转....~~~~为什么
帮帮我改改 ..

相关帖子

沙发
zhaiweilei| | 2009-10-12 17:39 | 只看该作者
看看是不是硬件的问题,你用什么驱动?

使用特权

评论回复
板凳
suijinpeng| | 2009-10-18 15:36 | 只看该作者
单片机直接驱动的?

使用特权

评论回复
地板
suijinpeng| | 2009-10-18 15:37 | 只看该作者
上图

使用特权

评论回复
5
senzh01| | 2009-10-18 19:11 | 只看该作者
本帖最后由 senzh01 于 2009-10-18 19:12 编辑

单片机直接驱动不可以,没那么大的电流!仔细看看步进电机的参数!

使用特权

评论回复
6
零下摄氏度| | 2009-10-19 22:54 | 只看该作者
没有0000吧

使用特权

评论回复
7
hou| | 2009-10-20 00:26 | 只看该作者
1.参考5楼,1楼对P1口驱动能力(电流)的认识基本是空白:首先这种情况不能用I/O口直接驱动;其次,如果说你的步进电机电流小到15mA以下,可以用口线直接驱动,但是也应该用灌电流。
2.步进电机驱动方式:1楼你的步进电机应该是5出线的四相电机,四相的一端接到一个公共电源VCC上,另外的四个端子ABCD,哪一个为低电平则哪一相通电。你的控制表说明你是三相导通,(你选择的)那一相截止!这种情况下我估计你的单片机已经烧毁了。
3.延时程序中,for循环在keil编译后大概要1000个机器周期,不知道你的晶振是多高,如果是6MHz,则一个for循环需要2ms,你执行8个for循环16ms,步进电机换向速度62.5步/s。这是不是你期望的速度?

使用特权

评论回复
8
fdsfdsa| | 2009-10-20 12:13 | 只看该作者
看一看是不这儿的问题:
for(;;)
{  
      uchar phase=0;
      out(phase=++phase&0x03);//0000--0001--0010--0011--0000
}
每次都循环 phase = 0 ,那么总的来说实现不了你那个0000--0001--0010--0011--0000 吧。试下把它改为静态变量或者把phase 在循环外赋值。

使用特权

评论回复
9
cerbcm| | 2009-10-20 19:32 | 只看该作者
学习一下。。。

使用特权

评论回复
10
hou| | 2009-10-21 00:06 | 只看该作者
8楼、9楼有眼力!

使用特权

评论回复
11
wyxwgn3| | 2011-4-5 09:19 | 只看该作者
是的。电机大了,也不能直接驱动

使用特权

评论回复
12
375606426| | 2011-8-15 08:44 | 只看该作者
只能说楼主还是懂的少点,我还是头一次听说51直接驱动电机滴,学着点!:lol有时间去看看老X的讲解去!
他是这方面的高手

使用特权

评论回复
13
815415220| | 2011-11-2 21:10 | 只看该作者
来学习的,谢谢楼上各位的经验:D

使用特权

评论回复
14
815415220| | 2011-11-2 21:13 | 只看该作者
13# 375606426

“老X的讲解”在哪里啊,我想去学习一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

1

粉丝