求帮忙写一个c语言程序。用的stc89c52rc单片机,tb6550步进电机驱动器。控制一个57步进电机

1.想设置p3.2、p3.3、p3.4三个开关分别控制停止、正转、反转。2.并且电机只能在0至正转30范围内转,不能超出范围转。3.转速180转每分钟。4。在原点处有一个行程开关p1.6,用于电机反转回归原点用。5.用共阴极接法。******即按p3.3时电机一直正转直到30圈或按p3.2停,按p3.4时一直反转至触碰行程开关为止或按停止按钮。另外辛苦帮忙把注释写的更详细一点点,您知道自学很痛苦的吧~~自学了好久依旧不能自己搞定,求大侠们帮帮忙啦!!谢谢
电机用的是57两相四线混合式步进电机。
一个脉冲1.8℃

程序其实较简单,只是你给的条件还不完善,比如驱动器接受的是脉冲信号还是其他什么信号,如果是脉冲信号,一个脉冲走多少角度?等等。追问

一个脉冲走1.8℃。还需要什么?
大侠一定帮帮忙

追答

#include
#define uchar unsigned char
#define uint unisgned int
uint s;
uchar key;
sbit keystop=P3^2;
sbit keypos=P3^3;
sbit keyneg=P3^4;
sbit limit=P1^6;
sbit pluse=P1^0;
sbit dir=P1^1;
void t0isr() interrupt 1
{
TH0=(65536-3333)/256;
TL0=(65536-3333)%256;
pluse=~pluse;
if(dir==0)s++;
if(s>=6000){s=0;TR0=0;}
if(limit==0 && dir==1){s=0;TR0=0;}
}
main()
{
TMOD=0x01;
TH0=(65536-3333)/256;
TL0=(65536-3333)%256;
ET0=1;
EA=1;
s=0;
key=0;
while(1)
{
keyscan();
switch(key)
{
case 1:TR0=0;break;
case 2:TR0=1;dir=0;break;
case 3:TR0=1;dir=1;break;
default:break;
}
}
}

追问

有三个错误,怎么改呢?

追答

哦少写了一个函数
keyscan()
{

if(keystop==0)

{
while(keystop==0);

key=1;

}

if(keypos==0)
{
while(keypos==0);

key=2;

}

if(keyneg==0)
{
while(keyneg==0);

key=3;

}

}

追问

辛苦了辛苦了!还有两个错误,我实在解决不了,这两个错误都显示的是主函数{  }的错误,怎么改?

追答

#include
#define uchar unsigned char
#define uint unsigned int
uint s;
uchar key;
sbit keystop=P3^2;
sbit keypos=P3^3;
sbit keyneg=P3^4;
sbit limit=P1^6;
sbit pluse=P1^0;
sbit dir=P1^1;
void t0isr() interrupt 1
{
TH0=(65536-3333)/256;
TL0=(65536-3333)%256;
pluse=~pluse;
if(dir==0)s++;
if(s>=6000){s=0;TR0=0;}
if(limit==0 && dir==1){s=0;TR0=0;}
}
void keyscan()
{
if(keystop==0)

{
while(keystop==0);

key=1;

}

if(keypos==0)
{
while(keypos==0);

key=2;

}

if(keyneg==0)
{
while(keyneg==0);

key=3;

}
}
main()
{
TMOD=0x01;
TH0=(65536-3333)/256;
TL0=(65536-3333)%256;
ET0=1;
EA=1;
s=0;
key=0;
while(1)
{
keyscan();
switch(key)
{
case 1:TR0=0;break;
case 2:TR0=1;dir=0;break;
case 3:TR0=1;dir=1;break;
default:break;
}
}
}

温馨提示:内容为网友见解,仅供参考
无其他回答

Warning: Invalid argument supplied for foreach() in /www/wwwroot/www.t2y.org3v3b34/skin/templets/default/contents.html on line 47
相似回答