找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2162|回复: 8
打印 上一主题 下一主题
收起左侧

单片机控制步进电机,大神来帮助一下吧

  [复制链接]
回帖奖励 5 黑币 回复本帖可获得 5 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主

写了一个控制步进电机的程序,用来使各个电机依次运动。在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;
}

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:330198 发表于 2018-5-16 10:56 | 只看该作者
程序这里有问题,你改一下看看
回复

使用道具 举报

板凳
ID:331147 发表于 2018-5-16 11:22 | 只看该作者
楼上说的没错
回复

使用道具 举报

地板
ID:330766 发表于 2018-5-16 14:35 | 只看该作者
对,就是这个问题,一楼说的没错
回复

使用道具 举报

5#
ID:331350 发表于 2018-5-16 16:06 | 只看该作者
一楼说的没错
回复

使用道具 举报

6#
ID:283987 发表于 2018-5-16 19:13 | 只看该作者
一楼说的没错
回复

使用道具 举报

7#
ID:331521 发表于 2018-5-16 19:24 | 只看该作者
是的,很明显一楼说的就是对的
回复

使用道具 举报

8#
ID:271467 发表于 2018-5-16 19:50 | 只看该作者
一楼说的没错 我们课设也是这个
回复

使用道具 举报

9#
ID:333711 发表于 2018-5-19 15:46 | 只看该作者
是的,一楼说的挺对,我们课设就是这个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表