大神们来看一下一个单片机控制步进电机的问题
写了一个控制步进电机的程序,用来使各个电机依次运动。在Keil仿真时单步运行没有问题,全速运行时会提示error65,在Proteus里仿真发现只有前三个电机运动,剩下两个没反应,程序是哪里出问题了吗 ,编译的时候没有提示出现错误
#include<reg51.h>
#define uint unsigned int
sbit CW1=P0^0; //1号电机方向及时钟
sbit CLK1=P0^1;
sbit CW2=P0^2; //2号电机方向及时钟
sbit CLK2=P0^3;
sbit CW3=P0^4; //3号电机方向及时钟
sbit CLK3=P0^5;
sbit CW4=P0^6; //4号电机方向及时钟
sbit CLK4=P0^7;
sbit CW5=P2^0; //5号电机方向及时钟
sbit CLK5=P2^1;
void delay(int x)
{
int a,b;
for(a=0;a<x;a++)
for(b=0;b<120;b++)
{}
}
void main()
{
int i,j,l,m,n;
CW1=1;
CLK1=0;
for(i=0;i<201;i++)
{
CLK1=1;
delay(10);
CLK1=0;
delay(10);
if(i==200)break;
}
delay(50);
CW2=1;
CLK2=0;
for(j=0;j<201;j++)
{
CLK2=1;
delay(10);
CLK2=0;
delay(10);
if(j==200)break;
}
delay(50);
CW3=1;
CLK4=0;
for(l=0;l<201;l++)
{
CLK3=1;
delay(10);
CLK3=0;
delay(10);
if(l==200)break;
}
CW4=1;
CLK4=0;
for(n=0;n<51;n++)
{
CLK4=1;
delay(10);
CLK4=0;
delay(10);
if(n==50)break;
}
CW5=1;
CLK5=0;
for(m=0;m<51;m++)
{
CLK5=1;
delay(10);
CLK5=0;
delay(10);
if(m==50)break;
}
}
#include<reg51.h>
#define uint unsigned int
sbit CW1=P0^0; //1号电机方向及时钟
sbit CLK1=P0^1;
sbit CW2=P0^2; //2号电机方向及时钟
sbit CLK2=P0^3;
sbit CW3=P0^4; //3号电机方向及时钟
sbit CLK3=P0^5;
sbit CW4=P0^6; //4号电机方向及时钟
sbit CLK4=P0^7;
sbit CW5=P2^0; //5号电机方向及时钟
sbit CLK5=P2^1;
void delay(int x)
{
int a,b;
for(a=0;a<x;a++)
for(b=0;b<120;b++)
{}
}
void main()
{
int i,j,l,m,n;
CW1=1;
CLK1=0;
for(i=0;i<201;i++)
{
CLK1=1;
delay(10);
CLK1=0;
delay(10);
if(i==200)break;
}
delay(50);
CW2=1;
CLK2=0;
for(j=0;j<201;j++)
{
CLK2=1;
delay(10);
CLK2=0;
delay(10);
if(j==200)break;
}
delay(50);
CW3=1;
CLK4=0;
for(l=0;l<201;l++)
{
CLK3=1;
delay(10);
CLK3=0;
delay(10);
if(l==200)break;
}
CW4=1;
CLK4=0;
for(n=0;n<51;n++)
{
CLK4=1;
delay(10);
CLK4=0;
delay(10);
if(n==50)break;
}
CW5=1;
CLK5=0;
for(m=0;m<51;m++)
{
CLK5=1;
delay(10);
CLK5=0;
delay(10);
if(m==50)break;
}
}
...全文
相关推荐
用51单片机控制两相四线步进电机
在这里和大家分享一个用51单片机控制两相四线步进电机的程序。
单片机应用系统设计技术——步进电机控制_液晶显示
步进电机控制_液晶显示 一、实验目的 二、实验内容 三、实验步骤 四、C代码如下 五、实验结果 六、实验体会 一、实验目的 用80C51单片机设计一个步进电机控制器 二、实验内容 1.用8015设计一个四相步进电机。. 2.可控制步进电机的启动与停止,正转与反转。 3.10档速度调节。 4.点动控制。 5.可显示电机运行参数。 三、实验步骤 四、C代码如下 #include <AT89X51.h> #include <stdio.h> #includ
基于51单片机的步进电机控制实验
基于51单片机的步进电机控制实验.,包含说明书,布线,源码,烧录文件
基于51单片机的步进电机转速控制及显示.zip
本设计为基于51单片机的步进电机转速控制,液晶屏显示电机转速和方向,5个按键控制电机的正转、反转、停止、加速、减速。 压缩包内包含keil工程和proteus仿真。
单片机控制步进电机的原理
本资料详细介绍了步进电机的工作原理以及单片机控制步进电机的特点。步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。


模式及实现
