混合步进电机编程控制,电流和步距角设置.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:4 大小:212KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

混合步进电机编程控制,电流和步距角设置.doc

混合步进电机编程控制,电流和步距角设置.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

两相混合式步进电机控制程序程序:#include"dos.h"#include"stdio.h"#include"conio.h"#include"bios.h"#defineLEFT331#defineRIGHT333#defineESC27intGetKey();inti=0;inta[6]={0x14,0x10,0x14,0x10,0x14,0x10};intb[6]={0x04,0x00,0x04,0x00,0x04,0x00};voidmain(){clrscr();/*150D2位脉冲,D4位方向,D3使能:0电机转,1电机不转*/intm=0,n=0,r=0,c,d,sm,key;longk;printf("\n带环形分配器的三相六拍步进电机手动运转控制\n\n");printf("请选择电机的转向(←反转→正转)\n");key=GetKey();if(key==RIGHT){d=1;printf("\n您选择的转向是正转.\n");}if(key==LEFT){d=0;printf("\n您选择的转向是反转.\n");}delay(400);printf("\n请输入您想要电机运转的步数(Enter确定):运转中按ESC退出\n\n");scanf("%ld",&k);if(d==1){printf("您选择的转向是:正转输入的步数是%ld",k);//↑↓←→while(k>0&&key!=ESC){sm=bioskey(1);if(sm!=0){key=GetKey();if(key==ESC)break;}if(i<5)i++;elsei=0;outportb(0x150,a[i]);delay(10);if(i<5)i++;elsei=0;outportb(0x150,a[i]);m++;k--;printf("正向旋转了%d步\n",m);c=inportb(0x152);r=c&0x02;if(r!=0){printf("%s","行程开关被按下,停止运行,按任意键退出控制程序\n");GetKey();break;}}//while}//ifif(d==0){printf("您选择的转向是:反转输入的步数是%ld",k);while(k>0&&key!=ESC){sm=bioskey(1);if(sm!=0){key=GetKey();if(key==ESC)break;}if(i==0)i=5;elsei--;outportb(0x150,b[i]);delay(10);if(i==0)i=5;elsei--;outportb(0x150,b[i]);n++;k--;printf("反向旋转了%d步\n",n);c=inportb(0x152);r=c&0x02;if(r!=0){printf("%s","行程开关被按下,停止运行,按任意键退出控制程序\n");GetKey();break;}}//while}//if}//mainintGetKey(){intCh,Low,Hig;Ch=bioskey(0);Low=Ch&0x00ff;Hig=(Ch&0xff00)>>8;return(Low==0?Hig+256:Low);}试验现场:.接线情况:接计算机电源+5V端接150口D2位,0、1、0、1…..接150口D4位,0是正转,1是反转接150口D3位,0电机可控制运转,1则电机被锁住,不能被控制运转10至40V直流电源,+极接DC+地线接DC-电流设置步距角设置整步半步4细分8细分16细分32细分64细分保留1.8°0.9°1.8/4°1.8/8°1.8/16°1.8/32°1.8/64°