自学内容网 自学内容网

【Proteus】51单片机对步进电机的控制

步进电机:将电脉冲信号转变为角位移或线位移的开换控制系统。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

特点:

(1)根据脉冲的控制时序进行顺时针和逆时针的转动,脉冲的顺序决定步进电机的旋转方向,脉冲的个数决定步进电机转动的角度,脉冲的频率决定了步进电机的转速。

(2)没有脉冲时步进电机会保持当前位置。

(3) 步进电机具有快速启动和快速停止的特性。

(4)步进电机的转动方向很容易通过反方向给脉冲时序改变。

L298逻辑功能表

#include <REGX51.H>
int count,num;
unsigned char st[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//1001 1000 1100 0100 0110 0010 0011 0001
//void delay(int n)
//{
//int i=0,j=0;
//for(i=0;i<n;i++)
//{
//for(j=0;j<120;j++);
//}
//}
void inittimer()   //相比于上面的延时更加精确
{
TMOD=0x01;
TH0=(5536-50000)/256;
TL0=(5536-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
//void stepper()
//{
//int i=0;
//for(i=7;i>0;i--)
//{
//P2=st[i];
//delay(100);
//}
//}
void main()
{
inittimer();
while(1)
{
//stepper();
}
}
void timer_isr() interrupt 1
{
TH0=0x3c;
TL0=0xb0;
count++;
if(count==20)//1s
{
P2=st[num++];
if(num==8)
{
num=0;
}
count=0;
}
}


原文地址:https://blog.csdn.net/weixin_62428401/article/details/137753703

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!