步进电机控制程序实例

时间:2015-09-28 06:47:44
【文件属性】:

文件名称:步进电机控制程序实例

文件大小:28KB

文件格式:DOC

更新时间:2015-09-28 06:47:44

步进电机

步进电机控制程序实例 (1)延时函数DelayMs () void DelayMs(uchar dcnt)//基本延时函数 延时1ms*dcnt { uint i; while(dcnt>0) { i=123; while(i>0) i--; dcnt--; } } (2)正转控制函数RotateWise () void RotateWise(uchar speed,uint stepcnt) { uchar i=0; while(stepcnt--) //是否到达指定的转动步数 { CONPORT=roundz[i];//从P1口送出节拍控制值 i++; if(i>5) i=0; DelayMs(speed);//延时,控制节拍周期 } } (3)反转控制函数 ContraRotate () void ContraRotate(uchar speed,uint stepcnt)//反转控制函数 { uchar i=0; while(stepcnt--)//是否达到指定步数 { CONPORT=roundf[i];//P1口送出节拍控制值 i++; if(i>5) i=0; DelayMs(speed);//延时,控制节拍周期 } } (4)测试程序 #include typedef unsigned char uchar;//类型定义 typedef unsigned int uint;//类型定义 uchar code roundz[]={0x01,0x03,0x02,0x06,0x04,0x05};//正转控制值数组 uchar code roundf[]={0x01,0x05,0x04,0x06,0x02,0x03};//反转控制值数组 #define CONPORT P1 void main() { RotateWise(100,10000); //1s转10步 延时100ms ContraRotate(20,10000); //1s转50步 延时20ms while(1); }


网友评论