百度知道 - 信息提示
请高手根据此原理图给一个51单片机控制四相六线步进电机的C语言程序。 先给20分,如果仿真成功追加50分。
你的图我看不清楚,正面是我编的一段程序仅供参考
#include //头文件 FYM 35BY48S053常州市丰源微特电机有限公司?
#define uchar unsigned int //宏定义,为方便编程
#define uint unsigned int
#define MOTORSTEP P1 //宏定义,定义P1口为步进电机驱动端口
uchar code step[]={0x03,0x09,0x0c,0x06}; //步进电机驱动值数组{0x06,0x0c,0x09,0x03}
void delay() //步进电机每一步间延迟函数
{
uint j ,f;
for(f=0;f<10;f++)
for(j=0;j<400;j++);
//uchar i=700;
//while(i--);
}
sbit key1=P3^0;
sbit key2=P3^1;
//char code SST516[3] _at_ 0x003b; //仿真插入代码
main() //主函数
{
uchar i=0;
while(1)
{
if(key1==0) //电机氛正转
{
for(i=0;i<4;i++) //4步一个循环
{
MOTORSTEP=step[i]; //取值赋给P1驱动口
delay(); //延迟
}
}
else
if(key2==0) //电机反转
{
for(i=4;i>0;i--) //4步一个循环
{
MOTORSTEP=step[i]; //取值赋给P1驱动口
delay(); //延迟
}
}
}
}
求51单片机控制两相六线步进电机加减速以及正反转和急停的C语言程序
这个工作量比较大,有指标没有,多大加速减速,没按键拿什么控制