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

13 篇文章 0 订阅
12 篇文章 0 订阅

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

特点:

(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;
	}
}

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值