標(biāo)題: 單片機(jī)控制步進(jìn)電機(jī),大神來幫助一下吧 [打印本頁]

作者: yandao    時(shí)間: 2018-5-15 11:18
標(biāo)題: 單片機(jī)控制步進(jìn)電機(jī),大神來幫助一下吧

寫了一個(gè)控制步進(jìn)電機(jī)的程序,用來使各個(gè)電機(jī)依次運(yùn)動。在Keil調(diào)試時(shí)單步運(yùn)行沒有問題,全速運(yùn)行時(shí)會提示error65,在Proteus里仿真發(fā)現(xiàn)只有前三個(gè)電機(jī)運(yùn)動,剩下兩個(gè)沒反應(yīng),程序是哪里出問題了嗎 ,編譯的時(shí)候沒有提示出現(xiàn)錯(cuò)誤


#include<reg51.h>
#define uint unsigned int


sbit CW1=P0^0;      //1號電機(jī)方向及時(shí)鐘
sbit CLK1=P0^1;
sbit CW2=P0^2;   //2號電機(jī)方向及時(shí)鐘
sbit CLK2=P0^3;  
sbit CW3=P0^4;   //3號電機(jī)方向及時(shí)鐘
sbit CLK3=P0^5;  
sbit CW4=P0^6;    //4號電機(jī)方向及時(shí)鐘
sbit CLK4=P0^7;  
sbit CW5=P2^0;    //5號電機(jī)方向及時(shí)鐘
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;
}

}


作者: zhanghyg    時(shí)間: 2018-5-16 10:56
程序這里有問題,你改一下看看

作者: lvyanbing9    時(shí)間: 2018-5-16 11:22
樓上說的沒錯(cuò)
作者: 2363228374    時(shí)間: 2018-5-16 14:35
對,就是這個(gè)問題,一樓說的沒錯(cuò)
作者: kaikaikaikai123    時(shí)間: 2018-5-16 16:06
一樓說的沒錯(cuò)
作者: asdwe9669    時(shí)間: 2018-5-16 19:13
一樓說的沒錯(cuò)
作者: qwerm    時(shí)間: 2018-5-16 19:24
是的,很明顯一樓說的就是對的

作者: 1742600490    時(shí)間: 2018-5-16 19:50
一樓說的沒錯(cuò) 我們課設(shè)也是這個(gè)
作者: 18437955528    時(shí)間: 2018-5-19 15:46
是的,一樓說的挺對,我們課設(shè)就是這個(gè)




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1