163 基于单片机三路电机控制系统设计【毕设课设】

本设计由STC89C52单片机电路+L298N电机驱动电路+按键电路+电位器调速电路+电源电路组成。

1、通过电位器可以实时调节电机1的转速。

2、通过按键可以控制电机2的正转和反转。即按键1按下,电机2正转。再次按下,电机2反转。再次按下,电机2停转。

3、通过按键2可以设置电机3正转的速度:按键2按下一次,电机3低速转动,再按下一次,电机3中速转动,再次按下一次,电机3高速转动。(具体速度可自行调节)

资料下载地址

https://pan.baidu.com/s/1NfslpI_UrfwmS1z0wcCBWw?pwd=8888

部分代码

unsigned char pwmRigh=1;	//pwm调整
unsigned char pwmLeft=1;

unsigned char Flag1 = 0;//运行标志
unsigned char Flag2 = 0;//运行标志
unsigned char rekey = 0; //按键按下
void Init_Timer0(void);//

void main (void)
{     
	Init_Timer0();        //定时器0初始化
	DelayMs(100);          //延时有助于稳定

 	IN1 = 1; //控制方向
	IN2 = 0;
 	IN3 = 1; //控制方向
	IN4 = 0;

	while (1)         //主循环
	{
		if((key1 == 0)||(key2 == 0))
		{
		 	if(rekey == 0)
			{
				DelayMs(10);
				if(key1 == 0)  //按键1按下
				{
					rekey =1;	//防止重复按下
					if(Flag1 == 0)//运行标志
					{
						Flag1 = 1;
					 	IN1 = 1; //控制方向
						IN2 = 0;
						pwmRigh= 10;					
					}
					else if(Flag1 == 1)
					
				}
				
			}
		}
		else
		{
			rekey = 0;
		}
	}
}


void Init_Timer0(void)
{
	TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     
	TH0=(65536-20000)/256;		  //重新赋值 20ms
	TL0=(65536-20000)%256;
	EA=1;            //总中断打开
	ET0=1;           //定时器中断打开
	TR0=1;           //定时器开关打开
}

void Timer0_isr(void) interrupt 1 
{
	static unsigned char countRigh;
    static unsigned char countLeft;
		
	TH0=(65536-1000)/256;		  //重新赋值 20ms
	TL0=(65536-1000)%256;

	countRigh++;
	countLeft++;
	if(countRigh<pwmRigh)	   //led1 占空比调节
	{
		ENA=1;			  //打开
	}
	else if(countRigh<=20)	//关闭时间段
	{
	 	ENA=0;			//关闭
		if(countRigh == 20)	 countRigh=0;  //一个周期结束
	}

	if(countLeft<pwmLeft)	   //led1 占空比调节
	{
		ENB=1;			  //打开
	}
	else if(countLeft<=20)	//关闭时间段
	{
	 	ENB=0;			//关闭
		if(countLeft == 20)	 countLeft=0;  //一个周期结束
	}

}

 资料下载地址

https://pan.baidu.com/s/1NfslpI_UrfwmS1z0wcCBWw?pwd=8888

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值