【可答疑】基于51单片机的步进电机控制系统(含仿真、代码、报告等)

 ✨哈喽大家好,这里是@每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~

🐱‍🐉这是51单片机毕业设计100篇系列的第2篇:基于51单片机的步进电机控制系统

💻项目相关说明:

  • 代码量:340行
  • 报告字数:4491字
  • 含代码、仿真、原理图、报告、器件清单、常见问题(实物、lw可另外定制)

🎈项目分享:见文末!


1、主要功能

该系统由AT89C51/STC89C52单片机+数码管模块+超声波模块+按键模块+报警模块构成。适用于步进电机调速、正反转等控制项目。

可实现功能:

1、控制步进电机正反转、加减速、停止

2、2个发光二极管显示正反转,1位7段LED数码管显示当前转速档位(共9个档位)

3、4个红色LED,指示电机的转速

2、仿真

proteus仿真使用8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

3、代码

部分代码,仅供参考,注释齐全。

//-----------------------------------------------------------------
// Timer1 中断服务程序
//-----------------------------------------------------------------
void InterruptTime1() interrupt 3
{
	static step1 = 0;							
	static step2 = 0;
	TH1 = Timer[speed - 1][0];			//根据不同的转速档位,给定时器1赋定时器值
	TL1 = Timer[speed - 1][1];			
	
	//按照定时器1的频率循环发送正转励磁序列的脉冲给步进电机,使其不停地转动
	if(flag1 == FwdRun)//正转
	{
		MotorDriver = FFW[step1++];		
		if(step1 == 8) step1 = 0; 
	}
	
	 //按照定时器1的频率循环发送反转励磁序列的脉冲给步进电机,使其不停地转动
	else if(flag1 == RevRun)       
	{
		MotorDriver = REV[step2++];
		if(step2 == 8) step2 = 0; 
	}
}

4、原理图

使用AD21绘制(不是嘉立创哦

5、参考报告

内含4.5k字,17页相关报告一份,纯手打~

6、常见问题

7、资源获取

扫描如下二维码,回复"51步进电机"获取本项目所有文件!

希望可以对你有所帮助~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值