伊莉討論區

標題: 利用89S51寫步進馬達角度正反轉控制 [打印本頁]

作者: 85203115    時間: 2013-12-9 06:37 PM     標題: 利用89S51寫步進馬達角度正反轉控制

小弟目前正在做學校專題
想要利用89S51步進馬達寫出能夠控制症反轉的角度
小弟用的IC晶片市89S51

可以請高手們幫我看看這個程式是否能夠驅動嗎??
#include<reg51.h>
sbit weld =P3^7;
sbit k0 =P2^0;
sbit k1 =P2^1;
sbit k2 =P2^2;/*直*/
sbit k3 =P2^3;/*右*/
sbit k4 =P2^4;/*左*/
sbit k5 =P2^5;/*後*/
sbit k6 =P2^6;
sbit k7 =P2^7;
unsigned char pulse[]={9,3,6,12,144,48,96,192};
unsigned char pulse1[]={201,99,54,156};/*直*/

unsigned char pulse2[]={153,51,102,204};/*左/右*/
char mode=2;
/*---------------------------*/
delay(int d)
{
int i,j;
for(i=0;i<d;i++)
for(j=0;j<100;j++) ;
}
/*---------------------------*/
forward()
{
int i,no;
no=4;
for(i=0;i<no;i++)
{
P1=pulse1[i];
delay(50);
}
}
/*---------------------------*/
reseve()
{
int i,no;
no=3;
for(c=0;c<=100;c++)
for(i=no;i>=0;i--)
{
P1=pulse1[i];
delay(50);
}
}
/*---------------------------*/
right()
{
int i,c,no;
no=3;
for(c=0;c<=50;c++)

for(i=no;i>=0;i--)
{
P1=pulse2[i];
delay(50);
}
}
/*---------------------------*/
left()
{
int i,c,no;
no=4;
for(c=0;c<=50;c++)
for(i=0;i<no;i++)
{
P1=pulse2[i];
delay(50);
}
}
/*---------------------------*/
rr()
{

}
/*---------------------------*/
main()
{
while(1)
{
if(k2==0)forward();
if(k3==0)right();
if(k4==0)left();
if(k5==0)reseve();
}
}



感恩各位高手們
請解答


作者: if8051    時間: 2013-12-9 10:36 PM

提示: 作者被禁止或刪除 內容自動屏蔽




歡迎光臨 伊莉討論區 (http://a17.eyny.com/) Powered by Discuz!