求一个能驱动步进电机的C程序,最好有中文解释每一步,步进电机能正转、停、反转、或是正转半圈、停、反转半圈、 我是用USB TTL烧录程序,
#include<reg52.h>
//#include "reg52.h"
unsigned char code RUN[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //步进电机相序表
void delay(unsigned int t);
/************************************************************/
//步进电机驱动
void motor_ffw(unsigned int n) //正转函数
{
unsigned char i,j,s,x;
for(x=0;x<n;x++)
{
for(s=0;s<43;s++)
{ for(j=0;j<12;j++)
{
for (i=0; i<8; i++)
{
P1 = RUN[i];
delay(5);
}
} }
}
}
/***************************************************/
void motor_ffm(unsigned int n) //反转函数
{
unsigned char i,j,s,x;
for(x=0;x<n;x++)
{
for(s=0;s<43;s++)
{ for(j=0;j<12;j++)
{
for (i=8; i>0; i--)
{
P1 = RUN[i];
delay(5);
}
}
}
}
}
/******延时函数****************/
void delay(unsigned int t)
{
unsigned int k;
while(t--)
{
for(k=0; k<60; k++)//用for的空循环延长程序的执行时间
{ }
}
}
/******************************************************/
void main()
{
motor_ffw(1); //正转 1r
P1=0x00;
delay(500);
motor_ffm(2); //反转 2r
P1=0x00;
delay(500);
while(1)
{}
}
(这个型号步进电机自带减速器,上面的程序角度输出可能不太准确!
)前两天刚刚写的文件,你编译成hex文件烧写进去就好了!我今年大一,自学单片机!欢迎一起交流!qq810817901