步进电机C语言程序

步进电机C语言程序

ID:40571150

大小:38.00 KB

页数:7页

时间:2019-08-04

步进电机C语言程序_第1页
步进电机C语言程序_第2页
步进电机C语言程序_第3页
步进电机C语言程序_第4页
步进电机C语言程序_第5页
资源描述:

《步进电机C语言程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、步进电机C语言程序  2009-04-1820:20:42

2、  分类: 单片机

3、字号 订阅//两相5、6线步进电机,分为四拍和八拍,这里介绍输出八拍方式:A-AC-C-CB-B-BD-D-DA//四拍:A-C-B-D,因此在八拍的基础上减去中间的就可以了,不过步距角要大一倍#include#includesbitla=P2^0;  //定义两相电机的四组线,从板上设计来分配,选择P2口的低四位输出,相应的输出也可以反应在LED灯上  //P2。0为A相,P2。1为B相,P2。2为C相,P2。3为D相sbitlb=P2^1;sbitlc=P2^2;s

4、bitld=P2^3;#defineucharunsignedcharcodeunsignedintlhj[]={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、反转)      //第二个是步进量,第三个是转速unsignedcharkey();//键盘动作,这里的键盘扫描只用到四个按键有效(板上标的0,4,8,C)unsigned

5、charright(unsignedintSpeed,unsignedintroad);//正转unsignedcharleft(unsignedintSpeed,unsignedintroad);//反转voidmDelay(unsignedintDelayTime);  //延时函数voidmain(){ uchari=0;while(1){  if(key()==0xde){//8的按键按下   for(i=0;i<34;i+=3){//循环输出我们定义好的动作数据    if(lhj[i])   //调入数组,先判断正反转     right(lhj[i+1],lhj[i+2])

6、;//两个参数代表步进量和转速    else     left(lhj[i+1],lhj[i+2]);    if(key()==0xee)//C的按键按下    break;   }     }}  }unsignedcharright(unsignedintSpeed,unsignedintroad)//两个参数代表步进量和转速{//步进节拍:A-AC-C-CB-B-BD-D-DAwhile(1){  if(!Speed)//判断步进量走完没?以下都是,每走一步,判断一次   break;  ld=1;  la=0;  //a  mDelay(road);//这里的延时就可控制转速

7、  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(

8、road);  if(!Speed--)   break;  la=0;  //da  mDelay(road);  Speed--;}P3=P3

9、0x0f;//将四个脚输出置高}unsignedcharleft(unsignedintSpeed,unsignedintroad)//两个参数代表步进量和转速{  //步进节拍A-AD-D-DB-B-BC-C-CAwhile(1){  if(!Speed)//判断步进量走完没?以下都是,每走一步,判断一次   break;    lc=1;  la=0;  //a  mDelay(road);  if(!Speed--)   break; 

10、 ld=0;  //ad  mDelay(road);  if(!Speed--)   break;  la=1;  //d  mDelay(road);  if(!Speed--)   break;  lb=0;  //db  mDelay(road);  if(!Speed--)   break;  ld=1;  //b  mDelay(road);  if(!Speed--)   break;  lc=0;  //bc  mD

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。