600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 步进电机应用c语言程序设计实例 步进电机C语言程序.doc

步进电机应用c语言程序设计实例 步进电机C语言程序.doc

时间:2024-07-28 22:53:25

相关推荐

步进电机应用c语言程序设计实例 步进电机C语言程序.doc

步进电机C语言程序

步进电机C语言程序??

-04-18 20:20:42|??分类:?单片机|字号?订阅

//两相5、6线步进电机,分为四拍和八拍,这里介绍输出八拍方式:A-AC-C-CB-B-BD-D-DA//四拍:A-C-B-D,因此在八拍的基础上减去中间的就可以了,不过步距角要大一倍#include #include

sbit la=P2^0;?? //定义两相电机的四组线,从板上设计来分配,选择P2口的低四位输出,相应的输出也可以反应在LED灯上?? //P2。0为A相,P2。1为B相,P2。2为C相,P2。3为D相sbit lb=P2^1;sbit lc=P2^2;sbit ld=P2^3;

#define uchar unsigned charcode unsigned int lhj[]={1,50,100,1,50,80,1,100,50,0,120,40,0,30,80,0,50,100,?????? 1,50,120,0,200,80,1,400,20,1,50,130,0,200,90,0,50,150};?????? //定义电机动作的参数,每三个数为一组,第一个是方向(1、正转,0、反转)?????? //第二个是步进量,第三个是转速unsigned char key();//键盘动作,这里的键盘扫描只用到四个按键有效(板上标的0,4,8,C)unsigned char right(unsigned int Speed,unsigned int road); //正转unsigned char left(unsigned int Speed,unsigned int road); //反转void mDelay(unsigned int DelayTime);?? //延时函数

void main(){?uchar i=0;while(1){?? if(key()==0xde){//8的按键按下??? for(i=0;i<34;i+=3){//循环输出我们定义好的动作数据???? if(lhj[i])??? //调入数组,先判断正反转????? right(lhj[i+1],lhj[i+2]); //两个参数代表步进量和转速???? else????? left(lhj[i+1],lhj[i+2]);???? if(key()==0xee)//C的按键按下???? break;??? }????? }}??}unsigned char right(unsigned int Speed,unsigned int road)//两个参数代表步进量和转速{//步进节拍:A-AC-C-CB-B-BD-D-DAwhile(1){?? if(!Speed) //判断步进量走完没?以下都是,每走一步,判断一次??? break;?? ld=1;?? la=0;?? //a?? mDelay(road);//这里的延时就可控制转速?? if(!Speed--)??? break;?? lc=0;?? //ac?? mDelay(road);?? if(!Speed--)??? break;?? la=1;?? //c?? mDelay(road);?? if(!Speed--)??? break;?? lb=0;?? //cb?? mDelay(road);?? if(!Speed--)??? break;?? lc=1;?? //b?? mDelay(road);?? if(!Speed--)??? break;?? ld=0;?? //bd?? mDelay(road);?? if(!Speed--)??? break;?? lb=1;?? //d?? mDelay(road);?? if(!Speed--)??? break;?? la=0;?? //da?? mDelay(road);?? Speed--;}P3=P3|0x0f;//将四个脚输出置高}unsigned char left(unsigned int Speed,unsigned int road)//两个参数代表步进量和转速{?? //步进节拍 A-AD-D-DB-B-BC-C-CAwhile(1){?? if(!Speed)//判断步进量走完没?以下都是,每走一步,判断一次??? break;???? lc=1;?? la=0;?? //a?? mDelay(road);?? if(!Speed--)??? break;?? ld=0;?? /

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。