89C2051驱动步进电机的电路和源码时间:2006-10-26 来源: 作者: 点击:1434 字体大小:【大中小】/***sweepingstepper'srotorcwandcww400steps*Copyright(c)*/#includec:\mc51\/*includei/oheaderfile*/#includec:\mc51\,flag1,temp;w_n;unsignedcharstep[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90}#definen400/*flag1maskbyte0x01runcw()w()*/main(){flag1=0;serinit(9600);disable();/*noneedtimerinterrupt*/cw_n=n;/*initialstepnumberforcw*/flag1|=0x01;/*initialenablecw()*/while(1){{tick_wait();/*waitfor10mselapsed*/energize();/*round-robinexecutionthefollowingtasksevery10ms*/cw();ccw();}}}cw(){if((flag1&0x01)!=0){cw_n--;/*decrementcwstepnumber*/if(cw_n!=0)j++;/*ifnotzeroincrementindexj*/else{flag1&=~0x01;/*disablecw()execution*/ccw_n=n;/*wcounter*/flag1|=0x02;/*enablecww()execution*/}}}ccw(){if((flag1&0x02)!=0){ccw_n--;/*wstepnumber*/w_n!=0)j--;/*ifnotzerodecrementindexj*/else{flag1&=~0x02;/*w()execution*/cw_n=n;/*reloadstepnumbertocwcounter*/flag1|=0x01;/*enablecw()execution*/}}}tick_wait(){/*cputickwasreplacedbysimplerASMcode10mswait*/asm",*";/*waitforTF0set*/asm"";/*clearTF0forfurtherset*/asm"ORLTH0,#$DC";/*reloadTH0with$DC,TL0=0*/}energize(){P1=step[(j&0x07)];/*onlystep0-7needed*/}电路图 Tags:步进电机 89C2051 ·如何用单片机控制步进电机时间:2006-10-26 来源: 作者: 点击:2106 字体大小:【大中小】 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。一、步进电机常识 常见的步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),永磁式步进一般为两相,转矩和体积较小,;反应式步进一般为三相,可实现大转矩输出,,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相: 。这种步进电机的应用最为广泛。二、永磁式步进电机的控制 下面以电子爱好者业余制作中常用的永磁式步进电机为例,来介绍如何用单片机控制步进电机。 图1是35BY型永磁步进电机的外形图,图2是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。要使用步进电机转动,只要轮流给各引出端通电即可。将COM端标识为C,只要AC、C、BC、C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,端接正电源,那么只要用开关元件(如三极管),将A、、B、轮流接地。 下表列出了该电机的一些典型参数:表1 35BY48S03型步机电机参数型号步距角相数电压电流电阻最大静转距定位转距转动惯量35B
C驱动步进电机电路和源码 来自淘豆网www.taodocs.com转载请标明出处.